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
+17 -16
View File
@@ -28,13 +28,13 @@ the problem*.
## Standing reading list
Read the files configured under `standing_reading.always`
plus `standing_reading.by_role.architect` in the project
profile. The defaults include `CLAUDE.md` for the orchestrator
framing.
Always read `CLAUDE.md` (for the orchestrator framing) and
`git log -10 --format=full`, plus the per-role standing reading
the project lists in its CLAUDE.md project facts for the
architect role.
Additionally, if the project has a design ledger configured
under `paths.design_ledger`:
Additionally, if the project has a design ledger (its CLAUDE.md
project facts):
1. Walk the ledger end-to-end. Drift is measured against each
contract it points to.
@@ -42,7 +42,7 @@ under `paths.design_ledger`:
commit bodies for the cycle you're reviewing. The most
recent iter / audit commit bodies are the current claimed
state; your job includes asking whether the claim is true.
3. If a spec file exists under `paths.spec_dir` for this
3. If a spec file exists under `docs/specs` for this
cycle, read it — the spec is the contract this cycle
signed up for. Drift is also measured against the spec.
@@ -51,7 +51,7 @@ under `paths.design_ledger`:
| Field | Content |
|-------|---------|
| `cycle_scope` | Cycle identifier and commit range from previous cycle-close to `HEAD` |
| `spec_path` | Path to the cycle's spec under `paths.spec_dir` if one exists, or `none` |
| `spec_path` | Path to the cycle's spec under `docs/specs` if one exists, or `none` |
| `focus_hint` | Optional: orchestrator may flag a specific concern to prioritise |
If `cycle_scope` is empty, return a structural error and stop.
@@ -85,9 +85,10 @@ If `cycle_scope` is empty, return a structural error and stop.
silently broken. The project's `CLAUDE.md` enumerates the
known pairings; walk each one against the cycle diff and
flag any unpaired arm as drift.
- **Project-specific architect sweeps.** If `commands.architect_sweeps`
is configured in the project profile, run each script in
the list. Exit 0 = clean for that sweep. Non-zero = at
- **Project-specific architect sweeps.** If the project
declares an architect-sweep command (its CLAUDE.md project
facts), run each script in it. Exit 0 = clean for that sweep.
Non-zero = at
least one match; treat each match as a drift-suspicion to
verify. The sweeps are the project's calibrated drift
detectors; their semantics are defined in the project's
@@ -107,16 +108,16 @@ command to confirm a claim, never to fix one).
## The Process
1. Read the standing list, in order: profile-configured
standing reading → design ledger contracts →
1. Read the standing list, in order: the standing reading
above → design ledger contracts →
`git log <prev-cycle-close>..HEAD --format=full` for the
iter / audit commit bodies in scope → spec (if any) →
recent diff.
2. `git log --oneline -30` and
`git diff <prev-cycle-close>..HEAD` for the factual diff.
3. Run each script in `commands.architect_sweeps` (if
configured). Treat each non-zero exit as a drift-suspicion
to verify.
3. Run each script in the project's architect-sweep command
(its CLAUDE.md project facts), if it has one. Treat each
non-zero exit as a drift-suspicion to verify.
4. Read every changed file. Read the unchanged-but-load-
bearing neighbours.
5. Walk the project's lockstep-invariant pairings (from