---
name: Superpowers — hard rule §12 (Pravila v1.4)
description: 09.05.2026 заказчик ввёл единственное hard-правило в Pravila: skill из obra/superpowers v5.1.0 инвокируется ПЕРВЫМ для подходящих задач. §9 «Отступления» не применяется. Рационализация = нарушение уровня §5 ПДн.
type: feedback
originSessionId: 8636df02-dd86-4b5b-90f6-d93a3a6fc448
---
09.05.2026 заказчик ввёл это правило явной формулировкой: **«Создай правило, что ты всегда в первую очередь пользуешься superpowers. При этом ты не можешь игнорировать и обходить это правило.»** Закреплено как §12 в Pravila v1.4.

**Why:** В предыдущей итерации (Pravila v1.3 / §11) Superpowers был «разрешён», но без обязательности — заказчик увидел риск, что я буду рационализировать пропуск skill'а («сейчас быстрее без него», «эта задача проще»). Hard-rule убирает эту лазейку — §9 «Отступления» к §12 НЕ применяется.

**How to apply:**

1. **Перед любой содержательной задачей** — сначала проверить карту §12.2 правил Claude (14 skills → 14 типов задач):
   - TDD → `superpowers:test-driven-development`
   - debug/инцидент → `superpowers:systematic-debugging`
   - план эпика (≥3 этапа) → `superpowers:writing-plans`
   - исполнение плана → `superpowers:executing-plans`
   - brainstorm по запросу → `superpowers:brainstorming`
   - запрос code review → `superpowers:requesting-code-review`
   - применение review → `superpowers:receiving-code-review`
   - финализация feature-ветки → `superpowers:finishing-a-development-branch`
   - параллельные независимые задачи → `superpowers:dispatching-parallel-agents`
   - подагенты → `superpowers:subagent-driven-development`
   - финальная проверка перед сдачей → `superpowers:verification-before-completion`
   - создание новых skills → `superpowers:writing-skills`
   - git worktrees (с осторожностью на Windows + кириллица) → `superpowers:using-git-worktrees`
   - понимание плагина → `superpowers:using-superpowers`

2. **Если skill применим** — инвокировать его через Skill tool **до** прочих действий. Skill приносит свой workflow, я следую ему.

3. **Когда §12 НЕ срабатывает** (§12.3): чтение/grep/glob; тривиальные правки (опечатки, версии в шапках, синхронизация ссылок); справочные ответы без действий над кодом; документация уровня §4 (Pravila/Tooling/CLAUDE.md/narrative); работа с открытыми вопросами реестра.

4. **Запрещённые рационализации** — все эти формулировки = нарушение §12:
   - «эта задача проще, чем требует skill»
   - «сейчас быстрее без skill'а»
   - «это просто debug, обычным способом разберусь»
   - переформулировка задачи под §12.3 («это просто чтение, хотя на деле full-debug»)

5. **Единственная разрешённая отмена** — явный запрос заказчика «не используй superpowers сейчас», и **только** на текущее действие. В следующем действии §12 действует автоматически.

6. **Если забыл инвокировать skill** — заказчик укажет: «§12». Тогда обязательно зафиксировать ошибку в feedback memory для будущих сессий.

