feat(marketplace): command consolidation + 8 new plugins (v8.1.0 → v9.0.0) [BREAKING]

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>
This commit is contained in:
2026-02-06 14:52:11 -05:00
parent 5098422858
commit 2d51df7a42
321 changed files with 13582 additions and 1019 deletions

View File

@@ -0,0 +1,110 @@
---
name: deploy check
description: 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.md`
- `skills/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
1. Read `docker-compose.yml` for all host port mappings
2. Check each port with `ss -tlnp | grep :<port>`
3. If port is in use, identify the process occupying it
4. 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
1. Parse `docker-compose.yml` for image references
2. Run `docker pull --dry-run <image>` or `docker manifest inspect <image>`
3. Verify images exist and support the target architecture (arm64 for RPi)
4. 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

View File

@@ -0,0 +1,91 @@
---
name: deploy env
description: Manage environment-specific configuration files for deployments
---
# /deploy env
Create and manage environment-specific configuration files.
## Skills to Load
- `skills/visual-header.md`
- `skills/env-management.md`
## Agent
Delegate to `agents/deploy-planner.md`.
## Usage
```
/deploy env [--action=<create|diff|sync|list>] [--env=<development|staging|production>]
```
**Actions:**
- `create` - Create a new environment config from .env.example (default)
- `diff` - Show differences between environment configs
- `sync` - Sync missing keys from .env.example to all environments
- `list` - List all environment files and their variable counts
## Instructions
Execute `skills/visual-header.md` with context "Environment Management".
### Action: create
1. Check `.env.example` exists as the source template
2. If missing, scan `docker-compose.yml` for referenced `${VARIABLES}` and create `.env.example`
3. Ask user which environment to create (development, staging, production)
4. Copy `.env.example` to `.env.<environment>`
5. For production, flag variables that need real values (API keys, passwords)
6. For development, suggest sensible defaults (localhost URLs, debug=true)
7. Warn user to never commit `.env.production` to version control
8. Verify `.gitignore` includes `.env.production` and `.env.staging`
### Action: diff
1. Read all `.env.*` files in the project
2. Compare variable names across environments
3. Report:
- Variables present in one environment but not others
- Variables with identical values across environments (potential issue)
- Variables in docker-compose but missing from all env files
4. Display as a comparison table
### Action: sync
1. Read `.env.example` as the canonical list of variables
2. For each `.env.<environment>` file:
- Identify missing variables
- Append missing variables with placeholder values
- Report what was added
3. Do NOT modify existing values
### Action: list
1. List all `.env*` files in the project
2. For each file, show:
- Variable count
- Last modified date
- Whether all docker-compose referenced variables are present
## Output Format
```
## Environment Files
| File | Variables | Coverage | Status |
|------|-----------|----------|--------|
| .env.example | 12 | 100% | Template |
| .env.development | 12 | 100% | OK |
| .env.production | 10 | 83% | Missing 2 vars |
### Missing in .env.production
- DATABASE_URL (referenced in docker-compose.yml:15)
- REDIS_PASSWORD (referenced in docker-compose.yml:28)
```
## User Request
$ARGUMENTS

View File

@@ -0,0 +1,102 @@
---
name: deploy generate
description: Generate docker-compose.yml, Caddyfile, and systemd units for a service
---
# /deploy generate
Generate deployment configuration files from templates and project context.
## Skills to Load
- `skills/visual-header.md`
- `skills/compose-patterns.md`
- `skills/caddy-conventions.md`
- `skills/env-management.md`
## Agent
Delegate to `agents/deploy-planner.md`.
## Usage
```
/deploy generate [--target=<compose|caddy|systemd|all>] [--service=<name>]
```
**Targets:**
- `compose` - Generate docker-compose.yml only
- `caddy` - Generate Caddyfile snippet only
- `systemd` - Generate systemd service unit only
- `all` - Generate all configuration files (default)
## Instructions
Execute `skills/visual-header.md` with context "Config Generation".
### Phase 1: Context Analysis
1. Read existing project files to determine:
- Application language/framework (Dockerfile, package.json, requirements.txt, go.mod)
- Required services (database, cache, message queue)
- Exposed ports
- Volume requirements (data persistence, config files)
2. Check if `deploy/` directory exists from previous `/deploy setup`
3. Read `.env.example` if present for variable names
### Phase 2: Docker Compose Generation
Apply patterns from `skills/compose-patterns.md`:
1. **Service definition** - Image or build context, restart policy, healthcheck
2. **Network isolation** - Create dedicated network for the stack
3. **Volume management** - Named volumes for persistence, bind mounts for config
4. **Resource limits** - Memory and CPU limits appropriate for target platform
5. **Dependency ordering** - `depends_on` with `condition: service_healthy`
6. **Environment variables** - Reference `env_file` rather than inline secrets
### Phase 3: Caddyfile Generation
Apply patterns from `skills/caddy-conventions.md`:
1. **Subdomain routing** - `subdomain.hostname` block
2. **Reverse proxy** - Point to container:port with Docker network DNS
3. **Headers** - Security headers, CORS if needed
4. **Rate limiting** - Default rate limit for API endpoints
### Phase 4: Systemd Unit Generation (optional)
Generate `systemd/<service>.service` for non-Docker services:
1. Unit description and dependencies
2. ExecStart/ExecStop commands
3. Restart policy and watchdog
4. User/Group restrictions
### Phase 5: Output
1. Show generated files with syntax highlighting
2. Ask user to confirm before writing
3. Write files to appropriate locations
4. Display validation summary
## Output Format
```
## Generated Files
### docker-compose.yml
[content with annotations]
### Caddyfile snippet
[content with annotations]
### Summary
- Services: 3 (app, db, redis)
- Networks: 1 (app-network)
- Volumes: 2 (db-data, redis-data)
- Next: /deploy validate
```
## User Request
$ARGUMENTS

