Claudinite growth: dedup local packs against the canon - #71
Merged
Conversation
Prune two local-pack README lines the mounted canon now covers, per the grow_with_claudinite/growth-dedup yardstick for this run (basics, github-actions, grow_with_claudinite, tidy-repo). Refs #70
This was referenced Jul 29, 2026
This was referenced Jul 30, 2026
missingbulb
added a commit
that referenced
this pull request
Jul 30, 2026
Strip two portable rule restatements from the local packs' module headers — the twins of the two README lines PR #71's dedup run pruned, left behind in the .mjs files it didn't reach. - laughcounter/pack.mjs: drop the local promotion-ladder clause ("anything deterministic enough to check belongs in `rules` instead, and should move there when it appears"). Canon owns it: packs/basics/RULES.md:11 routes a rule "through the mechanism promotion ladder (platform setting -> hook -> check -> skill -> prose)", and growth-extract/task.md:23 spells the local form: "a deterministic rule becomes a check in that pack's `rules` ... and only what neither can carry lands as terse prose in the pack's RULES.md". Residue kept: this pack carries prose only for now. - on-device-privacy/pack.test.mjs: drop the restated isolation rule ("because a consumer file outside .claudinite/ may not reference into it"), keeping the pointer in the pack's own `(claudinite-isolation)` convention. The canon check enforces it: rule id `claudinite-isolation` -- "Outside the wiring files ..., nothing may reference .claudinite/". Refs #85 Co-authored-by: Claude <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Growth dedup run for #70. Yardstick for this run, per the dispatch Context: the newly-changed canon packs
basics,github-actions,grow_with_claudinite,tidy-repo— nothing outside those four was used as coverage.Both local packs (
on-device-privacy,laughcounter) were re-checked in full — prose, READMEs, and the two local checks. Two README lines were pure canon in local dress; everything else stays.Pruned
1.
.claudinite/local/packs/laughcounter/README.md— stripped the promotion-ladder restatement, keeping only "Prose-only so far."Covered by
grow_with_claudinite/extracting-lessons.md("Route to the local pack that owns it, and prefer the strongest mechanism — the local promotion ladder … a deterministic rule becomes a check in that pack'srules… ship it with a red-first fixture … and only what neither can carry lands as terse prose in the pack'sRULES.md"), and again ingrow_with_claudinite/tasks/growth-extract/task.md§3. The local sentence made exactly that general point, leaning on this repo'spack.mjs/pack.test.mjsnames as illustration.2.
.claudinite/local/packs/on-device-privacy/README.md— stripped the restatement of the isolation rule from the fixture-placement note; the pointer to the check id stays.Covered by the
basicscheckclaudinite-isolation— "Outside the wiring files (.claude/,.gitignore,.gitattributes,.github/workflows/, the settings file), nothing may reference.claudinite/". The residue keeps the local fact (where the fixtures live) and the check-id pointer, without carrying the canon rule's text.Kept (and why)
on-device-privacy/RULES.md, all five entries (metadata-not-audio, one deletable directory, no egress at all, no server/listener, usage strings stay true) — each asserts something stronger and narrower than anything in the four in-scope packs; none of the four touches the privacy boundary.on-device-privacychecksno-network-clientandon-device-speech— no canon check in the four scoped packs enforces either; both stay, with their fixtures.laughcounter/RULES.md's.gitignore-pruning lesson — no coverage anywhere in the four packs (basicsRULES.md, its skills, and the rest carry nothing about staged artifacts orgit diff --cached --stat).Verification
node --test .claudinite/local/packs/on-device-privacy/pack.test.mjs→ 4/4 pass.node .claudinite/shared/engine/checks/check_the_world.mjs→ clean (incl.dedup-prune-integrity: both files shrink, no canon restatement added).Do not merge without owner review — this task's outcome ceiling is
open-pr.Refs #70
Generated by Claude Code