feat(land): new /land skill — land a PR through the right merge regime

Extracts the land half of /land-and-deploy into a standalone, composable
skill: pre-flight, CI wait, VERSION-drift, the pre-merge readiness gate
(with --fast), and a regime-aware merge that drives bin/gstack-merge.
Confirms landing (state==MERGED + commit on base, handling rebase-null oid)
and writes the last-land.json handoff. Carries the never-blind-retry
post-failure invariant (cli/cli#3442, cli/cli#13380).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Garry Tan
2026-05-31 09:13:21 -07:00
parent e7741d9841
commit 948f55d1ab
4 changed files with 1690 additions and 0 deletions
+5
View File
@@ -143,6 +143,11 @@
"routing": "Updates StateServer.swift, DebugOverlay.swift, Package.swift,\nand the typed @Observable state accessors. Use after you upgrade gstack\nor add new ViewModels/properties that need accessor coverage.\nUse when asked to \"resync the iOS debug bridge\", \"regenerate iOS\naccessors\", or \"update the gstack iOS instrumentation\".",
"voice_line": "Voice triggers (speech-to-text aliases): \"resync the iOS debug bridge\", \"regenerate iOS accessors\", \"update the gstack iOS instrumentation\"."
},
"land": {
"lead": "Land a PR through the right merge regime: pre-flight, CI wait, VERSION-drift check, pre-merge readiness gate, then merge via no-queue,",
"routing": "GitHub native merge\nqueue, or trunk.io merge queue. This is the \"land\" half of /land-and-deploy,\nusable on its own when you want to merge but not deploy. Use when: \"land\",\n\"land the pr\", \"land it\", \"merge\", \"merge the pr\", \"merge it\", \"get it merged\".\nFor deploy + canary verification after landing, use /land-and-deploy.",
"voice_line": null
},
"land-and-deploy": {
"lead": "Land and deploy workflow.",
"routing": "Merges the PR, waits for CI and deploy,\nverifies production health via canary checks. Takes over after /ship\ncreates the PR. Use when: \"merge\", \"land\", \"deploy\", \"merge and verify\",\n\"land it\", \"ship it to production\".",