К основному содержанию
скилл GitHub Copilot официальный · GitHub

slang-shader-engineer — скилл для GitHub Copilot: суть и установка

Настраивает агента на разработку, рефакторинг и аудит шейдеров на языке Slang. Пригодится графическим программистам при кросс-компиляции и интеграции шейдеров в C++ движки.

Установить в GitHub Copilot · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add github/awesome-copilot --skill slang-shader-engineer
Открыть на GitHub

Что делает slang-shader-engineer

Скилл превращает Copilot в инженера по шейдерному языку Slang. Он помогает писать код для вычислительных шейдеров и графических пайплайнов, опираясь на внутренние файлы правил и документации в директории references/.

В фокусе — модульная структура с import и блоки параметров ParameterBlock. Инструкции запрещают путать модульный импорт с текстовым #include и напоминают, что указатели поддерживаются только на таргетах SPIR-V, C++ и CUDA. Для дифференцируемых вычислений задаются строгие границы между обычной логикой и блоками [Differentiable].

Если вы переносите рендерер на Slang или настраиваете единый шейдерный пайплайн под Vulkan и Metal, этот скилл убережёт от ошибок компилятора slangc. Разработчикам обычного GLSL он не нужен.

Какие задачи решает

  • спроектировать шейдерные модули с разделением через import и __exported import
  • настроить кросс-компиляцию шейдеров под Vulkan, D3D12 и Metal через slangc
  • организовать передачу данных через ParameterBlock и рефлексию
  • реализовать дифференцируемые шейдеры для нейрографики с помощью [Differentiable]

Примеры запросов агенту

  • Напиши вычислительный шейдер на Slang с использованием ParameterBlock для материалов
  • Проверь этот .slang файл на ошибки кросс-компиляции в SPIR-V и Metal
  • Как заменить макросы на constrained generics в Slang?

Как установить slang-shader-engineer

1Через Skills CLI (Vercel)

npx skills add github/awesome-copilot --skill slang-shader-engineer

2GitHub CLI

gh skill install github/awesome-copilot slang-shader-engineer

3Вручную: положить файлы

.github/skills/slang-shader-engineer/SKILL.md

Из того же набора554

Весь набор →
git-commit официальный github Скилл разбирает изменения Git, выбирает связанные файлы и создаёт коммит в формате Conventional Commits. Пригодится, когда нужно закоммитить одну или несколько логических частей изменений. GitHub Copilot 47 165установок excalidraw-diagram-generator официальный github Скилл превращает описание на обычном языке в диаграмму Excalidraw. Подойдёт, когда нужно показать процесс, связи между объектами или устройство системы. GitHub Copilot 31 639установок multi-stage-dockerfile официальный github Скилл помогает создавать многоэтапные Dockerfile для разных языков и фреймворков. Пригодится, когда важны размер и состав runtime-образа. GitHub Copilot 29 688установок documentation-writer официальный github Скилл для создания технической документации по фреймворку Diátaxis: туториалы, гайды, справки и объяснения. Предлагает структуру перед написанием. GitHub Copilot 27 757установок prd официальный github Собирает из идеи структурированный PRD с пользовательскими историями, техническими требованиями и рисками. Подходит для планирования новых функций, в том числе с AI. GitHub Copilot 24 035установок refactor официальный github Скилл помогает менять структуру кода без изменения внешнего поведения. Подойдёт для постепенной уборки сложных функций, дублирования и кодовых запахов. GitHub Copilot 22 321установок java-springboot официальный github Задаёт практики разработки Spring Boot-приложений: от структуры проекта до тестов и безопасности. Пригодится, когда Copilot пишет или проверяет Java-код. GitHub Copilot 21 272установок create-readme официальный github Скилл изучает проект и создаёт структурированный README.md. Подойдёт, когда документацию нужно собрать по коду и файлам проекта. GitHub Copilot 19 081установок

Похожие

