name: deploy description: Deploy the application to a target environment. Use when deploying code, releasing, or pushing to staging/production. Requires explicit user invocation. argument-hint: [environment] [--skip-tests] [--dry-run] disable-model-invocation: true user-invocable: true allowed-tools: Bash, Read, Grep, Glob, WebFetch model: sonnet effort: high shell: bash hooks: PreToolUse: - matcher: "Bash" hooks: - type: command command: "${CLAUDE_SKILL_DIR}/scripts/validate-deploy-command.sh" if: "Bash(rm *)" PostToolUse: - matcher: "Bash" hooks: - type: command command: "${CLAUDE_SKILL_DIR}/scripts/log-deploy-action.sh"
Deploy Skill
Deploy the application to the specified environment.
Arguments
$ARGUMENTS[0](or$0): Target environment (staging,production,canary). Defaults tostaging.- 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
-
Verify you are on a clean git branch with no uncommitted changes:
git status --porcelain -
Run the test suite (unless
--skip-testswas passed):npm run test:ci -
Check that the build succeeds:
npm run build -
Verify environment configuration exists for the target:
ls -la config/deploy/$0.env
Deploy
-
If
--dry-runwas passed, show what would be deployed and stop:npm run deploy -- --env $0 --dry-run -
Otherwise, execute the deployment:
npm run deploy -- --env $0 -
Wait for health checks to pass (up to 5 minutes):
npm run deploy:health-check -- --env $0 --timeout 300
Post-deploy
-
Tag the release in git:
git tag -a "deploy-$0-$(date +%Y%m%d-%H%M%S)" -m "Deployed to $0" -
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:
-
Run the rollback command:
npm run deploy:rollback -- --env $0 -
Verify health checks pass after rollback.
-
Report the failure with the error details.
Additional Resources
For detailed deployment configuration, see deployment-guide.md. For environment-specific notes, see environments/.