refactor(doctrine): C2 coherence — 30 doctrine/skill tensions resolved, doctrine wins (BDR-099)

One ask policy; mandated executors exempt from the delegation rule; skill plan satisfies the planning rule; journal line exempt from the approval gate; chore = maintenance without new behaviour; small fix on develop = bugfix; BDR-068 written as the one auto-finish exception; deploy routes to /deploy. Skills and agents follow: hotfix types by base + skips the design gate on trivial; capitalize/close create missing registries; commit-change asks the branch type; doc/seo/web-validate/refactor branch through the aiguillage; tour reports BREAKING fixes as needs-decision and runs doc-syncer two-mode; client-handover applies audit bundles from its main loop behind one gate; init-project/onboard use the 200-file graphify signal and bootstrap memory; release-candidate gates the tag push only; push wording aligned with the BDR-095 hooks; stale pointers fixed (§ Language, .gsd/ROADMAP.md, handover script path, design-gate lists).
This commit is contained in:
bastien
2026-09-24 20:25:40 +02:00
parent 1b20beccda
commit d82c06f572
29 changed files with 350 additions and 190 deletions
+17 -5
View File
@@ -45,16 +45,28 @@ git config user.email
- `git config user.email` empty → STOP, ask the user to configure identity
first, do not dispatch.
On a protected base (`main`/`develop`) the subagent runs the gitflow
aiguillage itself inside `MODE: propose` (its Phase 0) and branches to
`chore/*` before drafting the plan — code never lands directly on a
protected branch.
On a protected base (`main`/`develop` — `bash "$HOME/.claude/lib/gitflow.sh"
protected-base`) ask the user the branch TYPE before any dispatch — a branch
name is a public name:
```
AskUserQuestion:
Protected base — branch type for these commits? (feature / bugfix / chore)
```
Suggest `chore` only when every pending path is under `.claude/**` or docs;
pending code never lands on a `chore/*` branch. Pass the answer as
`TYPE: <type>` in the STEP 1 prompt — the subagent runs the aiguillage with it
inside `MODE: propose` (its Phase 0) and branches to `<type>/*` before drafting
the plan. Code never lands directly on a protected branch. On a working
branch, omit `TYPE:` (the aiguillage is a no-op there).
## STEP 1 — Propose
```
Agent(subagent_type="commit-changer", model="opus")
prompt: "MODE: propose
TYPE: <the STEP 0 answer — feature / bugfix / chore; omit on a working branch>
$ARGUMENTS"
```
@@ -86,7 +98,7 @@ AskUserQuestion:
BDR-077 — never redrawn inline on the session model); show the redrawn
plan and re-ask.
- `skip` → exit cleanly, no commits created, no `MODE: apply` dispatch.
Note: if the propose run created a `chore/*` branch (gitflow aiguillage
Note: if the propose run created a `<type>/*` branch (gitflow aiguillage
off a protected base), that branch stays checked out with the work
uncommitted — mention it so the user isn't surprised by the branch switch.