Refs #2 Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MzkPQWjfA7RpqYWkjnqJwt
43 lines
4.3 KiB
Markdown
43 lines
4.3 KiB
Markdown
---
|
||
name: role
|
||
description: Переключить сессию в роль dev | admin | analyst | qa — загрузить общий и проектный файлы роли, её память и выжимку briefing. Вызывать по подсказке хука «Роль сессии», по правилу выбора роли из глобального CLAUDE.md или по просьбе владельца.
|
||
argument-hint: dev|admin|analyst|qa
|
||
user-invocable: true
|
||
---
|
||
|
||
# /role — роль сессии
|
||
|
||
Аргумент: `$0` — имя роли. Workspace — текущий каталог сессии (cwd), не git-корень.
|
||
|
||
## Без аргумента
|
||
Если `$0` пуст: напечатать текущую роль (та, чей файл читался последним в этой сессии; если ни одного — «роль не выбрана»)
|
||
и список доступных: для каждой из `dev admin analyst qa` — есть ли `~/.claude/roles/<r>.md` и `./.claude/roles/<r>.md`.
|
||
Остановиться.
|
||
|
||
## С аргументом
|
||
Если `$0` не из `dev admin analyst qa` — одной строкой сказать, какие роли есть, и остановиться.
|
||
|
||
1. Прочитать `~/.claude/roles/$0.md` (общий слой). Прочитать `./.claude/roles/$0.md` (проектный слой); если файла нет —
|
||
сказать одной строкой «проектного файла роли $0 нет, работаю по общему» и продолжить. При конфликте правил побеждает проектный слой.
|
||
Новая роль заменяет предыдущую целиком: правила прежней роли больше не действуют.
|
||
2. Открыть индекс auto-memory (путь указан в системном промпте, раздел Memory, файл `MEMORY.md`). Найти раздел роли
|
||
(`## Разработка` для dev, `## Администрирование` для admin, `## Аналитика` для analyst, `## QA` для qa) и прочитать файлы,
|
||
перечисленные в нём. Раздел `## Общее` читается всегда. Если раздела нет — сказать одной строкой и продолжить.
|
||
3. Из раздела «Читать на старте» обоих слоёв собрать строки. Строки с префиксом `brief:` — список для агента `briefing`;
|
||
остальные — прочитать в контекст сейчас (путь → Read, команда → Bash, только чтение).
|
||
Если строк `brief:` больше нуля — запустить агента в фоне:
|
||
`Agent`, `subagent_type: briefing`, `run_in_background: true`, промпт: «Роль: $0. Workspace: <cwd>. Источники:» и список
|
||
строк `brief:` без префикса, по одной на строку. Не ждать результата.
|
||
4. Ответить ровно пятью строками:
|
||
- Роль: `$0` — <описание из первой строки файла роли>.
|
||
- Процесс: <одна строка из раздела «Процесс» — что действует по умолчанию>.
|
||
- Прочитано: <перечень файлов обоих слоёв и файлов памяти, через запятую>.
|
||
- Не делать: <раздел «Не делать» одной строкой>.
|
||
- Ждёт решения владельца: <из памяти роли; если нет — «ничего»>.
|
||
Когда придёт выжимка `briefing` — добавить её одним сообщением как есть, без пересказа и без предложений действий.
|
||
|
||
## Не делать
|
||
- Не читать файлы других ролей и их разделы памяти.
|
||
- Не выполнять записывающие команды из «Читать на старте».
|
||
- Не спрашивать подтверждения роли, если она пришла из подсказки хука или аргумента.
|