drafthq/draft/skills/deploy-checklist/SKILL.md
deploy-checklist
Pre-deployment verification checklist. Generates customized checklists based on tech-stack with rollback triggers. Auto-invoked by /draft:upload.
- Source repository stars
- 40
- Declared platforms
- 0
- Static risk flags
- 2
- Last source update
- 2026-08-19
- Source checked
- 2026-08-28
Decision brief
What it does: where it fits
You are generating a pre-deployment verification checklist customized to this project's technology stack.
Not for
- Tasks that require unconfirmed production actions or broad system permissions.
- Environments where the pinned source and install steps cannot be inspected.
Compatibility matrix
Platform support, with evidence labels
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Not declared | No explicit evidence | Portability before use |
| Claude Code | Not declared | No explicit evidence | Portability before use |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
Inspect first. Install second.
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/drafthq/draft --skill "skills/deploy-checklist"Inspect the Agent Skill "deploy-checklist" from https://github.com/drafthq/draft/blob/61469a1b446378ffa25dbd445e5623cb3fb3ef57/skills/deploy-checklist/SKILL.md at commit 61469a1b446378ffa25dbd445e5623cb3fb3ef57. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
What the source asks the agent to do
- 01
MANDATORY GRAPH LOOKUP (read before Phase 1)
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:
For each file in the deploy diff, run "$DRAFTTOOLS/graph-impact.sh" --repo . --file to enumerate the modules affected — flag any module not declared in hld.md §Detailed Design as a deployment-scope miss.Run "$DRAFTTOOLS/cycle-detect.sh" --repo . (and query "$DRAFTTOOLS/graph-arch.sh" --repo . for the module overview) to ensure no fresh cycles were introduced after HLD sign-off.Run "$DRAFTTOOLS/hotspot-rank.sh" --repo . — any hotspot in the diff escalates the Resiliency row of Phase 0. - 02
Step 1: Parse Arguments
If a track is active: read draft/tracks//spec.md and plan.md for change scope.
/draft:deploy-checklist — Interactive: detect active track or ask for service name/draft:deploy-checklist — Generate checklist for named service/draft:deploy-checklist track — Generate from track's change scope - 03
Step 2: Load Context
1. Read draft/tech-stack.md — Identify deployment-relevant tech: - Database type (migrations needed?) - Container orchestration (K8s, Docker Compose?) - CI/CD pipeline details - Feature flag system - Monitoring/alerting stack 2. Read draft/workflow.md — Deployment conventions, t…
Read draft/tech-stack.md — Identify deployment-relevant tech:Database type (migrations needed?)Container orchestration (K8s, Docker Compose?) - 04
Step 3: Generate Checklist
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.
[ ] HLD §Performance populated — QPS and p95 latency stated[ ] HLD §Scale populated — horizontal scaling story documented; bottlenecks named[ ] HLD §Security populated — credentials, RBAC, encryption answered - 05
Phase 0: HLD/LLD Gate (track-scoped only, when hld.md exists)
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.
[ ] HLD §Performance populated — QPS and p95 latency stated[ ] HLD §Scale populated — horizontal scaling story documented; bottlenecks named[ ] HLD §Security populated — credentials, RBAC, encryption answered
Permission review
Static risk signals and limitations
Runs scripts
The documentation asks the agent to run terminal commands or scripts.
git branch --show-current # Current branch nameRuns scripts
The documentation asks the agent to run terminal commands or scripts.
git rev-parse --short HEAD # Current commit hashWrites files
The documentation asks the agent to create, modify, or delete local files.
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 [criticalEvidence record
Why each signal appears
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 92/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 40 | Source | Repository attention, not individual Skill quality |
| Compatibility | 0 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
Provenance and original SKILL.md
- Repository
- drafthq/draft
- Skill path
- skills/deploy-checklist/SKILL.md
- Commit
- 61469a1b446378ffa25dbd445e5623cb3fb3ef57
- License
- MIT
- Collected
- 2026-08-28
- Default branch
- main
View the original SKILL.md
Deploy Checklist
You are generating a pre-deployment verification checklist customized to this project's technology stack.
MANDATORY GRAPH LOOKUP (read before Phase 1)
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:
- For each file in the deploy diff, run
"$DRAFT_TOOLS/graph-impact.sh" --repo . --file <path>to enumerate the modules affected — flag any module not declared inhld.md§Detailed Design as a deployment-scope miss. - Run
"$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. - Run
"$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.
Red Flags — STOP if you're
See shared red flags — applies to all code-touching skills.
Skill-specific:
- Deploying without a rollback plan
- Skipping database migration verification
- Deploying on Friday without explicit team approval
- Pushing to production without monitoring in place
- Ignoring failed checklist items marked as critical
Every deployment needs a rollback plan. No exceptions.
Pre-Check
0. Capture Git Context
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.
1. Verify Draft Context
ls draft/ 2>/dev/null
If draft/ doesn't exist, this skill can still run standalone — generate a generic checklist.
2. Load Draft Context (if available)
Read and follow the base procedure in core/shared/draft-context-loading.md.
3. Run validator gate chain (WS-9)
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="${DRAFT_PLUGIN_ROOT:-$(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.
Step 1: Parse Arguments
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 scope
If a track is active: read draft/tracks/<id>/spec.md and plan.md for change scope.
Step 2: Load Context
- Read
draft/tech-stack.md— Identify deployment-relevant tech:- Database type (migrations needed?)
- Container orchestration (K8s, Docker Compose?)
- CI/CD pipeline details
- Feature flag system
- Monitoring/alerting stack
- Read
draft/workflow.md— Deployment conventions, toolchain (git) - Read
draft/.ai-context.md— Service topology, dependencies - If track-scoped: Read
draft/tracks/<id>/hld.mdandlld.mdif 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.
Step 3: Generate Checklist
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.
Phase 0: HLD/LLD Gate (track-scoped only, when hld.md exists)
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.mdexists) — 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.
Phase 1: Pre-Deploy
- Tests: All tests passing in CI
- Review: Code reviewed and approved
- Migrations: Database migrations tested on staging (if applicable)
- Migration Rollback: Down-migration verified (if applicable)
- Feature Flags: New features behind flags (if applicable)
- Config: Environment variables and secrets verified for target environment
- Dependencies: No known vulnerable dependencies (
npm audit/pip audit/ equivalent) - Monitoring: Alerting rules configured for new endpoints/services
- Rollback Plan: Documented and tested (see Rollback Triggers below)
- Communication: Team notified of deployment window
- Backup: Database backup taken (if schema changes)
- Changelog: Release notes or changelog updated
- API Compatibility: Breaking changes documented and consumers notified
Phase 2: Deploy
- Method: [Canary / Blue-Green / Rolling / Direct] — specify strategy
- Sequence: Deploy order for multi-service changes documented
- Monitoring Dashboard: [URL] open during deployment
- Smoke Tests: Ready to run post-deploy
- Rollback Command:
[specific rollback command]ready to execute - Health Checks: Endpoints responding before traffic shift
- Traffic Shift: Gradual rollout percentage plan (if canary/blue-green)
- Deployment Log: Recording start time and each step completion
Phase 3: Post-Deploy
- Smoke Tests: All passing
- Error Rate: Below threshold ([X]% — from baseline)
- Latency: Below threshold ([X]ms — p95 from baseline)
- Logs: No unexpected errors in first 15 minutes
- Feature Verification: New features working as expected
- Data Integrity: No data corruption indicators
- Dependency Health: Downstream services unaffected
- Cleanup: Feature flags toggled, old code paths removed (if applicable)
- Documentation: Runbook updated if operational procedures changed
- Notification: Team notified of successful deployment
Rollback Triggers
Initiate rollback if ANY of these occur:
- Error rate exceeds 2x baseline
- p95 latency exceeds 3x baseline
- Data corruption detected
- Critical user-facing functionality broken
- Deployment stuck in partial state for >10 minutes
- Health check failures on >10% of instances
- Memory or CPU exceeding safe thresholds on deployed instances
Rollback Procedure
- Execute rollback command (documented in Phase 2)
- Verify previous version is serving traffic
- Confirm error rates return to baseline
- Investigate root cause before re-attempting deployment
- Post-mortem if rollback was triggered by data corruption or user impact
Step 4: Present and Track
Present the checklist interactively. For each critical item (marked bold):
- If unchecked and user wants to proceed: warn "Critical item unchecked: [item]. Are you sure? [y/N]"
- Default: stop and address critical items
Allow the user to:
- Check off items as they complete them
- Add custom items specific to this deployment
- Mark items as N/A with justification
Step 5: Save Output
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:
- Track-scoped:
draft/tracks/<id>/deploy-checklist.md - Standalone:
draft/deploy-checklist-<timestamp>.mdwith symlinkdeploy-checklist-latest.md
TIMESTAMP=$(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
Mandatory Self-Check (before saving the checklist)
Before saving the checklist file, internally verify and report:
- Graph files queried — JSONL files loaded plus any live graph query-tool invocations (
impact,cycles,modules). - Layer 1 files deliberately skipped — list any context sections skipped.
- Filesystem grep fallback justification — for every
grep/findrun, 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.
Graph Usage Report (append to checklist)
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.
Cross-Skill Dispatch
- Auto-invoked by:
/draft:upload(pre-upload verification) - References:
core/agents/ops.mdfor production-safety mindset - Jira sync: If ticket linked, attach checklist and post comment via
core/shared/jira-sync.md - MCP: GitHub MCP for change details, Jira MCP for ticket context
Error Handling
If 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
Frequently asked questions
What to verify before installation and use
What does the deploy-checklist source document cover?
You are generating a pre-deployment verification checklist customized to this project's technology stack.
How do I install deploy-checklist?
The source record exposes this install command: npx skills add https://github.com/drafthq/draft --skill "skills/deploy-checklist". Inspect the command and pinned source before running it.
Which permission-related actions were detected?
Static rules flagged exec-script, write-files in the source; the page lists the matching lines and excerpts.
Alternatives
Compare before choosing
Postpartum-genushyacinthus29/dotnet-skills
dotnet-worker-services
Build long-running .NET background services with `BackgroundService`, Generic Host, graceful shutdown, configuration, logging, and deployment patterns suited to workers and daemons.
vasilyu1983/AI-Agents-public
qa-testing-ios
Guides iOS testing with XCTest, XCUITest, Swift Testing, simctl, and xcresult. Use when choosing destinations, controlling flakes, or parsing test artifacts for native apps.
garrytan/gbrain
brain-pdf
Generate a publication-quality PDF from any brain page via the gstack make-pdf binary. Strips YAML frontmatter, sanitizes emoji, applies running headers and page numbers. Brain page is always the source of truth; PDF is a rendering.
NVIDIA/skills
rtvi-cv-customize-model
How to swap the DeepStream CV detection model in the VSS Alerts Blueprint verification (2d_cv) mode - covers ONNX export, custom bbox parsers, compose mount gotchas, nvinfer config, runtime TRT engine build, deployment, and a segmentation-capable model addendum handoff.