From draft
Generates a pre-deployment verification checklist customized to the project's tech stack, including rollback triggers and graph-based module boundary validation.
How this skill is triggered — by the user, by Claude, or both
Slash command
/draft:deploy-checklistThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
You are generating a pre-deployment verification checklist customized to this project's technology stack.
You are generating a pre-deployment verification checklist customized to this project's technology stack.
When draft/graph/schema.yaml exists, this skill must follow the graph-first lookup contract in core/shared/graph-query.md §Mandatory Lookup Contract. Use the graph to validate module boundaries before the deploy:
"$DRAFT_TOOLS/graph-impact.sh" --repo . --file <path> to enumerate the modules affected — flag any module not declared in hld.md §Detailed Design as a deployment-scope miss."$DRAFT_TOOLS/cycle-detect.sh" --repo . (and query "$DRAFT_TOOLS/graph-arch.sh" --repo . for the module overview) to ensure no fresh cycles were introduced after HLD sign-off."$DRAFT_TOOLS/hotspot-rank.sh" --repo . — any hotspot in the diff escalates the Resiliency row of Phase 0.Filesystem grep is reserved for source-text scans (migration file names, flag-key strings). Module/impact discovery goes through the graph.
See shared red flags — applies to all code-touching skills.
Skill-specific:
Every deployment needs a rollback plan. No exceptions.
Before starting, capture the current git state:
git branch --show-current # Current branch name
git rev-parse --short HEAD # Current commit hash
Store this for the checklist header. The checklist is scoped to this specific branch/commit.
ls draft/ 2>/dev/null
If draft/ doesn't exist, this skill can still run standalone — generate a generic checklist.
Read and follow the base procedure in core/shared/draft-context-loading.md.
Canonical chain documented in core/shared/verification-gates.md. A single non-zero exit aborts the checklist and the output groups defects by validator.
TRACK_DIR="$1" # absolute path to track-under-deploy, or .
DRAFT_TOOLS="$(cat ~/.cache/draft/plugin-root 2>/dev/null)/scripts/tools"
[ -d "$DRAFT_TOOLS" ] || DRAFT_TOOLS="$(ls -d ~/.claude/plugins/cache/*/draft/*/scripts/tools 2>/dev/null | sort -V | tail -1)"
[ -d "$DRAFT_TOOLS" ] || DRAFT_TOOLS="$(ls -d ~/.claude/plugins/marketplaces/*draft*/scripts/tools 2>/dev/null | tail -1)"
[ -d "$DRAFT_TOOLS" ] || DRAFT_TOOLS="$PWD/scripts/tools"
"$DRAFT_TOOLS/check-track-hygiene.sh" "$TRACK_DIR" || rc=$?
"$DRAFT_TOOLS/verify-citations.sh" "$TRACK_DIR" || rc=$?
"$DRAFT_TOOLS/verify-doc-anchors.sh" "$TRACK_DIR" || rc=$?
"$DRAFT_TOOLS/check-graph-usage-report.sh" "$TRACK_DIR" || rc=$?
"$DRAFT_TOOLS/check-scope-conflicts.sh" "$TRACK_DIR/.." || rc=$?
"$DRAFT_TOOLS/diff-templates-vs-tracks.sh" "$TRACK_DIR" || rc=$?
After the chain runs, write the result into metadata.json:pre_deploy_status
(passing / failing / bypassed). The downstream checklist sections must
not be considered "ready to deploy" if pre_deploy_status != passing.
Check for arguments:
/draft:deploy-checklist — Interactive: detect active track or ask for service name/draft:deploy-checklist <service> — Generate checklist for named service/draft:deploy-checklist track <id> — Generate from track's change scopeIf a track is active: read draft/tracks/<id>/spec.md and plan.md for change scope.
draft/tech-stack.md — Identify deployment-relevant tech:
draft/workflow.md — Deployment conventions, toolchain (git)draft/.ai-context.md — Service topology, dependenciesdraft/tracks/<id>/hld.md and lld.md if present — these are the source of truth for HLD §Checklist (Performance, Scale, Security, Resiliency, Multi-tenancy, Upgrade, Cost, Flags), §Deployment, §Observability, and LLD §Alerting Thresholds. The deploy checklist validates they are populated.Generate a four-phase checklist customized to the project's tech stack. Adapt items based on what the project actually uses — omit irrelevant items (e.g., skip database items if there is no database) and add project-specific items discovered in context.
** blocker:** the HLD's §Checklist sections were the design-time commitment. If they are still empty at deploy time, the design was never validated against operational reality. This phase enforces that.
For criticality ∈ {high, mission-critical} (read from hld.md frontmatter classification.criticality), every row below MUST be checked before Phase 1 begins. For standard criticality, missing rows produce warnings but do not block. For low, this phase is informational.
HLD §Performance populated — QPS and p95 latency stated
HLD §Scale populated — horizontal scaling story documented; bottlenecks named
HLD §Security populated — credentials, RBAC, encryption answered
HLD §Resiliency populated — failure modes and graceful degradation described
HLD §Multi-tenancy populated — isolation, predictable performance, migration covered
HLD §Upgrade populated — backward compat, dependent service order, blast radius
HLD §Flags and Controlled Rollout populated — flag names, kill switches
HLD §Cost Implications populated — Cloud cost calculation included for SaaS deployments
HLD §Deployment populated — DP/CP platform call answered (on-prem / SaaS / Cloud Console / IBM cloud)
HLD §Observability populated — key metrics named with thresholds
HLD §Approvals table signed by Technical Leads and Architecture Review Board (and Cloud Operations if SaaS, QA if on-prem) — Date column populated
LLD §Alerting Thresholds table populated (when lld.md exists) — every metric has Threshold, Severity, Action
If any blocker row is empty for high/mission-critical: STOP. Do not generate Phases 1–3, do not run Step 5 (Save Output), and do not create the deploy-checklist.md file. Tell the developer: "HLD/LLD §[section] is empty for a [criticality] track. Fill it in hld.md / lld.md before deploy. Run /draft:decompose to refresh structural sections; author-driven sections must be filled manually."
If a partial file is needed for tracking, write it with status: BLOCKED in the frontmatter and _latest symlinks must NOT be updated — /draft:upload Step 2.5 detects status: BLOCKED and refuses to treat the file as a passing checklist.
npm audit / pip audit / equivalent)[specific rollback command] ready to executeInitiate rollback if ANY of these occur:
Present the checklist interactively. For each critical item (marked bold):
Allow the user to:
MANDATORY: Include YAML frontmatter with git metadata. Follow core/shared/git-report-metadata.md.
Include the report header table immediately after frontmatter:
| Field | Value |
|-------|-------|
| **Branch** | `{LOCAL_BRANCH}` → `{REMOTE/BRANCH}` |
| **Commit** | `{SHORT_SHA}` — {COMMIT_MESSAGE} |
| **Generated** | {ISO_TIMESTAMP} |
| **Synced To** | `{FULL_SHA}` |
Save to:
draft/tracks/<id>/deploy-checklist.mddraft/deploy-checklist-<timestamp>.md with symlink deploy-checklist-latest.mdTIMESTAMP=$(date +%Y-%m-%dT%H%M)
# Example: draft/deploy-checklist-2026-03-15T1430.md
ln -sf deploy-checklist-${TIMESTAMP}.md draft/deploy-checklist-latest.md
Before saving the checklist file, internally verify and report:
impact, cycles, modules).grep/find run, name the concept it searched for.If draft/graph/schema.yaml does not exist, set Graph files queried: NONE and use justification graph data unavailable.
Emit the canonical footer from core/shared/graph-usage-report.md. The lint hook scripts/tools/check-graph-usage-report.sh validates the section on save.
/draft:upload (pre-upload verification)core/agents/ops.md for production-safety mindsetcore/shared/jira-sync.mdIf no tech-stack.md: Generate generic checklist with all items, note: "Customize after running /draft:init"
If no active track: Generate standalone checklist, ask which service/release
If no workflow.md: Use sensible defaults, recommend documenting deployment conventions
npx claudepluginhub drafthq/draft --plugin draftGenerates customizable pre-deployment checklists to verify CI status, tests, reviews, migrations, feature flags, rollback plans, and monitor production deploys.
Generates pre-deployment checklists for code quality, security, performance, infrastructure, database migrations, and produces go/no-go readiness report.
Provides rollback procedures, risk assessment, pre/post-deployment validation checklists, and contingency planning for safe deployments.