Commit Graph

4 Commits

Author SHA1 Message Date
Brummel 26e9630496 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.
2026-06-13 16:30:02 +02:00
Brummel 4fd5408b1d feat(glossary): add the glossary utility skill + extractor agent
Gives the plugin an executable procedure over a project's glossary,
closing the two gaps the glossary-convention infrastructure left open:
no on-ramp to build a glossary for an existing project, and no
conformance check around hand-maintenance.

New `glossary` utility skill (invoked on demand like `issue`, not a
pipeline phase) with a mode dispatch:
- maintain: guided add / change / remove of one entry under a local
  conformance check (three-field shape, <=2-sentence definition,
  collision scan against existing entries) plus a stale-usage sweep on
  change/rename. A non-conforming entry is rejected with the named rule,
  not written. The sweep reports drift; it does not block (guidance, not
  enforcement).
- bootstrap (user-only): fans out one read-only glossary-extractor agent
  per prose slice, merges and clusters their observed variants, auto-
  includes clear winners, surfaces contested clusters to the user for the
  canonical choice, and leaves unresolved clusters out (never coined).

New `glossary-extractor` agent (read-only, template-conforming): sweeps
one prose slice, reports recurring concept terms + competing variants
with frequencies and locations, coins nothing.

Single-sourcing held throughout: the skill applies the rules in
docs/glossary-convention.md and restates none of them. Authority is
unchanged — maintain keeps the user-any-time / boss-record-reality rule;
bootstrap is user-only, with boss allowed to recommend it via bounce-back
(one wired sentence in boss/SKILL.md). docs/glossary-convention.md gains
a one-line tooling pointer to the skill; README.md lists `glossary` and
`issue` as utility skills and drops the stale 'Eight skills' count the
fresh-context grounding-check flagged (it had silently omitted `issue`).

install.sh links the new skill + agent with no installer change (its glob
covers any top-level dir with a SKILL.md + agents/ subdir; verified).

Docs/prose-only repo, no test runner: all 13 grep presence-gates green
against verified zero baselines; final sweep ALL_PRESENT, install.sh
still parses (bash -n). Implements
docs/specs/2026-05-31-glossary-skill-design.md.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-31 16:48:13 +02:00
Brummel 59c2f4bb6b audit(glossary): close cycle — glossary is SoT for nomenclature
Cycle-close tidy for the glossary-integration cycle (fc0e1d0..HEAD).

Architect drift review (sole gate — repo ships no
.claude/dev-cycle-profile.yml, so commands.regression is empty and the
regression step is a documented no-op):

- [medium] FIXED. docs/glossary.md Avoid-lists `release`/`epic` while
  profile-schema.md § vocabulary offered the same words as example
  slot renamings — opposite verdicts on the same words in two in-repo
  docs, with neither stating its scope, reading as contradiction.
  Resolution (per the user's steer: the glossary is the new source of
  truth for nomenclature): state that authority once, where the
  glossary's role is owned. glossary-convention.md now declares the
  set glossary the SoT for a project's nomenclature and that its
  canonical entry + Avoid list win over any colliding vocabulary
  example; profile-schema.md's vocabulary note defers to it with a
  pointer rather than restating the rule, keeping the single-sourcing
  the architect flagged as clean. The glossary itself is unchanged —
  it is the SoT and was already correct.

- [low] CARRY-ON. glossary-convention.md mandates an `**Avoid:** —`
  line for synonym-free terms, but no dogfood entry in glossary.md
  exercises that arm (all five terms have real synonyms). Accepted as
  low-severity documented debt: the rule is unambiguous prose, and
  coining a synonym-free term solely to exercise a formatting arm
  would be gold-plating. Revisit if a genuinely synonym-free canonical
  term enters the dogfood.

What holds: wiring semantics single-sourced at the paths.glossary row;
convention/instance split clean; boss named as the only autonomous
glossary writer; all six spec acceptance criteria landed.

Cycle is drift-clean. Not a milestone close (no milestone fieldtest
run; see docs/pipeline.md § Milestone-close gate).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-31 14:46:14 +02:00
Brummel a6794d178a feat(glossary): add optional paths.glossary standing-reading slot
Pins canonical nomenclature per project so terminology does not drift
and LLM-driven work reuses the established term instead of coining a
synonym each session. The glossary rides the existing standing-reading
mechanism — one optional path slot, no new delivery path.

Single-sourcing, to avoid cross-doc drift:
- `paths.glossary` row in profile-schema.md owns the "set => standing
  reading for every role; unset => no-op" semantics; agent-template.md
  and pipeline.md each carry one referencing sentence, not a restatement.
- glossary-convention.md owns the format (flat per-term blocks: canonical
  heading + Avoid line + <=2-sentence definition) and the boss
  record-reality-never-invent write-rule; boss/SKILL.md only points to it.
- glossary.md dogfoods the format on the plugin's own vocabulary
  (cycle, milestone, iteration, drift, hard-gate).

Write authority: user any time; boss autonomously but only to record
terms already in consistent use or to settle a drift it just resolved —
never to coin. All other roles are read-only consumers.

No executable surface; this repo has no test runner, so each task closed
on a grep presence-assertion against the file it touched. All eight gates
green (T1 3>=3, T2 5, T3 2, T4 1, T5 1, T6 1, T7 2, final sweep present).

Implements docs/specs/2026-05-31-glossary-integration-design.md.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-31 14:35:57 +02:00