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:
@@ -3,6 +3,13 @@
|
||||
# Copy these sections into your project's CLAUDE.md to import the
|
||||
# baseline rules the skills plugin assumes. Edit freely afterwards —
|
||||
# this is a starting point, not a binding template.
|
||||
#
|
||||
# The plugin reads the project's CLAUDE.md as standing reading on every
|
||||
# dispatch. There is no separate profile file: the `## Skills plugin:
|
||||
# project facts` section at the bottom is where the few per-project facts
|
||||
# the skills need (code roots, build/test command, tracker slug, …) live.
|
||||
# Everything else is a fixed convention documented in
|
||||
# ~/dev/skills/docs/conventions.md and docs/pipeline.md.
|
||||
|
||||
## Roles
|
||||
|
||||
@@ -86,3 +93,70 @@ Example shape:
|
||||
| Pair | Failure mode |
|
||||
|------|--------------|
|
||||
| `<file A>:<func A>` ↔ `<file B>:<func B>` | <what breaks when the pair is not updated together> |
|
||||
|
||||
## Skills plugin: project facts
|
||||
|
||||
The few facts the skills plugin needs that genuinely vary per project.
|
||||
Everything else is a fixed convention (see
|
||||
`~/dev/skills/docs/conventions.md`). Keep this concise; omit any row
|
||||
that does not apply.
|
||||
|
||||
- **Code roots** — directories the architect / quality reviewer walk.
|
||||
Example: `src` (or `crates, runtime`, or `server, common,
|
||||
clients/desktop`). *Required.*
|
||||
- **Build** — example: `cargo build` (or
|
||||
`cargo build --manifest-path server/Cargo.toml`). *Required.*
|
||||
- **Test** — example: `cargo test` (or `cargo test --workspace`).
|
||||
*Required.*
|
||||
- **Lint** — optional. Example: `cargo clippy`.
|
||||
- **Doc build** — optional, used by `docwriter`; should print warnings
|
||||
to stderr. Example: `cargo doc --no-deps 2>&1`.
|
||||
- **Regression scripts** — optional list, run by `audit`; non-zero
|
||||
exit = regress. Example: `scripts/check.sh`.
|
||||
- **Architect sweeps** — optional list, run by the `architect` agent in
|
||||
addition to its universal checks; non-zero exit = drift suspicion.
|
||||
- **Design ledger** — optional path to the canonical spec index.
|
||||
Example: `design/INDEX.md`.
|
||||
- **Glossary** — optional path; if set, it is standing reading for every
|
||||
role. Example: `docs/glossary.md`.
|
||||
- **Design contracts / models** — optional directories of
|
||||
prose-authoritative contracts / onboarding whitepapers. Example:
|
||||
`design/contracts`, `design/models`. (Aspirational-source frontmatter
|
||||
marker recommended — see `docs/conventions.md`.)
|
||||
- **Bench dir** — optional path. Example: `bench`.
|
||||
- **Public interface** — optional list: the *only* surface the
|
||||
`fieldtester` may read (everything else, especially code roots and
|
||||
bench, is forbidden to it). Example: `README.md, docs, examples`.
|
||||
- **Fieldtest examples** — optional path where the `fieldtester` writes
|
||||
fixtures. Example: `examples/fieldtest`.
|
||||
- **Spec-validation parsers** — optional. A fence-label → parser table
|
||||
the `specify` parse-gate and `grounding-check` use to validate spec
|
||||
code blocks. A block whose label has no entry is a documented skip,
|
||||
never a silent pass. `cmd` MUST contain the `{file}` placeholder.
|
||||
Example:
|
||||
|
||||
| Fence label | Temp ext | Command |
|
||||
|-------------|----------|---------|
|
||||
| `ail` | `.ail` | `ail check {file}` |
|
||||
| `ail-json` | `.ail.json`| `ail check {file}` |
|
||||
|
||||
- **By-role standing reading** — optional. Extra files/commands a
|
||||
specific agent role reads on every dispatch, beyond the universal
|
||||
`CLAUDE.md` + `git log -10`. Role names match agent slugs (`architect`,
|
||||
`bencher`, `debugger`, `fieldtester`, `grounding-check`, …). Example:
|
||||
architect also reads `design/contracts`; debugger also runs
|
||||
`git log -5 --format=full`.
|
||||
- **Issue tracker** — Gitea repo slug plus the commands to read it.
|
||||
Example:
|
||||
- repo: `Brummel/<project>`
|
||||
- list open issues: `tea issues ls --repo Brummel/<project> --state open`
|
||||
- show one issue with comments: `tea issues --comments` (the index is
|
||||
appended last → `tea issues --comments 55`). The show command MUST
|
||||
include comments — otherwise a `specify` reconciliation comment is
|
||||
invisible to the `scope-fork` juror and auto-sign falls back to the
|
||||
human sign-off.
|
||||
- **Spec auto-sign** — optional; default off (human signature required).
|
||||
Set to **enabled** to let a `/boss` run sign a spec in the user's place
|
||||
through `specify`'s auto-sign gate (every objective gate green AND a
|
||||
unanimous five-lens `spec-skeptic` panel; the orchestrator's own
|
||||
confidence never signs). See `boss/SKILL.md` § "Spec auto-sign".
|
||||
|
||||
Reference in New Issue
Block a user