# Skills в Claude Code: 9 шагов до первого рабочего навыка без цепочек

> Skill в Claude Code - это папка с инструкциями для повторяемой задачи. Показываю правильную структуру, первый файл и проверку запуска.

Источник: https://vibeceh.ru/guides/skills-navyki-pervyy-navyk-dlya-claude-code-bez-kashi
Автор: Сергей Мазур · опубликовано 2026-08-03

Раз в неделю пишу о вайб-кодинге, Claude Code и сборке своих сервисов без найма команд. Подпишись, чтобы не пропустить новые инструкции: https://vibeceh.ru

Если ты ищешь `claude skills`, то, скорее всего, уже просил Claude Code делать одну и ту же работу и каждый раз получал новый результат. Skill превращает повторяемую задачу в отдельную папку с инструкциями, скриптами и ресурсами. Claude Code получает правило, понимает, когда оно подходит, и загружает нужные инструкции вместо бесконечных повторений в чате.

## Что такое Claude Skills и зачем они нужны в Claude Code?

Claude Skill - это папка с инструкциями, скриптами и дополнительными ресурсами для одной повторяемой процедуры. В Claude Code она помогает выполнять задачу по заданному сценарию: например, проверять текст, объяснять структуру проекта или просматривать изменения. Skill не заменяет весь контекст проекта и не гарантирует автоматический запуск при каждом похожем запросе.

Представь рабочую папку вместо большого промпта на несколько экранов. Внутри лежит основной файл `SKILL.md`. К нему можно добавить отдельные инструкции, примеры, скрипты и справочные материалы.

Так Claude получает не только просьбу «сделай хорошо», а маршрут:

1. Прочитай нужные файлы.
2. Проверь конкретные пункты.
3. Не меняй то, что находится за границей задачи.
4. Верни результат в заданном формате.

Это полезно там, где процедура повторяется. Например, ты каждый раз проверяешь текст интерфейса по одним правилам. Или просишь объяснить новый участок проекта простым языком. Или перед правкой хочешь увидеть список рисков.

Длинный промпт живёт в конкретном диалоге. Его приходится искать, копировать и обновлять. Skill хранится в проекте и становится отдельным артефактом.

[`CLAUDE.md`](/guides/claude-md-udalit-ili-perepisat) решает другую задачу. Туда подходят постоянные факты и правила проекта: где лежат страницы, как запускается приложение, какие имена компонентов использовать. Skill подходит для процедуры, которая описывает последовательность действий.

Вот как они различаются:

| Что | Промпт | Skill | CLAUDE.md |
|---|---|---|---|
| Где живёт | В чате | В проекте, в `.claude/skills/` | В корне проекта |
| Когда работает | Один раз | По запросу или автоматически | В каждой сессии |
| Что содержит | Конкретную просьбу | Процедуру и границы | Постоянные факты |
| Пример | «Проверь текст» | «Найди неясные фразы, не меняй URL» | «Страницы лежат в src/pages» |

Я бы разделял их так:

- факт о проекте - в `CLAUDE.md`;
- повторяемая процедура - в Skill;
- разовая просьба - в обычном сообщении.

Anthropic описывает Skills так:

This led us to create Agent Skills: organized folders of instructions, scripts, and resources that agents can discover and load dynamically to perform better at specific tasks. Skills extend Claude's capabilities by packaging your expertise into composable resources for Claude, transforming general-purpose agents into specialized agents that fit your needs." [пер. автора]

Skill не делает Claude программистом и не чинит плохую постановку задачи. Он просто убирает повторяемую часть инструкции из головы и чата.

## Чем Skills отличаются от обычных AI skills?

Запрос `ai skills` может означать общий навык работы с ИИ, обучение или набор практик. Skill для Claude Code - конкретная папка с файлом `SKILL.md`, где лежит процедура для агента. Такой формат подходит узкой повторяемой задаче, а не общему правилу вроде «всегда пиши качественный код» или «работай эффективнее».

