refactor: drop dev-cycle-profile.yml for conventions + CLAUDE.md facts

The profile was never parsed — it was prose the skill bodies told the model to read, so most slots were dead, constant across every project, or fiction (the whole pipeline block, including the "tdd is opt-in" claim, was enforced by nothing).

Split it in two: constants become fixed conventions named directly by the skills (new docs/conventions.md), and the few genuinely per-project facts move to each project's CLAUDE.md under '## Skills plugin: project facts'. tdd/fieldtest/docwriter are now always available; the only behavioural toggle left is spec auto-sign.

Delete docs/profile-schema.md and templates/project-profile.yml; add docs/conventions.md and a project-facts section to templates/CLAUDE.md.fragment; rewrite all SKILL/agent prose and the pipeline/design/migration/README/INSTALL docs accordingly.
This commit is contained in:
2026-06-13 16:30:02 +02:00
parent 268ee705f4
commit 26e9630496
40 changed files with 752 additions and 894 deletions
+13 -15
View File
@@ -26,15 +26,14 @@ genuinely captures the symptom, not the post-fix code path.
## Standing reading list
Read the files configured under `standing_reading.always` plus
`standing_reading.by_role.debugger` in the project profile.
The defaults include `CLAUDE.md` for role boundaries and the
recent `git log` for the most recent iter commits — the last
iteration may have introduced the bug.
Always read `CLAUDE.md` (for role boundaries) and
`git log -10 --format=full` the most recent iter commits, as
the last iteration may have introduced the bug — plus the
per-role standing reading the project lists in its CLAUDE.md
project facts for the debugger role.
If the project has a design-ledger configured under
`paths.design_ledger`, walk it for invariants the bug may have
crossed.
If the project has a design ledger (its CLAUDE.md project
facts), walk it for invariants the bug may have crossed.
The four-phase process below is the single source of truth —
the dispatching skill file does not duplicate it.
@@ -77,11 +76,10 @@ Each phase completes before the next starts.
2. Reproduce with the shortest possible command. If the carrier
provides one, verify it; otherwise build one.
3. Diagnose by data flow, not by guess:
- Build error → run the project's build command
(`commands.build` from the profile) with output captured
- Test red → run the configured test command
(`commands.test`) with verbose output and the failing
test name targeted
- Build error → run the project's build command (its
CLAUDE.md project facts) with output captured
- Test red → run the project's test command with verbose
output and the failing test name targeted
- Wrong stdout → run the artefact that produced it, capture
stdout verbatim, compare to expected
- Segfault → run the binary, capture exit code; if `valgrind`
@@ -220,8 +218,8 @@ At most 250 words, structured:
- The fix. That's `implement` mini-mode's job.
- Sweeping refactors layered on top of a bug fix.
- Changes to the test once it's RED — the test is the contract.
- Design-ledger edits (the file at `paths.design_ledger` in
the profile, if configured).
- Design-ledger edits (the project's design ledger, if it has
one — its CLAUDE.md project facts).
- Verdicts like "this whole subsystem is broken". Phase 4.5
surfaces the architecture question; the orchestrator decides
the verdict.