Prompt file imported from olddognewflex/tkt (
.windsurf/workflows/deploy-ready.md). Copyright stays with the author.
/deploy-ready
Pick up tickets in deploy_ready, annotate QA lane times, merge the PR, watch staging, gate manual production deploy. Ticketing via tkt; Git host via gh.
Steps
- Find deploy_ready tickets:
tkt list --query deploy_ready --json. 1.5. After-hours hold:tkt schedule --jsonreportslabelandin_window(exit 2 = misconfigured: fail closed and hold). Undertkt run KEYconsider only KEY. During business hours drop tickets carrying the label and take the next eligible ticket; held tickets wait without blocking others. Only when every deploy_ready ticket is held: comment each, echoHOLD, stop before merge/staging (undertkt run, outcomegate). Re-run outside the window proceeds normally. - Annotate QA-lane times:
tkt lane-time "$KEY" --role qa_ready,qa,deploy_ready. - Find the PR:
gh pr list --repo $(tkt cfg vcs.repo) --search "$KEY in:title,body". - Merge:
gh pr merge "$PR" --repo $(tkt cfg vcs.repo) --$(tkt cfg vcs.merge) --auto. Poll untilMERGED. - Watch staging workflow matched by merge commit SHA.
- Comment and hand off to QE.
- Present production deploy gate (manual); if
tkt schedulereports business hours and any deploy_ready ticket carries the after-hours label, warn to trigger it only outside the window. - Monitor production deploy once triggered.
- Transition to
doneonly if prod workflow truly deploys; otherwise leave indeploy_ready.
Output
- Tickets transitioned (or left for human Done)
- Production run URL
- Any deploy friction
Rules
- Repo/workflow names from
tkt cfg. - Production deploy is manual.
tkt lane-timeis a no-op when time tracking is disabled.