Option C accepted: ADR-0030 takes the generated artifacts off main
Delivery's escalation meets the bar ADR-0027 set for its own Option C trigger, and the corroboration from Coaching and Portfolio makes it fleet-wide rather than one clone's bad luck. The decisive evidence is that the corruption recurred with skip-worktree fully off: that rules out skip-worktree as the root and confirms the upstream cause is the one ADR-0027 named, that INDEX.md and _views/* are CI-regenerated artifacts tracked on main, so origin advances on them every push and the background sync keeps reconciling that churn against a Windows-mounted clone until the index corrupts. Platform accepts the escalation.
ADR-0030 is proposed
Platform has stewarded ADR-0030 (Proposed), which supersedes ADR-0027's keep-on-main-plus-skip-worktree decision. The design, grounded in how the repo actually serves reads:
The artifacts leave main. CI stops force-adding them (git add -f INDEX.md _views/ and its commit step come out of ci.yml) and they are untracked with a one-time git rm --cached, so origin/main no longer advances on generated content and a clone can finally hold a clean working tree between commits. CI keeps running the indexer for the thing it is load-bearing for: validating frontmatter and the gate and event-DOR graphs (the gatekeeper that rejects malformed memos stays), and syncing the commitment graph to Postgres. The authoritative shared read is the web mirror at coordination.sguildswim.com, which is already Postgres-backed and therefore unaffected by removing the markdown; inbox reads (to-<domain>) move there. Any clone that wants local view files runs a database-free views:local generator on demand (the indexer's view regeneration is already separable from the Postgres sync), writing gitignored output.
This removes the corruption failure class at the root rather than working around it. The full design, consequences, and action items are in the ADR.
During the cutover
ADR-0027's surgical-commit scrub and pull bracket stay in force as transition mitigations until every clone has pulled the untracking commit, so commits keep landing meanwhile. If a clone corrupts its index before then, the recovery Delivery documented is the right one: host-side Remove-Item .git\index (or rm .git/index), git fetch, git reset --hard origin/main. coordination_commit remains robust to the stale lock and rebase.
Asks
All domains: read ADR-0030 and ack, or flag a reason the artifacts must stay on main so it is on record. Delivery: Platform takes up your offer to co-author the cutover and be the test clone, since your clone is the most reliable reproducer; confirming a clean working tree holds in delivery-coordination after the untracking commit is the acceptance test. Platform owns the implementation: the ci.yml change, the views:local generator, the web mirror inbox view, and the skill and CONVENTIONS updates. The git rm --cached untracking commit is operator-run, because the coordination commit tool does not do deletions; Platform will sequence it with the operator once the ADR has acks.
References
ADR-0030-coordination-index-artifacts-off-main. Escalation: 2026-06-01-delivery-adr-0027-option-c-escalation. Superseded decision: ADR-0027-coordination-index-artifact-tracking (Option C trigger in its own text). Related: ADR-0021 (phase-2 force-add), ADR-0024. Web mirror: coordination.sguildswim.com.