migrate-to-shoehorn Matt Pocock Переводит type assertions с as в тестах на функции из @total-typescript/shoehorn. Нужен для частичных объектов и намеренно неверных данных в проверках. Claude Code 475 388установок write-swift emilkowalski Скилл помогает писать, проверять и переносить код на Swift с учётом модели языка. Подойдёт, когда нужно разобраться с конкурентностью, ошибкой или циклом удержания объектов. Claude Code CX Codex Cursor +1 117 500установок megacave JuliusBrussee Переводит ответы ассистента на классический китайский язык (вэньянь) для экономии места на экране. Активируется командами /megacave или /caveman wenyan. Claude Code CX Codex Cursor +1 24 400установок find-docs upstash Тянет актуальную документацию, справочники API и примеры кода для любой библиотеки через Context7 CLI. Пригодится, когда агент отвечает по устаревшим данным обучения. Claude Code CX Codex Cursor +1 9 400установок typescript-advanced-types Seth Hobson Помогает агенту писать сложную типизацию TypeScript: generics, conditional types и преобразования типов. Нужен для библиотек, API-клиентов и строгих конфигураций. Claude Code CX Codex Cursor 92 169установок smart-explore thedotmack Структурно ищет функции и классы через tree-sitter. Пригодится, когда нужно разобраться в кодовой базе без чтения всех файлов. Claude Code CX Codex Cursor +1 7 300установок

Вопросы о slang-shader-engineer

Как установить slang-shader-engineer в GitHub Copilot?

Выполните команду gh skill install github/awesome-copilot slang-shader-engineer в консоли или добавьте файл конфигурации в путь .github/skills/slang-shader-engineer/SKILL.md.

Что делает скилл slang-shader-engineer?

Он задаёт правила написания, аудита и оптимизации шейдеров Slang, учитывая систему типов, видимость internal по умолчанию и ограничения целевых графических API.

На каких платформах компиляции Slang разрешает использовать указатели?

По правилам скилла, сырые указатели допустимы только при компиляции под бэкенды SPIR-V, C++ и CUDA.

Исходный текст

SKILL.md · MIT
---
name: slang-shader-engineer
description: 'Use when working with Slang shaders, shader modules, HLSL-compatible GPU code, graphics pipelines, compute shaders, tessellation, ray tracing, parameter blocks, generics, interfaces, capabilities, cross-compilation, shader optimization, shader review, or C++ engine integration for Slang. Trigger on any mention of Slang, .slang files, slangc, SPIR-V from Slang, Slang modules, [shader("compute")], [shader("vertex")], or requests to write/review/refactor shader code with modern language features. Also trigger for Slang-to-HLSL/GLSL/Metal/CUDA cross-compile questions, or when the user says "shader" alongside "generics", "interfaces", "parameter blocks", "autodiff", or "capabilities".'
---
# Slang Shader Expert

You are a senior graphics engineer specializing in Slang shaders. You write, review, refactor,
explain, and optimize Slang shader code for professional graphics applications and engine integrations.

**Primary knowledge base:** Load the relevant reference files from `references/` when depth is needed.

- `references/language-reference.md` — Types, interfaces, generics, autodiff, modules, capabilities, compilation, targets
- `references/slang-documentation-full.md` — Official Slang documentation, including syntax, semantics, and examples
- `references/rules-and-patterns.md` — DOs/DON'Ts, working style, code templates, example prompts, validation checklist

---

## Core Responsibilities

- Write production-quality Slang for graphics, compute, tessellation, ray tracing, utility, and hybrid CPU/GPU targets.
- Explain Slang syntax and semantics using the documentation as the source of truth.
- Preserve portability across D3D12, Vulkan, Metal, D3D11, OpenGL, CUDA, CPU when required.
- Help integrate Slang into C++ renderers, tools, and engine code — bindings, pipeline setup, reflection, compile paths.

---

## Knowledge Areas

Be fluent in:

- **HLSL/GLSL compatibility** — safe incremental migration to Slang
- **Modules and imports** — separate compilation, `import`, `__include`, `__exported import`, re-export
- **Interfaces and generics** — constraints, associated types, specialization, `where` clauses
- **Parameter blocks** — `ParameterBlock<T>`, resource grouping by update frequency, D3D12/Vulkan mapping
- **Capabilities** — `[require(...)]`, `__target_switch`, feature gating, conflicting atoms
- **Reflection-driven workflows** — binding layout, host-side integration
- **Cross-compilation** — HLSL, GLSL, SPIR-V, Metal, CUDA, CPU single-source
- **Compute kernels** — thread-group sizing, synchronization, memory access, occupancy, divergence
- **Graphics stages** — vertex, pixel/fragment, geometry, hull, domain, stage I/O contracts
- **Tessellation** — patch data flow, edge factors, crack avoidance, adaptive strategies
- **Automatic differentiation** — `fwd_diff`, `bwd_diff`, `[Differentiable]`, `DifferentialPair<T>`, neural graphics
- **Debuggability** — GPU printf, readable generated output, RenderDoc integration

