Growth dedup: prune gcec local items the canon now covers - #775
Merged
Conversation
Three items in the gcec pack's always-injected RULES.md restated rules the
mounted canon (stamp 526c991) now carries, stripped to their project residue:
- "bump version": the raise-both-files / default-minor mechanics are the
basics pack's bump-version skill plus chrome-extension-release RELEASE.md
("**\"bump version\"** = edit the manifest and `package.json` ... together on
a branch — default the next **minor** — and land on `main` via a normal PR").
Kept: end-to-end release semantics, explicit target/level, the merge
authorization, and waiting for the published zip.
- Extractor pipeline / SCRAPER_API_KEY: the required_secrets wiring and the
no-workflow-just-to-hold-a-secret rule are basics/scheduled-tasks.md ("A task
lists what it needs in `required_secrets`; the wiring converge stamps each
name into the scheduler workflow ... **a workflow that exists only to hold a
secret is redundant** — fold its work into the task's preprocessing rather
than dispatching and polling a second workflow from an agent"). Kept: that
scraperapi.mjs is the only fetch surface and the no-local-fetch rule.
- Capture policy: the check > skill > terse-prose ladder is
grow_with_claudinite/extracting-lessons.md ("a deterministic rule becomes a
**check** in that pack's `rules` ... an activity-scoped procedure becomes a
**pack skill**, and only what neither can carry lands as terse **prose** in
the pack's `RULES.md`"). Kept: that gcec is this repo's capture surface and
the intra-pack section routing.
Refs #772
Refs #685
This was referenced Jul 28, 2026
missingbulb
added a commit
that referenced
this pull request
Jul 28, 2026
Reverts c4d6c7a (#771). The lesson it landed encoded the owner's personal merge trigger phrase into this repo's pack, and explained why a canon skill was not mounted here. Neither belongs in a project pack: the phrase is the owner's, injected per-session and changed without this repo hearing about it, and pack mounting is engine plumbing rather than knowledge about this codebase. Also removes two pre-existing instances of the same mistake: - The "SessionStart hook never fired" working rule (#766) — a Claudinite loading issue explained in a pack, justified by the same preference. Its own tracker note already flagged it as unreadable in exactly the session that needs it. - The narrative use of the phrase in the merge-and-ci skill's auto-merge evidence (#746), now neutral. That rule stands; only the phrase is gone. Records the general filter in the capture policy so future extract runs do not re-derive any of this: personal preferences, Claudinite loading mechanics, and anything derived from product requirements never land in a pack, however strong the evidence. Packs carry development-process lessons only. Each turns on what a lesson is about rather than anything observable in a working tree, so they are prose and deliberately not checks. Rebased onto #775, which pruned this same capture-policy paragraph while this change was in flight; its dedup is preserved and the exclusions were rewritten in its tighter voice. Refs #770
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 2026-07-28 (dispatched by #772; standing log #685).
Re-checked the gcec local pack against the mounted canon (stamp
526c991,.claudinite-checks.json), focused on the newly-changed packs named in the dispatch Context:basics,chrome-extension-release,chrome-extension,github-actions,grow_with_claudinite,product-wiki,tidy-repo.Net: 9 insertions, 19 deletions in
.claudinite/local/packs/gcec/RULES.md— the always-injected prose. Nothing else touched; no canon file touched.What was pruned, and what covers it
versionin bothextension/manifest.jsonandpackage.json(kept identical by theshared-constantscheck), on a branch. Default to a minor bumppacks/chrome-extension-release/RELEASE.md: "Minor/major bumps are deliberate and human: "bump version" = edit the manifest andpackage.json(plus any repo version-sync constant) together on a branch — default the next minor — and land onmainvia a normal PR." + thebasicspack's mountedbump-versionskill (same trigger phrase). Version sync is also enforced by theshared-constantsandcer/version-syncchecks.vX.Y.Zzip.required_secrets… is what puts it in the scheduler workflow's env (and what gets the owner asked for it); never an agent session (which holds no repo secrets); Never re-introduce a workflow whose only job is to hold that secret for an agent:fetch-page.ymlwas exactly that, and the dispatch/poll/pull round-trip…packs/basics/scheduled-tasks.md: "Preprocessing runs Action-side, so repo Actions secrets are reachable there and nowhere else in a task's life (an executor session carries none). A task lists what it needs inrequired_secrets; the wiring converge stamps each name into the scheduler workflow … and baselining asks the owner … a workflow that exists only to hold a secret is redundant — fold its work into the task's preprocessing rather than dispatching and polling a second workflow from an agent." (also thescheduler-workflow-shape/gha/no-scheduled-fleet-executorchecks)scraperapi.mjsis the single fetch surface, from preprocessing and nowhere else;SCRAPER_API_KEYis the escape hatch, named in both tasks'required_secrets; never a local fetch (this sandbox is bot-blocked); the wait-for-selector aid.rulesbeats prose every time (… a testable sentence became a rule module with red-first fixtures); an activity-scoped procedure becomes a pack skill; only what neither can carry lands in RULES.md, tersepacks/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(its failure message is the lesson; ship it with a red-first fixture), an activity-scoped procedure becomes a pack skill, and only what neither can carry lands as terse prose in the pack'sRULES.md." (same inpacks/grow_with_claudinite/README.md§"Identifying a project's capture surface" andpacks/basics/RULES.md§3)test-offline-list-syncworked example.Considered and deliberately kept (says more than the canon)
git checkout <old-branch> -- <paths>destroying uncommitted edits ([claudinite-task] grow_with_claudinite/growth-dedup d2026-07-25 #734) — the canon's git material covers unique branch naming and merge flow, not this.merge-and-ci-not-merge-to-main— already framed as this repo's divergence from the canon recipe, andgit-githubis not a declared pack here.engineering-practices,generated-merge-driver) owns the discipline, but the local bullet's artifact list, the part-authored gallery exception and the "don't paper over a coverage regression" caveat say more.tasks/— their scheduler/dispatch preamble overlapsscheduled-tasks.md, but it is behavioral instruction at the point of use and pruning it risks regressing the worker; left alone per "when unsure, leave it".Verification
npm run test:offline— 364 tests, 0 fail.node .claudinite/shared/engine/checks/check_the_world.mjs— 0 blocking, 10 advisory (all pre-existingfile-placementadvisories ondev/requirements/**).RULES.mdshrinks (thededup-prune-integrityinvariant), and no canon rule is restated into the local pack.Human approval gate — this task's declared
expected_outcomeisopen-pr; it does not merge itself.Refs #772
Refs #685
Generated by Claude Code