feat(pravila): §17.7 coverage announcement (phase 3 deferred #1)
Closes Phase 3 deferred follow-up #1 from project_brain_overhaul.md. Адресует «дыру»: enforcement (§17.4) ловит факт нарушения, но без явной coverage-пометки в ответе невозможно отличить осознанный выбор канала от молчаливого среза угла. - §17.7 (new): «coverage: <channel>:<id>» обязательна на non-conversation задачах. 6 каналов: skill / node / chain / hook / agent / direct. Observability layer (не enforcement) — фиксирует НАМЕРЕНИЕ. - Граница с routing-тегом §16.7: routing-тег только для user_directed_method, coverage-пометка — всегда для non-conversation. - C5 controller surface отсутствующих пометок в STATUS.md. - Cross-ref: registry/nodes.yaml, routing-off-phase.md, парсер schema v4.4+ (deferred #2). Header bump v1.41 → v1.42 + §10 changelog row v1.42. Записи v1.34-v1.41 в §10 не дотянуты (известный дрейф предыдущих сессий) — шапка «Что изменилось в v1.NN» авторитетна для этого периода. Нормативный синк CLAUDE.md/Tooling/PSR_v1 — следующим шагом через normative-sync. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1,10 +1,12 @@
|
||||
# Правила работы Claude в проекте «Лидерра»
|
||||
|
||||
**Версия:** v1.41 (25.05.2026)
|
||||
**Версия:** v1.42 (25.05.2026)
|
||||
**Дата:** 25.05.2026
|
||||
**Назначение:** настройки проекта (Project instructions) — Claude читает этот файл в каждом чате и следует правилам ниже.
|
||||
**Статус документа:** ✅ утверждён. Содержимое скопировано в поле "Project instructions" Claude.ai. Файл хранится в архиве как служебный документ.
|
||||
|
||||
**Что изменилось в v1.42 относительно v1.41:** LLM-first router overhaul Phase 3 deferred follow-up #1 — **§17.7 «Coverage announcement» добавлен**. Правило: в каждом ответе на non-conversation задачу Claude обязан показать coverage-пометку в формате `coverage: <channel>:<id>` рядом с первым tool-вызовом или в начале текста. 6 каналов: `skill:` / `node:` / `chain:` / `hook:` / `agent:` / `direct:<exempt-класс>`. Observability layer (не enforcement) — фиксирует **намерение** выбора канала, дополняет машинный гейт `tools/router-tool-gate.mjs` который ловит **факт**. Отсутствие пометки на non-conversation эпизоде — сигнал для C5 контролёра в STATUS.md, не блокирует коммит. Граница с routing-тегом §16.7: routing-тег только для `user_directed_method`, coverage-пометка — всегда для non-conversation. Cross-ref: реестр узлов `docs/registry/nodes.yaml`, цепочки `docs/routing-off-phase.md`, парсер `tools/observer-transcript-parser.mjs` (schema v4.4+ — реализация следующим коммитом). Архитектурных изменений §§1–16: 0. Связано: §17.1–17.6 (база §17 из v1.41), §16.4 (missed-activation = симметричный отчёт о пропусках §17), spec `docs/superpowers/specs/2026-05-24-llm-first-router-overhaul-design.md`, memory `project_brain_overhaul.md`.
|
||||
|
||||
**Что изменилось в v1.41 относительно v1.40:** LLM-first router overhaul Phase 1 Tasks 4+5. **§12 «Superpowers hard rule» снят** (Task 4, commit `bca63fc6`) — полный текст в `docs/archive/llm-bootstrap-2026-05/pravila-12/Pravila_section_12.md`; §0 priority chain пересобран без §12 + добавлен «NB про §12» pointer на архив. **§17 «Universal skill-coverage rule» добавлен** (Task 5, this commit) — classifier-driven default-deny на non-conversation задачах, 5 exempt-классов §17.2, continuation НЕ exempt (D1, §17.3), enforcement через `tools/router-tool-gate.mjs` mode-flag `off/warn-only/enforce`. **§16.4 cross-refs мигрированы** (Task 4): tools/observer-classification-map.json + tools/.node-dormancy.json → docs/registry/nodes.yaml + buildClassificationMap / buildDormancyMap. **§16.5 hard-rule list:** §12 → §17. Архитектурное обоснование — **ADR-016** (new). Связано: spec `docs/superpowers/specs/2026-05-24-llm-first-router-overhaul-design.md` v2.3, plan `docs/superpowers/plans/2026-05-25-llm-first-router-overhaul.md` v1.2.
|
||||
|
||||
**Что изменилось в v1.40 относительно v1.39:** Делегирование проектным AI-агентам — §2.4 (новая подсекция) описывает обязанность контроллера передавать класс задач 4 узко-специализированным агентам в `.claude/agents/`: `normative-sync` (#84, синк 4 нормативных файлов после крупной задачи), `prod-deploy-validator` (#85, 8 SSH pre-flight перед выкатом на liderra.ru), плюс прежние `pest-parallel-debugger` и `rls-reviewer`. Project-агенты регистрируются в `docs/registry/nodes.yaml` (subcategory `project-agent`) для missed-activation детектора, но **не входят в Tooling канон счётчиков** #1-#83 (footer-числа не двигаются). Архитектурных изменений §§1, §3–§16: 0. Связано: CLAUDE.md v2.28+ (§3.9), spec `docs/superpowers/specs/2026-05-24-controller-offload-agents-design.md`, agent files `.claude/agents/{normative-sync,prod-deploy-validator}.md`.
|
||||
@@ -643,6 +645,7 @@ P0 = блокер старта спринта или регуляторного
|
||||
| **v1.31** | **19.05.2026** | Brain governance: +§16 «Регламент «мозга»» (router-only архитектура §16.1 + observer Stop-event §16.2 + 4 контролёра C1-C4 §16.3 + поведенческое правило «не использован ≠ проблема» §16.4 + не override-floor §9 §16.5 + cross-refs §16.6). Уровень рекомендации §13 — НЕ explicit hard-rule вне §9. Тремя hard-rules вне §9 остаются §12 / §14 (dormant) / §15. ADR-011 enforcement через `adr-judge` lefthook job (секция `## Enforcement` обязательна). Связано: ADR-011 `docs/adr/ADR-011-brain-governance.md`, spec `docs/superpowers/specs/2026-05-19-brain-governance-design.md`, plan `docs/superpowers/plans/2026-05-19-brain-governance.md`, procedure `docs/router-procedure.md`, memory `feedback_brain_unused_tools_not_problem.md` + `project_brain_governance_design.md`. Архитектурных изменений в §§1–15: 0. |
|
||||
| **v1.32** | **19.05.2026** | Observer factor-analysis extension (ADR-011 amend): §16.2 +абзац «Схема эпизода v2» (`schema_version: 2`, `decision_provenance`, `environment`, `task_size`, `task_ref`, `prompt_signal`; `outcome` `unknown` при записи; виды событий +`hook_fired`/`interrupt`/`retry`/`time_burn`/`parse_gap`); §16.3 4→5 контролёров (+C5 observer-coverage-checker, warn-only); §16.7 (новое) routing-тег-дисциплина — Stop-хук `decision: block` при навязанном методе без тега, `stop_hook_active` guard; §16.8 (новое) самодисциплина наблюдателя (`observer_error` маркер, `parse_gap` событие, C5). Spec `docs/superpowers/specs/2026-05-19-observer-factor-analysis-design.md`, plan `docs/superpowers/plans/2026-05-19-observer-factor-analysis.md`. Связано: PSR_v1 v3.17, CLAUDE.md v2.19. Архитектурных изменений в §§1–15: 0. |
|
||||
| **v1.33** | **19.05.2026** | Observer factor-analysis phase 1.1 (ADR-011 amend): §16.2 — `decision_provenance.kind` расширен до 3 значений (`autonomous` \| `user_directed_method` \| `user_chose_from_options`); 3-й kind — collaborative-choice case (заказчик выбирает один из вариантов, предложенных Claude в предыдущем ходе). §16.7 +абзац «Граница `user_chose_from_options`»: routing-gate НЕ блокирует этот kind — выбор из choice-space, сформулированного самим Claude, не навязанный извне метод; routing-тег не обязателен (детектор `tools/observer-choice-detector.mjs` детерминированный). Spec §11 `docs/superpowers/specs/2026-05-19-observer-factor-analysis-design.md` v1.1, plan `docs/superpowers/plans/2026-05-19-observer-factor-analysis-phase-1-1.md`. Связано: CLAUDE.md v2.20. Архитектурных изменений в §§1–15: 0. |
|
||||
| **v1.42** | **25.05.2026** | LLM-first router overhaul Phase 3 deferred follow-up #1: **+§17.7 «Coverage announcement»** — правило аннотировать каждую non-conversation задачу coverage-пометкой `coverage: <channel>:<id>` (6 каналов: skill/node/chain/hook/agent/direct). Observability layer (не enforcement) — фиксирует **намерение** выбора канала, дополняет машинный гейт §17.4 который ловит **факт**. Граница с routing-тегом §16.7: routing-тег только для `user_directed_method`, coverage-пометка — всегда для non-conversation. C5 controller фиксирует отсутствие пометки в STATUS.md, не блокирует коммит. Cross-ref: реестр `docs/registry/nodes.yaml`, цепочки `docs/routing-off-phase.md`, парсер `tools/observer-transcript-parser.mjs` (schema v4.4+ — реализация следующим коммитом deferred #2). Связано: spec `docs/superpowers/specs/2026-05-24-llm-first-router-overhaul-design.md`, memory `project_brain_overhaul.md`. NB: записи таблицы v1.34–v1.41 не дотянуты предыдущими сессиями (известный дрейф); шапка `«Что изменилось в v1.NN»` авторитетна для этого периода. Архитектурных изменений §§1–16: 0. |
|
||||
|
||||
---
|
||||
|
||||
@@ -1043,6 +1046,31 @@ Default на момент Phase 2 bootstrap — `warn-only`; переход на
|
||||
|
||||
Missed-activation в §16.4 — это симметричный отчёт о пропусках §17: эпизоды, где non-conversation задача исполнена `direct` без exempt-маркера. Surface в STATUS.md C5 + `/brain-retro`, не блокирует коммит — это сигнал для разбора, не enforcement.
|
||||
|
||||
### 17.7. Coverage announcement (пометка в ответе)
|
||||
|
||||
В каждом ответе на non-conversation задачу Claude **обязан** показать coverage-пометку — одну строку рядом с первым tool-вызовом или в начале текстового блока, формат:
|
||||
|
||||
```text
|
||||
coverage: <channel>:<id> [reason="..." если direct]
|
||||
```
|
||||
|
||||
где `<channel>:<id>` — один из:
|
||||
|
||||
- `skill:<имя>` — задача покрывается скилом (`skill:superpowers:test-driven-development`).
|
||||
- `node:<NN>` — задача покрывается одиночным узлом реестра `docs/registry/nodes.yaml` (`node:62 billing-audit`).
|
||||
- `chain:<L#>` — задача покрывается канонической цепочкой `docs/routing-off-phase.md` (`chain:L15 security-go-live`).
|
||||
- `hook:<имя>` — задача автоматизирована хуком и не требует ручной работы Claude (`hook:lefthook job 10 deptrac`).
|
||||
- `agent:<имя>` — задача делегирована project-агенту из `.claude/agents/` (`agent:normative-sync`).
|
||||
- `direct:<exempt-класс>` — exempt-исполнение из §17.2 (`direct:micro`, `direct:manual_override`, `direct:escape_hatch reason="..."`).
|
||||
|
||||
**Назначение.** Делает выбор канала явным и proverable. Без пометки ревизор в `/brain-retro` не отличает осознанный выбор от молчаливого среза угла, а контролёр C5 в `STATUS.md` не может посчитать coverage-rate. Дополняет §17.1-17.6: enforcement (`router-tool-gate.mjs`) ловит факт нарушения, coverage-пометка фиксирует **намерение**.
|
||||
|
||||
**Граница с routing-тегом §16.7.** Routing-тег (`<!-- routing: provenance=user_directed_method node=... counterfactual=... -->`) обязателен **только** когда метод навязан заказчиком (`user_directed_method`). Coverage-пометка — **всегда** для non-conversation, независимо от provenance. Если оба применимы — оба и пишутся (`coverage:` строка + `<!-- routing: ... -->` HTML-комментарий — параллельно, не дублируют друг друга).
|
||||
|
||||
**Статус.** Observability layer, не enforcement. Отсутствие пометки на non-conversation эпизоде — сигнал для C5 controller, surface в STATUS.md sectionом «missing coverage announcements», **не блокирует** коммит и не препятствует ходу. Hard-rule статус не получает (как §17 в целом — §17.5 не override-floor под §9).
|
||||
|
||||
**Cross-refs.** Реестр узлов `docs/registry/nodes.yaml` (источник `node:NN` идентификаторов). Каноническая таблица цепочек `docs/routing-off-phase.md` (источник `chain:L#`). Парсер `tools/observer-transcript-parser.mjs` извлекает coverage-строку в эпизод (schema v4.4+) — реализация по этому параграфу включает обновление парсера.
|
||||
|
||||
---
|
||||
|
||||
## Что сделано после утверждения
|
||||
|
||||
Reference in New Issue
Block a user