Babysitter deploy

Deploy the application to a target environment. Use when deploying code, releasing, or pushing to staging/production. Requires explicit user invocation.

install
source · Clone the upstream repo
git clone https://github.com/a5c-ai/babysitter
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/a5c-ai/babysitter "$T" && mkdir -p ~/.claude/skills && cp -r "$T/library/specializations/meta/harnesses/claude-code/examples" ~/.claude/skills/a5c-ai-babysitter-deploy && rm -rf "$T"
manifest: library/specializations/meta/harnesses/claude-code/examples/SKILL.md
source content

Deploy Skill

Deploy the application to the specified environment.

Arguments

  • $ARGUMENTS[0]
    (or
    $0
    ): Target environment (
    staging
    ,
    production
    ,
    canary
    ). Defaults to
    staging
    .
  • Additional flags are parsed from
    $ARGUMENTS
    .

Dynamic Context

Current branch and recent commits: !

git log --oneline -5

Current deployment status: !

curl -s https://deploy.internal.example.com/api/status 2>/dev/null || echo "Status endpoint unavailable"

Deployment Procedure

Pre-flight Checks

  1. Verify you are on a clean git branch with no uncommitted changes:

    git status --porcelain
    
  2. Run the test suite (unless

    --skip-tests
    was passed):

    npm run test:ci
    
  3. Check that the build succeeds:

    npm run build
    
  4. Verify environment configuration exists for the target:

    ls -la config/deploy/$0.env
    

Deploy

  1. If

    --dry-run
    was passed, show what would be deployed and stop:

    npm run deploy -- --env $0 --dry-run
    
  2. Otherwise, execute the deployment:

    npm run deploy -- --env $0
    
  3. Wait for health checks to pass (up to 5 minutes):

    npm run deploy:health-check -- --env $0 --timeout 300
    

Post-deploy

  1. Tag the release in git:

    git tag -a "deploy-$0-$(date +%Y%m%d-%H%M%S)" -m "Deployed to $0"
    
  2. Notify the team (if production):

    if [ "$0" = "production" ]; then
      curl -X POST https://hooks.slack.example.com/deploy \
        -H "Content-Type: application/json" \
        -d "{\"text\": \"Production deploy complete: $(git rev-parse --short HEAD)\"}"
    fi
    

Rollback

If the deployment fails at any step:

  1. Run the rollback command:

    npm run deploy:rollback -- --env $0
    
  2. Verify health checks pass after rollback.

  3. Report the failure with the error details.

Additional Resources

For detailed deployment configuration, see deployment-guide.md. For environment-specific notes, see environments/.