- BrainTools - https://www.braintools.ru -
Вы наверняка ловили себя на том, что раз за разом копипастите в чат с ИИ одни и те же инструкции: «Пиши на TypeScript», «Не используй сторонние библиотеки», «Добавляй тесты». В программировании мы по сути называем это нарушением принципа DRY (Don’t Repeat Yourself). Но почему мы продолжаем это делать при общении с нейросетями?
В этой статье мы разберем концепцию Skills (Скиллов) – переиспользуемых «навыков» для ИИ-ассистентов, которые живут прямо в вашем репозитории и делают работу агентов предсказуемой, чистой и профессиональной.

Если коротко Skill – это персистентный (постоянный) плейбук, который учит ИИ выполнять конкретный тип задач по вашим стандартам.
Обычный промпт – это просто одноразовая просьба
Skill – это системный компонент. Он версионируется в Git, лежит в папке проекта и автоматически подтягивается агентом, когда возникает подходящая задача
Системный промпт (например, в настройках Claude, Cursor) это глобальная роль (условно «Ты – программист»)
Skill – это узкая специализация (Например: «Ты эксперт по написанию PRD для No-code MVP»)
На практике проблема не в том, что модель “плохо отвечает”. Проблема в том, что мы не фиксируем стандарты работы
В обычной разработке:
код-стайл фиксируется линтерами,
архитектура – правилами репозитория,
процессы – PR templates, DoD, CI
С нейросетями то же самое, только вместо “компилятора” у нас – “агент”, который каждый раз пытается угадать, что вы хотели.
И важный момент:
Это не “фича Cursor” или “фича Claude Code”.
Это слой поверх инструментов, который делает поведение [1] агента переносимым.
Хороший навык не должен быть «водой». Если вы напишете «пиши хороший код», ИИ проигнорирует это. Чтобы навык работал, он должен содержать:
Scope (Область) – когда именно активировать этот навык? (Например: «при создании нового эндпоинта»)
Context & Inputs – какие данные агенту нужно собрать перед началом работы?
Process (Алгоритм) – пошаговый план (Chain of Thought)
Output Format – структура ответа (Markdown-шаблоны, JSON-схемы)
Quality Bar (Чек-лист) – критерии самопроверки модели
Anti-patterns – чего категорически нельзя делать
Чтобы не писать “отдельную инструкцию для Cursor и отдельную для Claude Code, Warp”, делаем единую структуру, а инструменты просто читают её.
Рекомендуемая структура:
.ai/
AGENTS.md # глобальные правила проекта (always-on)
router.md # маршрутизация: какой skill выбирать
skills/
prd_mvp_nocode.md
code_review.md
webapp_testing.md
research.md
subagents/ # опционально: роли для больших задач
planner.md
reviewer.md
AGENTS.md [3] – это “правила” проекта:
стиль работы (минимальные изменения, не выдумывать),
политика уточняющих вопросов,
формат ответа по умолчанию,
безопасность и запреты.
skills/* – конкретные плейбуки (то что мы смотрим):
PRD,
ревью кода,
тестирование,
ресёрч,
миграции и т.д.
router.md [4] – логика [5] выбора:
“если задача про тесты → используй webapp_testing.md”
Может уже встречали формат вроде:
---
name: webapp-testing
description: Toolkit for interacting with and testing local web applications using Playwright.
---
Почему это работает:
name/description – триггеры для активации
дальше идёт “как думать” и “что вернуть” (process + output contract)
Но чтобы skill реально давал результат каждый раз, добавь Output requirements:
всегда выдавай runnable скрипт
обязательно networkidle
обязательно browser.close()
добавь 1-2 команды “как запустить”
И всё – у тебя “сотрудник”, который стабильно пишет автотесты
Вот “идеальный каркас”, который можно копировать:
---
name: <skill-name>
description: <one-line>
triggers: [<keywords>]
---
# Purpose
<what this skill is for>
# When to use
<exact situations>
# Inputs needed
- ...
- ...
# Procedure
1) ...
2) ...
3) ...
# Output format
- Section 1
- Section 2
- ...
# Quality bar (self-check)
- [ ] ...
- [ ] ...
# Anti-patterns
- ❌ ...
- ❌ ...
# Examples
Input: ...
Output: ...
Это важный инженерный нюанс, здесь как раз можно применять “роутеры”, без них даже идеальные skills будут работать нестабильно, потому что агент не всегда догадается сам.
Простой и рабочий router.md [4]:
Определи тип задачи: product / engineering / testing / research / writing
Выбери соответствующий файл в .ai/skills/
Следуй ему строго
В конце self-check по Quality Bar
Пример добавления в AGENTS.md:
## Mandatory startup
Before starting any task:
1) Read `.ai/router.md`
2) Follow it to select exactly one skill from `.ai/skills/`
3) Follow the selected skill's Output format and Quality bar
Пример использование router.md:
# Router: Skill Selection & Execution Protocol
## Goal
Route each user request to exactly ONE most relevant skill in `.ai/skills/` and produce the required artifact consistently.
## Step 0 — Task classification (mandatory)
Classify the request into ONE primary category:
- **product**: PRD, requirements, MVP scope, user stories, acceptance criteria, roadmap
- **engineering**: implementation, refactoring, debugging, architecture, PR changes
- **testing**: e2e/ui tests, Playwright, test plan, QA steps, screenshots/logs
- **research**: competitor analysis, tech landscape, tool comparison, citations
- **writing**: article drafts, posts, editing tone, structure, storytelling
If multiple categories apply, choose the one that best matches the **final deliverable**.
## Step 1 — Skill mapping (choose ONE)
Choose the best matching skill file (exactly one) using this priority order:
1) explicit user request (“use skill X”)
2) keyword match with skill `name/description/triggers`
3) closest deliverable match from the table below
### Skill table
| Category | Skill file | Use when |
|---|---|---|
| product | `.ai/skills/prd_mvp_nocode.md` | PRD/MVP, no-code/vibe constraints |
| product | `.ai/skills/jira_sprint_ac.md` | Sprint tasks + Acceptance Criteria + DoD |
| engineering | `.ai/skills/code_review.md` | Review PR / risks / architecture / tests |
| testing | `.ai/skills/webapp_testing.md` | Local webapp testing with Playwright |
| research | `.ai/skills/research_competitors.md` | Competitor research / tool landscape |
| writing | `.ai/skills/article_habr.md` | Habr/VC article structure and tone |
If no skill matches, proceed with `AGENTS.md` default rules, but **still follow Output Contract** below.
## Step 2 — Execution rules (mandatory)
After selecting the skill:
- Read the chosen skill file fully.
- Follow its **Process** section step-by-step internally.
- Produce output strictly following its **Output format**.
- Apply the skill’s **Anti-patterns** as hard constraints.
## Output Contract (default)
Unless the selected skill overrides this, format every answer as:
1) **Plan** (2–6 bullets)
2) **Deliverable** (the artifact the user asked for)
3) **Self-check** (3–7 checklist items)
If the user explicitly asks for “just the final result”, omit the Plan and keep only Deliverable + Self-check.
## Safety / Quality gates (always-on)
- Do not invent files/APIs/metrics. If uncertain, state uncertainty and propose verification.
- Prefer minimal changes (smallest viable diff) when editing code.
- Avoid long explanations; be direct and artifact-first.
Суть в том что, вы задаёте протокол мышления [6]. Это сильнее, чем любой “будь умным”
Для командной работы и синхронизации с ИИ-инструментами лучше всего подходит папка в корне вашего репозитория:
Создаем директорию: .ai/skills/ (здесь будут лежать узкоспециализированные файлы).
Главный файл: .cursorrules (например для Cursor)
Если не хочется писать инструкции с нуля, можно воспользоваться готовыми шаблонами (aitmpl.com) [7]. Например, для тестирования веб-приложений (Webapp Testing) уже есть проверенный «плейбук»
Установить его в проект можно одной командой в терминале:
npx claude-code-templates@latest --skill=development/webapp-testing --yes
Если вы нашли крутой навык на aitmpl.com [8], вам не обязательно использовать CLI
Зайдите в раздел нужного скилла (например, Webapp Testing [9]).
Скопируйте Markdown-код инструкции.
Создайте файл .ai/skills/webapp-testing.md [10] и вставьте код туда.
Синхронизация команды: если ты работаешь в команде, вы пушите папку .ai/ в Git. Теперь у всей команды Claude и Cursor работают одинаково. Это «прошивка» для проекта.
Независимость от инструментов: завтра выйдет новый «убийца Курсора». Тебе не нужно ничего переучивать — ты просто скажешь новому ИИ: «Твои инструкции лежат в той папке».
Скорость работы: ты пишешь “используй skill X”, а не полотно инструкций или промптов
Автор: akzhankalimatov
Источник [11]
Сайт-источник BrainTools: https://www.braintools.ru
Путь до страницы источника: https://www.braintools.ru/article/25970
URLs in this post:
[1] поведение: http://www.braintools.ru/article/9372
[2] Image: https://sourcecraft.dev/
[3] AGENTS.md: http://AGENTS.md
[4] router.md: http://router.md
[5] логика: http://www.braintools.ru/article/7640
[6] мышления: http://www.braintools.ru/thinking
[7] готовыми шаблонами (aitmpl.com): https://www.aitmpl.com/skills
[8] aitmpl.com: http://aitmpl.com
[9] Webapp Testing: https://www.aitmpl.com/component/skill/webapp-testing#overview
[10] webapp-testing.md: http://webapp-testing.md
[11] Источник: https://habr.com/ru/articles/1001830/?utm_source=habrahabr&utm_medium=rss&utm_campaign=1001830
Нажмите здесь для печати.