Commit Graph
15 Commits
Author SHA1 Message Date
bastien 27f201d4aa feat(guardrails): refusal ends the attempt; doctrine-citers census; make test suite=
Root causes of the 2026-09-24 errors turned into mechanisms (BDR-100). hard_deny 'Routing around a guardrail': a refused command is never rerun through a wrapper, alias, heredoc, Makefile target, env file, other shell or other agent; the same clause in 14 agents and in the doctrine's sub-agent rule. make test suite=<file> runs one suite hermetically so the denied env-prefix form is never needed by hand. lib/tests/doctrine-citers.test.sh: every CLAUDE.md "Section" / § Label citation across skills, agents, lib, rules and hooks must resolve to a heading or bold label (flip-tested); its first run fixed rest-api-node.md. Doctrine 'After code changes' step 4: a changed rule, heading, label or threshold → grep every citer in the same commit.
2026-09-24 20:58:25 +02:00
bastien d82c06f572 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).
2026-09-24 20:25:40 +02:00
Bastien Chanot 5e8bb0c22e feat(routing): W3 tier moves — validator-analyzer opus→sonnet, commit-changer propose=opus override (BDR-077)
validator-analyzer tiered down (deterministic validator-runner + fixed
deduction tables — no deep judgment; supersedes its BDR-076 opus pin).
commit-changer: MODE propose dispatched model="opus" (narrative
reconstruction + capitalize routing = judgment), MODE apply on the sonnet
pin. Typed-pin precedence smoke PASSED: sonnet-pinned verifier dispatched
model="haiku" ran on claude-haiku-4-5 — call-site wins, documented +
now behaviorally proven. Census §11 flip + §16 (106 pass), make test
exit 0.
2026-07-19 22:45:00 +02:00
Bastien Chanot 2136953b2a fix(model-routing): commit-changer resolves step→hash refs on apply; edge-case resume notes (release NEED-DECISION, commit-change skip) 2026-07-15 22:05:23 +02:00
Bastien Chanot ab0fafc0ef feat(model-routing): /commit-change dispatch to sonnet commit-changer, gates relocated to dispatcher 2026-07-15 21:09:15 +02:00
Bastien Chanot 9d9c55e87c fix(commit-change): add gitflow aiguillage before commit
commit-changer committed code autonomously with no branch precondition
(gitflow-conformity §2a, verified MEDIUM CONFIRMED) — on develop/main it
attempted a direct code commit, backstopped only by the pre-commit hook.
Adds Phase 0: the same `gitflow-aiguillage.md` mechanism hotfixer/bugfixer/
feater already use (TYPE=chore) — branches to chore/* on a protected base,
no-op on a working branch — plus a report-only fallback (no develop / no
lib -> ask human, don't auto-branch). Commit-plan gate + scoped staging
untouched. SKILL.md pre-flight notes the aiguillage.

Dry-run (throwaway repos, REAL lib + REAL pre-commit hook) — both paths:
  CASE 1 on develop: aiguillage -> chore/commit-pending, code commit
    SUCCEEDS, hook never blocks; contrast: same commit direct on develop
    is BLOCKED -> aiguillage is what avoids it. PASS
  CASE 2 no develop: fallback -> no auto-branch, changes uncommitted,
    no chore/* created, ask human. PASS
2026-07-09 11:31:59 +02:00
Bastien Chanot 5a3de923ac job9: strip banned attribution trailer from commit-changer template 2026-07-08 13:09:29 +02:00
Bastien Chanot 0ede52c0ea job9: A commit-changer drop unused Agent tool 2026-07-08 02:50:08 +02:00
Bastien Chanot 18c1b327c3 job2: F12 subordinate 6 agent descriptions to their skills 2026-07-06 12:19:08 +02:00
Bastien ChanotandClaude Opus 4.8 27636789a9 feat(flows): couple memory-commit to feat/hotfix/bugfix/commit-change via shared include
Each flow's CAPITALIZE step now ends by following lib/capitalize-commit.md, which
surgically commits the approved memory (.claude/memory + .claude/tasks only) as one
chore(memory) commit. No flow hand-rolls git; the helper owns the scope guarantee.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W9sqAwZxBMZSynZoVrEJhd
2026-06-26 12:50:02 +02:00
bastien bd9134ab4c optimize(commit-change): add Phase 2.5 mandatory approval checkpoint before commit execution (d4 target) 2026-05-06 18:23:40 +02:00
bastienandClaude Opus 4.7 617865cb07 feat(capitalize): enforce English in all memory registry entries
Registries are re-read at every session start; consistency pays back
each time. Adding a single rule in CLAUDE.md § Memory registries
(authoritative) + a short reminder at the end of each CAPITALIZE
block (ship-feature, bugfix, hotfix, feat, commit-change, close).

Rationale: (1) model re-reads the registries more efficiently in a
single language, (2) lower token cost for English (model's primary
training language), (3) easier cross-project reuse. Interactive gates
may still mirror the user's language — only the written entry is
constrained.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-23 16:24:04 +02:00
bastienandClaude Opus 4.7 6e322db968 feat(capitalize): add CAPITALIZE step across completion skills
Registries only get filled if something actively writes to them.
Without integration, the 3-question ritual is aspirational text.
Adds a CAPITALIZE step at the end of every completion skill so work
milestones automatically propose BDR/LRN/BLK entries from context.

- ship-feature STEP 9 — decision/learning/blocker candidates per feature
- bugfix STEP 7 — always propose BLK with root cause; LRN if pattern reusable
- hotfix STEP 5 — default skip; only prompt when non-obvious lesson surfaces
- feat STEP 6 — propose BDR for design choice, LRN for pattern
- commit-change Phase 4 — analyze the commit batch, propose grouped entries

Every variant also appends a one-liner to .claude/memory/journal.md under
today's date heading.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-23 16:06:24 +02:00
bastienandClaude a9f5e9a31b refactor(commit-changer): group by development narrative, not by type
Replace atomic-by-type grouping (docs together, feat together, chore
together) with development-step reconstruction. Commits now retrace
the order work happened — one commit per logical step, regardless of
file type. Count adapts to the workload: 1 commit or 20.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-15 23:40:24 +02:00
bastienandClaude 0241e1ddc8 refactor(skills): extract skill logic into standalone agent files
Skills now delegate to agent .md files instead of embedding logic
inline. Added new agents (bugfixer, code-cleaner, commit-changer,
doc-syncer, feater, hotfixer, seo-analyzer) and new skills
(code-clean, doc, seo). Replaced /readme with /doc (broader scope).

Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-15 20:18:34 +02:00