Вы наверняка ловили себя на том, что раз за разом копипастите в чат с ИИ одни и те же инструкции: «Пиши на TypeScript», «Не используй сторонние библиотеки», «Добавляй тесты». В программировании мы по сути называем это нарушением принципа DRY (Don't Repeat Yourself). Но почему мы продолжаем это делать при общении с нейросетями?
В этой статье мы разберем концепцию Skills (Скиллов) - переиспользуемых «навыков» для ИИ-ассистентов, которые живут прямо в вашем репозитории и делают работу агентов предсказуемой, чистой и профессиональной.
Если коротко Skill - это персистентный (постоянный) плейбук, который учит ИИ выполнять конкретный тип задач по вашим стандартам.
Обычный промпт - это просто одноразовая просьба
Skill - это системный компонент. Он версионируется в Git, лежит в папке проекта и автоматически подтягивается агентом, когда возникает подходящая задача
Системный промпт (например, в настройках Claude, Cursor) это глобальная роль (условно «Ты - программист»)
Skill - это узкая специализация (Например: «Ты эксперт по написанию PRD для No-code MVP»)
На практике проблема не в том, что модель “плохо отвечает”. Проблема в том, что мы не фиксируем стандарты работы
В обычной разработке:
код-стайл фиксируется линтерами,
архитектура - правилами репозитория,
процессы - PR templates, DoD, CI
С нейросетями то же самое, только вместо “компилятора” у нас - “агент”, который каждый раз пытается угадать, что вы хотели.
И важный момент:
Хороший навык не должен быть «водой». Если вы напишете «пиши хороший код», ИИ проигнорирует это. Чтобы навык работал, он должен содержать:
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 - это “правила” проекта:
стиль работы (минимальные изменения, не выдумывать),
политика уточняющих вопросов,
формат ответа по умолчанию,
безопасность и запреты.
skills/* - конкретные плейбуки (то что мы смотрим):
PRD,
ревью кода,
тестирование,
ресёрч,
миграции и т.д.
router.md - логика выбора:
“если задача про тесты → используй 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:
Определи тип задачи: 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.
Суть в том что, вы задаёте протокол мышления. Это сильнее, чем любой “будь умным”
Для командной работы и синхронизации с ИИ-инструментами лучше всего подходит папка в корне вашего репозитория:
Создаем директорию: .ai/skills/ (здесь будут лежать узкоспециализированные файлы).
Главный файл: .cursorrules (например для Cursor)
Если не хочется писать инструкции с нуля, можно воспользоваться готовыми шаблонами (aitmpl.com). Например, для тестирования веб-приложений (Webapp Testing) уже есть проверенный «плейбук»
Установить его в проект можно одной командой в терминале:
npx claude-code-templates@latest --skill=development/webapp-testing --yes
Если вы нашли крутой навык на aitmpl.com, вам не обязательно использовать CLI
Зайдите в раздел нужного скилла (например, Webapp Testing).
Скопируйте Markdown-код инструкции.
Создайте файл .ai/skills/webapp-testing.md и вставьте код туда.
Синхронизация команды: если ты работаешь в команде, вы пушите папку .ai/ в Git. Теперь у всей команды Claude и Cursor работают одинаково. Это «прошивка» для проекта.
Независимость от инструментов: завтра выйдет новый «убийца Курсора». Тебе не нужно ничего переучивать — ты просто скажешь новому ИИ: «Твои инструкции лежат в той папке».
Скорость работы: ты пишешь “используй skill X”, а не полотно инструкций или промптов
Источник
![[Перевод] AI и Data engineering: Что реально происходит с профессией?](https://mexc-rainbown-activityimages.s3.ap-northeast-1.amazonaws.com/banner/F20250611171322267jYDo0LEq24FJKD.png)

