# Карта ролей Montana **Версия:** v1.0.0 **Аудитория:** ИИ-агент. Помогает выбрать правильную роль для задачи. --- ## Дерево решений ``` Какая у тебя задача? │ ├── Изменить спецификацию протокола (Montana v35.23.0.md)? │ ├── Дизайн нового механизма / расширение → 01-АРХИТЕКТОР-СПЕКИ.md │ └── Найти проблемы в существующем дизайне → 02-КРИТИК-СПЕКИ.md │ ├── Изменить Rust код (Код/crates/)? │ ├── Реализация / новый крейт / новая фича → 03-АРХИТЕКТОР-КОДА.md │ └── Code review / security audit → 04-КРИТИК-КОДА.md │ ├── Реализовать Montana на другом языке (Go/TS/Swift)? │ └── Green-field implementation → 05-РЕАЛИЗАТОР-ПОРТА.md │ ├── Внешний security audit perspective (NCC Group / ToB / Cure53)? │ └── External auditor mindset → 06-АУДИТОР-ВНЕШНИЙ.md │ └── Координация нескольких агентов? └── КООРДИНАТОР.md (метароль) ``` --- ## Цепочка работ (стандартный workflow) ### Изменение спеки ``` 01-АРХИТЕКТОР-СПЕКИ изменяет спеку ↓ 02-КРИТИК-СПЕКИ ищет проблемы (≥3 prowls: cumulative, regression, premise) ↓ 01-АРХИТЕКТОР-СПЕКИ закрывает findings ↓ bump версии (v35.X.0 → v35.Y.0) ↓ переименование файла (Montana v35.X.0.md → Montana v35.Y.0.md) ↓ git commit (формат: "Протокол: spec bump v35.X.0 → v35.Y.0 — описание") ↓ 03-АРХИТЕКТОР-КОДА реализует (если breaking) ↓ 04-КРИТИК-КОДА ревьюит ↓ git commit + push ``` ### Изменение кода (без спеки) ``` 03-АРХИТЕКТОР-КОДА изменяет крейт ↓ cargo test / clippy / fmt — local ↓ 04-КРИТИК-КОДА ревьюит ↓ 03-АРХИТЕКТОР-КОДА fixes ↓ git commit (формат: ": описание") ↓ post-commit test block (markdown ссылки + cargo test + git log) ↓ push ``` ### Green-field implementation на новом языке ``` 05-РЕАЛИЗАТОР-ПОРТА читает спеку + KAT vectors из mt-conformance ↓ реализует byte-exact на target языке ↓ запускает все KAT vectors против своей реализации ↓ если хоть один KAT fails — STOP, обращение к 02-КРИТИК-СПЕКИ для уточнения ↓ external test против Rust mt-conformance (cross-implementation) ↓ PR в новый repo (например, montana-go) ``` ### External audit ``` 06-АУДИТОР-ВНЕШНИЙ читает спеку + audit-checklist + код ↓ формализует findings в формате audit firm ↓ готовит scope для NCC Group / ToB / Cure53 ↓ докладывает координатору / автору ``` --- ## Когда какую роль НЕ использовать - **01-АРХИТЕКТОР-СПЕКИ** — НЕ для code changes (используй 03) - **02-КРИТИК-СПЕКИ** — НЕ для code review (используй 04) - **03-АРХИТЕКТОР-КОДА** — НЕ меняет спеку (только реализует) - **04-КРИТИК-КОДА** — НЕ для дизайн-вопросов (это к критику спеки) - **05-РЕАЛИЗАТОР-ПОРТА** — НЕ для модификаций Rust кода (используй 03) - **06-АУДИТОР-ВНЕШНИЙ** — НЕ для internal review (используй 02 + 04) --- ## Параллельная работа Несколько агентов могут работать параллельно если: - ✅ они в разных файлах (например, 01 правит спеку, 03 правит крейт mt-net независимо) - ❌ они в одном файле (race condition по тексту — координация обязательна) - ❌ один агент редактирует, второй ревьюит — критик ждёт завершения архитектора См. `КООРДИНАТОР.md` для подробного протокола взаимодействия. --- **Следующий шаг:** загрузи нужную роль (`01-..` — `06-..`) как системный промпт.