![Кот фейспалмит рядом с карточками «AI skills» и «Skill».](https://s3.regru.cloud/crossmark/statejnik/images/guides/skills-navyki-pervyy-navyk-dlya-claude-code-bez-kashi/kadr-1.webp)

Одно слово здесь обозначает несколько разных вещей. В вакансиях `AI skills` часто означает умение человека работать с инструментами ИИ. В обучении так называют программу развития навыков. В Claude Code Skill - это файловая структура внутри проекта.

В статье нужен третий смысл.

Узкая процедура хорошо помещается в Skill:

- проверить текст страницы по списку правил;
- объяснить, где находится конкретная функция;
- разобрать текущие изменения;
- найти подозрительные ключи в файлах;
- сверить структуру страницы с требованиями.

Общее правило плохо помещается в Skill. Фраза «пиши понятно» не задаёт порядок действий. Фраза «учитывай бизнес-контекст» не говорит, что читать, что менять и в каком виде отвечать.

Сравни:

```text
Плохое правило:
Всегда помогай с проектом качественно.

Узкая процедура:
Когда я прошу проверить текст страницы, найди неясные фразы,
неподтверждённые утверждения и разные названия одной функции.
Не меняй URL, код и фактический смысл.
```

Во втором варианте есть действие, момент применения и границы. Claude проще сопоставить такой запрос с задачей.

Skill также отличается от обычного промпта способом хранения. Промпт отправляется вместе с текущей просьбой. Skill лежит в каталоге и может содержать дополнительные файлы. Основная инструкция остаётся в `SKILL.md`, а подробности не обязаны занимать весь этот файл.

Если правило можно выполнить одним коротким предложением, Skill для него не нужен. Если ты постоянно копируешь чек-лист из пяти шагов, это уже хороший кандидат.

Когда делаешь new skill, не собирай в него весь стиль работы. Один файл на одну процедуру проще проверить. Так сразу видно, где ошибка: в пути, описании или самой инструкции.

## Как Skill связан с агентом Claude Code?

[ИИ-агент](/concepts/agent) Claude Code сначала получает только метаданные Skill: `name` и `description`. Затем Claude сопоставляет запрос с описанием и решает, подходит ли этот навык. Только после такого решения он читает `SKILL.md`, а дополнительные файлы открывает по необходимости. Автоматический запуск не гарантирован при каждом похожем запросе.

Внутренняя кухня здесь не нужна. Я держу в голове четыре шага:

1. Claude Code запускает сессию.
2. Claude получает названия и описания доступных Skills.
3. Запрос сравнивается с `description`.
4. Подходящий `SKILL.md` загружается только после совпадения.

Такой порядок экономит [контекст](/concepts/kontekst). В начале сессии Claude не получает сразу все длинные инструкции всех навыков. Сначала он видит короткую карточку. Полное тело появляется позже.

Из этого следует практическое правило для `description`: в ней должны быть две части. Первая отвечает на вопрос «что делает Skill». Вторая - «при каких запросах его применять».

Плохо:

```yaml
description: Helps with project text
```

Лучше:

```yaml
description: >
  Reviews text in this project for unclear wording, inconsistent feature names,
  unsupported claims, and unnecessary technical jargon.
  Use when the user asks to review, edit, or improve project text.
```

Во втором описании есть действие и естественные слова запроса: «review», «edit», «improve», «project text». Именно такие слова ты потом используешь в тесте.

Важно не превращать автоматический выбор в гарантию. Документация описывает сопоставление с `description`, но не раскрывает порог совпадения, приоритеты и внутренний алгоритм. Поэтому похожий запрос может не вызвать Skill. Это не значит, что файл сломан.

Если нужен точный ручной запуск, используй `/имя-навыка`. Если автоматический запуск для конкретного Skill не нужен, в frontmatter есть поле `disable-model-invocation: true`. Оно запрещает Claude выбирать этот навык самостоятельно.

## Где лежит Skill в Claude Code?

Проектовый Skill лежит по пути `.claude/skills/<имя>/SKILL.md`. Это не одиночный Markdown-файл, а каталог с обязательной точкой входа `SKILL.md`. Claude Code ищет проектовые Skills в стартовой директории и родительских каталогах до корня репозитория, поэтому навык из корня может находиться при запуске из вложенной папки.

Минимальное дерево выглядит так:

```text
my-project/
└── .claude/
    └── skills/
        └── explain-project/
            └── SKILL.md
```

Имя каталога становится именем навыка. В примере это `explain-project`.

Для навыка одного проекта используй `.claude/skills/`. Документация также описывает личный путь `~/.claude/skills/`, но здесь я разбираю проектовый вариант. Он хранится рядом с кодом и не смешивается с навыками других проектов.

Порядок проверки пути простой:

1. Найди корень проекта.
2. Создай внутри него `.claude/skills/`.
3. Создай отдельный каталог с именем навыка.
4. Положи внутрь файл `SKILL.md`.

Claude Code ищет проектовые Skills в стартовой директории и в каждом родительском каталоге до корня репозитория. Поэтому навык в корне проекта может подхватиться даже при запуске из вложенной директории.

Это работает только при правильной точке запуска. Если каталог создан в одном проекте, а команда `claude` запущена в другом, ожидаемый Skill не появится.

Запуск из проекта выглядит так:

```bash
cd my-project
claude
```

Если `.claude/skills/` создаётся впервые уже после запуска Claude Code, перезапусти сессию. Для изменения существующего Skill документация допускает подхват изменений без перезапуска. Но новый верхнеуровневый каталог может потребовать новый запуск.

Путь `.claude/skills/project-copy-review.md` не соответствует структуре проектового Skill. Нужен каталог `.claude/skills/project-copy-review/` и файл с точным именем `SKILL.md`.

Первое решение с Skill не требует GitHub, MCP или отдельного сервиса. Нужны проект, папка и текстовый файл.

Дальше показываю, как собрать такой навык за девять шагов и проверить его в деле.

## Что должно быть в файле `SKILL.md`?

Файл `SKILL.md` начинается с YAML frontmatter между двумя строками `---`. Внутри обязательны поля `name` и `description`. После frontmatter идут Markdown-заголовок и инструкции для Claude. В `description` одновременно укажи действие навыка и запросы, при которых его стоит применять.

Минимальный каркас такой:

```markdown
---
name: project-copy-review
description: Reviews project text and explains what to improve. Use when the user asks to review, edit, or improve text in this project.
---

# Project Copy Review

## Instructions

1. Read the provided text.
2. Find unclear wording and inconsistent names.
3. Preserve URLs, code, product names, and factual meaning.
4. Return issues, suggested changes, and the revised text.
```

В frontmatter нужны именно два поля:

- `name` - имя навыка;
- `description` - назначение и момент применения.

После закрывающей строки `---` начинается обычный Markdown. Здесь уже лежит рабочая инструкция: что прочитать, какие проверки выполнить, что вернуть и чего не менять.

`description` важнее, чем хочется думать. Claude видит её до полного тела Skill. Если написать только название или общий лозунг, автоматическое сопоставление станет слабым.

Сравни два описания:

```yaml
description: Checks pages
```

```yaml
description: >
  Checks page structure, headings, buttons, and user-facing text.
  Use when the user asks to review a page structure or check whether a page
  follows the project's content rules.
```

Второе описание ближе к реальной речи. В запросе можно написать: «Проверь структуру страницы» или «Посмотри заголовки и кнопки». Эти слова уже есть в описании.

Само тело лучше писать как инструкцию, а не как эссе. Claude должен увидеть последовательность:

1. Что открыть.
2. Что проверить.
3. Какие границы соблюдать.
4. Как оформить ответ.

Для первого навыка подойдёт проверка текста или структуры страницы. Она не требует отдельной тестовой системы и даёт результат, который легко оценить глазами.

Готовый файл `project-copy-review`:

```markdown
---
name: project-copy-review
description: >
  Reviews, edits, and improves text in this project.
  Use when the user asks to check page copy, review interface text,
  find unclear wording, or improve a feature description.
---

# Project Copy Review

1. Read the text and the nearby project files that give it context.
2. Find unclear sentences, inconsistent feature names, unsupported claims,
   and unnecessary technical jargon.
3. Preserve code, URLs, product names, and factual meaning.
4. Do not edit files unless the user explicitly asks.
5. Return:
   - issues found;
   - suggested changes;
   - the final revised text.
6. If the project context is missing, say which files are needed.
```

Этот вариант ограничивает задачу. Он не просит Claude «улучшить всё» и не разрешает молча менять файлы. Такие границы особенно полезны, когда агент уже однажды переписал половину проекта вместо одной правки.

Если инструкция растёт, не складывай все подробности в один файл. Anthropic советует оставить в `SKILL.md` основной маршрут, а подробную документацию вынести в `references/` и сослаться на неё из Skill.

## Как создать первый Skill без лишней сложности?

Первый Skill создай как каталог `.claude/skills/explain-project/` с файлом `SKILL.md` внутри. При skill make сначала выбери одну повторяемую процедуру, затем добавь два YAML-поля и короткие инструкции, запусти Claude Code из корня проекта, проверь список Skills и отправь естественный запрос. Не добавляй цепочки Skills и дополнительные файлы до первого успешного прогона.

![Кот собирает папку Skill из каталога и файла SKILL.md.](https://s3.regru.cloud/crossmark/statejnik/images/guides/skills-navyki-pervyy-navyk-dlya-claude-code-bez-kashi/kadr-2.webp)

Возьми задачу, которую уже несколько раз описывал в чате. Для первого опыта я советую `explain-project`: он объясняет устройство проекта, связанные файлы и расположение функции.

Не бери сразу TDD, сложный code review, браузерное тестирование или цепочку из нескольких Skills. Такие сценарии требуют тестовой системы, Git-терминов, Python, Playwright или дополнительных агентов.

В корне проекта создай `.claude/skills/explain-project/`.

Структура должна выглядеть так:

   ```text
   my-project/
   └── .claude/
       └── skills/
           └── explain-project/
               └── SKILL.md
   ```

Важен каждый элемент пути. Нельзя заменить каталог одиночным файлом `.claude/skills/explain-project.md`.

Назови файл `SKILL.md` заглавными буквами.

В терминале:

   ```bash
   mkdir -p .claude/skills/explain-project
   touch .claude/skills/explain-project/SKILL.md
   ```

Файл `skill.md`, `Skill.md` или `README.md` не станет точкой входа для этого навыка.

Вставь минимальное содержимое. Поля `name` и `description` должны находиться между двумя строками `---`.

   ```markdown
   ---
   name: explain-project
   description: >
     Explains how this project works and where features live.
     Use when the user asks how the project is organized,
     where a feature is implemented, or which files are related.
   ---

   # Explain Project

   1. Inspect the relevant project files before answering.
   2. Explain the result in plain language.
   3. Mention the exact files used for the explanation.
   4. Do not edit files unless the user explicitly asks.
   5. If the answer is uncertain, say what information is missing.
   ```

Описание говорит и о действии, и о моменте применения. Инструкции задают границы: сначала читать файлы, не угадывать, не вносить правки без отдельной просьбы.

Перейди в корень проекта и запусти Claude Code.

   ```bash
   cd my-project
   claude
   ```

Если каталог `.claude/skills/` появился после уже запущенной сессии, выйди из неё и запусти `claude` снова. Новый верхнеуровневый каталог может не появиться в старой сессии.

Отправь Claude отдельный вопрос:

   ```text
   What skills are available?
   ```

В ответе должен появиться `explain-project`. Этот вопрос проверяет, виден ли навык вообще. Он ещё не проверяет, правильно ли Claude выбирает его по смыслу.

Не начинай с имени файла и не пересказывай frontmatter. Напиши задачу так, как написал бы её в обычной работе.

   ```text
   Explain where the login flow lives in this project and which files are related.
   ```

Проверь три вещи: Claude прочитал реальные файлы, объяснение касается текущего проекта, файлы не изменились. Если навык не сработал автоматически, это ещё не доказывает ошибку файла. Переформулируй запрос ближе к словам из `description`.

Если Skill доступен для ручного вызова, отправь:

   ```text
   /explain-project
   ```

Затем добавь задачу:

   ```text
   Explain where the login flow lives in this project.
   ```

Ручной вызов отделяет проблему автоматического сопоставления от проблемы структуры или YAML. Если прямой запуск тоже не работает, сначала проверяй путь, имя файла и frontmatter.

Например, добавь в `description` слова `login flow`, `feature files` или `project structure`. После этого повтори тот же тестовый запрос.

Для skill learning не меняй одновременно путь, имя навыка, описание и все инструкции. Иначе не поймёшь, какая правка помогла. Документация Claude советует тестировать навык после каждого существенного изменения.

## Почему Skill не срабатывает и как это проверить?

Сначала проверь, виден ли Skill в списке, затем имя `SKILL.md`, YAML и слова в `description`. Спроси `What skills are available?`, попробуй `/skill-name`, переформулируй запрос ближе к описанию, а при ошибке frontmatter запусти Claude Code с `--debug`. Меняй одну существенную деталь за раз и повторяй тест.

![Сиба-ину одобряет чек-лист проверки Skill с фиолетовыми галочками.](https://s3.regru.cloud/crossmark/statejnik/images/guides/skills-navyki-pervyy-navyk-dlya-claude-code-bez-kashi/kadr-3.webp)

Начни с самой частой ошибки: неправильной структуры.

```text
Нужно:
.claude/skills/project-copy-review/SKILL.md

Нельзя:
.claude/skills/project-copy-review.md
.claude/skills/project-copy-review/skill.md
```

Проверь файл командой:

```bash
ls -l .claude/skills/project-copy-review/SKILL.md
```

Если команда сообщает, что файла нет, проблема пока не в автоматическом выборе.

Дальше проверь видимость:

```text
What skills are available?
```

Если Skill не появился, проверь:

- Claude запущен из нужного проекта;
- каталог находится внутри `.claude/skills/`;
- имя файла написано как `SKILL.md`;
- новая сессия запущена после создания нового каталога.

Если Skill виден, но не выбирается, смотри на `description`. Она должна содержать естественные слова, которые появляются в реальных запросах. «Работа с компонентами» слишком абстрактно. «Добавь `@Input` в `profile.component.ts`» ближе к конкретной задаче.

Попробуй прямой запуск:

```text
/project-copy-review
```

Если прямой вызов работает, а обычный запрос нет, правь описание и тестовый запрос. Если прямой вызов не работает, проверяй структуру и frontmatter.

При проблеме с YAML запускай Claude Code с отладкой:

```bash
claude --debug
```

Если YAML сломан, Claude Code может загрузить тело Skill с пустыми метаданными. Тогда прямой вызов ещё способен работать, но описания для автоматического сопоставления у Claude нет.

`--debug` показывает ошибки разбора и диагностику, но не доказывает, что Skill дал правильный результат. Отдельно проверяй видимость, автоматический выбор, ручной вызов и качество ответа.

Рабочий порядок проверки:

1. Список доступных Skills.
2. Точный путь и имя файла.
3. Прямой вызов.
4. Естественный запрос.
5. Отладка YAML при ошибке.
6. Один существенный апдейт.
7. Новый прогон.

Точного встроенного тест-раннера для обычного проектового Skill фактура не подтверждает. Поэтому не называй навык готовым только потому, что он появился в списке. Когда skills done, это означает, что он запускается нужным способом и выдаёт ожидаемый результат на тестовом запросе.

## Что делать, если Skill разросся или должен работать вручную?

Оставь в `SKILL.md` короткий маршрут, а подробные правила вынеси в `references/` и подключай их по необходимости. Не строй цепочку Skills для первого опыта: возврат к исходному сценарию не гарантирован. Если навык должен запускаться только вручную, добавь `disable-model-invocation: true`. Встроенного точного тест-раннера и гарантии автоматического вызова фактура не подтверждает.

Большой `SKILL.md` быстро превращается в кашу. В нём смешиваются основной порядок действий, исключения, примеры, справка и длинные списки. Claude приходится читать всё, даже когда нужна одна часть.

Раздели материалы:

```text
.claude/
└── skills/
    └── project-copy-review/
        ├── SKILL.md
        └── references/
            ├── tone.md
            └── forbidden-terms.md
```

В `SKILL.md` оставь маршрут:

```markdown
1. Read the project text.
2. Check the core rules.
3. Read `references/tone.md` when tone is part of the request.
4. Read `references/forbidden-terms.md` when checking restricted wording.
5. Return issues and a revised version.
```

Подробности лежат рядом, но не перегружают основной файл. Это не повод создавать десятки справочников сразу. Сначала добейся рабочего результата с одним `SKILL.md`.

При skill building не начинай с композиции из нескольких навыков. Skill не является обычной функцией с гарантированным возвратом результата. Один навык может перехватить фокус, а продолжение исходной процедуры не случится так, как ты ожидал.

Если нужен только ручной запуск, добавь поле:

```yaml
---
name: deploy
description: Deploys the application using the project deployment procedure.
disable-model-invocation: true
---
```

Так Claude не будет выбирать этот навык сам по контексту. Запуск останется ручным через `/deploy`.

На этом я останавливаюсь с обещаниями. Фактура подтверждает ручные проверки, итерационные прогоны, `--debug`, разделение больших инструкций и ручное ограничение вызова. Она не подтверждает точную команду, которая проверяет Skill целиком, или гарантию автоматического запуска при каждом подходящем запросе.

## Вопросы и ответы

**Коротко:** Используй Skill для повторяемой процедуры, которую приходится снова и снова описывать в чате. Подойдут проверка текста, объяснение структуры проекта, список рисков или локальная проверка конфигурации. Постоянные факты о проекте оставляй в `CLAUDE.md`, а разовую задачу формулируй обычным сообщением.

Да. Skill может задавать порядок чтения файлов, проверки изменений и подготовки результата. Для первого опыта лучше выбрать узкую локальную процедуру: объяснение проекта, проверку структуры страницы или списка требований. Сложный code review с Git-терминами и связанными Skills лучше оставить на следующий этап.

Лучший первый кандидат - навык с одной понятной процедурой и проверяемым результатом. Подойдут `explain-project` и `project-copy-review`. Они не требуют GitHub, MCP, Playwright, отдельной базы или настроенной тестовой системы.

Чтобы создать new skill, создай каталог `.claude/skills/<имя>/`, положи внутрь файл `SKILL.md`, добавь YAML frontmatter с `name` и `description`, затем напиши короткие инструкции. После этого запусти Claude Code из проекта, проверь список Skills и отправь естественный тестовый запрос.

При skill building начни с одного файла и одной процедуры. Не добавляй цепочку Skills, внешние сервисы и длинную справку до первого рабочего прогона. Когда `SKILL.md` разрастается, вынеси подробности в `references/`, а в основном файле оставь порядок действий и ссылки на нужные материалы.

Сначала спроси `What skills are available?`, чтобы проверить видимость. Затем попробуй естественный запрос и прямой вызов `/skill-name`. Если есть ошибка YAML, запусти Claude Code с `--debug`. После каждого существенного изменения делай новый прогон и меняй только одну важную деталь.

Skill готов, когда он виден в списке, запускается прямым вызовом, подходит к естественному запросу и даёт ожидаемый результат без лишних изменений в проекте. Одного появления имени в списке недостаточно: оно подтверждает только обнаружение файла.

В фактуре есть запрос `find skills` и примеры публичных репозиториев, но безопасный единый каталог или маркетплейс для установки не подтверждён. Для первого навыка не ищи коллекцию из десятков файлов. Собери один локальный Skill под конкретную процедуру проекта.

Нет подтверждения, что отдельный builder обязателен для первого навыка. `skill-creator` предназначен для разработки и оценки других Skills, с тестовыми прогонами и дополнительной инфраструктурой. Для первого рабочего файла достаточно каталога и `SKILL.md`.

Для skill learning сделай один маленький Skill, проверь его на естественном запросе, измени описание или инструкцию и повтори прогон. Такой цикл быстрее объясняет устройство Skills, чем попытка сразу собрать универсальную систему из нескольких связанных навыков.

При skill make сначала опиши одну процедуру человеческими шагами. Затем перенеси её в `SKILL.md`: действие, условие применения, границы и формат результата. После первого запуска проверь не только автоматический выбор, но и ручной вызов.

Когда skills done, проверь четыре вещи: каталог находится в `.claude/skills/`, файл называется `SKILL.md`, frontmatter содержит `name` и `description`, а описание совпадает с естественными словами запроса. Затем проверь поведение на конкретной задаче и повтори тест после каждой существенной правки.

- [Equipping agents for the real world with Agent Skills - Anthropic](https://www.anthropic.com/engineering/equipping-agents-for-the-real-world-with-agent-skills?_bhlid=fb54f3ffd4d8cdcde5a43e105d8980dbb53abb65)
- [Agent Skills - Claude Platform Docs](https://docs.claude.com/en/docs/agents-and-tools/agent-skills/overview)
- [Extend Claude with skills - Claude Code Docs](https://code.claude.com/docs/en/skills)
- [How to create custom skills - Claude Help Center](https://support.claude.com/en/articles/12512198-how-to-create-custom-skills)
- [Skills template - Anthropic GitHub](https://github.com/anthropics/skills/blob/main/template/SKILL.md)
- [skill-creator - Anthropic GitHub](https://github.com/anthropics/skills/blob/main/skills/skill-creator/SKILL.md)
- [webapp-testing - Anthropic GitHub](https://github.com/anthropics/skills/blob/main/skills/webapp-testing/SKILL.md)
- [sciwrite SKILL.md - GitHub](https://github.com/labarba/sciwrite/blob/main/SKILL.md)
- [Claude Code issue #9716](https://github.com/anthropics/claude-code/issues/9716)
- [Claude Code issue #21428](https://github.com/anthropics/claude-code/issues/21428)
