governance: add surface/writing lane#472
Conversation
The writing surface's pages were unowned - no branch could legally touch src/pages/writing/**. One explicit lane, same shape as the other surfaces. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0176ZYTwoV8V4So9SBTizc5X
8add499 to
a6a21d3
Compare
|
Local handoff — cut the release (the CI sandbox's git proxy rejects tag pushes; run this at home) The checkout to Verify: each pushed tag fires one On failure: if a Generated by Claude Code |
|
Cut the release. Run every command in order, from the repository root, on a machine with push access. Verify: six deploy-production workflow runs appear in the Actions tab, one per tag, and all six finish green. On failure: re-run the failed deploy-production run from the Actions tab, or run the deploy-surface workflow manually with inputs surface= and env=production. This comment supersedes the handoff comment above. Generated by Claude Code |
|
Deploy the release to production. The tags and releases for 82a0366 exist but fired no deploys (they were created with an automation token, and GitHub suppresses workflow triggers for GITHUB_TOKEN events). Run every command in order on a machine where gh is authenticated as ChBrain. main is at 82a0366, the exact commit the six release tags point at, so the deployed content is identical to the tagged release. Verify: six deploy-surface runs appear in the Actions tab and finish green. On failure: re-run the failed run from the Actions tab. This comment supersedes the two handoff comments above. Generated by Claude Code |
The writing surface deploys to writing.kaihacks.ai and stages at
/writing/, butkhai-guard.config.jsonhas nosurface/writing/*lane — its pages undersrc/pages/writing/**are unowned, so per the branch contract no branch can legally touch them (creating a surface is a governance act; this is that act, after the fact).One explicit lane, same shape as the other surfaces. No page change rides along: on inspection the archive shelf already has a proper empty state via the Shelf chassis ("No captured runs deposited yet…"), so this is purely unblocking future writing-surface work.
🤖 Generated with Claude Code
https://claude.ai/code/session_0176ZYTwoV8V4So9SBTizc5X