docs: план — Task 3 подключает checkSddWrite (вкл. bash) + пины T1.7 (#59)
This commit is contained in:
parent
c255a24b94
commit
bb9b6de81a
@ -129,7 +129,7 @@ git commit -m "feat(dsh): /approve — единственный писатель
|
||||
- Consumes: Task 1 (gates.js), Task 2 (command-approve.js), существующая цепочка `ctx.tools.guard` (lib/guards.js).
|
||||
- Produces: в `apply()`:
|
||||
- `DEFAULTS += { approvalGates: true }`; gatesOk — из selfcheck (tools.guard).
|
||||
- В guard-цепочке после hook-проверок: Edit/Write/MultiEdit → `checkPlanWrite` + `checkApprovalWrite`; `subagent`/`subagent_fork`/`workflow` → `checkDispatch` (prompt/script из `exec.arguments`); `Bash` → если в команде грубая подстрока `docs/superpowers/plans` или `approval.md` — `spawnSync python3 hooks/harness_target.py targets '<cmd>' <cwd>`, цели → `checkBashTargets`. Любой deny → причина отказа (hook-стиль `BLOCKED [approval-gates]: …`). Ошибка/пропуск парсинга — allow (инвариант хуков).
|
||||
- В guard-цепочке после hook-проверок: Edit/Write/MultiEdit → `checkPlanWrite` + `checkApprovalWrite` + `checkSddWrite`; `subagent`/`subagent_fork`/`workflow` → `checkDispatch` (prompt/script из `exec.arguments`); `Bash` → если в команде грубая подстрока `docs/superpowers/plans`, `approval.md` или `.superpowers/sdd` — `spawnSync python3 hooks/harness_target.py targets '<cmd>' <cwd>`, цели → `checkBashTargets` + `checkSddWrite` для путей под `.superpowers/sdd/`. Любой deny → причина отказа (hook-стиль `BLOCKED [approval-gates]: …`). Ошибка/пропуск парсинга — allow (инвариант хуков).
|
||||
- `/approve` регистрируется в том же `ctx.inject(['commands', 'userQuestions'])` (userQuestions может отсутствовать — команда сама откажет, D-12).
|
||||
- `repoRoot` для гейтов — cwd сессии (`sessionCwd`), как в guards.
|
||||
|
||||
@ -141,6 +141,10 @@ test('apply: guard allows plan write after /approve-like approval.md', ...)
|
||||
test('apply: guard denies subagent dispatch referencing unapproved plan', ...)
|
||||
test('apply: guard allows dispatch after plan approval (sha match)', ...)
|
||||
test('apply: bash heredoc into approval.md denied', ...) // RF4
|
||||
test('apply: bash write under .superpowers/sdd/<plan>/ denied without approval', ...) // checkSddWrite bash-ветка
|
||||
test('apply: bash write under .superpowers/sdd/<plan>/ allowed with approval', ...)
|
||||
test('gates: checkSddWrite sha-mismatch deny', ...) // T1.7 pin
|
||||
test('gates: bare .superpowers/sdd/<name> dir ungated', ...) // T1.7 pin
|
||||
test('apply: approvalGates:false disables all gates', ...)
|
||||
```
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user