Phase 1b: Rename all ~94 commands across 12 plugins to /<noun> <action> sub-command pattern. Git-flow consolidated from 8→5 commands (commit variants absorbed into --push/--merge/--sync flags). Dispatch files, name: frontmatter, and cross-reference updates for all plugins. Phase 2: Design documents for 8 new plugins in docs/designs/. Phase 3: Scaffold 8 new plugins — saas-api-platform, saas-db-migrate, saas-react-platform, saas-test-pilot, data-seed, ops-release-manager, ops-deploy-pipeline, debug-mcp. Each with plugin.json, commands, agents, skills, README, and claude-md-integration. Marketplace grows from 12→20. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2.8 KiB
2.8 KiB
name, description
| name | description |
|---|---|
| deploy check | Pre-deployment health check — verify system readiness before deploying |
/deploy check
Run pre-deployment health checks to verify the target system is ready.
Skills to Load
skills/visual-header.mdskills/health-checks.md
Agent
Delegate to agents/deploy-validator.md.
Usage
/deploy check [--service=<name>] [--verbose]
Options:
--service- Check readiness for a specific service only--verbose- Show detailed output for each check
Instructions
Execute skills/visual-header.md with context "Pre-Deployment Check".
Phase 1: System Resources
Run system checks using Bash tool:
| Check | Command | Pass Condition |
|---|---|---|
| Disk space | df -h / |
>10% free |
| Memory | free -m |
>256MB available |
| CPU load | uptime |
Load average < CPU count |
| Temperature | vcgencmd measure_temp (RPi) or /sys/class/thermal/ |
<70C |
Phase 2: Docker Environment
| Check | Command | Pass Condition |
|---|---|---|
| Docker daemon | docker info |
Running |
| Docker Compose | docker compose version |
Installed |
| Disk usage | docker system df |
<80% usage |
| Network | docker network ls |
Expected networks exist |
Phase 3: Port Availability
- Read
docker-compose.ymlfor all host port mappings - Check each port with
ss -tlnp | grep :<port> - If port is in use, identify the process occupying it
- Flag conflicts as Critical
Phase 4: DNS and Network
| Check | Command | Pass Condition |
|---|---|---|
| DNS resolution | nslookup <subdomain> |
Resolves correctly |
| Reverse proxy | curl -s -o /dev/null -w "%{http_code}" http://localhost:80 |
Caddy responding |
| Tailscale | tailscale status |
Connected (if applicable) |
Phase 5: Image Availability
- Parse
docker-compose.ymlfor image references - Run
docker pull --dry-run <image>ordocker manifest inspect <image> - Verify images exist and support the target architecture (arm64 for RPi)
- Report image sizes and estimated pull time
Phase 6: Report
## Pre-Deployment Check Report
### System Resources
[OK] Disk: 45% used (54GB free)
[OK] Memory: 1.2GB available
[OK] CPU: Load 0.8 (4 cores)
[OK] Temperature: 52C
### Docker
[OK] Docker daemon: Running (v24.0.7)
[OK] Compose: v2.21.0
[WARN] Docker disk: 72% used — consider pruning
### Ports
[OK] 8080 — Available
[FAIL] 3000 — In use by grafana (PID 1234)
### Network
[OK] DNS: myapp.hotport resolves
[OK] Caddy: Responding on :80
### Images
[OK] postgres:16-alpine — arm64 available (89MB)
[WARN] custom-app:latest — No arm64 manifest found
### Summary
- Passed: 10 | Warnings: 2 | Failed: 1
- Status: NOT READY — fix port conflict on 3000
User Request
$ARGUMENTS