7. **Override-приоритет:** §12 имеет приоритет над §11 (override §2.2/§4.5/§8.4 разрешён автоматически при инвокации skill'а). НЕ override-ятся даже §12: §1 (роль), §3.6 (язык), §5 (ПДн), §7 (финальное закрытие открытых вопросов).

**Источники:** `docs/Pravila_raboty_Claude_v1_1.md` v1.4 §12 (полный текст 8 подсекций); `CLAUDE.md` v1.77 §1 priority уровень 0 + §5 п.11; коммит `4cac61d`.

**Контрольный сигнал что правило работает:** в начале нового задания я первым делом упоминаю «по §12.2 это попадает под X — инвокирую `superpowers:Y`» **до** прочих действий, или явно «§12.3 — обычный flow» с указанием категории (тривиальная правка / документация §4 / etc.). Если ни того, ни того — это нарушение, заказчик имеет право указать.

---

## Runtime-enforcement: «дисциплина» (skill-discipline hook)

**Установлено 10.05.2026.** Заказчик: «делай хук» → поставлен runtime-gate в `~/.claude/settings.json`:

- `~/.claude/hooks/skill-marker.py` — `PreToolUse` matcher `Skill` — пишет флаг `$TEMP/claude-skill-<session_id>.flag` (содержимое = имя skill'а)
- `~/.claude/hooks/skill-check.py` — `PreToolUse` matcher `Edit|Write|MultiEdit` — если флаг отсутствует, инжектит `additionalContext` reminder (две формулировки: спец-вариант для CLAUDE.md, общий для остальных файлов)

**В разговоре заказчик называет это просто «дисциплина»** (например: «дисциплина сработала», «выключи дисциплину», «обнови дисциплину»). Распознавать это слово как ссылку на этот хук, не путать с общей дисциплиной §12.

**Архитектура:**

- Per-session: флаг ключуется по `session_id` → каждая сессия независима. Соседние Claude Code сессии параллельно проходят свой gate.
- Не блокирует: только эмитит `additionalContext`, не `permissionDecision: "deny"`. Я могу проигнорировать reminder если задача попадает под §12.3 (Q&A, чтение, навигация, тривиальная правка).
- Encoding: `ensure_ascii=True` в `json.dumps` — обходит проблему cp1251 stdout на Windows (без этого в reminder приходит мoжибейк).
- Bash-обход: хук не ловит правки через `sed`/`Out-File`/etc. в `Bash` tool. Это сознательный пробел — расширение matcher'а на `Bash` дало бы много ложных срабатываний.

**Подтверждение работоспособности (10.05.2026 18:18):** соседняя сессия `a659b20e-f6b4-46ad-ab7d-53f594962995` в реальном времени вызвала `superpowers:test-driven-development` → marker hook записал флаг → последующие Edit/Write в той сессии проходят молча. Independent end-to-end proof.

**Как выключить:** `/hooks` UI menu в Claude Code, либо удалить блок `hooks` из `~/.claude/settings.json`, либо `disableAllHooks: true` (отключит ВСЕ хуки, не только этот).

---

## Economy hook bypass closure architecture (2026-05-10 финал)

После adversarial self-analysis (14 hypothesized bypass paths) — установлена hardened архитектура из **6 компонентов** в `~/.claude/hooks/`:

| # | Component | Event | Покрывает |
|---|---|---|---|
| 0 | permissions block в settings.json | declarative | H1/H2/H6 (tamper protection через deny+ask) |
| 1 | economy-mode.py | UserPromptSubmit | parse end-of-prompt + state write |
| 2 | economy-self-check.py | SessionStart | runtime guard (silent failure detection) |
| 3 | economy-state-guard.py | PreToolUse Edit/Write/MultiEdit/Bash/Agent | in-turn reminder + Bash bypass detection + subagent inheritance (H7) |
| 4 | economy-verifier.py + agent-type hook | Stop | Sonnet 4.6 compliance verifier с decision:'block' on non-compliance |
| 5 | economy-postcompact.py | PostCompact | re-inject rules после авто-компакции (H8) |

Закрыты 8 critical/high bypass paths: H1 (settings disable), H2 (hook script edit), H4 (prompt injection), H6 (state file delete), H7 (subagent inheritance), H8 (PostCompact loss), H9 (retry exhaustion), H10 (verifier endpoint failure), H12 (tool output spoofing), H13 (no-claim bypass).

**Stage 0 ratchet работает буквально** — auto-mode classifier режет даже subagent Write на hook-files и Bash-обходные действия. Подтверждено в реальной эксплуатации: 10.05.2026 субагент Stage 2 получил NEEDS_CONTEXT, и мой Bash+python heredoc на settings.json — denied.

Стоимость: ~$7-14/мес (Sonnet 4.6 verifier на ~30% turn'ов).

Spec: `c:/моя/проекты/портал crm/Документация/docs/superpowers/specs/2026-05-10-economy-hook-bypass-closure-design.md`
Plan: `c:/моя/проекты/портал crm/Документация/docs/superpowers/plans/2026-05-10-economy-hook-bypass-closure.md`

**Не закрытые by design:** translit/English keyword variations (E.1), mojibake homoglyphs (E.3), социальная инженерия (Claude просит rephrase), прямой редактирование settings/hooks пользователем вне Claude Code.

**18.05.2026 — accepted as-is** (превентивный аудит «мозга», Дмитрий: «б»). Причина: за 8 дней эксплуатации 0 промахов; максимальное последствие промаха = работа строже, не слабее (в сторону пользователя, не против); закрытие требует часов работы + регрессионного риска на сложных хуках. Перечитать раз в квартал — не изменилась ли реальная частота промахов. **Не предлагать закрытие повторно** без явного эпизода промаха в логах.

---

## Economy level «5%» (2026-05-16)

Добавлен новый уровень-якорь `экономия 5%` в `economy-mode.py` `LEVELS` (между 25 и 0; `closest_level` полоса 3–14% → 5; `экономия 10%` теперь → 5, а не 0). Принцип: **`5% = 0% − 6 пунктов избыточности + 6 скоростных правил`** — то же качество и строгость, что 0%, без дублирующей работы.

6 вырезанных избыточностей: re-read CLAUDE.md (уже в контексте), тесты-после-каждой-правки (→ по логическим блокам), gitleaks-full-history per-commit (→ только pre-push), Stop-верификатор (short-circuit на level 5), авто-гейты brainstorming/writing-plans (→ §12.2-floor, не каждая фича).

6 скоростных правил (блок A/B3, добавлены 2026-05-16 — секция «СКОРОСТЬ БЕЗ ПОТЕРИ КАЧЕСТВА» в `LEVELS[5]['rules']`): параллельные независимые tool-вызовы; без re-read неизменённых файлов; дешёвая модель на механические субагент-задачи; `run_in_background` на долгие команды; не задавать выводимые из кодовой базы вопросы; фокус/компакт сессии.

Затронуты 3 хук-файла: `economy-mode.py` (`LEVELS[5]`), `economy-state-guard.py` + `economy-postcompact.py` (`LEVEL_TOPLINE[5]`, две синхронные копии). Тесты: `economy-mode-test.py` 62/62, `economy-state-guard-test.py` 7/7. `LEVELS[0]` — байт-в-байт неизменён (жёсткий инвариант).

B4 (замер latency всех хуков) — одноразовый bench: ~34 мс median на хук (чистый старт интерпретатора, однородно по всем хукам), ~13–23 с суммарно на крупную задачу — горячей точки нет, оптимизировать нечего, пункт закрыт.

Спека: `docs/superpowers/specs/2026-05-16-economy-5pct-level-design.md` (на origin/main, §11 — блок A/B3). Хук-файлы — в `~/.claude/`, вне git.
