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:
+25
-22
@@ -30,15 +30,15 @@ Triggers:
|
||||
- **maintain** — a term is to be added, changed, or removed in an
|
||||
existing glossary, by the user any time, or by boss to record reality
|
||||
(a term already in consistent use, or a drift boss just resolved).
|
||||
- **bootstrap** — a project has terminology to pin but no glossary
|
||||
(`paths.glossary` unset, or naming an empty file), and the user invokes
|
||||
the build.
|
||||
- **bootstrap** — a project has terminology to pin but no glossary (no
|
||||
glossary path in its CLAUDE.md project facts, or the named file is
|
||||
empty), and the user invokes the build.
|
||||
|
||||
Skip or refuse:
|
||||
|
||||
- maintain asked with no `paths.glossary` slot set: there is nowhere to
|
||||
write. Stop and instruct the user to set `paths.glossary` (see
|
||||
`../docs/profile-schema.md` § `paths`) first.
|
||||
- maintain asked when the project's CLAUDE.md project facts name no
|
||||
glossary path: there is nowhere to write. Stop and instruct the user to
|
||||
record the glossary path in the project's CLAUDE.md first.
|
||||
- bootstrap asked on a glossary that already has entries: do not clobber.
|
||||
Stop with the entry count and recommend maintain.
|
||||
- bootstrap asked in a boss (autonomous) session: refuse. bootstrap is
|
||||
@@ -68,9 +68,10 @@ If the mode is ambiguous, ask once; do not guess.
|
||||
|
||||
## The maintain procedure
|
||||
|
||||
1. **Read the glossary and the convention.** Read the file named by
|
||||
`paths.glossary` and `../docs/glossary-convention.md`. If
|
||||
`paths.glossary` is unset, stop (see When to Use / Skipping).
|
||||
1. **Read the glossary and the convention.** Read the glossary file the
|
||||
project's CLAUDE.md project facts name, plus
|
||||
`../docs/glossary-convention.md`. If the project facts name no glossary
|
||||
path, stop (see When to Use / Skipping).
|
||||
2. **Take the proposed entry.** A canonical-term heading, an `**Avoid:**`
|
||||
line, and a definition — the user's, or (in a boss session bound by
|
||||
record-reality) the term already in consistent use.
|
||||
@@ -96,14 +97,15 @@ If the mode is ambiguous, ask once; do not guess.
|
||||
|
||||
## The bootstrap procedure (user-only)
|
||||
|
||||
1. **Guard.** Read `paths.glossary`. If it names a file that already has
|
||||
entries, stop with the count and recommend maintain. If the slot is
|
||||
unset, continue, and note the build will also propose setting the slot
|
||||
(see `../docs/profile-schema.md` § `paths`).
|
||||
1. **Guard.** Read the glossary path from the project's CLAUDE.md project
|
||||
facts. If it names a file that already has entries, stop with the count
|
||||
and recommend maintain. If the project facts name no glossary path,
|
||||
continue, and note the build will also propose recording one in the
|
||||
project's CLAUDE.md.
|
||||
2. **Partition the prose surface into slices** — the readable prose of
|
||||
the project: `docs/`, `README.md`, the design ledger (if
|
||||
`paths.design_ledger` is set), the spec directory. One slice per
|
||||
coherent group, sized so a single agent can sweep it.
|
||||
the project: `docs/`, `README.md`, the project's design ledger, if it
|
||||
has one (its CLAUDE.md project facts), the spec directory `docs/specs`.
|
||||
One slice per coherent group, sized so a single agent can sweep it.
|
||||
3. **Fan out one `glossary-extractor` per slice.** Dispatch the read-only
|
||||
agent (`agents/glossary-extractor.md`) with the carrier: the slice and
|
||||
the extraction task. Agents do not nest; the skill curates each
|
||||
@@ -121,9 +123,10 @@ If the mode is ambiguous, ask once; do not guess.
|
||||
6. **Handle the unresolved.** A contested cluster the user does not
|
||||
resolve is left OUT of the glossary and noted as deferred. Never coin a
|
||||
term to fill a gap.
|
||||
7. **Assemble UNSTAGED.** Write the conforming glossary to
|
||||
`paths.glossary` (proposing the slot value if it was unset), in the
|
||||
convention's flat per-term-block format. Leave it unstaged for review.
|
||||
7. **Assemble UNSTAGED.** Write the conforming glossary to the path the
|
||||
project's CLAUDE.md project facts name (proposing one if none is
|
||||
recorded yet), in the convention's flat per-term-block format. Leave it
|
||||
unstaged for review.
|
||||
|
||||
## Iron Law
|
||||
|
||||
@@ -167,9 +170,9 @@ BOOTSTRAP IS USER-ONLY. NEVER COIN A TERM — RECORD REALITY.
|
||||
- **Rules (the single source):** `../docs/glossary-convention.md` —
|
||||
format, reading obligation, write-rule, glossary-as-SoT. This skill
|
||||
applies these; it restates none.
|
||||
- **Slot semantics:** `../docs/profile-schema.md` § `paths` — the
|
||||
`paths.glossary` slot (set ⇒ standing reading for every role; unset ⇒
|
||||
no-op).
|
||||
- **Glossary path:** the project's CLAUDE.md project facts — when they
|
||||
name a glossary path it is standing reading for every role; when they
|
||||
name none, this skill has nowhere to write and bootstrap proposes one.
|
||||
- **Agent dispatched:** `agents/glossary-extractor.md` — read-only
|
||||
per-slice prose extraction, fanned out in bootstrap.
|
||||
- **Glossary instance (dogfood):** `../docs/glossary.md` — this plugin's
|
||||
|
||||
@@ -19,10 +19,11 @@ slice and merges their reports.
|
||||
## Standing reading list
|
||||
|
||||
Read everything in the standing reading list passed in the carrier before
|
||||
doing anything else. A set `paths.glossary` is part of every role's
|
||||
standing reading, and `docs/glossary-convention.md` defines what a
|
||||
glossary-worthy concept term is versus incidental vocabulary — consult it
|
||||
so you report concepts, not every capitalised word.
|
||||
doing anything else. When the project's CLAUDE.md project facts name a
|
||||
glossary path, that glossary is standing reading for every role, and
|
||||
`docs/glossary-convention.md` defines what a glossary-worthy concept term
|
||||
is versus incidental vocabulary — consult it so you report concepts, not
|
||||
every capitalised word.
|
||||
|
||||
## Carrier contract
|
||||
|
||||
|
||||
Reference in New Issue
Block a user