# KIN-DOCS-002: Аудит промптов агентов — Аналитический отчёт **Дата:** 2026-03-19 **Исполнитель:** tech_researcher **Статус:** Исследование завершено --- ## 1. Структурный аудит всех 25 промпт-файлов **Вывод: ВСЕ 25 файлов содержат все 5 обязательных секций.** | № | Файл | Working Mode | Focus On | Quality Checks | Return Format | Constraints | |---|------|:---:|:---:|:---:|:---:|:---:| | 1 | analyst.md | ✅ | ✅ | ✅ | ✅ | ✅ | | 2 | architect.md | ✅ | ✅ | ✅ | ✅ | ✅ | | 3 | backend_dev.md | ✅ | ✅ | ✅ | ✅ | ✅ | | 4 | backlog_audit.md | ✅ | ✅ | ✅ | ✅ | ✅ | | 5 | business_analyst.md | ✅ | ✅ | ✅ | ✅ | ✅ | | 6 | constitution.md | ✅ | ✅ | ✅ | ✅ | ✅ | | 7 | constitutional_validator.md | ✅ | ✅ | ✅ | ✅ | ✅ | | 8 | debugger.md | ✅ | ✅ | ✅ | ✅ | ✅ | | 9 | department_head.md | ✅ | ✅ | ✅ | ✅ | ✅ | | 10 | followup.md | ✅ | ✅ | ✅ | ✅ | ✅ | | 11 | frontend_dev.md | ✅ | ✅ | ✅ | ✅ | ✅ | | 12 | learner.md | ✅ | ✅ | ✅ | ✅ | ✅ | | 13 | legal_researcher.md | ✅ | ✅ | ✅ | ✅ | ✅ | | 14 | market_researcher.md | ✅ | ✅ | ✅ | ✅ | ✅ | | 15 | marketer.md | ✅ | ✅ | ✅ | ✅ | ✅ | | 16 | pm.md | ✅ | ✅ | ✅ | ✅ | ✅ | | 17 | reviewer.md | ✅ | ✅ | ✅ | ✅ | ✅ | | 18 | security.md | ✅ | ✅ | ✅ | ✅ | ✅ | | 19 | smoke_tester.md | ✅ | ✅ | ✅ | ✅ | ✅ | | 20 | spec.md | ✅ | ✅ | ✅ | ✅ | ✅ | | 21 | sysadmin.md | ✅ | ✅ | ✅ | ✅ | ✅ | | 22 | task_decomposer.md | ✅ | ✅ | ✅ | ✅ | ✅ | | 23 | tech_researcher.md | ✅ | ✅ | ✅ | ✅ | ✅ | | 24 | tester.md | ✅ | ✅ | ✅ | ✅ | ✅ | | 25 | ux_designer.md | ✅ | ✅ | ✅ | ✅ | ✅ | --- ## 2. Конфликт-анализ 9 файлов из EXCLUDED_FROM_STRUCTURE_CHECK | Файл | 5 секций | Тест(ы), ссылающиеся на файл | Тип проверки | Реальный конфликт | Рекомендация | |------|:---:|------|------|:---:|------| | analyst.md | ✅ | test_kin_128_regression.py (analyst injection, revise_count), test_kin_arch_023_regression.py (pending_steps), test_context_builder.py (context assembly) | Структурная (pipeline logic) + Output-контентная (root_problem) | ❌ НЕТ | YELLOW → убрать из exclusion | | backend_dev.md | ✅ | test_kin_128_regression.py (proof fields: what_was_done, how_verified, verification_result), test_context_builder.py (context assembly) | Output-контентная | ❌ НЕТ | YELLOW → убрать из exclusion | | constitutional_validator.md | ✅ | test_kin_docs_001_regression.py (gate=true, output_schema, route position), test_kin_091_regression.py (маршруты) | Структурная (yaml config + routes), НЕ .md структура | ❌ НЕТ | YELLOW → убрать из exclusion | | debugger.md | ✅ | test_KIN-117_regression.py (worktree logic), test_context_builder.py (context), test_kin_128_regression.py (proof: what_was_fixed, how_verified, verification_result) | Output-контентная | ❌ НЕТ | YELLOW → убрать из exclusion | | frontend_dev.md | ✅ | test_context_builder.py (decision selectors), test_kin_128_regression.py (proof field), test_kin_091_regression.py (маршруты) | Output-контентная | ❌ НЕТ | YELLOW → убрать из exclusion | | pm.md | ✅ | test_context_builder.py (context + specialists assembly), test_kin_091_regression.py (маршруты) | Output-контентная (context assembly) | ❌ НЕТ | YELLOW → убрать из exclusion | | reviewer.md | ✅ | test_context_builder.py (decision selectors), test_kin_100_regression.py (## Verdict, ## Details), test_kin_133_gate_cannot_close.py (gate logic: approved/changes_requested/revise) | Output-контентная | ❌ НЕТ | YELLOW → убрать из exclusion | | smoke_tester.md | ✅ | test_kin_128_regression.py (confirmed/cannot_confirm → pipeline status) | Output-контентная (status processing) | ❌ НЕТ | YELLOW → убрать из exclusion | | tester.md | ✅ | test_context_builder.py (minimal context), test_auto_mode.py (auto_complete logic), test_kin_100_regression.py (## Verdict, ## Details) | Output-контентная | ❌ НЕТ | YELLOW → убрать из exclusion | ### Ключевой вывод по конфликтам **По decision #922**: output-контентный тест (проверяет наличие конкретных слов/полей в тексте промпта) **не конфликтует** со структурным тестом (проверяет наличие 5 заголовков `##`). - Ни один из 9 excluded файлов не имеет **реального структурного конфликта** с тестом `TestAllPromptsContainStandardStructure` - Все тесты, ссылающиеся на excluded файлы, проверяют либо: (a) pipeline-логику в Python-коде, либо (b) содержимое поля `proof`/`verdict` в тексте промпта - Заголовки `## Verdict`, `## Details` (reviewer, tester) — это **дополнительные** секции поверх стандартных 5, не конфликтуют --- ## 3. Классификация GREEN / YELLOW / RED ### 🟢 GREEN (16 файлов) — уже в активной зоне проверки, всё ок architect.md, backlog_audit.md, business_analyst.md, constitution.md, department_head.md, followup.md, learner.md, legal_researcher.md, market_researcher.md, marketer.md, security.md, spec.md, sysadmin.md, task_decomposer.md, tech_researcher.md, ux_designer.md ### 🟡 YELLOW (9 файлов) — в exclusion без реального конфликта, нужно убрать analyst.md, backend_dev.md, constitutional_validator.md, debugger.md, frontend_dev.md, pm.md, reviewer.md, smoke_tester.md, tester.md ### 🔴 RED — нет ни одного файла с реальным конфликтом --- ## 4. Рекомендации для backend_head **Что делать:** Убрать все 9 файлов из `EXCLUDED_FROM_STRUCTURE_CHECK` в `tests/test_kin_docs_002_regression.py` **Что НЕ делать:** Промпт-файлы уже стандартизированы. Менять содержимое *.md файлов не нужно. **Конкретное изменение в коде:** ```python # tests/test_kin_docs_002_regression.py, строки 29-39 # БЫЛО: EXCLUDED_FROM_STRUCTURE_CHECK = [ "reviewer.md", "tester.md", "constitutional_validator.md", "pm.md", "backend_dev.md", "debugger.md", "frontend_dev.md", "analyst.md", "smoke_tester.md", ] # СТАЛО: EXCLUDED_FROM_STRUCTURE_CHECK = [] ``` **Эффект:** 9 ранее незащищённых файлов получат регрессионную защиту (decision #921). Тест `TestAllPromptsContainStandardStructure` начнёт покрывать все 25 файлов. **Риск:** НУЛЕВОЙ — все 9 файлов уже содержат все 5 секций. --- ## 5. Рекомендации для qa_head **Тесты для прогона после изменений:** 1. `pytest tests/test_kin_docs_002_regression.py -v` — основной структурный тест (должен пройти) 2. `pytest tests/test_kin_128_regression.py -v` — proof block + smoke_tester (не должен сломаться) 3. `pytest tests/test_context_builder.py -v` — context assembly (не должен сломаться) 4. `pytest tests/test_kin_100_regression.py -v` — reviewer/tester verdict (не должен сломаться) 5. `pytest tests/test_kin_docs_001_regression.py -v` — constitutional_validator в yaml (не должен сломаться) **На что обратить внимание:** - После удаления из exclusion, `_ACTIVE_PROMPT_NAMES` вырастет с 16 до 25 файлов - `TestAllPromptsContainStandardStructure` будет генерировать 25×5=125 параметризованных тестов вместо 16×5=80 - Тест `TestPromptCount` ожидает ровно 25 файлов — это инвариант, не трогать **Регрессионный риск:** Минимальный. Изменение в exclusion-списке — безопасная операция, все файлы уже соответствуют стандарту. --- ## 6. Итог | Метрика | Значение | |---------|---------| | Файлов проверено | 25 | | Файлов с полной структурой (5 секций) | **25 / 25 (100%)** | | Файлов в exclusion-списке | 9 | | Файлов с реальным конфликтом | **0** | | Файлов для удаления из exclusion | **9** | | Изменений в промпт-файлах | **0** | **Вся работа сосредоточена в одном файле:** `tests/test_kin_docs_002_regression.py`, строки 29-39.