Skip to content

Claudinite growth: dedup local packs against the canon - #71

Merged
missingbulb merged 1 commit into
mainfrom
growth-dedup-2026-07-29-24238
Jul 29, 2026
Merged

Claudinite growth: dedup local packs against the canon#71
missingbulb merged 1 commit into
mainfrom
growth-dedup-2026-07-29-24238

Conversation

@missingbulb

Copy link
Copy Markdown
Owner

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."

The promotion ladder still applies: anything deterministic enough to decide mechanically becomes a check in pack.mjs's rules (with a red-first fixture in a pack.test.mjs alongside), and only what a check can't carry stays as prose here.

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's rules … ship it with a red-first fixture … and only what neither can carry lands as terse prose in the pack's RULES.md"), and again in grow_with_claudinite/tasks/growth-extract/task.md §3. The local sentence made exactly that general point, leaning on this repo's pack.mjs/pack.test.mjs names 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.

They sit in the pack, not alongside the app sources~~, because a consumer file may not reference into .claudinite/ (the claudinite-isolation barrier)~~ (claudinite-isolation).

Covered by the basics check claudinite-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-privacy checks no-network-client and on-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 (basics RULES.md, its skills, and the rest carry nothing about staged artifacts or git 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

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
@missingbulb
missingbulb merged commit 148d022 into main Jul 29, 2026
@missingbulb
missingbulb deleted the growth-dedup-2026-07-29-24238 branch July 29, 2026 13:31
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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants