myaidev-method 0.2.5 → 0.2.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/USER_GUIDE.md +630 -8
  2. package/bin/cli.js +161 -70
  3. package/package.json +1 -1
  4. package/src/lib/ascii-banner.js +100 -0
  5. package/src/templates/claude/commands/myai-deploy-dev.md +500 -0
  6. package/src/templates/claude/commands/myai-deploy-prod.md +837 -0
  7. package/src/templates/claude/commands/myai-deploy-staging.md +331 -0
  8. package/src/templates/claude/commands/myai-git-hotfix.md +957 -0
  9. package/src/templates/claude/commands/myai-git-pr.md +200 -0
  10. package/src/templates/claude/commands/myai-git-release.md +806 -0
  11. package/src/templates/claude/commands/myai-git-sync.md +796 -0
  12. package/src/templates/codex/commands/myai-astro-publish.md +51 -0
  13. package/src/templates/codex/commands/myai-configure.md +185 -0
  14. package/src/templates/codex/commands/myai-content-writer.md +73 -0
  15. package/src/templates/codex/commands/myai-coolify-deploy.md +159 -0
  16. package/src/templates/codex/commands/myai-deploy-dev.md +379 -0
  17. package/src/templates/codex/commands/myai-deploy-prod.md +431 -0
  18. package/src/templates/codex/commands/myai-deploy-staging.md +275 -0
  19. package/src/templates/codex/commands/myai-dev-architect.md +69 -0
  20. package/src/templates/codex/commands/myai-dev-code.md +82 -0
  21. package/src/templates/codex/commands/myai-dev-docs.md +83 -0
  22. package/src/templates/codex/commands/myai-dev-review.md +85 -0
  23. package/src/templates/codex/commands/myai-dev-test.md +84 -0
  24. package/src/templates/codex/commands/myai-docusaurus-publish.md +42 -0
  25. package/src/templates/codex/commands/myai-git-hotfix.md +512 -0
  26. package/src/templates/codex/commands/myai-git-pr.md +196 -0
  27. package/src/templates/codex/commands/myai-git-release.md +516 -0
  28. package/src/templates/codex/commands/myai-git-sync.md +517 -0
  29. package/src/templates/codex/commands/myai-mintlify-publish.md +42 -0
  30. package/src/templates/codex/commands/myai-payloadcms-publish.md +42 -0
  31. package/src/templates/codex/commands/myai-sparc-workflow.md +185 -0
  32. package/src/templates/codex/commands/myai-wordpress-admin.md +143 -0
  33. package/src/templates/codex/commands/myai-wordpress-publish.md +66 -0
  34. package/src/templates/gemini/commands/myai-astro-publish.toml +76 -0
  35. package/src/templates/gemini/commands/myai-configure.toml +188 -0
  36. package/src/templates/gemini/commands/myai-content-writer.toml +76 -0
  37. package/src/templates/gemini/commands/myai-coolify-deploy.toml +138 -0
  38. package/src/templates/gemini/commands/myai-deploy-dev.toml +379 -0
  39. package/src/templates/gemini/commands/myai-deploy-prod.toml +438 -0
  40. package/src/templates/gemini/commands/myai-deploy-staging.toml +275 -0
  41. package/src/templates/gemini/commands/myai-dev-architect.toml +64 -0
  42. package/src/templates/gemini/commands/myai-dev-code.toml +75 -0
  43. package/src/templates/gemini/commands/myai-dev-docs.toml +76 -0
  44. package/src/templates/gemini/commands/myai-dev-review.toml +78 -0
  45. package/src/templates/gemini/commands/myai-dev-test.toml +77 -0
  46. package/src/templates/gemini/commands/myai-docusaurus-publish.toml +63 -0
  47. package/src/templates/gemini/commands/myai-git-hotfix.toml +953 -0
  48. package/src/templates/gemini/commands/myai-git-pr.toml +196 -0
  49. package/src/templates/gemini/commands/myai-git-release.toml +802 -0
  50. package/src/templates/gemini/commands/myai-git-sync.toml +792 -0
  51. package/src/templates/gemini/commands/myai-mintlify-publish.toml +67 -0
  52. package/src/templates/gemini/commands/myai-payloadcms-publish.toml +59 -0
  53. package/src/templates/gemini/commands/myai-sparc-workflow.toml +47 -0
  54. package/src/templates/gemini/commands/myai-wordpress-admin.toml +143 -0
  55. package/src/templates/gemini/commands/myai-wordpress-publish.toml +77 -0
@@ -0,0 +1,500 @@
1
+ ---
2
+ name: myai-deploy-dev
3
+ description: Deploy to development environment via Coolify or Docker
4
+ tools: [bash, read, write]
5
+ ---
6
+
7
+ You are a deployment automation assistant specializing in development environment deployments.
8
+
9
+ Task: Deploy to development environment - $ARGUMENTS
10
+
11
+ ## Development Deployment Workflow
12
+
13
+ ### 1. Pre-Deployment Checks
14
+
15
+ ```bash
16
+ # Check current branch and status
17
+ git branch --show-current
18
+ git status
19
+
20
+ # Ensure on dev branch
21
+ if [ "$(git branch --show-current)" != "dev" ] && [ "$(git branch --show-current)" != "develop" ]; then
22
+ echo "⚠️ Not on dev/develop branch. Switch first."
23
+ git checkout dev || git checkout develop
24
+ fi
25
+
26
+ # Pull latest changes
27
+ git pull origin $(git branch --show-current)
28
+
29
+ # Check for uncommitted changes (warning only, not blocking)
30
+ if ! git diff-index --quiet HEAD --; then
31
+ echo "⚠️ Uncommitted changes detected (non-blocking for dev)"
32
+ git status
33
+ fi
34
+ ```
35
+
36
+ ### 2. Environment Validation
37
+
38
+ **Check Required Environment Variables:**
39
+ ```bash
40
+ # For Coolify
41
+ required_vars=("COOLIFY_URL" "COOLIFY_API_TOKEN" "COOLIFY_DEV_APP_ID")
42
+
43
+ # For Docker
44
+ docker_vars=("DOCKER_REGISTRY" "DEV_IMAGE_TAG")
45
+
46
+ # Check Coolify vars
47
+ missing_vars=()
48
+ for var in "${required_vars[@]}"; do
49
+ if [ -z "${!var}" ]; then
50
+ missing_vars+=("$var")
51
+ fi
52
+ done
53
+
54
+ # If Coolify vars missing, check Docker vars
55
+ if [ ${#missing_vars[@]} -gt 0 ]; then
56
+ echo "⚠️ Coolify variables not set, checking Docker..."
57
+ for var in "${docker_vars[@]}"; do
58
+ if [ -z "${!var}" ]; then
59
+ echo "❌ Missing required variable: $var"
60
+ exit 1
61
+ fi
62
+ done
63
+ fi
64
+ ```
65
+
66
+ ### 3. Quick Build and Test
67
+
68
+ ```bash
69
+ # Run minimal tests for faster deployment
70
+ echo "🧪 Running quick test suite..."
71
+ npm run test:unit || echo "⚠️ Unit tests failed (non-blocking for dev)"
72
+
73
+ # Build application
74
+ echo "🏗️ Building application..."
75
+ npm run build || { echo "❌ Build failed"; exit 1; }
76
+
77
+ # Skip linter for dev (optional)
78
+ # npm run lint || echo "⚠️ Linting issues detected"
79
+ ```
80
+
81
+ ### 4. Deployment Options
82
+
83
+ #### Option A: Deploy with Coolify
84
+
85
+ ```bash
86
+ # Using Coolify API
87
+ echo "🚀 Deploying to Coolify dev environment..."
88
+
89
+ # Trigger deployment
90
+ response=$(curl -s -w "\n%{http_code}" -X POST "$COOLIFY_URL/api/v1/deploy" \
91
+ -H "Authorization: Bearer $COOLIFY_API_TOKEN" \
92
+ -H "Content-Type: application/json" \
93
+ -d "{
94
+ \"application_id\": \"$COOLIFY_DEV_APP_ID\",
95
+ \"force\": true,
96
+ \"commit\": \"$(git rev-parse HEAD)\"
97
+ }")
98
+
99
+ http_code=$(echo "$response" | tail -1)
100
+ body=$(echo "$response" | head -n -1)
101
+
102
+ if [ "$http_code" -ne 200 ] && [ "$http_code" -ne 201 ]; then
103
+ echo "❌ Deployment trigger failed with status $http_code"
104
+ echo "$body"
105
+ exit 1
106
+ fi
107
+
108
+ echo "✅ Deployment triggered successfully!"
109
+
110
+ # Quick status check (don't wait for completion)
111
+ echo "📊 Deployment initiated. Check Coolify dashboard for progress."
112
+ echo "🌐 Dashboard: $COOLIFY_URL/applications/$COOLIFY_DEV_APP_ID"
113
+ ```
114
+
115
+ #### Option B: Deploy with Docker
116
+
117
+ ```bash
118
+ echo "🐳 Deploying with Docker..."
119
+
120
+ # Build Docker image with dev tag
121
+ docker build -t $DOCKER_REGISTRY/app:dev -f Dockerfile.dev .
122
+
123
+ # Push to registry
124
+ docker push $DOCKER_REGISTRY/app:dev
125
+
126
+ # Deploy to dev server via SSH
127
+ ssh dev-server << 'EOF'
128
+ # Pull latest image
129
+ docker pull $DOCKER_REGISTRY/app:dev
130
+
131
+ # Stop and remove old container
132
+ docker stop app-dev 2>/dev/null || true
133
+ docker rm app-dev 2>/dev/null || true
134
+
135
+ # Run new container
136
+ docker run -d \
137
+ --name app-dev \
138
+ --restart unless-stopped \
139
+ -p 3000:3000 \
140
+ --env-file /etc/app/dev.env \
141
+ -e NODE_ENV=development \
142
+ $DOCKER_REGISTRY/app:dev
143
+
144
+ # Show container status
145
+ docker ps | grep app-dev
146
+ EOF
147
+
148
+ echo "✅ Docker deployment complete!"
149
+ ```
150
+
151
+ #### Option C: Deploy with Docker Compose
152
+
153
+ ```bash
154
+ echo "🐳 Deploying with Docker Compose..."
155
+
156
+ # Deploy to dev server
157
+ ssh dev-server << 'EOF'
158
+ cd /opt/app
159
+ git pull origin dev
160
+ docker-compose -f docker-compose.dev.yml pull
161
+ docker-compose -f docker-compose.dev.yml up -d --remove-orphans --force-recreate
162
+ docker-compose -f docker-compose.dev.yml ps
163
+ EOF
164
+
165
+ echo "✅ Docker Compose deployment complete!"
166
+ ```
167
+
168
+ #### Option D: Hot Reload Development (Watch Mode)
169
+
170
+ ```bash
171
+ echo "🔥 Setting up hot-reload development deployment..."
172
+
173
+ # Sync code to dev server with watch
174
+ rsync -avz --delete \
175
+ --exclude 'node_modules' \
176
+ --exclude '.git' \
177
+ --exclude 'dist' \
178
+ ./ dev-server:/opt/app/
179
+
180
+ # Start development server with hot reload
181
+ ssh dev-server << 'EOF'
182
+ cd /opt/app
183
+ npm install
184
+ pm2 restart app-dev || pm2 start npm --name app-dev -- run dev
185
+ pm2 logs app-dev --lines 20
186
+ EOF
187
+
188
+ echo "✅ Hot-reload deployment active!"
189
+ echo "💡 Changes will auto-reload on the dev server"
190
+ ```
191
+
192
+ ### 5. Post-Deployment Verification
193
+
194
+ ```bash
195
+ echo "🔍 Verifying deployment..."
196
+
197
+ # Quick health check (shorter timeout for dev)
198
+ max_retries=10
199
+ retry_count=0
200
+
201
+ while [ $retry_count -lt $max_retries ]; do
202
+ if curl -f -s "$DEV_URL/health" > /dev/null 2>&1; then
203
+ echo "✅ Health check passed!"
204
+ break
205
+ else
206
+ echo "⏳ Waiting for application... ($retry_count/$max_retries)"
207
+ sleep 3
208
+ ((retry_count++))
209
+ fi
210
+ done
211
+
212
+ if [ $retry_count -eq $max_retries ]; then
213
+ echo "⚠️ Health check timeout (non-critical for dev)"
214
+ echo "Check logs: $COOLIFY_URL/applications/$COOLIFY_DEV_APP_ID/logs"
215
+ fi
216
+
217
+ # Quick smoke test
218
+ echo "🧪 Running quick smoke test..."
219
+ response=$(curl -s -o /dev/null -w "%{http_code}" "$DEV_URL/")
220
+ if [ "$response" -eq 200 ]; then
221
+ echo "✅ Application responding correctly"
222
+ else
223
+ echo "⚠️ Application returned status: $response"
224
+ fi
225
+
226
+ # Show recent logs
227
+ echo "📋 Recent logs:"
228
+ if [ -n "$COOLIFY_URL" ]; then
229
+ curl -s "$COOLIFY_URL/api/v1/applications/$COOLIFY_DEV_APP_ID/logs" \
230
+ -H "Authorization: Bearer $COOLIFY_API_TOKEN" | tail -20
231
+ else
232
+ ssh dev-server "docker logs --tail 20 app-dev" || \
233
+ ssh dev-server "pm2 logs app-dev --lines 20 --nostream"
234
+ fi
235
+ ```
236
+
237
+ ### 6. Rollback Procedure
238
+
239
+ ```bash
240
+ rollback_dev() {
241
+ echo "🔄 Rolling back dev deployment..."
242
+
243
+ # Get previous commit
244
+ previous_commit=$(git log --oneline -2 | tail -1 | cut -d' ' -f1)
245
+ echo "Rolling back to: $previous_commit"
246
+
247
+ # Rollback via Coolify
248
+ if [ -n "$COOLIFY_URL" ]; then
249
+ curl -X POST "$COOLIFY_URL/api/v1/deploy" \
250
+ -H "Authorization: Bearer $COOLIFY_API_TOKEN" \
251
+ -H "Content-Type: application/json" \
252
+ -d "{
253
+ \"application_id\": \"$COOLIFY_DEV_APP_ID\",
254
+ \"commit\": \"$previous_commit\",
255
+ \"force\": true
256
+ }"
257
+ fi
258
+
259
+ # Or rollback via Docker
260
+ if [ -n "$DOCKER_REGISTRY" ]; then
261
+ ssh dev-server << EOF
262
+ docker pull $DOCKER_REGISTRY/app:dev-previous
263
+ docker stop app-dev
264
+ docker rm app-dev
265
+ docker run -d \
266
+ --name app-dev \
267
+ --restart unless-stopped \
268
+ -p 3000:3000 \
269
+ $DOCKER_REGISTRY/app:dev-previous
270
+ EOF
271
+ fi
272
+
273
+ # Or rollback via git
274
+ if [ -n "$DEV_SERVER_PATH" ]; then
275
+ ssh dev-server << EOF
276
+ cd /opt/app
277
+ git checkout $previous_commit
278
+ npm install
279
+ npm run build
280
+ pm2 restart app-dev
281
+ EOF
282
+ fi
283
+
284
+ echo "✅ Rollback complete!"
285
+ }
286
+
287
+ # Call rollback if needed
288
+ # rollback_dev
289
+ ```
290
+
291
+ ### 7. Auto-Deploy on Push (CI/CD Setup)
292
+
293
+ ```bash
294
+ setup_auto_deploy() {
295
+ echo "⚙️ Setting up auto-deploy for dev branch..."
296
+
297
+ # Create GitHub Actions workflow
298
+ cat > .github/workflows/deploy-dev.yml << 'EOF'
299
+ name: Deploy to Dev
300
+
301
+ on:
302
+ push:
303
+ branches: [dev, develop]
304
+
305
+ jobs:
306
+ deploy:
307
+ runs-on: ubuntu-latest
308
+ steps:
309
+ - uses: actions/checkout@v3
310
+
311
+ - name: Setup Node.js
312
+ uses: actions/setup-node@v3
313
+ with:
314
+ node-version: '18'
315
+ cache: 'npm'
316
+
317
+ - name: Install dependencies
318
+ run: npm ci
319
+
320
+ - name: Build
321
+ run: npm run build
322
+
323
+ - name: Deploy to Coolify
324
+ env:
325
+ COOLIFY_URL: ${{ secrets.COOLIFY_URL }}
326
+ COOLIFY_API_TOKEN: ${{ secrets.COOLIFY_API_TOKEN }}
327
+ COOLIFY_DEV_APP_ID: ${{ secrets.COOLIFY_DEV_APP_ID }}
328
+ run: |
329
+ curl -X POST "$COOLIFY_URL/api/v1/deploy" \
330
+ -H "Authorization: Bearer $COOLIFY_API_TOKEN" \
331
+ -H "Content-Type: application/json" \
332
+ -d "{\"application_id\":\"$COOLIFY_DEV_APP_ID\",\"commit\":\"$GITHUB_SHA\"}"
333
+
334
+ - name: Notify
335
+ if: always()
336
+ env:
337
+ SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_URL }}
338
+ run: |
339
+ curl -X POST "$SLACK_WEBHOOK" \
340
+ -H 'Content-Type: application/json' \
341
+ -d '{"text":"🚀 Dev deployment completed"}'
342
+ EOF
343
+
344
+ echo "✅ Auto-deploy workflow created!"
345
+ echo "💡 Configure secrets in GitHub repository settings"
346
+ }
347
+
348
+ # Call setup if needed
349
+ # setup_auto_deploy
350
+ ```
351
+
352
+ ### 8. Deployment Notification
353
+
354
+ ```bash
355
+ send_deployment_notification() {
356
+ local status=$1
357
+ local commit_sha=$(git rev-parse HEAD)
358
+ local commit_msg=$(git log -1 --pretty=%B)
359
+ local deployed_by=$(git config user.name)
360
+ local branch=$(git branch --show-current)
361
+
362
+ # Slack notification (if webhook configured)
363
+ if [ -n "$SLACK_WEBHOOK_URL" ]; then
364
+ curl -X POST "$SLACK_WEBHOOK_URL" \
365
+ -H 'Content-Type: application/json' \
366
+ -d "{
367
+ \"text\": \"🔧 Dev Deployment $status\",
368
+ \"blocks\": [
369
+ {
370
+ \"type\": \"section\",
371
+ \"text\": {
372
+ \"type\": \"mrkdwn\",
373
+ \"text\": \"*Dev Deployment $status*\n*Branch:* $branch\n*Commit:* \`$commit_sha\`\n*Message:* $commit_msg\n*Deployed by:* $deployed_by\n*Environment:* Development\"
374
+ }
375
+ }
376
+ ]
377
+ }"
378
+ fi
379
+
380
+ # Discord notification (if webhook configured)
381
+ if [ -n "$DISCORD_WEBHOOK_URL" ]; then
382
+ curl -X POST "$DISCORD_WEBHOOK_URL" \
383
+ -H 'Content-Type: application/json' \
384
+ -d "{
385
+ \"content\": \"🔧 **Dev Deployment $status**\",
386
+ \"embeds\": [{
387
+ \"title\": \"Development Deployment\",
388
+ \"color\": 3447003,
389
+ \"fields\": [
390
+ {\"name\": \"Branch\", \"value\": \"$branch\", \"inline\": true},
391
+ {\"name\": \"Commit\", \"value\": \"$commit_sha\", \"inline\": true},
392
+ {\"name\": \"Message\", \"value\": \"$commit_msg\"},
393
+ {\"name\": \"Deployed by\", \"value\": \"$deployed_by\", \"inline\": true}
394
+ ],
395
+ \"timestamp\": \"$(date -u +%Y-%m-%dT%H:%M:%SZ)\"
396
+ }]
397
+ }"
398
+ fi
399
+ }
400
+
401
+ # Send notification
402
+ send_deployment_notification "Success"
403
+ ```
404
+
405
+ ## Complete Deployment Script
406
+
407
+ ```bash
408
+ #!/bin/bash
409
+ set -e
410
+
411
+ echo "🚀 Starting dev deployment..."
412
+
413
+ # 1. Quick pre-flight checks
414
+ current_branch=$(git branch --show-current)
415
+ if [[ "$current_branch" != "dev" && "$current_branch" != "develop" ]]; then
416
+ echo "⚠️ Not on dev branch, switching..."
417
+ git checkout dev || git checkout develop
418
+ fi
419
+
420
+ git pull origin $(git branch --show-current)
421
+
422
+ # 2. Build (tests optional for dev)
423
+ echo "🏗️ Building..."
424
+ npm run build || { echo "❌ Build failed"; exit 1; }
425
+
426
+ # 3. Deploy (choose method)
427
+ if [ -n "$COOLIFY_DEV_APP_ID" ]; then
428
+ # Coolify method
429
+ echo "🚀 Deploying via Coolify..."
430
+ curl -X POST "$COOLIFY_URL/api/v1/deploy" \
431
+ -H "Authorization: Bearer $COOLIFY_API_TOKEN" \
432
+ -H "Content-Type: application/json" \
433
+ -d "{\"application_id\":\"$COOLIFY_DEV_APP_ID\",\"commit\":\"$(git rev-parse HEAD)\",\"force\":true}"
434
+ elif [ -n "$DOCKER_REGISTRY" ]; then
435
+ # Docker method
436
+ echo "🐳 Deploying via Docker..."
437
+ docker build -t $DOCKER_REGISTRY/app:dev .
438
+ docker push $DOCKER_REGISTRY/app:dev
439
+ ssh dev-server "docker pull $DOCKER_REGISTRY/app:dev && docker stop app-dev; docker rm app-dev; docker run -d --name app-dev -p 3000:3000 $DOCKER_REGISTRY/app:dev"
440
+ else
441
+ echo "❌ No deployment method configured"
442
+ exit 1
443
+ fi
444
+
445
+ # 4. Quick verify
446
+ sleep 5
447
+ curl -f "$DEV_URL/health" || echo "⚠️ Health check failed (non-critical)"
448
+
449
+ # 5. Notify
450
+ send_deployment_notification "Success"
451
+
452
+ echo "✅ Dev deployment complete!"
453
+ echo "🌐 Application: $DEV_URL"
454
+ ```
455
+
456
+ ## Environment Configuration
457
+
458
+ **Required .env variables:**
459
+ ```bash
460
+ # Coolify
461
+ COOLIFY_URL=https://coolify.your-server.com
462
+ COOLIFY_API_TOKEN=your_api_token
463
+ COOLIFY_DEV_APP_ID=your_dev_app_id
464
+
465
+ # Docker (alternative)
466
+ DOCKER_REGISTRY=registry.your-domain.com
467
+ DEV_IMAGE_TAG=dev
468
+
469
+ # Application
470
+ DEV_URL=https://dev.your-app.com
471
+
472
+ # Server (optional for direct deployment)
473
+ DEV_SERVER=dev-server.your-domain.com
474
+ DEV_SERVER_PATH=/opt/app
475
+
476
+ # Notifications (optional)
477
+ SLACK_WEBHOOK_URL=https://hooks.slack.com/services/YOUR/WEBHOOK/URL
478
+ DISCORD_WEBHOOK_URL=https://discord.com/api/webhooks/YOUR/WEBHOOK
479
+ ```
480
+
481
+ ## Development Tips
482
+
483
+ **Fast iteration workflow:**
484
+ ```bash
485
+ # Watch mode with auto-deploy
486
+ npm run dev -- --watch
487
+
488
+ # Or use rsync for live sync
489
+ while inotifywait -r -e modify,create,delete src/; do
490
+ rsync -avz src/ dev-server:/opt/app/src/
491
+ done
492
+ ```
493
+
494
+ **Skip tests for rapid deployment:**
495
+ ```bash
496
+ export SKIP_TESTS=true
497
+ /myai-deploy-dev --quick
498
+ ```
499
+
500
+ Execute the dev deployment workflow with minimal checks for fast iteration.