Drop vendored-canon path from CLAUDE.md orientation header - #34
Merged
Conversation
The header's parenthetical spelled the mount path — "(vendored at `.claudinite/shared/`, injected at session start)" — which tripped claudinite-isolation: consumer files must not couple to the vendored canon. The path was pure orientation. Nothing in the header tells a reader to open that directory, and "injected at session start" already conveys the part that matters: the canon arrives automatically, so you never go fetch it. Naming the mount point added a coupling to a canon-internal layout while adding nothing a reader could act on — exactly the crossing the rule exists to prevent. Removing it is right rather than accepting it, since an accept is for a crossing that must exist, and this one carried no instruction at all. Reworded to "vendored into this repo and injected at session start", which keeps both facts (it is vendored; it is automatic) and loses only the path. Refs missingbulb/Claudinite#394 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LgokEeqgbFvhbLqbYwxHgx
This was referenced Jul 26, 2026
This was referenced Jul 26, 2026
missingbulb
added a commit
that referenced
this pull request
Aug 7, 2026
Three lessons from the 2026-07-26..08-02 window, into the laughcounter local pack as prose. #74/#75: diagnosing the installTap crash stalled on "which binary is installed?" — the menu said only "LaughCounter", and several distinct builds all reported 0.2.1, because the release workflow keys its Release on v<version> from Info.plist, so a merge that leaves CFBundleShortVersionString alone refreshes the same Release behind the latest/download link. Durable part: show version and build from Bundle.main (not a source constant that could disagree with the DMG), and bump per distinguishable build. #56: the scheduler ran green nightly while silently skipping baselining ("no vendored mount (no stamp)") because the vendored loadConfig dropped the `claudinite` key it had just validated. Durable part: a job whose success and whose no-op look identical from outside is telling you nothing — read the skip line; and a bug inside the mechanism that updates itself has to be fixed out of band. #34: claudinite-isolation fired on CLAUDE.md's mount path, which carried nothing a reader could act on. Durable part: before adding an `accept`, delete the flagged text and see whether anything actionable went with it — an accept is for a crossing that must exist. Nothing new from the mac window (#59, #73, #77, #78, #87, #100, #101, #108): dev/procedures/mac-audio-lifecycle.md already records the engine-per-start rule, the inputFormat-vs-outputFormat trap, the aggregate churn, the three-state health reporting, the witnessed-arrival settle rule and the observation-gap rule in full. #55, #69, #84 and #99 are already carried by this pack's existing prose and the on-device-privacy checks. #32's "prove the check is live" is the see-it-fail discipline the canon owns. Conversation-logs half: the 2026-08-01 logs are the #108 session (fully covered above) and unattended task runs; no new friction lesson. No retention_days configured, so no prune. Refs #113. Claude-Session: https://claude.ai/code/session_01G52dxZvLCxyZJJnvLrYcQs Co-authored-by: Claude <noreply@anthropic.com>
This was referenced Aug 16, 2026
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.
Fixes the repo's one blocking
claudinite-isolationfinding atCLAUDE.md:4.What the reference was
Why removing it is right
The path was pure orientation. Nothing in the header instructs a reader to open that directory, and "injected at session start" already carries the part that matters — the canon arrives automatically, so you never go fetch it. Naming the mount point coupled the file to a canon-internal layout while giving the reader nothing to act on, which is precisely the crossing the rule exists to prevent.
An
acceptwould have been the wrong tool here: it is the escape hatch for a crossing that must exist, and this one carried no instruction at all. Reworded to "vendored into this repo and injected at session start" — both facts survive (it is vendored; it is automatic), only the path is gone.Verification
node .claudinite/shared/engine/checks/check_the_world.mjsclaudinite-isolationCLAUDE.md:4)Clean run, no findings at all. One line changed; nothing else touched.
Note for the canon owner
This header shape is not unique to this repo — it looks like canon-generated boilerplate.
tldrcarries the same orientation sentence in a different wording (This repo's own project guidance; the shared Claudinite canon is vendored at+`.claudinite/shared/`) and fires the identical finding at its ownCLAUDE.md:4, plus a second atdev/procedures/working-instructions.md:6.Worth flagging separately: the rule's own
descriptioninpacks/basics/claudinite-isolation.mjslists CLAUDE.md as a wiring exception ("Outside the wiring files (CLAUDE.md, .claude/, …)"), but the edge'sexceptarray omits it — it carves out.claudinite,.claude,.github/workflows,.gitignore,.gitattributes,.claudinite-checks.jsononly. So the rule is firing on a file its own description says is exempt. That is a canon-side discrepancy rather than anything these consumer repos did wrong. Raised in missingbulb/Claudinite#394.Refs missingbulb/Claudinite#394
Generated by Claude Code