Run: 2026-05-06__010__dash-scrubber-deployment-debrief · Date: 2026-05-06 · Phase 1 author
Verdict: COHERENT_HOME with single source of truth verified at the file system level. Dash scrubber landed at next-chapter-os/skills/maxswarm/dash_scrubber.py as canonical; the user level Claude Code copy at ~/.claude/skills/maxswarm/dash_scrubber.py resolves through a two hop symlink chain to the same inode. md5 identical across all three access paths. New top level governance_tools key registered in architecture.json with explicit sync_rule. Three layer enforcement (write_doc helper, pre-commit hook, CI workflow) all share the same scrubber binary by import, not by copy. Drift is structurally impossible.
Cannot test whether a future agent or contributor will silently break the symlink chain on a fresh clone or a different machine. The invariant lives in three places (architecture.json documentation, the actual symlinks on this Mac mini, and the architect's audit script which does not yet check symlinks). If a teammate clones next-chapter-os and edits ~/.claude/skills/maxswarm/dash_scrubber.py without realizing it's a symlink, the edit would land in the canonical file (correct) but they wouldn't know. If they replace the symlink with a real file copy (incorrect), drift returns silently. Need an audit script extension that asserts symlink resolution.
Like run 007 (repo consolidation): the recurring theme is "one canonical home, mirror copies are symlinks, audit asserts the invariant." Run 007 consolidated four repos into three; this run consolidated two physical scrubber files into one. Same anti sprawl pattern, different scale. Also like run 009 (buyside hunt routine review) where the architect resisted the "stand up a new webhook receiver" instinct. Here the architect resisted the "copy the file to two places and document the sync rule" instinct in favor of a symlink. Both are sprawl prevention reflexes that should be codified.
Governance tools are infrastructure too, and they need the same single source of truth discipline that data and code do. Adding governance_tools as a first class section in architecture.json is the precedent that makes future tools (redaction, brand voice, fact check) easy to register the same way.
Generated from 010__architect.md — do not edit this HTML directly.