agileflow 3.4.2 → 4.0.0-alpha.1
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.
- package/CHANGELOG.md +235 -494
- package/README.md +22 -114
- package/bin/agileflow.js +15 -0
- package/bin/hooks/pre-bash.js +35 -0
- package/bin/hooks/pre-compact.js +34 -0
- package/bin/hooks/pre-edit.js +32 -0
- package/bin/hooks/pre-write.js +32 -0
- package/bin/hooks/session-start.js +42 -0
- package/bin/hooks/stop.js +34 -0
- package/content/plugins/ads/plugin.yaml +14 -0
- package/content/plugins/audit/plugin.yaml +14 -0
- package/content/plugins/core/hooks/session-welcome.js +19 -0
- package/content/plugins/core/plugin.yaml +34 -0
- package/content/plugins/core/skills/agileflow-adr/SKILL.md +179 -0
- package/content/plugins/core/skills/agileflow-babysit-mentor/SKILL.md +144 -0
- package/content/plugins/core/skills/agileflow-epic-planner/SKILL.md +179 -0
- package/content/plugins/core/skills/agileflow-status-updater/SKILL.md +132 -0
- package/content/plugins/core/skills/agileflow-story-writer/SKILL.md +200 -0
- package/content/plugins/council/plugin.yaml +14 -0
- package/content/plugins/seo/plugin.yaml +14 -0
- package/package.json +29 -49
- package/src/cli/commands/doctor.js +159 -0
- package/src/cli/commands/hook.js +80 -0
- package/src/cli/commands/setup.js +254 -0
- package/src/cli/commands/status.js +47 -0
- package/src/cli/commands/update.js +82 -0
- package/src/cli/index.js +73 -0
- package/src/cli/wizard/ide-picker.js +57 -0
- package/src/cli/wizard/personalization.js +64 -0
- package/src/cli/wizard/plugin-picker.js +106 -0
- package/src/lib/hash.js +41 -0
- package/src/runtime/config/defaults.js +45 -0
- package/src/runtime/config/loader.js +118 -0
- package/src/runtime/config/schema.json +76 -0
- package/src/runtime/config/writer.js +54 -0
- package/src/runtime/hooks/aggregator.js +133 -0
- package/src/runtime/hooks/chain.js +93 -0
- package/src/runtime/hooks/logger.js +68 -0
- package/src/runtime/hooks/manifest-loader.js +228 -0
- package/src/runtime/hooks/orchestrator.js +322 -0
- package/src/runtime/ide/capabilities.js +111 -0
- package/src/runtime/ide/claude-code-settings.js +234 -0
- package/src/runtime/ide/claude-code-skills.js +202 -0
- package/src/runtime/installer/file-index.js +112 -0
- package/src/runtime/installer/install.js +306 -0
- package/src/runtime/installer/stash.js +61 -0
- package/src/runtime/installer/sync-engine.js +205 -0
- package/src/runtime/plugins/registry.js +132 -0
- package/src/runtime/plugins/resolver.js +138 -0
- package/src/runtime/plugins/validator.js +196 -0
- package/src/runtime/skills/validator.js +335 -0
- package/lib/README.md +0 -178
- package/lib/api-routes.js +0 -625
- package/lib/api-server.js +0 -278
- package/lib/cache-provider.js +0 -155
- package/lib/claude-cli-bridge.js +0 -215
- package/lib/codebase-indexer.js +0 -819
- package/lib/colors.generated.js +0 -117
- package/lib/colors.js +0 -341
- package/lib/consent.js +0 -232
- package/lib/content-sanitizer.js +0 -464
- package/lib/correlation.js +0 -277
- package/lib/dashboard-automations.js +0 -130
- package/lib/dashboard-git.js +0 -254
- package/lib/dashboard-inbox.js +0 -64
- package/lib/dashboard-protocol.js +0 -605
- package/lib/dashboard-server.js +0 -1296
- package/lib/dashboard-session.js +0 -136
- package/lib/dashboard-status.js +0 -72
- package/lib/dashboard-terminal.js +0 -354
- package/lib/dashboard-websocket.js +0 -88
- package/lib/drivers/claude-driver.ts +0 -312
- package/lib/drivers/codex-driver.ts +0 -464
- package/lib/drivers/driver-manager.ts +0 -159
- package/lib/drivers/gemini-driver.ts +0 -498
- package/lib/drivers/index.ts +0 -17
- package/lib/error-codes.js +0 -590
- package/lib/errors.js +0 -670
- package/lib/feature-flags.js +0 -171
- package/lib/feedback.js +0 -595
- package/lib/file-cache.js +0 -541
- package/lib/flag-detection.js +0 -344
- package/lib/format-error.js +0 -156
- package/lib/gate-runner.js +0 -282
- package/lib/generator-factory.js +0 -333
- package/lib/git-operations.js +0 -266
- package/lib/lazy-require.js +0 -59
- package/lib/lock-file.js +0 -144
- package/lib/logger.js +0 -106
- package/lib/merge-operations.js +0 -1006
- package/lib/path-resolver.js +0 -544
- package/lib/path-utils.js +0 -49
- package/lib/paths.js +0 -291
- package/lib/placeholder-registry.js +0 -822
- package/lib/process-executor.js +0 -214
- package/lib/progress.js +0 -334
- package/lib/protocol/driver.ts +0 -354
- package/lib/protocol/index.ts +0 -12
- package/lib/protocol/ir.ts +0 -271
- package/lib/registry-cache.js +0 -80
- package/lib/registry-di.js +0 -358
- package/lib/result-schema.js +0 -363
- package/lib/result.js +0 -210
- package/lib/session-display.js +0 -331
- package/lib/session-operations.js +0 -611
- package/lib/session-registry.js +0 -484
- package/lib/session-state-machine.js +0 -465
- package/lib/session-switching.js +0 -191
- package/lib/skill-loader.js +0 -213
- package/lib/smart-json-file.js +0 -682
- package/lib/state-machine.js +0 -286
- package/lib/table-formatter.js +0 -519
- package/lib/template-loader.js +0 -143
- package/lib/transient-status.js +0 -374
- package/lib/ui-manager.js +0 -612
- package/lib/validate-args.js +0 -213
- package/lib/validate-commands.js +0 -308
- package/lib/validate-names.js +0 -143
- package/lib/validate-paths.js +0 -434
- package/lib/validate.js +0 -134
- package/lib/worktree-operations.js +0 -201
- package/lib/yaml-utils.js +0 -164
- package/scripts/README.md +0 -267
- package/scripts/af +0 -34
- package/scripts/agent-loop.js +0 -819
- package/scripts/agileflow-configure.js +0 -368
- package/scripts/agileflow-statusline.sh +0 -857
- package/scripts/agileflow-welcome.js +0 -2246
- package/scripts/api-server-runner.js +0 -177
- package/scripts/archive-completed-stories.sh +0 -308
- package/scripts/auto-self-improve.js +0 -326
- package/scripts/automation-run-due.js +0 -128
- package/scripts/babysit-clear-restore.js +0 -154
- package/scripts/babysit-context-restore.js +0 -89
- package/scripts/backfill-ideation-status.js +0 -128
- package/scripts/batch-pmap-loop.js +0 -551
- package/scripts/check-update.js +0 -282
- package/scripts/ci-summary.js +0 -294
- package/scripts/claude-smart.sh +0 -85
- package/scripts/claude-tmux.sh +0 -737
- package/scripts/claude-watchdog.sh +0 -225
- package/scripts/clear-active-command.js +0 -48
- package/scripts/compress-status.sh +0 -116
- package/scripts/context-loader.js +0 -310
- package/scripts/damage-control/bash-tool-damage-control.js +0 -22
- package/scripts/damage-control/edit-tool-damage-control.js +0 -19
- package/scripts/damage-control/patterns.yaml +0 -227
- package/scripts/damage-control/write-tool-damage-control.js +0 -19
- package/scripts/damage-control-bash.js +0 -51
- package/scripts/damage-control-edit.js +0 -48
- package/scripts/damage-control-multi-agent.js +0 -231
- package/scripts/damage-control-write.js +0 -48
- package/scripts/dashboard-serve.js +0 -336
- package/scripts/dependency-check.js +0 -311
- package/scripts/document-repl.js +0 -793
- package/scripts/expertise-metrics.sh +0 -264
- package/scripts/generate-all.sh +0 -77
- package/scripts/generate-colors.js +0 -314
- package/scripts/generators/agent-registry.js +0 -183
- package/scripts/generators/command-registry.js +0 -166
- package/scripts/generators/index.js +0 -85
- package/scripts/generators/inject-babysit.js +0 -191
- package/scripts/generators/inject-help.js +0 -125
- package/scripts/generators/inject-readme.js +0 -166
- package/scripts/generators/skill-registry.js +0 -188
- package/scripts/get-env.js +0 -225
- package/scripts/init.sh +0 -76
- package/scripts/lib/README-portable-tasks.md +0 -424
- package/scripts/lib/ac-test-matcher.js +0 -452
- package/scripts/lib/audit-cleanup.js +0 -250
- package/scripts/lib/audit-registry.js +0 -340
- package/scripts/lib/automation-registry.js +0 -544
- package/scripts/lib/automation-runner.js +0 -476
- package/scripts/lib/browser-qa-evidence.js +0 -409
- package/scripts/lib/browser-qa-status.js +0 -192
- package/scripts/lib/bus-utils.js +0 -473
- package/scripts/lib/colors.generated.sh +0 -82
- package/scripts/lib/colors.sh +0 -46
- package/scripts/lib/command-prereqs.js +0 -280
- package/scripts/lib/concurrency-limiter.js +0 -511
- package/scripts/lib/configure-detect.js +0 -596
- package/scripts/lib/configure-features.js +0 -1927
- package/scripts/lib/configure-repair.js +0 -327
- package/scripts/lib/configure-utils.js +0 -114
- package/scripts/lib/context-formatter.js +0 -1158
- package/scripts/lib/context-loader.js +0 -840
- package/scripts/lib/counter.js +0 -103
- package/scripts/lib/damage-control-utils.js +0 -619
- package/scripts/lib/feature-catalog.js +0 -332
- package/scripts/lib/file-lock.js +0 -392
- package/scripts/lib/file-tracking.js +0 -735
- package/scripts/lib/frontmatter-parser.js +0 -133
- package/scripts/lib/gate-enforcer.js +0 -295
- package/scripts/lib/hook-metrics.js +0 -324
- package/scripts/lib/ideation-index.js +0 -1205
- package/scripts/lib/json-utils.sh +0 -162
- package/scripts/lib/lifecycle-detector.js +0 -125
- package/scripts/lib/model-profiles.js +0 -118
- package/scripts/lib/portable-tasks-cli.js +0 -274
- package/scripts/lib/portable-tasks.js +0 -479
- package/scripts/lib/process-cleanup.js +0 -527
- package/scripts/lib/quality-gates.js +0 -761
- package/scripts/lib/scale-detector.js +0 -396
- package/scripts/lib/sessionRegistry.js +0 -678
- package/scripts/lib/signal-detectors.js +0 -880
- package/scripts/lib/skill-catalog.js +0 -557
- package/scripts/lib/skill-recommender.js +0 -311
- package/scripts/lib/state-migrator.js +0 -353
- package/scripts/lib/status-task-bridge.js +0 -522
- package/scripts/lib/status-writer.js +0 -255
- package/scripts/lib/story-claiming.js +0 -704
- package/scripts/lib/story-state-machine.js +0 -437
- package/scripts/lib/sync-ideation-status.js +0 -291
- package/scripts/lib/task-registry-cache.js +0 -490
- package/scripts/lib/task-registry.js +0 -1191
- package/scripts/lib/task-sync.js +0 -230
- package/scripts/lib/tdd-phase-manager.js +0 -455
- package/scripts/lib/team-events.js +0 -510
- package/scripts/lib/tmux-audit-monitor.js +0 -611
- package/scripts/lib/tmux-group-colors.js +0 -113
- package/scripts/lib/tool-registry.yaml +0 -241
- package/scripts/lib/tool-shed.js +0 -441
- package/scripts/lib/validation-registry.js +0 -177
- package/scripts/messaging-bridge.js +0 -561
- package/scripts/migrate-ideation-index.js +0 -553
- package/scripts/native-team-observer.js +0 -219
- package/scripts/obtain-context.js +0 -272
- package/scripts/pre-push-check.sh +0 -46
- package/scripts/precompact-context.sh +0 -306
- package/scripts/query-codebase.js +0 -543
- package/scripts/ralph-loop.js +0 -1278
- package/scripts/resume-session.sh +0 -121
- package/scripts/screenshot-verifier.js +0 -215
- package/scripts/session-boundary.js +0 -138
- package/scripts/session-coordinator.sh +0 -232
- package/scripts/session-manager.js +0 -546
- package/scripts/smart-detect.js +0 -449
- package/scripts/spawn-audit-sessions.js +0 -877
- package/scripts/spawn-parallel.js +0 -751
- package/scripts/strip-ai-attribution.js +0 -63
- package/scripts/task-completed-gate.js +0 -237
- package/scripts/team-manager.js +0 -596
- package/scripts/team-status-display.js +0 -200
- package/scripts/teammate-idle-gate.js +0 -237
- package/scripts/test-session-boundary.js +0 -80
- package/scripts/tmux-close-windows.sh +0 -180
- package/scripts/tmux-restore-window.sh +0 -67
- package/scripts/tmux-save-closed-window.sh +0 -35
- package/scripts/tui/App.js +0 -151
- package/scripts/tui/Dashboard.js +0 -277
- package/scripts/tui/blessed/data/watcher.js +0 -180
- package/scripts/tui/blessed/index.js +0 -244
- package/scripts/tui/blessed/panels/output.js +0 -101
- package/scripts/tui/blessed/panels/sessions.js +0 -150
- package/scripts/tui/blessed/panels/trace.js +0 -97
- package/scripts/tui/blessed/ui/help.js +0 -77
- package/scripts/tui/blessed/ui/screen.js +0 -52
- package/scripts/tui/blessed/ui/statusbar.js +0 -47
- package/scripts/tui/blessed/ui/tabbar.js +0 -99
- package/scripts/tui/index.js +0 -70
- package/scripts/tui/lib/crashRecovery.js +0 -304
- package/scripts/tui/lib/eventStream.js +0 -309
- package/scripts/tui/lib/keyboard.js +0 -261
- package/scripts/tui/lib/loopControl.js +0 -371
- package/scripts/tui/panels/OutputPanel.js +0 -240
- package/scripts/tui/panels/SessionPanel.js +0 -170
- package/scripts/tui/panels/TracePanel.js +0 -298
- package/scripts/tui/simple-tui.js +0 -510
- package/scripts/validate-expertise.sh +0 -263
- package/scripts/validate-tokens.sh +0 -73
- package/scripts/validators/README.md +0 -143
- package/scripts/validators/component-validator.js +0 -239
- package/scripts/validators/json-schema-validator.js +0 -186
- package/scripts/validators/markdown-validator.js +0 -152
- package/scripts/validators/migration-validator.js +0 -129
- package/scripts/validators/security-validator.js +0 -380
- package/scripts/validators/story-format-validator.js +0 -197
- package/scripts/validators/test-result-validator.js +0 -114
- package/scripts/validators/workflow-validator.js +0 -247
- package/scripts/welcome-deferred.js +0 -437
- package/scripts/worktree-create.sh +0 -111
- package/src/core/agents/a11y-analyzer-aria.md +0 -155
- package/src/core/agents/a11y-analyzer-forms.md +0 -162
- package/src/core/agents/a11y-analyzer-keyboard.md +0 -175
- package/src/core/agents/a11y-analyzer-semantic.md +0 -153
- package/src/core/agents/a11y-analyzer-visual.md +0 -158
- package/src/core/agents/a11y-consensus.md +0 -248
- package/src/core/agents/accessibility.md +0 -515
- package/src/core/agents/adr-writer.md +0 -463
- package/src/core/agents/ads-audit-budget.md +0 -181
- package/src/core/agents/ads-audit-compliance.md +0 -169
- package/src/core/agents/ads-audit-creative.md +0 -164
- package/src/core/agents/ads-audit-google.md +0 -226
- package/src/core/agents/ads-audit-meta.md +0 -183
- package/src/core/agents/ads-audit-tracking.md +0 -197
- package/src/core/agents/ads-consensus.md +0 -396
- package/src/core/agents/ads-generate.md +0 -145
- package/src/core/agents/ads-performance-tracker.md +0 -197
- package/src/core/agents/analytics.md +0 -617
- package/src/core/agents/api-quality-analyzer-conventions.md +0 -148
- package/src/core/agents/api-quality-analyzer-docs.md +0 -176
- package/src/core/agents/api-quality-analyzer-errors.md +0 -183
- package/src/core/agents/api-quality-analyzer-pagination.md +0 -171
- package/src/core/agents/api-quality-analyzer-versioning.md +0 -143
- package/src/core/agents/api-quality-consensus.md +0 -214
- package/src/core/agents/api-validator.md +0 -183
- package/src/core/agents/api.md +0 -665
- package/src/core/agents/arch-analyzer-circular.md +0 -148
- package/src/core/agents/arch-analyzer-complexity.md +0 -171
- package/src/core/agents/arch-analyzer-coupling.md +0 -146
- package/src/core/agents/arch-analyzer-layering.md +0 -151
- package/src/core/agents/arch-analyzer-patterns.md +0 -162
- package/src/core/agents/arch-consensus.md +0 -227
- package/src/core/agents/brainstorm-analyzer-features.md +0 -169
- package/src/core/agents/brainstorm-analyzer-growth.md +0 -161
- package/src/core/agents/brainstorm-analyzer-integration.md +0 -172
- package/src/core/agents/brainstorm-analyzer-market.md +0 -147
- package/src/core/agents/brainstorm-analyzer-ux.md +0 -167
- package/src/core/agents/brainstorm-consensus.md +0 -237
- package/src/core/agents/browser-qa.md +0 -328
- package/src/core/agents/ci.md +0 -511
- package/src/core/agents/code-reviewer.md +0 -288
- package/src/core/agents/codebase-query.md +0 -266
- package/src/core/agents/completeness-analyzer-api.md +0 -190
- package/src/core/agents/completeness-analyzer-conditional.md +0 -201
- package/src/core/agents/completeness-analyzer-handlers.md +0 -159
- package/src/core/agents/completeness-analyzer-imports.md +0 -159
- package/src/core/agents/completeness-analyzer-routes.md +0 -182
- package/src/core/agents/completeness-analyzer-state.md +0 -188
- package/src/core/agents/completeness-analyzer-stubs.md +0 -198
- package/src/core/agents/completeness-consensus.md +0 -286
- package/src/core/agents/compliance.md +0 -509
- package/src/core/agents/council-advocate.md +0 -206
- package/src/core/agents/council-analyst.md +0 -252
- package/src/core/agents/council-optimist.md +0 -170
- package/src/core/agents/database.md +0 -601
- package/src/core/agents/datamigration.md +0 -699
- package/src/core/agents/design.md +0 -525
- package/src/core/agents/devops.md +0 -720
- package/src/core/agents/documentation.md +0 -504
- package/src/core/agents/epic-planner.md +0 -480
- package/src/core/agents/error-analyzer.md +0 -201
- package/src/core/agents/integrations.md +0 -603
- package/src/core/agents/legal-analyzer-a11y.md +0 -110
- package/src/core/agents/legal-analyzer-ai.md +0 -117
- package/src/core/agents/legal-analyzer-consumer.md +0 -108
- package/src/core/agents/legal-analyzer-content.md +0 -113
- package/src/core/agents/legal-analyzer-international.md +0 -115
- package/src/core/agents/legal-analyzer-licensing.md +0 -115
- package/src/core/agents/legal-analyzer-privacy.md +0 -108
- package/src/core/agents/legal-analyzer-security.md +0 -112
- package/src/core/agents/legal-analyzer-terms.md +0 -111
- package/src/core/agents/legal-consensus.md +0 -242
- package/src/core/agents/logic-analyzer-edge.md +0 -170
- package/src/core/agents/logic-analyzer-flow.md +0 -253
- package/src/core/agents/logic-analyzer-invariant.md +0 -206
- package/src/core/agents/logic-analyzer-race.md +0 -266
- package/src/core/agents/logic-analyzer-type.md +0 -217
- package/src/core/agents/logic-consensus.md +0 -253
- package/src/core/agents/mentor.md +0 -654
- package/src/core/agents/mobile.md +0 -501
- package/src/core/agents/monitoring.md +0 -537
- package/src/core/agents/multi-expert.md +0 -311
- package/src/core/agents/orchestrator.md +0 -749
- package/src/core/agents/perf-analyzer-assets.md +0 -174
- package/src/core/agents/perf-analyzer-bundle.md +0 -165
- package/src/core/agents/perf-analyzer-caching.md +0 -160
- package/src/core/agents/perf-analyzer-compute.md +0 -165
- package/src/core/agents/perf-analyzer-memory.md +0 -182
- package/src/core/agents/perf-analyzer-network.md +0 -157
- package/src/core/agents/perf-analyzer-queries.md +0 -155
- package/src/core/agents/perf-analyzer-rendering.md +0 -156
- package/src/core/agents/perf-consensus.md +0 -280
- package/src/core/agents/performance.md +0 -492
- package/src/core/agents/product.md +0 -535
- package/src/core/agents/qa.md +0 -765
- package/src/core/agents/readme-updater.md +0 -579
- package/src/core/agents/refactor.md +0 -558
- package/src/core/agents/research.md +0 -453
- package/src/core/agents/rlm-subcore.md +0 -207
- package/src/core/agents/schema-validator.md +0 -454
- package/src/core/agents/security-analyzer-api.md +0 -199
- package/src/core/agents/security-analyzer-auth.md +0 -160
- package/src/core/agents/security-analyzer-authz.md +0 -168
- package/src/core/agents/security-analyzer-deps.md +0 -147
- package/src/core/agents/security-analyzer-infra.md +0 -176
- package/src/core/agents/security-analyzer-injection.md +0 -148
- package/src/core/agents/security-analyzer-input.md +0 -191
- package/src/core/agents/security-analyzer-secrets.md +0 -175
- package/src/core/agents/security-consensus.md +0 -276
- package/src/core/agents/security.md +0 -486
- package/src/core/agents/seo-analyzer-content.md +0 -167
- package/src/core/agents/seo-analyzer-images.md +0 -187
- package/src/core/agents/seo-analyzer-performance.md +0 -206
- package/src/core/agents/seo-analyzer-schema.md +0 -176
- package/src/core/agents/seo-analyzer-sitemap.md +0 -172
- package/src/core/agents/seo-analyzer-technical.md +0 -144
- package/src/core/agents/seo-consensus.md +0 -289
- package/src/core/agents/team-coordinator.md +0 -333
- package/src/core/agents/team-lead.md +0 -171
- package/src/core/agents/test-analyzer-assertions.md +0 -181
- package/src/core/agents/test-analyzer-coverage.md +0 -183
- package/src/core/agents/test-analyzer-fragility.md +0 -185
- package/src/core/agents/test-analyzer-integration.md +0 -155
- package/src/core/agents/test-analyzer-maintenance.md +0 -173
- package/src/core/agents/test-analyzer-mocking.md +0 -178
- package/src/core/agents/test-analyzer-patterns.md +0 -189
- package/src/core/agents/test-analyzer-structure.md +0 -177
- package/src/core/agents/test-consensus.md +0 -294
- package/src/core/agents/testing.md +0 -527
- package/src/core/agents/ui-validator.md +0 -331
- package/src/core/agents/ui.md +0 -1227
- package/src/core/commands/adr/list.md +0 -191
- package/src/core/commands/adr/update.md +0 -258
- package/src/core/commands/adr/view.md +0 -274
- package/src/core/commands/adr.md +0 -394
- package/src/core/commands/ads/audit.md +0 -437
- package/src/core/commands/ads/budget.md +0 -97
- package/src/core/commands/ads/competitor.md +0 -112
- package/src/core/commands/ads/creative.md +0 -85
- package/src/core/commands/ads/generate.md +0 -238
- package/src/core/commands/ads/google.md +0 -112
- package/src/core/commands/ads/health.md +0 -327
- package/src/core/commands/ads/landing.md +0 -119
- package/src/core/commands/ads/linkedin.md +0 -112
- package/src/core/commands/ads/meta.md +0 -91
- package/src/core/commands/ads/microsoft.md +0 -115
- package/src/core/commands/ads/plan.md +0 -321
- package/src/core/commands/ads/test-plan.md +0 -317
- package/src/core/commands/ads/tiktok.md +0 -129
- package/src/core/commands/ads/track.md +0 -288
- package/src/core/commands/ads/youtube.md +0 -124
- package/src/core/commands/ads.md +0 -140
- package/src/core/commands/agent.md +0 -256
- package/src/core/commands/api.md +0 -267
- package/src/core/commands/assign.md +0 -369
- package/src/core/commands/audit.md +0 -531
- package/src/core/commands/auto.md +0 -556
- package/src/core/commands/automate.md +0 -415
- package/src/core/commands/babysit.md +0 -643
- package/src/core/commands/baseline.md +0 -743
- package/src/core/commands/batch.md +0 -551
- package/src/core/commands/blockers.md +0 -602
- package/src/core/commands/board.md +0 -509
- package/src/core/commands/browser-qa.md +0 -240
- package/src/core/commands/changelog.md +0 -582
- package/src/core/commands/choose.md +0 -430
- package/src/core/commands/ci.md +0 -330
- package/src/core/commands/code/accessibility.md +0 -347
- package/src/core/commands/code/api.md +0 -297
- package/src/core/commands/code/architecture.md +0 -297
- package/src/core/commands/code/completeness.md +0 -503
- package/src/core/commands/code/legal.md +0 -493
- package/src/core/commands/code/logic.md +0 -416
- package/src/core/commands/code/performance.md +0 -490
- package/src/core/commands/code/security.md +0 -493
- package/src/core/commands/code/test.md +0 -489
- package/src/core/commands/compress.md +0 -408
- package/src/core/commands/configure.md +0 -1159
- package/src/core/commands/context/export.md +0 -296
- package/src/core/commands/context/full.md +0 -353
- package/src/core/commands/context/note.md +0 -380
- package/src/core/commands/council.md +0 -592
- package/src/core/commands/debt.md +0 -491
- package/src/core/commands/deploy.md +0 -864
- package/src/core/commands/deps.md +0 -728
- package/src/core/commands/diagnose.md +0 -404
- package/src/core/commands/docs.md +0 -469
- package/src/core/commands/epic/edit.md +0 -213
- package/src/core/commands/epic/list.md +0 -190
- package/src/core/commands/epic/view.md +0 -267
- package/src/core/commands/epic.md +0 -477
- package/src/core/commands/export.md +0 -238
- package/src/core/commands/feedback.md +0 -603
- package/src/core/commands/handoff.md +0 -386
- package/src/core/commands/help.md +0 -194
- package/src/core/commands/ideate/brief.md +0 -363
- package/src/core/commands/ideate/discover.md +0 -399
- package/src/core/commands/ideate/features.md +0 -496
- package/src/core/commands/ideate/history.md +0 -403
- package/src/core/commands/ideate/new.md +0 -899
- package/src/core/commands/impact.md +0 -407
- package/src/core/commands/install.md +0 -529
- package/src/core/commands/learn/explain.md +0 -118
- package/src/core/commands/learn/glossary.md +0 -135
- package/src/core/commands/learn/patterns.md +0 -138
- package/src/core/commands/learn/tour.md +0 -126
- package/src/core/commands/maintain.md +0 -558
- package/src/core/commands/metrics.md +0 -844
- package/src/core/commands/migrate/codemods.md +0 -151
- package/src/core/commands/migrate/plan.md +0 -131
- package/src/core/commands/migrate/scan.md +0 -114
- package/src/core/commands/migrate/validate.md +0 -119
- package/src/core/commands/multi-expert.md +0 -447
- package/src/core/commands/packages.md +0 -535
- package/src/core/commands/pr.md +0 -337
- package/src/core/commands/readme-sync.md +0 -329
- package/src/core/commands/research/analyze.md +0 -798
- package/src/core/commands/research/ask.md +0 -864
- package/src/core/commands/research/import.md +0 -1025
- package/src/core/commands/research/list.md +0 -273
- package/src/core/commands/research/synthesize.md +0 -928
- package/src/core/commands/research/view.md +0 -323
- package/src/core/commands/retro.md +0 -795
- package/src/core/commands/review.md +0 -694
- package/src/core/commands/rlm.md +0 -446
- package/src/core/commands/roadmap/analyze.md +0 -400
- package/src/core/commands/rpi.md +0 -633
- package/src/core/commands/seo/audit.md +0 -428
- package/src/core/commands/seo/competitor.md +0 -174
- package/src/core/commands/seo/content.md +0 -107
- package/src/core/commands/seo/geo.md +0 -229
- package/src/core/commands/seo/hreflang.md +0 -140
- package/src/core/commands/seo/images.md +0 -96
- package/src/core/commands/seo/page.md +0 -198
- package/src/core/commands/seo/plan.md +0 -163
- package/src/core/commands/seo/programmatic.md +0 -131
- package/src/core/commands/seo/references/cwv-thresholds.md +0 -64
- package/src/core/commands/seo/references/eeat-framework.md +0 -110
- package/src/core/commands/seo/references/quality-gates.md +0 -91
- package/src/core/commands/seo/references/schema-types.md +0 -102
- package/src/core/commands/seo/schema.md +0 -183
- package/src/core/commands/seo/sitemap.md +0 -97
- package/src/core/commands/seo/technical.md +0 -100
- package/src/core/commands/seo.md +0 -107
- package/src/core/commands/serve.md +0 -127
- package/src/core/commands/session/cleanup.md +0 -452
- package/src/core/commands/session/end.md +0 -865
- package/src/core/commands/session/history.md +0 -293
- package/src/core/commands/session/init.md +0 -210
- package/src/core/commands/session/new.md +0 -827
- package/src/core/commands/session/resume.md +0 -291
- package/src/core/commands/session/spawn.md +0 -205
- package/src/core/commands/session/status.md +0 -274
- package/src/core/commands/skill/list.md +0 -139
- package/src/core/commands/skill/recommend.md +0 -216
- package/src/core/commands/sprint.md +0 -714
- package/src/core/commands/status/undo.md +0 -191
- package/src/core/commands/status.md +0 -423
- package/src/core/commands/story/edit.md +0 -204
- package/src/core/commands/story/list.md +0 -199
- package/src/core/commands/story/view.md +0 -312
- package/src/core/commands/story-validate.md +0 -491
- package/src/core/commands/story.md +0 -465
- package/src/core/commands/tdd-next.md +0 -238
- package/src/core/commands/tdd.md +0 -211
- package/src/core/commands/team/guide.md +0 -688
- package/src/core/commands/team/list.md +0 -59
- package/src/core/commands/team/start.md +0 -130
- package/src/core/commands/team/status.md +0 -66
- package/src/core/commands/team/stop.md +0 -78
- package/src/core/commands/template.md +0 -644
- package/src/core/commands/tests.md +0 -731
- package/src/core/commands/update.md +0 -591
- package/src/core/commands/validate-expertise.md +0 -305
- package/src/core/commands/velocity.md +0 -630
- package/src/core/commands/verify.md +0 -534
- package/src/core/commands/whats-new.md +0 -201
- package/src/core/commands/workflow.md +0 -449
- package/src/core/council/sessions/.gitkeep +0 -0
- package/src/core/council/shared_reasoning.template.md +0 -106
- package/src/core/experts/README.md +0 -236
- package/src/core/experts/_core-expertise.yaml +0 -105
- package/src/core/experts/accessibility/expertise.yaml +0 -115
- package/src/core/experts/accessibility/question.md +0 -41
- package/src/core/experts/accessibility/self-improve.md +0 -45
- package/src/core/experts/accessibility/workflow.md +0 -59
- package/src/core/experts/adr-writer/expertise.yaml +0 -138
- package/src/core/experts/adr-writer/question.md +0 -56
- package/src/core/experts/adr-writer/self-improve.md +0 -106
- package/src/core/experts/adr-writer/workflow.md +0 -184
- package/src/core/experts/analytics/expertise.yaml +0 -119
- package/src/core/experts/analytics/question.md +0 -74
- package/src/core/experts/analytics/self-improve.md +0 -163
- package/src/core/experts/analytics/workflow.md +0 -272
- package/src/core/experts/api/expertise.yaml +0 -124
- package/src/core/experts/api/question.md +0 -74
- package/src/core/experts/api/self-improve.md +0 -122
- package/src/core/experts/api/workflow.md +0 -248
- package/src/core/experts/ci/expertise.yaml +0 -106
- package/src/core/experts/ci/question.md +0 -69
- package/src/core/experts/ci/self-improve.md +0 -100
- package/src/core/experts/ci/workflow.md +0 -145
- package/src/core/experts/codebase-query/expertise.yaml +0 -121
- package/src/core/experts/codebase-query/question.md +0 -73
- package/src/core/experts/codebase-query/self-improve.md +0 -105
- package/src/core/experts/compliance/expertise.yaml +0 -101
- package/src/core/experts/compliance/question.md +0 -56
- package/src/core/experts/compliance/self-improve.md +0 -106
- package/src/core/experts/compliance/workflow.md +0 -184
- package/src/core/experts/database/expertise.yaml +0 -109
- package/src/core/experts/database/question.md +0 -74
- package/src/core/experts/database/self-improve.md +0 -121
- package/src/core/experts/database/workflow.md +0 -234
- package/src/core/experts/datamigration/expertise.yaml +0 -141
- package/src/core/experts/datamigration/question.md +0 -56
- package/src/core/experts/datamigration/self-improve.md +0 -106
- package/src/core/experts/datamigration/workflow.md +0 -184
- package/src/core/experts/design/expertise.yaml +0 -116
- package/src/core/experts/design/question.md +0 -56
- package/src/core/experts/design/self-improve.md +0 -106
- package/src/core/experts/design/workflow.md +0 -184
- package/src/core/experts/devops/expertise.yaml +0 -116
- package/src/core/experts/devops/question.md +0 -68
- package/src/core/experts/devops/self-improve.md +0 -102
- package/src/core/experts/devops/workflow.md +0 -142
- package/src/core/experts/documentation/expertise.yaml +0 -126
- package/src/core/experts/documentation/question.md +0 -41
- package/src/core/experts/documentation/self-improve.md +0 -45
- package/src/core/experts/documentation/workflow.md +0 -55
- package/src/core/experts/epic-planner/expertise.yaml +0 -144
- package/src/core/experts/epic-planner/question.md +0 -56
- package/src/core/experts/epic-planner/self-improve.md +0 -106
- package/src/core/experts/epic-planner/workflow.md +0 -184
- package/src/core/experts/integrations/expertise.yaml +0 -113
- package/src/core/experts/integrations/question.md +0 -74
- package/src/core/experts/integrations/self-improve.md +0 -151
- package/src/core/experts/integrations/workflow.md +0 -246
- package/src/core/experts/mentor/expertise.yaml +0 -125
- package/src/core/experts/mentor/question.md +0 -56
- package/src/core/experts/mentor/self-improve.md +0 -106
- package/src/core/experts/mentor/workflow.md +0 -184
- package/src/core/experts/mobile/expertise.yaml +0 -136
- package/src/core/experts/mobile/question.md +0 -72
- package/src/core/experts/mobile/self-improve.md +0 -140
- package/src/core/experts/mobile/workflow.md +0 -240
- package/src/core/experts/monitoring/expertise.yaml +0 -132
- package/src/core/experts/monitoring/question.md +0 -76
- package/src/core/experts/monitoring/self-improve.md +0 -150
- package/src/core/experts/monitoring/workflow.md +0 -264
- package/src/core/experts/performance/expertise.yaml +0 -68
- package/src/core/experts/performance/question.md +0 -41
- package/src/core/experts/performance/self-improve.md +0 -45
- package/src/core/experts/performance/workflow.md +0 -61
- package/src/core/experts/product/expertise.yaml +0 -143
- package/src/core/experts/product/question.md +0 -56
- package/src/core/experts/product/self-improve.md +0 -106
- package/src/core/experts/product/workflow.md +0 -184
- package/src/core/experts/qa/expertise.yaml +0 -110
- package/src/core/experts/qa/question.md +0 -56
- package/src/core/experts/qa/self-improve.md +0 -106
- package/src/core/experts/qa/workflow.md +0 -184
- package/src/core/experts/readme-updater/expertise.yaml +0 -141
- package/src/core/experts/readme-updater/question.md +0 -56
- package/src/core/experts/readme-updater/self-improve.md +0 -106
- package/src/core/experts/readme-updater/workflow.md +0 -184
- package/src/core/experts/refactor/expertise.yaml +0 -135
- package/src/core/experts/refactor/question.md +0 -41
- package/src/core/experts/refactor/self-improve.md +0 -45
- package/src/core/experts/refactor/workflow.md +0 -57
- package/src/core/experts/research/expertise.yaml +0 -143
- package/src/core/experts/research/question.md +0 -56
- package/src/core/experts/research/self-improve.md +0 -106
- package/src/core/experts/research/workflow.md +0 -184
- package/src/core/experts/security/expertise.yaml +0 -117
- package/src/core/experts/security/question.md +0 -77
- package/src/core/experts/security/self-improve.md +0 -102
- package/src/core/experts/security/workflow.md +0 -152
- package/src/core/experts/templates/expertise-template.yaml +0 -67
- package/src/core/experts/templates/question-template.md +0 -56
- package/src/core/experts/templates/self-improve-template.md +0 -106
- package/src/core/experts/templates/workflow-template.md +0 -184
- package/src/core/experts/testing/expertise.yaml +0 -112
- package/src/core/experts/testing/question.md +0 -68
- package/src/core/experts/testing/self-improve.md +0 -102
- package/src/core/experts/testing/workflow.md +0 -143
- package/src/core/experts/ui/expertise.yaml +0 -133
- package/src/core/experts/ui/question.md +0 -74
- package/src/core/experts/ui/self-improve.md +0 -122
- package/src/core/experts/ui/workflow.md +0 -262
- package/src/core/knowledge/ads/ad-audit-checklist-scoring.md +0 -424
- package/src/core/knowledge/ads/ad-optimization-logic.md +0 -590
- package/src/core/knowledge/ads/ad-technical-specifications.md +0 -385
- package/src/core/knowledge/ads/definitive-advertising-reference-2026.md +0 -506
- package/src/core/knowledge/ads/paid-advertising-research-2026.md +0 -445
- package/src/core/profiles/COMPARISON.md +0 -170
- package/src/core/profiles/README.md +0 -178
- package/src/core/profiles/claude-code.yaml +0 -111
- package/src/core/profiles/codex.yaml +0 -103
- package/src/core/profiles/cursor.yaml +0 -134
- package/src/core/profiles/examples.js +0 -250
- package/src/core/profiles/loader.js +0 -235
- package/src/core/profiles/windsurf.yaml +0 -159
- package/src/core/skills/_learnings/README.md +0 -91
- package/src/core/skills/_learnings/_template.yaml +0 -106
- package/src/core/skills/_learnings/code-review.yaml +0 -118
- package/src/core/skills/_learnings/commit.yaml +0 -69
- package/src/core/skills/_learnings/story-writer.yaml +0 -71
- package/src/core/teams/backend.json +0 -41
- package/src/core/teams/builder-validator.json +0 -51
- package/src/core/teams/code-review.json +0 -41
- package/src/core/teams/frontend.json +0 -41
- package/src/core/teams/fullstack.json +0 -41
- package/src/core/teams/logic-audit.json +0 -53
- package/src/core/teams/perf-audit.json +0 -71
- package/src/core/teams/qa.json +0 -41
- package/src/core/teams/security-audit.json +0 -71
- package/src/core/teams/solo.json +0 -35
- package/src/core/teams/test-audit.json +0 -71
- package/src/core/templates/CONTEXT.md.example +0 -49
- package/src/core/templates/README-template.md +0 -16
- package/src/core/templates/adr-template.md +0 -28
- package/src/core/templates/agent-coordination-pattern.md +0 -38
- package/src/core/templates/agent-profile-template.md +0 -51
- package/src/core/templates/agileflow-metadata.json +0 -150
- package/src/core/templates/browser-qa-spec.yaml +0 -94
- package/src/core/templates/ci-workflow.yml +0 -74
- package/src/core/templates/claude-settings.advanced.example.json +0 -75
- package/src/core/templates/claude-settings.example.json +0 -26
- package/src/core/templates/command-documentation.md +0 -187
- package/src/core/templates/command-prerequisites.yaml +0 -169
- package/src/core/templates/comms-note-template.md +0 -24
- package/src/core/templates/damage-control-patterns.yaml +0 -243
- package/src/core/templates/environment.json +0 -18
- package/src/core/templates/epic-template.md +0 -27
- package/src/core/templates/plan-template.md +0 -125
- package/src/core/templates/preserve-rules-common.md +0 -107
- package/src/core/templates/preserve-rules.json +0 -42
- package/src/core/templates/proactive-action-spec.md +0 -29
- package/src/core/templates/product-brief.md +0 -136
- package/src/core/templates/quality-gate-priorities.md +0 -34
- package/src/core/templates/research-template.md +0 -44
- package/src/core/templates/session-harness-protocol.md +0 -128
- package/src/core/templates/session-state.json +0 -56
- package/src/core/templates/story-lifecycle.md +0 -213
- package/src/core/templates/story-template.md +0 -92
- package/src/core/templates/tdd-test-template.js +0 -241
- package/src/core/templates/worktrees-guide.md +0 -231
- package/tools/agileflow-npx.js +0 -52
- package/tools/cli/agileflow-cli.js +0 -72
- package/tools/cli/commands/config.js +0 -285
- package/tools/cli/commands/doctor.js +0 -496
- package/tools/cli/commands/list.js +0 -385
- package/tools/cli/commands/serve.js +0 -492
- package/tools/cli/commands/session.js +0 -1176
- package/tools/cli/commands/setup.js +0 -255
- package/tools/cli/commands/status.js +0 -101
- package/tools/cli/commands/tui.js +0 -56
- package/tools/cli/commands/uninstall.js +0 -155
- package/tools/cli/commands/update.js +0 -299
- package/tools/cli/installers/core/installer.js +0 -892
- package/tools/cli/installers/ide/_base-ide.js +0 -518
- package/tools/cli/installers/ide/_interface.js +0 -238
- package/tools/cli/installers/ide/claude-code.js +0 -432
- package/tools/cli/installers/ide/codex.js +0 -426
- package/tools/cli/installers/ide/cursor.js +0 -217
- package/tools/cli/installers/ide/manager.js +0 -222
- package/tools/cli/installers/ide/windsurf.js +0 -282
- package/tools/cli/lib/command-context.js +0 -382
- package/tools/cli/lib/config-manager.js +0 -446
- package/tools/cli/lib/content-injector.js +0 -969
- package/tools/cli/lib/content-transformer.js +0 -496
- package/tools/cli/lib/docs-setup.js +0 -464
- package/tools/cli/lib/error-handler.js +0 -165
- package/tools/cli/lib/ide-error-factory.js +0 -421
- package/tools/cli/lib/ide-errors.js +0 -367
- package/tools/cli/lib/ide-generator.js +0 -357
- package/tools/cli/lib/ide-health-monitor.js +0 -364
- package/tools/cli/lib/ide-registry.js +0 -297
- package/tools/cli/lib/npm-utils.js +0 -103
- package/tools/cli/lib/self-update.js +0 -148
- package/tools/cli/lib/ui.js +0 -211
- package/tools/cli/lib/utils.js +0 -87
- package/tools/cli/lib/validation-middleware.js +0 -491
- package/tools/cli/lib/version-checker.js +0 -95
- package/tools/postinstall.js +0 -190
|
@@ -1,864 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Set up automated deployment pipeline
|
|
3
|
-
phase: implementation
|
|
4
|
-
argument-hint: "(no arguments)"
|
|
5
|
-
compact_context:
|
|
6
|
-
priority: high
|
|
7
|
-
preserve_rules:
|
|
8
|
-
- "Auto-detect project type (static, full-stack, mobile, containers, serverless)"
|
|
9
|
-
- "Recommend deployment platform based on project (Vercel for Next.js, Netlify for static, Railway for containers)"
|
|
10
|
-
- "ALWAYS show configuration preview and wait for YES/NO before creating files"
|
|
11
|
-
- "Generate platform-specific config (vercel.json, netlify.toml, Dockerfile, etc.)"
|
|
12
|
-
- "Create .env.example template with all required secrets (never commit actual secrets)"
|
|
13
|
-
- "Create CI/CD workflow (.github/workflows/deploy.yml) with staging+production environments"
|
|
14
|
-
state_fields:
|
|
15
|
-
- project_type
|
|
16
|
-
- detected_platform
|
|
17
|
-
- environments_configured
|
|
18
|
-
- secrets_template_created
|
|
19
|
-
---
|
|
20
|
-
|
|
21
|
-
# setup-deployment
|
|
22
|
-
|
|
23
|
-
STEP 0: ACTIVATE COMPACT SUMMARY MODE
|
|
24
|
-
Before reading the full command, execute this script to display the compact summary:
|
|
25
|
-
```bash
|
|
26
|
-
sed -n '/<!-- COMPACT_SUMMARY_START -->/,/<!-- COMPACT_SUMMARY_END -->/p' "$(dirname "$0")/deploy.md" | grep -v "COMPACT_SUMMARY"
|
|
27
|
-
```
|
|
28
|
-
If the user confirms they want the full details, continue. Otherwise, stop here.
|
|
29
|
-
|
|
30
|
-
Automatically set up deployment pipeline for the project.
|
|
31
|
-
|
|
32
|
-
<!-- COMPACT_SUMMARY_START -->
|
|
33
|
-
|
|
34
|
-
## ⚠️ COMPACT SUMMARY - /agileflow:setup-deployment IS ACTIVE
|
|
35
|
-
|
|
36
|
-
**CRITICAL**: You are configuring deployment pipeline for production. Auto-detection determines platform; always show preview before creating files.
|
|
37
|
-
|
|
38
|
-
**ROLE**: Deployment Configurator - Auto-detect project type, recommend platform, generate configs, create CI/CD workflow
|
|
39
|
-
|
|
40
|
-
---
|
|
41
|
-
|
|
42
|
-
### 🚨 RULE #1: AUTO-DETECT PROJECT TYPE
|
|
43
|
-
|
|
44
|
-
Always detect first (before prompting for platform):
|
|
45
|
-
- **Static**: package.json + only build script (no server)
|
|
46
|
-
- **Full-stack**: Express/FastAPI/Next.js API routes
|
|
47
|
-
- **Mobile**: expo config or react-native
|
|
48
|
-
- **Containers**: Dockerfile present
|
|
49
|
-
- **Serverless**: Lambda functions or serverless.yml
|
|
50
|
-
|
|
51
|
-
If unclear, ask user: "Is this [static/full-stack/containers]?"
|
|
52
|
-
|
|
53
|
-
---
|
|
54
|
-
|
|
55
|
-
### 🚨 RULE #2: PLATFORM RECOMMENDATIONS
|
|
56
|
-
|
|
57
|
-
| Project Type | Recommended | Reason |
|
|
58
|
-
|---|---|---|
|
|
59
|
-
| Next.js | **Vercel** | Built for Next.js, no config needed |
|
|
60
|
-
| React SPA | **Netlify** | Static + built-in redirects |
|
|
61
|
-
| Node.js server | **Railway** | Cheap, Docker-based, easy |
|
|
62
|
-
| Docker container | **Fly.io** | Native container support |
|
|
63
|
-
| Expo/React Native | **EAS** | Official Expo deployment |
|
|
64
|
-
| AWS preference | **Lambda + API Gateway** | FaaS with full control |
|
|
65
|
-
|
|
66
|
-
---
|
|
67
|
-
|
|
68
|
-
### 🚨 RULE #3: DIFF-FIRST PATTERN
|
|
69
|
-
|
|
70
|
-
ALWAYS preview all generated files before creating:
|
|
71
|
-
|
|
72
|
-
```
|
|
73
|
-
Deployment Setup for: Next.js web app
|
|
74
|
-
Recommended platform: Vercel
|
|
75
|
-
|
|
76
|
-
Will create:
|
|
77
|
-
✓ vercel.json (deployment config)
|
|
78
|
-
✓ .github/workflows/deploy.yml (CI/CD)
|
|
79
|
-
✓ .env.example (secrets template)
|
|
80
|
-
✓ docs/02-practices/deployment.md (guide)
|
|
81
|
-
|
|
82
|
-
Environments:
|
|
83
|
-
• Staging: staging.example.com (branch: staging)
|
|
84
|
-
• Production: example.com (branch: main)
|
|
85
|
-
|
|
86
|
-
Proceed? (YES/NO)
|
|
87
|
-
```
|
|
88
|
-
|
|
89
|
-
Then ask: "Create deployment configuration? (YES/NO)"
|
|
90
|
-
|
|
91
|
-
---
|
|
92
|
-
|
|
93
|
-
### 🚨 RULE #4: ENVIRONMENT CONFIGURATION
|
|
94
|
-
|
|
95
|
-
Always create BOTH environments (unless ENV=production specified):
|
|
96
|
-
|
|
97
|
-
**Staging**:
|
|
98
|
-
- Branch: staging
|
|
99
|
-
- URL: staging.example.com or staging.vercel.app
|
|
100
|
-
- Database: Staging DB
|
|
101
|
-
- Secrets from: STAGING_* variables
|
|
102
|
-
|
|
103
|
-
**Production**:
|
|
104
|
-
- Branch: main
|
|
105
|
-
- URL: example.com
|
|
106
|
-
- Database: Production DB
|
|
107
|
-
- Secrets from: PROD_* variables
|
|
108
|
-
|
|
109
|
-
Both workflows deploy automatically on push.
|
|
110
|
-
|
|
111
|
-
---
|
|
112
|
-
|
|
113
|
-
### 🚨 RULE #5: SECRETS MANAGEMENT
|
|
114
|
-
|
|
115
|
-
**NEVER** commit actual secrets to git:
|
|
116
|
-
1. Create `.env.example` with placeholder values
|
|
117
|
-
2. Create `docs/02-practices/secrets-management.md` with instructions
|
|
118
|
-
3. Show user how to add secrets to platform:
|
|
119
|
-
- Vercel: `vercel env add DATABASE_URL`
|
|
120
|
-
- Heroku: `heroku config:set DATABASE_URL=...`
|
|
121
|
-
- GitHub Actions: Settings → Secrets → Actions
|
|
122
|
-
|
|
123
|
-
---
|
|
124
|
-
|
|
125
|
-
### 🚨 RULE #6: USE TaskCreate/TaskUpdate FOR TRACKING
|
|
126
|
-
|
|
127
|
-
Track all 8 steps explicitly:
|
|
128
|
-
```xml
|
|
129
|
-
<invoke name="TaskCreate/TaskUpdate">
|
|
130
|
-
<parameter name="content">
|
|
131
|
-
1. Detect project type
|
|
132
|
-
2. Recommend platform
|
|
133
|
-
3. Generate config files
|
|
134
|
-
4. Create CI/CD workflow
|
|
135
|
-
5. Create .env.example
|
|
136
|
-
6. Create deployment docs
|
|
137
|
-
7. Show preview + confirm
|
|
138
|
-
8. Display next steps
|
|
139
|
-
</parameter>
|
|
140
|
-
<parameter name="status">in-progress</parameter>
|
|
141
|
-
</invoke>
|
|
142
|
-
```
|
|
143
|
-
|
|
144
|
-
---
|
|
145
|
-
|
|
146
|
-
### ANTI-PATTERNS (DON'T DO THESE)
|
|
147
|
-
|
|
148
|
-
❌ Skip platform detection, use user's first choice
|
|
149
|
-
❌ Create files without preview
|
|
150
|
-
❌ Hardcode secrets in config files
|
|
151
|
-
❌ Only create production environment
|
|
152
|
-
❌ Forget to create .env.example template
|
|
153
|
-
❌ Create deployment docs without next steps
|
|
154
|
-
|
|
155
|
-
### DO THESE INSTEAD
|
|
156
|
-
|
|
157
|
-
✅ Auto-detect project type first
|
|
158
|
-
✅ Show full preview before creating
|
|
159
|
-
✅ Use .env.example with placeholders
|
|
160
|
-
✅ Create staging + production (unless specified)
|
|
161
|
-
✅ Create .env.example + secrets management guide
|
|
162
|
-
✅ Display clear next steps checklist
|
|
163
|
-
|
|
164
|
-
---
|
|
165
|
-
|
|
166
|
-
### WORKFLOW PHASES
|
|
167
|
-
|
|
168
|
-
**Phase 1: Detection (Steps 1-2)**
|
|
169
|
-
- Scan for package.json, Dockerfile, etc.
|
|
170
|
-
- Detect project type
|
|
171
|
-
- Recommend platform
|
|
172
|
-
|
|
173
|
-
**Phase 2: Generation (Steps 3-6)**
|
|
174
|
-
- Generate platform-specific config
|
|
175
|
-
- Generate CI/CD workflow with both envs
|
|
176
|
-
- Generate .env.example with all required vars
|
|
177
|
-
- Generate deployment guide
|
|
178
|
-
|
|
179
|
-
**Phase 3: Preview & Confirm (Step 7)**
|
|
180
|
-
- Display all files side-by-side
|
|
181
|
-
- Ask: "Create deployment configuration? (YES/NO)"
|
|
182
|
-
|
|
183
|
-
**Phase 4: Complete (Step 8)**
|
|
184
|
-
- Write all files
|
|
185
|
-
- Display next steps checklist
|
|
186
|
-
|
|
187
|
-
---
|
|
188
|
-
|
|
189
|
-
### NEXT STEPS TO DISPLAY
|
|
190
|
-
|
|
191
|
-
```
|
|
192
|
-
✅ Deployment configured for Vercel!
|
|
193
|
-
|
|
194
|
-
Next steps:
|
|
195
|
-
|
|
196
|
-
1. Add secrets to Vercel:
|
|
197
|
-
vercel env add DATABASE_URL production
|
|
198
|
-
vercel env add API_KEY production
|
|
199
|
-
[... more secrets from .env.example]
|
|
200
|
-
|
|
201
|
-
2. Link repository to Vercel:
|
|
202
|
-
vercel link
|
|
203
|
-
|
|
204
|
-
3. Test staging deploy:
|
|
205
|
-
git checkout -b staging
|
|
206
|
-
git push origin staging
|
|
207
|
-
Check: https://staging.vercel.app
|
|
208
|
-
|
|
209
|
-
4. Test production deploy:
|
|
210
|
-
git push origin main
|
|
211
|
-
Check: https://example.com
|
|
212
|
-
|
|
213
|
-
5. Set up custom domain (if needed):
|
|
214
|
-
vercel domains add example.com
|
|
215
|
-
|
|
216
|
-
Documentation: docs/02-practices/deployment.md
|
|
217
|
-
Secrets guide: docs/02-practices/secrets-management.md
|
|
218
|
-
```
|
|
219
|
-
|
|
220
|
-
---
|
|
221
|
-
|
|
222
|
-
### KEY FILES TO REMEMBER
|
|
223
|
-
|
|
224
|
-
| File | Purpose |
|
|
225
|
-
|------|---------|
|
|
226
|
-
| `vercel.json` (or platform equivalent) | Deployment configuration |
|
|
227
|
-
| `.github/workflows/deploy.yml` | CI/CD workflow for both environments |
|
|
228
|
-
| `.env.example` | Template for all required secrets |
|
|
229
|
-
| `docs/02-practices/deployment.md` | Team deployment guide |
|
|
230
|
-
| `docs/02-practices/secrets-management.md` | How to add secrets |
|
|
231
|
-
|
|
232
|
-
---
|
|
233
|
-
|
|
234
|
-
### REMEMBER AFTER COMPACTION
|
|
235
|
-
|
|
236
|
-
- `/agileflow:setup-deployment` IS ACTIVE - configure deployment
|
|
237
|
-
- Always auto-detect project type first
|
|
238
|
-
- Recommend appropriate platform based on type
|
|
239
|
-
- ALWAYS show preview before creating files
|
|
240
|
-
- Create BOTH staging and production (unless specified)
|
|
241
|
-
- Create .env.example template (never commit actual secrets)
|
|
242
|
-
- Use TaskCreate/TaskUpdate to track 8 steps
|
|
243
|
-
- Display next steps with exact commands
|
|
244
|
-
|
|
245
|
-
<!-- COMPACT_SUMMARY_END -->
|
|
246
|
-
|
|
247
|
-
## Prompt
|
|
248
|
-
|
|
249
|
-
ROLE: Deployment Pipeline Configurator
|
|
250
|
-
|
|
251
|
-
TODO LIST TRACKING
|
|
252
|
-
**CRITICAL**: Immediately create a todo list using TaskCreate/TaskUpdate tool to track deployment setup:
|
|
253
|
-
```
|
|
254
|
-
1. Detect project type (static, full-stack, mobile, containers, serverless)
|
|
255
|
-
2. Recommend platform based on project type
|
|
256
|
-
3. Generate deployment configuration files
|
|
257
|
-
4. Create CI/CD workflow file
|
|
258
|
-
5. Create .env.example and secrets management docs
|
|
259
|
-
6. Show configuration preview
|
|
260
|
-
7. Create files after YES/NO confirmation
|
|
261
|
-
8. Display next steps (add secrets, connect repo, test deploy)
|
|
262
|
-
```
|
|
263
|
-
|
|
264
|
-
Mark each step complete as you finish it. This ensures nothing is forgotten during deployment setup.
|
|
265
|
-
|
|
266
|
-
OBJECTIVE
|
|
267
|
-
Detect project type and configure CI/CD deployment to appropriate platform with environment management.
|
|
268
|
-
|
|
269
|
-
INPUTS (optional)
|
|
270
|
-
- PLATFORM=auto|vercel|netlify|heroku|aws|gcp|docker|eas (default: auto-detect)
|
|
271
|
-
- ENV=staging|production|both (default: both)
|
|
272
|
-
- AUTO_DEPLOY=yes|no (default: no, manual trigger)
|
|
273
|
-
|
|
274
|
-
PROJECT DETECTION
|
|
275
|
-
|
|
276
|
-
Analyze project to determine deployment needs:
|
|
277
|
-
|
|
278
|
-
### Static Sites
|
|
279
|
-
- **Indicators**: No backend, HTML/CSS/JS, React/Vue/Angular SPA
|
|
280
|
-
- **Platforms**: Vercel, Netlify, GitHub Pages, Cloudflare Pages
|
|
281
|
-
- **Recommended**: Vercel (for React/Next.js), Netlify (for general static)
|
|
282
|
-
|
|
283
|
-
### Full-Stack Web Apps
|
|
284
|
-
- **Indicators**: Node.js server, Express/Fastify/Next.js API routes
|
|
285
|
-
- **Platforms**: Vercel (Next.js), Heroku, Railway, Fly.io, AWS (ECS/Lambda)
|
|
286
|
-
- **Recommended**: Vercel (Next.js), Railway (Docker)
|
|
287
|
-
|
|
288
|
-
### Mobile Apps (React Native / Expo)
|
|
289
|
-
- **Indicators**: expo config, react-native
|
|
290
|
-
- **Platforms**: EAS Build, App Center
|
|
291
|
-
- **Recommended**: EAS (Expo Application Services)
|
|
292
|
-
|
|
293
|
-
### Containers
|
|
294
|
-
- **Indicators**: Dockerfile present
|
|
295
|
-
- **Platforms**: Docker Hub, AWS ECR, GCP Artifact Registry, Fly.io
|
|
296
|
-
- **Recommended**: Fly.io (easy Docker deploy)
|
|
297
|
-
|
|
298
|
-
### Serverless Functions
|
|
299
|
-
- **Indicators**: Lambda functions, API Gateway config
|
|
300
|
-
- **Platforms**: AWS Lambda, Vercel Functions, Netlify Functions
|
|
301
|
-
- **Recommended**: Vercel Functions (for Next.js), AWS SAM
|
|
302
|
-
|
|
303
|
-
DEPLOYMENT CONFIGURATIONS
|
|
304
|
-
|
|
305
|
-
### Vercel (Next.js / Static)
|
|
306
|
-
|
|
307
|
-
Create `vercel.json`:
|
|
308
|
-
```json
|
|
309
|
-
{
|
|
310
|
-
"buildCommand": "npm run build",
|
|
311
|
-
"outputDirectory": "dist",
|
|
312
|
-
"framework": "nextjs",
|
|
313
|
-
"env": {
|
|
314
|
-
"DATABASE_URL": "@database-url-staging",
|
|
315
|
-
"API_KEY": "@api-key"
|
|
316
|
-
},
|
|
317
|
-
"build": {
|
|
318
|
-
"env": {
|
|
319
|
-
"NEXT_PUBLIC_API_URL": "https://api.example.com"
|
|
320
|
-
}
|
|
321
|
-
}
|
|
322
|
-
}
|
|
323
|
-
```
|
|
324
|
-
|
|
325
|
-
GitHub Actions:
|
|
326
|
-
```yaml
|
|
327
|
-
name: Deploy to Vercel
|
|
328
|
-
|
|
329
|
-
on:
|
|
330
|
-
push:
|
|
331
|
-
branches: [main]
|
|
332
|
-
pull_request:
|
|
333
|
-
branches: [main]
|
|
334
|
-
|
|
335
|
-
jobs:
|
|
336
|
-
deploy:
|
|
337
|
-
runs-on: ubuntu-latest
|
|
338
|
-
steps:
|
|
339
|
-
- uses: actions/checkout@v4
|
|
340
|
-
|
|
341
|
-
- name: Deploy to Vercel
|
|
342
|
-
uses: amondnet/vercel-action@v25
|
|
343
|
-
with:
|
|
344
|
-
vercel-token: ${{ secrets.VERCEL_TOKEN }}
|
|
345
|
-
vercel-org-id: ${{ secrets.VERCEL_ORG_ID }}
|
|
346
|
-
vercel-project-id: ${{ secrets.VERCEL_PROJECT_ID }}
|
|
347
|
-
vercel-args: '--prod'
|
|
348
|
-
```
|
|
349
|
-
|
|
350
|
-
---
|
|
351
|
-
|
|
352
|
-
### Netlify (Static Sites)
|
|
353
|
-
|
|
354
|
-
Create `netlify.toml`:
|
|
355
|
-
```toml
|
|
356
|
-
[build]
|
|
357
|
-
command = "npm run build"
|
|
358
|
-
publish = "dist"
|
|
359
|
-
|
|
360
|
-
[build.environment]
|
|
361
|
-
NODE_VERSION = "20"
|
|
362
|
-
|
|
363
|
-
[[redirects]]
|
|
364
|
-
from = "/*"
|
|
365
|
-
to = "/index.html"
|
|
366
|
-
status = 200
|
|
367
|
-
|
|
368
|
-
[context.production.environment]
|
|
369
|
-
API_URL = "https://api.example.com"
|
|
370
|
-
|
|
371
|
-
[context.staging.environment]
|
|
372
|
-
API_URL = "https://staging-api.example.com"
|
|
373
|
-
```
|
|
374
|
-
|
|
375
|
-
---
|
|
376
|
-
|
|
377
|
-
### Heroku (Node.js)
|
|
378
|
-
|
|
379
|
-
Create `Procfile`:
|
|
380
|
-
```
|
|
381
|
-
web: npm start
|
|
382
|
-
```
|
|
383
|
-
|
|
384
|
-
Create `app.json`:
|
|
385
|
-
```json
|
|
386
|
-
{
|
|
387
|
-
"name": "my-app",
|
|
388
|
-
"description": "My application",
|
|
389
|
-
"buildpacks": [
|
|
390
|
-
{
|
|
391
|
-
"url": "heroku/nodejs"
|
|
392
|
-
}
|
|
393
|
-
],
|
|
394
|
-
"env": {
|
|
395
|
-
"NODE_ENV": {
|
|
396
|
-
"value": "production"
|
|
397
|
-
},
|
|
398
|
-
"DATABASE_URL": {
|
|
399
|
-
"description": "PostgreSQL connection string",
|
|
400
|
-
"required": true
|
|
401
|
-
}
|
|
402
|
-
}
|
|
403
|
-
}
|
|
404
|
-
```
|
|
405
|
-
|
|
406
|
-
GitHub Actions:
|
|
407
|
-
```yaml
|
|
408
|
-
name: Deploy to Heroku
|
|
409
|
-
|
|
410
|
-
on:
|
|
411
|
-
push:
|
|
412
|
-
branches: [main]
|
|
413
|
-
|
|
414
|
-
jobs:
|
|
415
|
-
deploy:
|
|
416
|
-
runs-on: ubuntu-latest
|
|
417
|
-
steps:
|
|
418
|
-
- uses: actions/checkout@v4
|
|
419
|
-
|
|
420
|
-
- name: Deploy to Heroku
|
|
421
|
-
uses: akhileshns/heroku-deploy@v3.13.15
|
|
422
|
-
with:
|
|
423
|
-
heroku_api_key: ${{ secrets.HEROKU_API_KEY }}
|
|
424
|
-
heroku_app_name: "my-app-production"
|
|
425
|
-
heroku_email: "deploy@example.com"
|
|
426
|
-
```
|
|
427
|
-
|
|
428
|
-
---
|
|
429
|
-
|
|
430
|
-
### Docker (Fly.io / AWS / GCP)
|
|
431
|
-
|
|
432
|
-
Create `Dockerfile`:
|
|
433
|
-
```dockerfile
|
|
434
|
-
FROM node:20-alpine AS builder
|
|
435
|
-
|
|
436
|
-
WORKDIR /app
|
|
437
|
-
COPY package*.json ./
|
|
438
|
-
RUN npm ci
|
|
439
|
-
COPY . .
|
|
440
|
-
RUN npm run build
|
|
441
|
-
|
|
442
|
-
FROM node:20-alpine
|
|
443
|
-
|
|
444
|
-
WORKDIR /app
|
|
445
|
-
COPY --from=builder /app/dist ./dist
|
|
446
|
-
COPY --from=builder /app/node_modules ./node_modules
|
|
447
|
-
COPY package*.json ./
|
|
448
|
-
|
|
449
|
-
EXPOSE 3000
|
|
450
|
-
CMD ["npm", "start"]
|
|
451
|
-
```
|
|
452
|
-
|
|
453
|
-
Create `.dockerignore`:
|
|
454
|
-
```
|
|
455
|
-
node_modules
|
|
456
|
-
.git
|
|
457
|
-
.env
|
|
458
|
-
*.log
|
|
459
|
-
dist
|
|
460
|
-
coverage
|
|
461
|
-
```
|
|
462
|
-
|
|
463
|
-
For Fly.io, create `fly.toml`:
|
|
464
|
-
```toml
|
|
465
|
-
app = "my-app"
|
|
466
|
-
|
|
467
|
-
[build]
|
|
468
|
-
dockerfile = "Dockerfile"
|
|
469
|
-
|
|
470
|
-
[env]
|
|
471
|
-
NODE_ENV = "production"
|
|
472
|
-
PORT = "8080"
|
|
473
|
-
|
|
474
|
-
[[services]]
|
|
475
|
-
internal_port = 8080
|
|
476
|
-
protocol = "tcp"
|
|
477
|
-
|
|
478
|
-
[[services.ports]]
|
|
479
|
-
port = 80
|
|
480
|
-
handlers = ["http"]
|
|
481
|
-
|
|
482
|
-
[[services.ports]]
|
|
483
|
-
port = 443
|
|
484
|
-
handlers = ["tls", "http"]
|
|
485
|
-
```
|
|
486
|
-
|
|
487
|
-
Deploy command:
|
|
488
|
-
```bash
|
|
489
|
-
fly deploy
|
|
490
|
-
```
|
|
491
|
-
|
|
492
|
-
---
|
|
493
|
-
|
|
494
|
-
### EAS (Expo / React Native)
|
|
495
|
-
|
|
496
|
-
Create `eas.json`:
|
|
497
|
-
```json
|
|
498
|
-
{
|
|
499
|
-
"cli": {
|
|
500
|
-
"version": ">= 5.9.0"
|
|
501
|
-
},
|
|
502
|
-
"build": {
|
|
503
|
-
"development": {
|
|
504
|
-
"developmentClient": true,
|
|
505
|
-
"distribution": "internal"
|
|
506
|
-
},
|
|
507
|
-
"preview": {
|
|
508
|
-
"distribution": "internal",
|
|
509
|
-
"android": {
|
|
510
|
-
"buildType": "apk"
|
|
511
|
-
}
|
|
512
|
-
},
|
|
513
|
-
"production": {
|
|
514
|
-
"autoIncrement": true
|
|
515
|
-
}
|
|
516
|
-
},
|
|
517
|
-
"submit": {
|
|
518
|
-
"production": {
|
|
519
|
-
"ios": {
|
|
520
|
-
"appleId": "user@example.com",
|
|
521
|
-
"ascAppId": "1234567890"
|
|
522
|
-
},
|
|
523
|
-
"android": {
|
|
524
|
-
"serviceAccountKeyPath": "./secrets/google-service-account.json",
|
|
525
|
-
"track": "internal"
|
|
526
|
-
}
|
|
527
|
-
}
|
|
528
|
-
}
|
|
529
|
-
}
|
|
530
|
-
```
|
|
531
|
-
|
|
532
|
-
GitHub Actions:
|
|
533
|
-
```yaml
|
|
534
|
-
name: EAS Build
|
|
535
|
-
|
|
536
|
-
on:
|
|
537
|
-
push:
|
|
538
|
-
branches: [main]
|
|
539
|
-
|
|
540
|
-
jobs:
|
|
541
|
-
build:
|
|
542
|
-
runs-on: ubuntu-latest
|
|
543
|
-
steps:
|
|
544
|
-
- uses: actions/checkout@v4
|
|
545
|
-
|
|
546
|
-
- uses: actions/setup-node@v4
|
|
547
|
-
with:
|
|
548
|
-
node-version: 20
|
|
549
|
-
|
|
550
|
-
- name: Setup Expo
|
|
551
|
-
uses: expo/expo-github-action@v8
|
|
552
|
-
with:
|
|
553
|
-
expo-version: latest
|
|
554
|
-
eas-version: latest
|
|
555
|
-
token: ${{ secrets.EXPO_TOKEN }}
|
|
556
|
-
|
|
557
|
-
- name: Build on EAS
|
|
558
|
-
run: eas build --platform all --non-interactive --no-wait
|
|
559
|
-
```
|
|
560
|
-
|
|
561
|
-
---
|
|
562
|
-
|
|
563
|
-
### AWS (Serverless / Lambda)
|
|
564
|
-
|
|
565
|
-
Create `serverless.yml`:
|
|
566
|
-
```yaml
|
|
567
|
-
service: my-app
|
|
568
|
-
|
|
569
|
-
provider:
|
|
570
|
-
name: aws
|
|
571
|
-
runtime: nodejs20.x
|
|
572
|
-
region: us-east-1
|
|
573
|
-
stage: ${opt:stage, 'dev'}
|
|
574
|
-
environment:
|
|
575
|
-
NODE_ENV: production
|
|
576
|
-
DATABASE_URL: ${ssm:/my-app/${self:provider.stage}/database-url}
|
|
577
|
-
|
|
578
|
-
functions:
|
|
579
|
-
api:
|
|
580
|
-
handler: dist/index.handler
|
|
581
|
-
events:
|
|
582
|
-
- http:
|
|
583
|
-
path: /{proxy+}
|
|
584
|
-
method: ANY
|
|
585
|
-
cors: true
|
|
586
|
-
|
|
587
|
-
plugins:
|
|
588
|
-
- serverless-offline
|
|
589
|
-
- serverless-dotenv-plugin
|
|
590
|
-
```
|
|
591
|
-
|
|
592
|
-
GitHub Actions:
|
|
593
|
-
```yaml
|
|
594
|
-
name: Deploy to AWS Lambda
|
|
595
|
-
|
|
596
|
-
on:
|
|
597
|
-
push:
|
|
598
|
-
branches: [main]
|
|
599
|
-
|
|
600
|
-
jobs:
|
|
601
|
-
deploy:
|
|
602
|
-
runs-on: ubuntu-latest
|
|
603
|
-
steps:
|
|
604
|
-
- uses: actions/checkout@v4
|
|
605
|
-
|
|
606
|
-
- uses: actions/setup-node@v4
|
|
607
|
-
|
|
608
|
-
- name: Install Serverless Framework
|
|
609
|
-
run: npm install -g serverless
|
|
610
|
-
|
|
611
|
-
- name: Deploy
|
|
612
|
-
run: serverless deploy --stage production
|
|
613
|
-
env:
|
|
614
|
-
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
|
615
|
-
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
|
616
|
-
```
|
|
617
|
-
|
|
618
|
-
---
|
|
619
|
-
|
|
620
|
-
ENVIRONMENT MANAGEMENT
|
|
621
|
-
|
|
622
|
-
Create `.env.example`:
|
|
623
|
-
```env
|
|
624
|
-
# Database
|
|
625
|
-
DATABASE_URL=postgresql://user:pass@localhost:5432/mydb
|
|
626
|
-
|
|
627
|
-
# API Keys (DO NOT commit actual keys)
|
|
628
|
-
API_KEY=your_api_key_here
|
|
629
|
-
STRIPE_SECRET_KEY=sk_test_...
|
|
630
|
-
|
|
631
|
-
# Third-party Services
|
|
632
|
-
SENDGRID_API_KEY=
|
|
633
|
-
AWS_ACCESS_KEY_ID=
|
|
634
|
-
AWS_SECRET_ACCESS_KEY=
|
|
635
|
-
|
|
636
|
-
# App Config
|
|
637
|
-
NODE_ENV=development
|
|
638
|
-
PORT=3000
|
|
639
|
-
```
|
|
640
|
-
|
|
641
|
-
Create docs/02-practices/secrets-management.md:
|
|
642
|
-
```markdown
|
|
643
|
-
# Secrets Management
|
|
644
|
-
|
|
645
|
-
## DO NOT commit secrets to Git
|
|
646
|
-
- Never commit `.env` files
|
|
647
|
-
- Use `.env.example` for templates only
|
|
648
|
-
|
|
649
|
-
## Deployment Platforms
|
|
650
|
-
|
|
651
|
-
### Vercel
|
|
652
|
-
\`\`\`bash
|
|
653
|
-
vercel env add DATABASE_URL production
|
|
654
|
-
\`\`\`
|
|
655
|
-
|
|
656
|
-
### Heroku
|
|
657
|
-
\`\`\`bash
|
|
658
|
-
heroku config:set DATABASE_URL="postgres://..." --app my-app
|
|
659
|
-
\`\`\`
|
|
660
|
-
|
|
661
|
-
### GitHub Actions
|
|
662
|
-
Add secrets in Settings → Secrets and variables → Actions
|
|
663
|
-
|
|
664
|
-
## Local Development
|
|
665
|
-
1. Copy `.env.example` to `.env`
|
|
666
|
-
2. Fill in actual values (get from team lead)
|
|
667
|
-
3. Never commit `.env` to git
|
|
668
|
-
```
|
|
669
|
-
|
|
670
|
-
DEPLOYMENT WORKFLOW
|
|
671
|
-
|
|
672
|
-
### Staging → Production Flow
|
|
673
|
-
|
|
674
|
-
```yaml
|
|
675
|
-
name: Deploy
|
|
676
|
-
|
|
677
|
-
on:
|
|
678
|
-
push:
|
|
679
|
-
branches:
|
|
680
|
-
- main # → production
|
|
681
|
-
- staging # → staging
|
|
682
|
-
|
|
683
|
-
jobs:
|
|
684
|
-
deploy:
|
|
685
|
-
runs-on: ubuntu-latest
|
|
686
|
-
steps:
|
|
687
|
-
- uses: actions/checkout@v4
|
|
688
|
-
|
|
689
|
-
- name: Determine environment
|
|
690
|
-
id: env
|
|
691
|
-
run: |
|
|
692
|
-
if [[ "${{ github.ref }}" == "refs/heads/main" ]]; then
|
|
693
|
-
echo "environment=production" >> $GITHUB_OUTPUT
|
|
694
|
-
else
|
|
695
|
-
echo "environment=staging" >> $GITHUB_OUTPUT
|
|
696
|
-
fi
|
|
697
|
-
|
|
698
|
-
- name: Deploy
|
|
699
|
-
run: ./deploy.sh
|
|
700
|
-
env:
|
|
701
|
-
ENVIRONMENT: ${{ steps.env.outputs.environment }}
|
|
702
|
-
```
|
|
703
|
-
|
|
704
|
-
WORKFLOW SUMMARY
|
|
705
|
-
|
|
706
|
-
1. Detect project type
|
|
707
|
-
2. Recommend platform
|
|
708
|
-
3. Show configuration preview:
|
|
709
|
-
```
|
|
710
|
-
Deployment Setup for: Node.js web app
|
|
711
|
-
Recommended platform: Vercel
|
|
712
|
-
|
|
713
|
-
Will create:
|
|
714
|
-
- vercel.json (deployment config)
|
|
715
|
-
- .github/workflows/deploy.yml (CI/CD)
|
|
716
|
-
- .env.example (secrets template)
|
|
717
|
-
- docs/02-practices/deployment.md (guide)
|
|
718
|
-
|
|
719
|
-
Environments:
|
|
720
|
-
- Staging: staging.example.com (branch: staging)
|
|
721
|
-
- Production: example.com (branch: main)
|
|
722
|
-
|
|
723
|
-
Proceed? (YES/NO)
|
|
724
|
-
```
|
|
725
|
-
|
|
726
|
-
4. If YES:
|
|
727
|
-
- Create config files
|
|
728
|
-
- Update CI workflows
|
|
729
|
-
- Create deployment docs
|
|
730
|
-
- Show next steps
|
|
731
|
-
|
|
732
|
-
NEXT STEPS
|
|
733
|
-
|
|
734
|
-
After setup, guide user:
|
|
735
|
-
```
|
|
736
|
-
✅ Deployment configuration created!
|
|
737
|
-
|
|
738
|
-
Next steps:
|
|
739
|
-
1. Add secrets to platform:
|
|
740
|
-
- For Vercel: `vercel env add DATABASE_URL`
|
|
741
|
-
- For GitHub Actions: Settings → Secrets
|
|
742
|
-
|
|
743
|
-
2. Connect repository to platform:
|
|
744
|
-
- Vercel: `vercel link`
|
|
745
|
-
- Heroku: `heroku git:remote -a my-app`
|
|
746
|
-
|
|
747
|
-
3. Test deployment:
|
|
748
|
-
- Push to staging branch: `git push origin staging`
|
|
749
|
-
- Check logs: `vercel logs` or platform dashboard
|
|
750
|
-
|
|
751
|
-
4. Deploy to production:
|
|
752
|
-
- Merge staging → main
|
|
753
|
-
- Or manually: `vercel --prod`
|
|
754
|
-
|
|
755
|
-
5. Set up custom domain (optional):
|
|
756
|
-
- Vercel: `vercel domains add example.com`
|
|
757
|
-
- Netlify: Netlify dashboard → Domain settings
|
|
758
|
-
|
|
759
|
-
Documentation: docs/02-practices/deployment.md
|
|
760
|
-
```
|
|
761
|
-
|
|
762
|
-
INTEGRATION
|
|
763
|
-
|
|
764
|
-
- Create story: "US-XXXX: Set up deployment pipeline"
|
|
765
|
-
- Update docs/02-practices/deployment.md
|
|
766
|
-
- Add deployment status to docs/08-project/README.md
|
|
767
|
-
|
|
768
|
-
RULES
|
|
769
|
-
- Preview all files before creating (diff-first, YES/NO)
|
|
770
|
-
- Never commit secrets to repository
|
|
771
|
-
- Always use environment variables
|
|
772
|
-
- Set up staging environment first
|
|
773
|
-
- Test deployment before going to production
|
|
774
|
-
- Document rollback procedure
|
|
775
|
-
|
|
776
|
-
OUTPUT
|
|
777
|
-
- Platform recommendation
|
|
778
|
-
- Deployment configuration files
|
|
779
|
-
- CI/CD workflow
|
|
780
|
-
- Environment management guide
|
|
781
|
-
- Next steps checklist
|
|
782
|
-
|
|
783
|
-
---
|
|
784
|
-
|
|
785
|
-
## Expected Output
|
|
786
|
-
|
|
787
|
-
### Success - Deployment Configured
|
|
788
|
-
|
|
789
|
-
```
|
|
790
|
-
🚀 Deployment Setup
|
|
791
|
-
══════════════════════════════════════════════════════════════
|
|
792
|
-
|
|
793
|
-
Analyzing project...
|
|
794
|
-
✓ Detected: Next.js application
|
|
795
|
-
✓ Package manager: npm
|
|
796
|
-
✓ Build command: npm run build
|
|
797
|
-
✓ Output: .next/
|
|
798
|
-
|
|
799
|
-
Platform Recommendation: Vercel (optimal for Next.js)
|
|
800
|
-
|
|
801
|
-
Creating configuration...
|
|
802
|
-
✓ Created vercel.json
|
|
803
|
-
✓ Created .github/workflows/deploy.yml
|
|
804
|
-
✓ Updated package.json scripts
|
|
805
|
-
|
|
806
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
807
|
-
✅ Deployment Setup Complete
|
|
808
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
809
|
-
|
|
810
|
-
Next steps:
|
|
811
|
-
1. Connect GitHub repo to Vercel dashboard
|
|
812
|
-
2. Set environment variables in Vercel
|
|
813
|
-
3. Push to trigger first deployment
|
|
814
|
-
|
|
815
|
-
Environments:
|
|
816
|
-
- Preview: Automatic on PR
|
|
817
|
-
- Production: On merge to main
|
|
818
|
-
|
|
819
|
-
Rollback: vercel rollback <deployment-id>
|
|
820
|
-
```
|
|
821
|
-
|
|
822
|
-
### Success - Multi-Environment
|
|
823
|
-
|
|
824
|
-
```
|
|
825
|
-
🚀 Deployment Setup (Multi-Environment)
|
|
826
|
-
══════════════════════════════════════════════════════════════
|
|
827
|
-
|
|
828
|
-
Environments configured:
|
|
829
|
-
┌─────────────┬─────────────────────┬──────────────────┐
|
|
830
|
-
│ Environment │ URL │ Trigger │
|
|
831
|
-
├─────────────┼─────────────────────┼──────────────────┤
|
|
832
|
-
│ Development │ dev.example.com │ Push to dev/* │
|
|
833
|
-
│ Staging │ staging.example.com │ Push to staging │
|
|
834
|
-
│ Production │ example.com │ Push to main │
|
|
835
|
-
└─────────────┴─────────────────────┴──────────────────┘
|
|
836
|
-
|
|
837
|
-
✓ All environments configured
|
|
838
|
-
```
|
|
839
|
-
|
|
840
|
-
### Error - Unsupported Project
|
|
841
|
-
|
|
842
|
-
```
|
|
843
|
-
❌ Error: Could not detect project type
|
|
844
|
-
|
|
845
|
-
No supported framework found. Supported:
|
|
846
|
-
- Next.js
|
|
847
|
-
- Remix
|
|
848
|
-
- Vite
|
|
849
|
-
- Create React App
|
|
850
|
-
- Node.js API
|
|
851
|
-
|
|
852
|
-
Specify manually:
|
|
853
|
-
/agileflow:deploy TYPE=nodejs PLATFORM=railway
|
|
854
|
-
```
|
|
855
|
-
|
|
856
|
-
---
|
|
857
|
-
|
|
858
|
-
## Related Commands
|
|
859
|
-
|
|
860
|
-
- `/agileflow:configure` - Manage AgileFlow features and hooks
|
|
861
|
-
- `/agileflow:ci` - Bootstrap CI/CD workflow
|
|
862
|
-
- `/agileflow:tests` - Set up testing infrastructure
|
|
863
|
-
- `/agileflow:changelog` - Generate changelog for releases
|
|
864
|
-
- `/agileflow:pr` - Generate pull request from story
|