DEPLOY-001 critical Pipeline Stability

Clear, stable deployment workflow

Documented deployment workflow that runs reliably

Question to ask

"When did a deploy last fail in a way nobody noticed?"

What to check

  • Deployment workflow exists (GitHub Actions or other CI)
  • Workflow is documented in README/CLAUDE.md
  • Triggers are clear (main = prod, staging = staging)
  • Pipeline currently passing
  • Recent failure rate < 10%

Verification guide

Severity: Critical

Check automatically:

  1. Find deployment workflow files:

    # GitHub Actions
    ls -la .github/workflows/*.yml 2>/dev/null
    
    # Look for deployment keywords
    grep -rlE "deploy|release|production|staging" .github/workflows/*.yml 2>/dev/null
    
  2. Check for workflow documentation:

    # Look for deployment docs
    grep -riE "deploy|pipeline|ci/cd|workflow" README.md CLAUDE.md CONTRIBUTING.md docs/ 2>/dev/null
    
  3. Check workflow triggers are clear:

    # Verify workflow triggers on appropriate branches
    grep -A10 "^on:" .github/workflows/*.yml 2>/dev/null | grep -E "push:|branches:|main|master|staging"
    
  4. Check current pipeline health:

    # Is the most recent deployment run passing?
    gh run list --limit 10 --json workflowName,conclusion,createdAt --jq '.[] | select(.workflowName | test("deploy|release"; "i"))'
    
  5. Check recent stability (failure rate):

    # Failure rate over last 50 runs
    gh run list --limit 50 --json workflowName,conclusion --jq '[.[] | select(.workflowName | test("deploy|release"; "i"))] | group_by(.conclusion) | map({conclusion: .[0].conclusion, count: length})'
    
  6. Check for alternative CI systems (if no GitHub Actions):

    # Look for other CI configs
    ls -la Jenkinsfile .gitlab-ci.yml .circleci/config.yml bitbucket-pipelines.yml 2>/dev/null
    

Cross-reference with:

  • FLOW-006 (Branch flow documented)
  • ENV-001/002/003 (Environment tiers exist)

Pass criteria:

  • Deployment workflow exists and is documented
  • Triggers are clear (push to main = prod, push to staging = staging)
  • Pipeline is currently passing (not broken)
  • Recent failure rate < 10% (occasional failures OK, chronic failures not)

Fail criteria:

  • No deployment workflow (manual deploys only)
  • Workflow exists but undocumented
  • Pipeline currently broken
  • High failure rate (>20%) indicating instability

If no GitHub Actions found, ask user: "No GitHub Actions deployment workflow found. What CI/CD system is used for deployments? Document how to find deployment status and history."

Evidence to capture:

  • Deployment workflow file path(s)
  • Documentation location
  • Current pipeline status (passing/failing)
  • Failure rate over last 50 runs
  • Last successful deployment timestamp

Section

10. Deployments

Deployment & Operations