View File

@@ -0,0 +1,126 @@
---
name: deploy rollback
description: Generate a rollback plan to revert a deployment to the previous state
---
# /deploy rollback
Generate a rollback plan for reverting a deployment.
## Skills to Load
- `skills/visual-header.md`
- `skills/rollback-patterns.md`
- `skills/compose-patterns.md`
## Agent
Delegate to `agents/deploy-planner.md`.
## Usage
```
/deploy rollback [--service=<name>] [--dry-run] [--strategy=<recreate|blue-green>]
```
**Options:**
- `--service` - Target a specific service (default: entire stack)
- `--dry-run` - Show plan without executing
- `--strategy` - Rollback strategy: `recreate` (default) or `blue-green`
## Instructions
Execute `skills/visual-header.md` with context "Rollback Planning".
### Phase 1: Current State Capture
1. List running containers for the stack:
```bash
docker compose ps
```
2. Record current image digests:
```bash
docker compose images
```
3. Check for volume data that may need backup:
```bash
docker volume ls --filter name=<stack>
```
4. Record current environment variables from `.env`
5. Save current `docker-compose.yml` hash for verification
### Phase 2: Previous State Detection
Attempt to identify the previous deployment state:
1. Check git history for previous `docker-compose.yml`:
```bash
git log --oneline -5 -- docker-compose.yml
```
2. Check Docker image history for previous tags
3. Look for backup files: `docker-compose.yml.bak`, `.env.bak`
4. If no previous state found, warn user and ask for target state
### Phase 3: Rollback Plan Generation
Apply patterns from `skills/rollback-patterns.md`:
#### Strategy: recreate (default)
1. Stop current containers: `docker compose down`
2. Restore previous docker-compose.yml from git
3. Restore previous .env file
4. Pull previous images if needed
5. Start containers: `docker compose up -d`
6. Verify health checks pass
#### Strategy: blue-green
1. Start previous version alongside current (different ports)
2. Verify previous version health
3. Switch reverse proxy to point to previous version
4. Stop current version
5. Rename previous version to use standard ports
### Phase 4: Data Considerations
1. Identify services with persistent volumes (databases, file storage)
2. Check if database migrations were run (irreversible changes)
3. Recommend volume backup before rollback:
```bash
docker run --rm -v <volume>:/data -v $(pwd):/backup alpine tar czf /backup/<volume>.tar.gz /data
```
4. Flag if rollback may cause data loss
### Phase 5: Output
```
## Rollback Plan
### Target
- Service: myapp-stack
- Current: v2.1.0 (deployed 2h ago)
- Rollback to: v2.0.3
### Steps
1. Backup database volume (estimated: 2min)
docker run --rm -v myapp_db:/data -v $(pwd):/backup alpine tar czf /backup/db-backup.tar.gz /data
2. Stop current stack
docker compose down
3. Restore previous config
git checkout HEAD~1 -- docker-compose.yml
4. Start previous version
docker compose up -d
5. Verify health
docker compose ps
### Warnings
- Database migration v45 was applied — may need manual revert
- Volume myapp_uploads has 230MB of new data since last deploy
### Estimated Downtime
- Strategy: recreate — ~30 seconds
- Strategy: blue-green — ~0 seconds (requires port availability)
```
## User Request
$ARGUMENTS

View File

