rdmsm4x-changelog-20260915-1740-dev-root-CLAUDE-md-orientation-section
2026-09-15 17:40:04 EDT · rdmsm4x · session_012cXdr2uPhnPS1cQfbt9pPQ
CORRECTION 2026-09-15 21:4x EDT — the bitROO finding in this record is WRONG and is retracted.
apps/bitROO/CLAUDE.mdis a symlink to../CLAUDE.md(index mode 120000, in place since 2026-08-22 18:12), not a byte-identical copy.shasumandstatFOLLOW symlinks, so it hashed identical to its own target and reported a different inode with links=1 — indistinguishable from a real duplicate. The symlink is the CORRECT pattern: it cannot drift, so bitROO inherits everyapps/CLAUDE.mdfix automatically. Acting on the finding would have replaced a working symlink with a real file and CREATED the divergence it warned about. A full re-sweep withfind -type ffound 192 regular-fileCLAUDE.mdand zero ancestor/descendant duplicate pairs tree-wide. Ticket DOC-20260915-01 was opened, then resolved INVALID with the disproving measurement.~/dev/CLAUDE.mdsection 4 now documents the symlink pattern and the measurement trap instead. Everything else in this record stands as written and was re-verified.
Added a verified engineering-orientation section to the canonical
~/dev/CLAUDE.md, which previously contained coordination
policy only and no codebase documentation. Rich's policy text is
unchanged byte-for-byte; the new section is prepended above it.
Scope
- Host:
rdmsm4x(canonical hub). Fleet-wide in effect, because~/dev/CLAUDE.mdis inherited by every agent working any project under~/devon any of the six Macs. - Files touched:
/Users/richh/dev/CLAUDE.md(17,460 -> 29,067 bytes). - Nothing else created, moved, or deleted.
~/devis not a git repo, so there is no commit.
What was added
A # ~/dev — what this tree is, and how to work in it
section, 8 subsections:
- Hub-of-repos reality: 187 independent repos, per-domain counts, no root build/test/git.
- Reading order on landing, and which large root docs NOT to load
whole (
MORNING-START-HERE.md89 KB, rootISSUES.md56 KB,PROJECTS.mdis a banner log). Table of the_-prefixed operational directories. - Build and test: canonical universal2 SwiftPM command, the
lipo -archsgate,build.shpattern,lib/four_platform_gate.zsh; the three build checks that cannot fail; uv/pytest and the env-var hermeticity of roottests/; record counts not "green". - Per-project doc-set convention with measured prevalence; the
CLAUDE.mdwalk-up chain. ticketCLI as the concurrency control (claim leases), with the command set.- Shell traps measured live on this host (see Evidence).
- Fleet scripts:
dev_update.zshv1.99 self-containment rationale,~/binworktree helpers. - The pre-existing double "rule 28" numbering, documented rather than renumbered.
Verification evidence
- Original policy intact: extracted the suffix from
^# Global agent cooperation policy$to EOF andcmp-compared against a pre-edit copy — IDENTICAL, zero bytes altered. Both rule-28 lines still present at lines 247 and 296. 30 numbered rule items before and after. - Counts asserted in the doc, all re-measured: 187
repos (depth<=4, excluding
_*,archive/,.build/,checkouts/); apps 68, lib 29, concepts 20, sites 11, arista 8, net 7, fleet 7; 36Package.swift, 10.xcodeproj, 14build.shunderapps/(worktrees excluded); tickets 475 open / 465 resolved;_worktrees159,_handoff389. - Toolchain: Swift 6.4 (swiftlang-6.4.0.34.1), Xcode
27.0 (27A266a),
xcode-select -p=/Applications/Xcode-27.0-RC.app/Contents/Developer. - Shell options verified live, not assumed:
[[ -o nomatch ]]= ON,[[ -o bareglobqual ]]= OFF,[[ -o extendedglob ]]= OFF. Reproduced the failure (print -l foo/*(N)->no matches found: foo/*(N)) and confirmed both documented workarounds succeed (setopt null_glob-> empty expansion rc=0;setopt bare_glob_qual->(N)honored rc=0). - Duplicate-inheritance defect confirmed by hash:
apps/CLAUDE.mdandapps/bitROO/CLAUDE.mdare both SHA-256baf3f942a656fcd08d6e790742c4655fc32558da1ee9ef82dbb202b167b2b4b9. Documented as a known defect; NOT fixed in this session. - Heading tree of the new section rendered and inspected; no heading reparented.
Backup / how to undo
Pre-edit copy:
/private/tmp/claude-501/-Users-richh-dev/024d2323-7537-4953-8a33-302e8fc2387d/scratchpad/CLAUDE.md.bak-20260915-173758
(session scratchpad — NOT durable across reboot). To revert, delete
everything above and including the --- separator that
precedes # Global agent cooperation policy; the file below
that line is the original in full.
Outstanding owner actions
- None required. Two items surfaced for the backlog, neither actioned:
apps/bitROO/CLAUDE.mdshould inheritapps/CLAUDE.mdrather than duplicate it.- The policy's double "rule 28" numbering is Rich's to renumber.
No secrets, credentials, tokens, or signed URLs appear in this record or in the edited file.