feat: route consume knowledge to two channels (#9-#14) #15

Merged
alexion merged 1 commits from consume-two-channel-model into main 2026-07-24 22:28:46 -04:00
Owner

Reworks the consume skill around two acceptance axes (generalizes + trigger-able) and two destinations (the pull wiki + a push channel — the target's own CLAUDE.md), implementing as one coherent design the six issues filed from the first real consume run.

No task file exists for this work; the originating spec is issues #9–#14, refined through a /grill interview.

What was built

  • #9 — trigger-ability added as a second, decisive acceptance axis in step 4, with its two premises. A pull-channel note now requires both axes.
  • #10 / #12 — one push channel (the target's CLAUDE.md) receives what fails an axis but stays useful: specific residue (fails generalizes) and proactive rules (generalize, not trigger-able). Source lines usually split across both channels.
  • #13 — the step-5 plan report becomes a complete ledger: per-note trigger line, contribution map, push write-set, ref-fixes, flagged-not-authored, and drops.
  • #11 — project cleanup now reconciles CLAUDE.md (capture-gated removal/trim) and fixes references to deleted files wherever they land.
  • #14 — branch-owned output location: project notes flat under 01 sources/claude/projects/, honoring any pre-existing grouping.

The resolved vocabulary is recorded in .claude/CONTEXT.md; the two-channel write decision (consume now writes outside the vault) in .claude/adr/0001.

Design decisions beyond the literal issues

  • Target-CLAUDE.md edits are auto-applied but as a separately, independently approvable write-set under one plan gate; a declined target write-set degrades to flagged suggestions.
  • Auto-written push content is CLAUDE.md only; hooks/checklists are flagged, not authored.
  • Destructive CLAUDE.md edits are gated on the general part being present in the wiki (this run or confirmed via /wiki), never on intention.

Closes #9, #10, #11, #12, #13, #14.

Review

Risk

Overall: HIGH

  • Blast radius: High — newly authorizes writes outside the vault (target CLAUDE.md) plus ref-repairs sweeping CLAUDE.md, CONTEXT.md, ADRs, and sibling specs across any target.
  • Reversibility: High — instructs destructive edits (trim/remove CLAUDE.md entries) and deletes spec/task files; recoverable only via the target's own git.
  • Test coverage: High — prose executed by an LLM with no test harness; the gating logic is enforced only by faithful reading.
  • Sensitive domain: High — governs a write-permission boundary the harness does not enforce, and performs file deletions.
  • Size & complexity: Medium — substantial routing rules, glossary, ADR, but linear step structure.
  • Runtime criticality: Medium — dev-only personal tooling, but a mis-followed run can delete scaffolding and gut a project's CLAUDE.md.

The High rating is inherent to what the skill does; the plan-approval gate, independent write-set approval, and capture-gated removal are the controls that make it safe.

Standards — unaddressed

  • Push-channel terminology (SKILL.md steps 5 & 8 vs CONTEXT.md). Left as-is deliberately: CONTEXT.md defines the push channel as the auto-written CLAUDE.md, while "hook or checklist" and "the target's other channels" refer to push knowledge that consume only flags — a real distinction, not a contradiction. All hard findings (authored-prose semicolons ×7, glossary "what it does" tails, ADR two-sentence line) were fixed in the diff.

Spec — unaddressed

  • .claude/CONTEXT.md and .claude/adr/0001 are outside the issues' stated Files (flagged as possible scope creep). Intentional: the CONTEXT.md was explicitly requested during the interview, and the ADR meets the domain-modeling criteria (hard to reverse, surprising, real trade-off). The Spec axis's substantive finding — freshly-mined residue having no write path — was fixed in the diff.
Reworks the `consume` skill around **two acceptance axes** (generalizes + trigger-able) and **two destinations** (the pull wiki + a push channel — the target's own `CLAUDE.md`), implementing as one coherent design the six issues filed from the first real consume run. No task file exists for this work; the originating spec is issues #9–#14, refined through a `/grill` interview. ## What was built - **#9** — trigger-ability added as a second, decisive acceptance axis in step 4, with its two premises. A pull-channel note now requires *both* axes. - **#10 / #12** — one **push channel** (the target's `CLAUDE.md`) receives what fails an axis but stays useful: **specific residue** (fails generalizes) and **proactive rules** (generalize, not trigger-able). Source lines usually *split* across both channels. - **#13** — the step-5 plan report becomes a **complete ledger**: per-note trigger line, contribution map, push write-set, ref-fixes, flagged-not-authored, and drops. - **#11** — project cleanup now reconciles `CLAUDE.md` (capture-gated removal/trim) and fixes references to deleted files wherever they land. - **#14** — branch-owned output location: project notes flat under `01 sources/claude/projects/`, honoring any pre-existing grouping. The resolved vocabulary is recorded in `.claude/CONTEXT.md`; the two-channel write decision (consume now writes outside the vault) in `.claude/adr/0001`. ## Design decisions beyond the literal issues - Target-`CLAUDE.md` edits are auto-applied but as a **separately, independently approvable** write-set under one plan gate; a declined target write-set degrades to flagged suggestions. - Auto-written push content is `CLAUDE.md` only; hooks/checklists are flagged, not authored. - Destructive `CLAUDE.md` edits are gated on the general part being present in the wiki (this run or confirmed via `/wiki`), never on intention. Closes #9, #10, #11, #12, #13, #14. ## Review ### Risk **Overall: HIGH** - Blast radius: High — newly authorizes writes outside the vault (target `CLAUDE.md`) plus ref-repairs sweeping `CLAUDE.md`, `CONTEXT.md`, ADRs, and sibling specs across any target. - Reversibility: High — instructs destructive edits (trim/remove `CLAUDE.md` entries) and deletes spec/task files; recoverable only via the target's own git. - Test coverage: High — prose executed by an LLM with no test harness; the gating logic is enforced only by faithful reading. - Sensitive domain: High — governs a write-permission boundary the harness does not enforce, and performs file deletions. - Size & complexity: Medium — substantial routing rules, glossary, ADR, but linear step structure. - Runtime criticality: Medium — dev-only personal tooling, but a mis-followed run can delete scaffolding and gut a project's `CLAUDE.md`. The High rating is inherent to what the skill does; the plan-approval gate, independent write-set approval, and capture-gated removal are the controls that make it safe. ### Standards — unaddressed - **Push-channel terminology (SKILL.md steps 5 & 8 vs `CONTEXT.md`).** Left as-is deliberately: `CONTEXT.md` defines the *push channel* as the auto-written `CLAUDE.md`, while "hook or checklist" and "the target's other channels" refer to *push knowledge* that consume only flags — a real distinction, not a contradiction. All hard findings (authored-prose semicolons ×7, glossary "what it does" tails, ADR two-sentence line) were fixed in the diff. ### Spec — unaddressed - **`.claude/CONTEXT.md` and `.claude/adr/0001` are outside the issues' stated Files (flagged as possible scope creep).** Intentional: the `CONTEXT.md` was explicitly requested during the interview, and the ADR meets the domain-modeling criteria (hard to reverse, surprising, real trade-off). The Spec axis's substantive finding — freshly-mined residue having no write path — was fixed in the diff.
alexion added 1 commit 2026-07-24 22:23:32 -04:00
Reworks the consume skill around two acceptance axes and two destinations,
implementing the six issues filed from the first real consume run as one design.

- Add trigger-ability as a second acceptance axis alongside generalizes, with
  its two premises; a pull-channel note now requires both (#9).
- Give consume a push channel — the target's own CLAUDE.md — for knowledge that
  fails an axis but is still useful: specific residue or proactive rules (#10).
- Name the general-lesson/specific-residue split and route each half (#12).
- Make the step-5 plan report a complete ledger with a per-note trigger line,
  push write-set, ref-fixes, flagged-not-authored, and drops (#13).
- Extend project cleanup to reconcile CLAUDE.md (capture-gated removal/trim) and
  fix references to deleted files wherever they land (#11).
- Encode a branch-owned output location: project notes flat under
  01 sources/claude/projects/, honoring any pre-existing grouping (#14).

Records the resolved vocabulary in .claude/CONTEXT.md and the two-channel write
decision in .claude/adr/0001.

Closes #9
Closes #10
Closes #11
Closes #12
Closes #13
Closes #14
alexion merged commit 52fc449824 into main 2026-07-24 22:28:46 -04:00
alexion deleted branch consume-two-channel-model 2026-07-24 22:28:46 -04:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: alexion/skills#15