@@ -0,0 +1,81 @@
---
name: deploy setup
description: Interactive setup wizard for deployment pipeline configuration
---
# /deploy setup
Configure the ops-deploy-pipeline plugin for a project.
## Skills to Load
- `skills/visual-header.md`
- `skills/compose-patterns.md`
## Agent
Delegate to `agents/deploy-planner.md`.
## Usage
```
/deploy setup
```
## Instructions
Execute `skills/visual-header.md` with context "Setup Wizard".
### Phase 1: Project Detection
1. Read the current directory for existing configuration files:
- `docker-compose.yml` or `docker-compose.yaml`
- `Caddyfile` or `caddy/Caddyfile`
- `.env`, `.env.example`, `.env.production`, `.env.development`
- `systemd/*.service` files
2. Report what was found and what is missing
### Phase 2: Deployment Profile
Ask user to select deployment profile:
| Profile | Description |
|---------|-------------|
| **single-service** | One container, one reverse proxy entry |
| **multi-service** | Multiple containers with shared network |
| **full-stack** | Application + database + cache + reverse proxy |
### Phase 3: Infrastructure Target
Collect target information:
1. **Hostname** - Server hostname (e.g., `hotport`)
2. **Subdomain** - Service subdomain (e.g., `myapp.hotport`)
3. **Port** - Internal service port
4. **Network mode** - Tailscale, local, or both
### Phase 4: Generate Scaffold
Based on profile and target:
1. Create `deploy/` directory if it does not exist
2. Generate `.env.example` with documented variables
3. Create deployment checklist in `deploy/CHECKLIST.md`
4. Report next steps to user
### Completion Summary
```
DEPLOY-PIPELINE SETUP COMPLETE
Profile: multi-service
Target: myapp.hotport
Config Dir: deploy/
Next steps:
- /deploy generate Generate docker-compose.yml and Caddyfile
- /deploy env Create environment-specific configs
- /deploy validate Validate generated configs
```
## User Request
$ARGUMENTS

View File

@@ -0,0 +1,103 @@
---
name: deploy validate
description: Validate deployment configs for correctness, security, and best practices
---
# /deploy validate
Validate Docker Compose, Caddyfile, and systemd configurations.
## Skills to Load
- `skills/visual-header.md`
- `skills/compose-patterns.md`
- `skills/health-checks.md`
## Agent
Delegate to `agents/deploy-validator.md`.
## Usage
```
/deploy validate [--target=<compose|caddy|systemd|all>] [--strict]
```
**Options:**
- `--target` - Which config to validate (default: `all`)
- `--strict` - Treat warnings as errors
## Instructions
Execute `skills/visual-header.md` with context "Config Validation".
### Phase 1: File Discovery
Locate configuration files:
- `docker-compose.yml` / `docker-compose.yaml`
- `Caddyfile` or `caddy/Caddyfile`
- `systemd/*.service`
- `.env`, `.env.production`, `.env.development`
Report any expected files that are missing.
### Phase 2: Docker Compose Validation
Check against patterns from `skills/compose-patterns.md`:
| Check | Severity | Description |
|-------|----------|-------------|
| Valid YAML syntax | Critical | File must parse correctly |
| Image tags pinned | Warning | Avoid `latest` tag in production |
| Healthchecks defined | Warning | All services should have healthchecks |
| Restart policy set | Warning | Should be `unless-stopped` or `always` |
| Resource limits | Info | Memory/CPU limits recommended for constrained hosts |
| Network isolation | Warning | Services should use dedicated network, not `host` |
| Volume permissions | Warning | Bind mounts should have explicit read/write mode |
| No hardcoded secrets | Critical | Secrets must use env_file or Docker secrets |
| Port conflicts | Critical | No duplicate host port mappings |
| Dependency ordering | Info | Services with depends_on should use health conditions |
### Phase 3: Caddyfile Validation
| Check | Severity | Description |
|-------|----------|-------------|
| Valid syntax | Critical | Directives must be properly formatted |
| HTTPS configuration | Info | Automatic HTTPS or explicit cert paths |
| Reverse proxy targets | Warning | Target must match docker-compose service names |
| Security headers | Info | Recommend X-Frame-Options, CSP, HSTS |
| Duplicate routes | Critical | No conflicting route definitions |
### Phase 4: Environment File Validation
| Check | Severity | Description |
|-------|----------|-------------|
| .env.example exists | Warning | Template for required variables |
| No secrets in .env.example | Critical | Example file must use placeholders |
| All referenced vars defined | Critical | docker-compose env vars must have values |
| Consistent across environments | Info | Same keys in dev/staging/prod |
### Phase 5: Report
```
## Validation Report
### Critical (must fix)
- [file:line] Description of issue
Fix: Recommended solution
### Warnings (should fix)
- [file:line] Description of issue
Fix: Recommended solution
### Info (consider)
- [file:line] Description of improvement
### Summary
- Critical: X | Warnings: Y | Info: Z
- Status: PASS / FAIL
```
## User Request
$ARGUMENTS

View File

@@ -0,0 +1,18 @@
---
description: Deployment management — generate configs, validate pipelines, manage environments
---
# /deploy
CI/CD deployment pipeline management for Docker Compose and self-hosted infrastructure.
## Sub-commands
| Sub-command | Description |
|-------------|-------------|
| `/deploy setup` | Interactive setup wizard for deployment configuration |
| `/deploy generate` | Generate docker-compose.yml, Caddyfile, and systemd units |
| `/deploy validate` | Validate deployment configs for correctness and best practices |
| `/deploy env` | Manage environment-specific config files (.env.development, .env.production) |
| `/deploy check` | Pre-deployment health check (disk, memory, ports, DNS, Docker) |
| `/deploy rollback` | Generate rollback plan for a deployment |