Блок 6 Презентация

Пользовательские навыки — Плейбук вашей команды — Презентация

Продолжительность: ~8 минут Цель: Студенты понимают, что такое навыки (skills), как они устроены и почему они меняют правила игры для единообразия в команде.


Слайд 1: Shell-алиасы для AI

Вы знаете shell-алиасы, верно?

alias k="kubectl"
alias gs="git status"
alias deploy="./scripts/deploy.sh --env staging --notify slack"

Одна короткая команда, которая раскрывается в нечто более длинное и сложное. Навыки (skills) — та же идея, но для AI-рабочих процессов.

/review-k8s     →  Прочитать все K8s-манифесты, проверить на соответствие
                    лучшим практикам, сообщить о проблемах с уровнем
                    серьёзности и предложениями по исправлению

/check-docker   →  Провести аудит Dockerfile на безопасность, производительность
                    и оптимизацию сборки

/explain app.ts →  Прочитать файл, объяснить что он делает простым языком,
                    отметить неочевидные паттерны

В чём разница? Shell-алиасы выполняют команды. Навыки выполняют мышление. Они дают Claude структурированный набор инструкций, опциональные ограничения и позволяют ему применять свои рассуждения к вашей конкретной кодовой базе.


Слайд 2: Анатомия навыка

Каждый навык живёт в .claude/skills/<skill-name>/SKILL.md. Вот структура:

.claude/
  skills/
    review-k8s/
      SKILL.md          ← Это определение навыка
    check-docker/
      SKILL.md
    explain/
      SKILL.md

А вот как выглядит SKILL.md внутри:

---
name: review-k8s
description: Reviews Kubernetes manifests for best practices and security issues
allowed-tools:
  - Read
  - Glob
  - Grep
---

You are a Kubernetes security and best-practices reviewer.

Read all YAML files in the k8s/ directory. For each manifest, check:
1. Resource limits are set (cpu and memory)
2. Security context is configured (non-root, read-only root filesystem)
3. Health checks are present (liveness, readiness)
...

Output a report with: file name, issue, severity, suggested fix.

Три части:

  1. Фронтматтер — имя, описание и опциональные ограничения инструментов
  2. Инструкции — что Claude должен делать при вызове навыка
  3. Всё. Без этапа сборки, без компиляции, без регистрации. Положите файл — и он работает.

Слайд 3: Переменная $ARGUMENTS

Некоторым навыкам нужен ввод. “Объясни этот файл.” “Проверь этот PR.” “Сгенерируй тесты для этого компонента.”

Для этого и существует $ARGUMENTS. Это заполнитель в инструкциях навыка, который заменяется тем, что пользователь вводит после слэш-команды.

---
name: explain
description: Explains any file in plain English
---

Read the file at $ARGUMENTS.

Explain what this file does in plain, jargon-free English. Structure:
1. **Purpose**: One sentence — what problem does this file solve?
2. **How it works**: Walk through the logic step by step
3. **Key patterns**: Note any design patterns or non-obvious techniques
4. **Dependencies**: What does this file rely on?

Использование:

/explain src/app/api/models/route.ts
/explain k8s/deployment.yaml
/explain Dockerfile

$ARGUMENTS заменяется тем, что следует после команды. Просто, гибко, мощно.

Совет: Можно ссылаться на $ARGUMENTS несколько раз в одном навыке. Например, навык, который читает файл И его тесты: “Read $ARGUMENTS and look for a corresponding test file.”


Слайд 4: Встроенные навыки

Claude Code поставляется с некоторыми навыками из коробки. Тот, который мы используем сегодня:

/simplify — Проверяет ваш изменённый код и ищет:

  • Возможности переиспользовать существующие утилиты вместо повторной реализации
  • Улучшения качества кода
  • Оптимизации производительности
  • Затем автоматически исправляет найденное

Идеально подходит для запуска после реализации большой фичи (как наша тёмная тема из Блока 4). Вы пишете код, чтобы он работал, затем /simplify делает его чистым.

Другие полезные встроенные навыки:

  • /batch — Вносит одинаковое изменение во множество файлов (переименовать переменную везде, обновить путь импорта, изменить паттерн)
  • /debug — Активирует режим отладки с расширенным диагностическим выводом

Слайд 5: allowed-tools — Предохранитель

Вот где навыки становятся интересными с точки зрения безопасности.

По умолчанию навык может использовать любой инструмент, доступный Claude — читать файлы, записывать файлы, выполнять команды, всё. Но иногда нужно, чтобы навык был только для чтения. Навык ревью не должен ничего модифицировать. Навык объяснения не должен создавать файлы.

Для этого и существует allowed-tools:

---
name: review-k8s
allowed-tools:
  - Read
  - Glob
  - Grep
---

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

  • Навыков ревью — смотри, но не трогай
  • Навыков аудита — сообщай о проблемах, но пусть человек решает, что исправлять
  • Навыков объяснения — читай и объясняй, ничего больше

Сравните с навыком без ограничений:

---
name: fix-k8s
# No allowed-tools = unrestricted
---

Этот навык может вносить изменения, выполнять kubectl, модифицировать файлы — полный набор инструментов. Используйте для навыков, которым нужно делать что-то, а не просто сообщать.

Правило: Если назначение навыка — рассказать вам что-то, ограничьте его инструменты. Если его назначение — сделать что-то, оставьте без ограничений.


Слайд 6: Проектные vs. пользовательские навыки

Как и память, навыки бывают двух видов:

Проектные навыки (.claude/skills/ внутри репозитория):

  • Закоммичены в git, доступны всей команде
  • Любой, кто клонирует репозиторий, получает навыки
  • Отлично подходят для командных плейбуков и проектно-специфичных рабочих процессов

Пользовательские навыки (~/.claude/skills/):

  • Персональные навыки, которые следуют за вами по проектам
  • Ваши собственные инструменты продуктивности
  • Вещи вроде “резюмируй этот PR” или “напиши коммит-сообщение в моём стиле”
~/.claude/
  skills/
    my-commit/SKILL.md    ← Персональный, везде
    daily-summary/SKILL.md

ai-coderrank/
  .claude/
    skills/
      review-k8s/SKILL.md  ← Командный, только этот проект
      check-docker/SKILL.md

Когда вы набираете / в Claude Code, вы видите и проектные, и персональные навыки в автодополнении.


Ключевые выводы

Концепция Что это Когда использовать
SKILL.md Файл определения навыка Всегда — это единственный обязательный файл
$ARGUMENTS Заполнитель для ввода пользователя Когда навыку нужна цель (файл, путь, имя)
allowed-tools Ограничение доступных инструментов Навыки ревью/аудита, которые не должны ничего менять
Проектные навыки .claude/skills/ в репозитории Командные плейбуки, общие рабочие процессы
Пользовательские навыки ~/.claude/skills/ Персональные инструменты продуктивности
/simplify Встроенный навык очистки После реализации фичи

Переход: Время строить. Вы сейчас создадите три пользовательских навыка, протестируете их на реальном инфраструктурном коде и запустите /simplify на тёмной теме из Блока 4. Поехали.


Готовы проверить себя?

Пройти квиз →