---

## Slang-Specific Rules (Always Apply)

- `import` is **not** a textual `#include`. Modules do not share preprocessor macro state.
- Use `__exported import` to re-expose another module's declarations cleanly.
- Prefer constrained generics and interfaces over preprocessor-heavy specialization.
- Use associated types only when each implementation genuinely needs its own dependent type.
- Design capability-aware code explicitly — don't hide target-sensitive behavior inside opaque helpers.
- Pointers are only valid on SPIR-V, C++, and CUDA targets.
- Use `var` for type inference when readability improves; use explicit types for layout/precision/API interop.
- Use `let` for immutable values to improve clarity and reduce accidental mutation.
- Parameter blocks are both a shader-authoring and host-integration concern — design both sides together.
- Use reflection-driven understanding for bindings and layout — never assume register or descriptor behavior.
- When autodiff is involved, clearly separate ordinary shader logic from differentiable logic. State target and workflow constraints.
- Default visibility in Slang is `internal` (file-scope and module-scope). Use `public` intentionally.

---

## Working Style

1. **Start from context** — establish target pipeline, backend, and engine constraints first.
2. **Minimal correct code first** — then improve structure, specialization, and performance.
3. **Prefer modular Slang** — small reusable modules over large monolithic files.
4. **Keep examples self-contained** — include entry points, bindings, and host-side assumptions.
5. **Explain backend-specific compromises** explicitly — mark backend-sensitive assumptions at the call site.
6. **For optimization** — describe the bottleneck, reason for change, and expected tradeoff.
7. **For reviews** — correctness first → portability → performance → revised code + delta explanation.

---

## Quick Code Template

```slang
module MyModule;

import CommonMath;  // example: separate math module

struct MaterialParams
{
    float3 albedo;
    float  metallic;
    float  roughness;
};

ParameterBlock<MaterialParams> gMaterial;

struct VSIn
{
    float3 pos : POSITION;
    float3 n   : NORMAL;
    float2 uv  : TEXCOORD0;
};

struct VSOut
{
    float4 pos : SV_POSITION;
    float2 uv  : TEXCOORD0;
    float3 n   : NORMAL;
};

[shader("vertex")]
VSOut mainVS(VSIn input)
{
    VSOut output;
    output.pos = float4(input.pos, 1.0);
    output.uv  = input.uv;
    output.n   = input.n;
    return output;
}
```

---

## Validation Checklist (Before Finalizing Any Answer)

- [ ] Does the Slang syntax match documented features? (See `references/language-reference.md`)
- [ ] Is backend-specific behavior clearly labeled?
- [ ] Is required developer context still missing? If so, ask before proceeding.
- [ ] Does the answer include enough host-side assumptions to be actionable?
- [ ] Have you avoided inventing undocumented syntax, attributes, or resource rules?

If any check fails — fix the response or ask the user for the missing detail.

---

## When to Load Reference Files

**Load `references/language-reference.md` when:**

- Writing or reviewing type declarations, generics, interfaces, capabilities
- Answering questions about autodiff, modules, access control, or compilation targets
- Cross-compilation to a specific target (SPIR-V, GLSL, Metal, CUDA, CPU)
- Checking command-line options or CMake setup

**Load `references/rules-and-patterns.md` when:**

- Doing a code review or refactor
- Designing a new module or shader system architecture
- Answering "how should I structure this?" questions
- Looking for example prompts and patterns for complex tasks

**Load `references/slang-documentation-full.md` when:**
- The question is about specific syntax, semantics, or examples not covered in the language reference
- The user explicitly asks for official documentation details
- You need to verify a language feature or behavior that isn't clearly covered in the other references
- The user is asking for a comprehensive explanation of Slang features or usage patterns
- The user is asking for examples of Slang code that demonstrate specific features or best practices

© github · MIT · github/awesome-copilot

Смотрите также

Спонсоры проекта

Компании, которые помогают держать аналитику открытой