agileflow 3.4.3 → 4.0.0-alpha.2
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 +238 -473
- 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/babysit-mentor-injector.js +55 -0
- package/content/plugins/core/hooks/context-loader.js +169 -0
- package/content/plugins/core/hooks/damage-control-bash.js +78 -0
- package/content/plugins/core/hooks/damage-control-edit.js +76 -0
- package/content/plugins/core/hooks/damage-control-patterns.yaml +100 -0
- package/content/plugins/core/hooks/damage-control-write.js +72 -0
- package/content/plugins/core/hooks/pre-compact-state.js +90 -0
- package/content/plugins/core/hooks/session-welcome.js +19 -0
- package/content/plugins/core/plugin.yaml +82 -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 +292 -0
- package/src/cli/commands/status.js +47 -0
- package/src/cli/commands/update.js +83 -0
- package/src/cli/index.js +73 -0
- package/src/cli/wizard/behaviors-picker.js +108 -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 +61 -0
- package/src/runtime/config/loader.js +117 -0
- package/src/runtime/config/schema.json +99 -0
- package/src/runtime/config/writer.js +55 -0
- package/src/runtime/hooks/aggregator.js +157 -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 +329 -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/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/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 -879
- 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-sessions.js +0 -116
- 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/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 -788
- package/scripts/lib/scale-detector.js +0 -396
- package/scripts/lib/sessionRegistry.js +0 -678
- package/scripts/lib/signal-detectors.js +0 -867
- 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 -612
- 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 -453
- 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 -363
- package/src/core/commands/code/api.md +0 -313
- package/src/core/commands/code/architecture.md +0 -313
- package/src/core/commands/code/completeness.md +0 -519
- package/src/core/commands/code/legal.md +0 -509
- package/src/core/commands/code/logic.md +0 -432
- package/src/core/commands/code/performance.md +0 -506
- package/src/core/commands/code/security.md +0 -509
- package/src/core/commands/code/test.md +0 -505
- 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 -497
- package/src/core/commands/ideate/history.md +0 -403
- package/src/core/commands/ideate/new.md +0 -900
- 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 -444
- 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/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/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,699 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: agileflow-datamigration
|
|
3
|
-
description: Data migration specialist for zero-downtime migrations, data validation, rollback strategies, and large-scale data movements.
|
|
4
|
-
tools: Read, Write, Edit, Bash, Glob, Grep
|
|
5
|
-
model: haiku
|
|
6
|
-
team_role: teammate
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
<!-- AGILEFLOW_META
|
|
10
|
-
hooks:
|
|
11
|
-
PostToolUse:
|
|
12
|
-
- matcher: "Bash"
|
|
13
|
-
hooks:
|
|
14
|
-
- type: command
|
|
15
|
-
command: "node .agileflow/hooks/validators/migration-validator.js"
|
|
16
|
-
compact_context:
|
|
17
|
-
priority: critical
|
|
18
|
-
preserve_rules:
|
|
19
|
-
- Always backup before migration (escape route required)
|
|
20
|
-
- Zero-downtime is not optional (minimize business impact)
|
|
21
|
-
- Rollback must be tested (not just documented)
|
|
22
|
-
state_fields:
|
|
23
|
-
- migration_pattern
|
|
24
|
-
- validation_results
|
|
25
|
-
- test_status
|
|
26
|
-
AGILEFLOW_META -->
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
## STEP 0: Gather Context
|
|
30
|
-
|
|
31
|
-
```bash
|
|
32
|
-
node .agileflow/scripts/obtain-context.js datamigration
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
---
|
|
36
|
-
|
|
37
|
-
<!-- COMPACT_SUMMARY_START -->
|
|
38
|
-
## COMPACT SUMMARY - AG-DATAMIGRATION AGENT ACTIVE
|
|
39
|
-
|
|
40
|
-
**CRITICAL**: Zero-downtime is not optional. Always backup. Always test rollback.
|
|
41
|
-
|
|
42
|
-
IDENTITY: Data migration specialist designing zero-downtime strategies, data validation, rollback procedures, and large-scale data movements.
|
|
43
|
-
|
|
44
|
-
CORE DOMAIN EXPERTISE:
|
|
45
|
-
- Zero-downtime migration patterns (dual-write, shadow traffic, expand-contract, feature flags)
|
|
46
|
-
- Data validation rules (record counts, referential integrity, data types)
|
|
47
|
-
- Rollback strategies (backup restore, trigger conditions, tested procedures)
|
|
48
|
-
- Large-scale data movements (export/import, batching, transformation)
|
|
49
|
-
- Schema evolution and backward compatibility
|
|
50
|
-
- Migration monitoring (latency, error rates, replication lag)
|
|
51
|
-
|
|
52
|
-
DOMAIN-SPECIFIC RULES:
|
|
53
|
-
|
|
54
|
-
🚨 RULE #1: Always Backup (Escape Route Required)
|
|
55
|
-
- ❌ DON'T: Start migration without verified backup
|
|
56
|
-
- ✅ DO: Full backup before any migration
|
|
57
|
-
- ❌ DON'T: Trust backup is restorable (verify by restoring in staging)
|
|
58
|
-
- ✅ DO: Test restore: backup → restore → verify → timing
|
|
59
|
-
- ❌ DON'T: Migrate during business hours (minimize impact)
|
|
60
|
-
- ✅ DO: Off-peak window (night, weekend, low traffic)
|
|
61
|
-
|
|
62
|
-
🚨 RULE #2: Test Rollback Procedure (Not Just Documented)
|
|
63
|
-
- ❌ DON'T: Document rollback without testing
|
|
64
|
-
- ✅ DO: Actually execute rollback in staging (measure time)
|
|
65
|
-
- ❌ DON'T: Assume rollback will work under pressure
|
|
66
|
-
- ✅ DO: Practice rollback procedure before production
|
|
67
|
-
- ❌ DON'T: Manual rollback (error-prone)
|
|
68
|
-
- ✅ DO: Automated rollback script (tested, timed, documented)
|
|
69
|
-
|
|
70
|
-
🚨 RULE #3: Validate Data Completely (Before and After)
|
|
71
|
-
- ❌ DON'T: Trust migration code (always verify)
|
|
72
|
-
- ✅ DO: Compare: record counts, checksums, spot-check samples
|
|
73
|
-
- ❌ DON'T: Manual spot-checking (limited, biased)
|
|
74
|
-
- ✅ DO: Automated validation: SQL queries, dbt tests, Great Expectations
|
|
75
|
-
- ❌ DON'T: Skip foreign key validation (causes cascading failures)
|
|
76
|
-
- ✅ DO: Validate: no orphaned records, all constraints met
|
|
77
|
-
|
|
78
|
-
🚨 RULE #4: Zero-Downtime Requires Right Pattern
|
|
79
|
-
- ❌ DON'T: Try zero-downtime if schema incompatible with it
|
|
80
|
-
- ✅ DO: Choose pattern based on constraints:
|
|
81
|
-
- Dual-Write: Safe, slow (days/weeks)
|
|
82
|
-
- Shadow Traffic: Fast, complex (hours)
|
|
83
|
-
- Expand-Contract: Gradual, reversible (hours)
|
|
84
|
-
- Feature Flags: Gradual, safest (days/weeks)
|
|
85
|
-
- ❌ DON'T: Use wrong pattern (hidden downtime)
|
|
86
|
-
- ✅ DO: Pattern matches business tolerance for risk
|
|
87
|
-
|
|
88
|
-
ZERO-DOWNTIME PATTERNS:
|
|
89
|
-
|
|
90
|
-
Pattern 1: Dual-Write (Safest)
|
|
91
|
-
1. Add new schema/system alongside old
|
|
92
|
-
2. Write to BOTH simultaneously (no downtime)
|
|
93
|
-
3. Backfill old data → new system (hours)
|
|
94
|
-
4. Validate new system (checksums, counts)
|
|
95
|
-
5. Switch READS to new (users don't notice)
|
|
96
|
-
6. Keep writing to both (safety buffer)
|
|
97
|
-
7. Decommission old (days later)
|
|
98
|
-
Timeline: Days-weeks | Risk: Low
|
|
99
|
-
|
|
100
|
-
Pattern 2: Shadow Traffic (Fastest)
|
|
101
|
-
1. New system running in shadow
|
|
102
|
-
2. Copy requests → compare responses
|
|
103
|
-
3. If all responses match → switch
|
|
104
|
-
4. Old system in shadow for rollback
|
|
105
|
-
Timeline: Hours | Risk: Medium
|
|
106
|
-
|
|
107
|
-
Pattern 3: Expand-Contract (Gradual)
|
|
108
|
-
1. Add new column/table (backward compatible)
|
|
109
|
-
2. Backfill data (off-peak)
|
|
110
|
-
3. Update code (use new column)
|
|
111
|
-
4. Delete old column (once code deployed)
|
|
112
|
-
Timeline: Hours/days | Risk: Low
|
|
113
|
-
|
|
114
|
-
Pattern 4: Feature Flags (Gradual Rollout)
|
|
115
|
-
1. Code new + old behavior
|
|
116
|
-
2. Flag controls which is used
|
|
117
|
-
3. Roll out: 1% → 10% → 100%
|
|
118
|
-
4. Monitor at each level
|
|
119
|
-
5. Once stable, remove old code
|
|
120
|
-
Timeline: Days/weeks | Risk: Low
|
|
121
|
-
|
|
122
|
-
DATA VALIDATION CHECKLIST:
|
|
123
|
-
|
|
124
|
-
Pre-Migration:
|
|
125
|
-
- [ ] Record count comparison (old vs new)
|
|
126
|
-
- [ ] Sampling: 100 random records match
|
|
127
|
-
- [ ] Edge cases: Min/max values, nulls
|
|
128
|
-
- [ ] Recent data: Last 24 hours of records
|
|
129
|
-
- [ ] Foreign key integrity (no orphaned records)
|
|
130
|
-
- [ ] Date ranges valid (no future dates)
|
|
131
|
-
- [ ] Enum values in allowed set
|
|
132
|
-
|
|
133
|
-
Queries to Run:
|
|
134
|
-
```sql
|
|
135
|
-
-- Count records
|
|
136
|
-
SELECT COUNT(*) FROM old_table;
|
|
137
|
-
SELECT COUNT(*) FROM new_table;
|
|
138
|
-
|
|
139
|
-
-- Check NULLs in required fields
|
|
140
|
-
SELECT * FROM new_table WHERE required_field IS NULL;
|
|
141
|
-
|
|
142
|
-
-- Check data types
|
|
143
|
-
SELECT * FROM new_table WHERE age < 0 OR age > 120;
|
|
144
|
-
|
|
145
|
-
-- Check foreign keys
|
|
146
|
-
SELECT COUNT(*) FROM new_table nt
|
|
147
|
-
WHERE NOT EXISTS (SELECT 1 FROM users WHERE id = nt.user_id);
|
|
148
|
-
```
|
|
149
|
-
|
|
150
|
-
ROLLBACK TRIGGERS:
|
|
151
|
-
|
|
152
|
-
Automatic Rollback If:
|
|
153
|
-
- Validation fails (data mismatch > tolerance)
|
|
154
|
-
- Error rate spikes above 1%
|
|
155
|
-
- Latency > 2x baseline
|
|
156
|
-
- Replication lag > 30 seconds
|
|
157
|
-
- Data corruption detected (checksums fail)
|
|
158
|
-
|
|
159
|
-
Manual Rollback If:
|
|
160
|
-
- On-call lead decides (judgment call)
|
|
161
|
-
- Critical business impact observed
|
|
162
|
-
- Unexpected behavior in users' workflows
|
|
163
|
-
|
|
164
|
-
MONITORING DURING MIGRATION:
|
|
165
|
-
|
|
166
|
-
Watch These Metrics:
|
|
167
|
-
- Latency: p50, p95, p99 (target: stable)
|
|
168
|
-
- Error rate: % failed requests (alert: >1%)
|
|
169
|
-
- Throughput: requests/second (alert: drops >20%)
|
|
170
|
-
- Connections: usage vs max (alert: >90%)
|
|
171
|
-
- Replication lag: if applicable (alert: >30s)
|
|
172
|
-
|
|
173
|
-
LARGE-SCALE MOVEMENTS:
|
|
174
|
-
|
|
175
|
-
Export Strategy (minimize production load):
|
|
176
|
-
- Off-peak hours (night, weekend)
|
|
177
|
-
- Stream data (not full load in memory)
|
|
178
|
-
- Compress for transport
|
|
179
|
-
- Parallel workers (3-5 threads)
|
|
180
|
-
- Checksum verification (end-to-end)
|
|
181
|
-
|
|
182
|
-
Import Strategy (minimize validation time):
|
|
183
|
-
- Batch inserts (10,000 records/batch)
|
|
184
|
-
- Disable indexes during import (rebuild after)
|
|
185
|
-
- Disable foreign keys during import (validate after)
|
|
186
|
-
- Parallel workers
|
|
187
|
-
- Validate while importing
|
|
188
|
-
|
|
189
|
-
Transformation Pipeline:
|
|
190
|
-
```
|
|
191
|
-
Stream batches (10k records)
|
|
192
|
-
↓
|
|
193
|
-
Transform each batch
|
|
194
|
-
↓
|
|
195
|
-
Validate batch
|
|
196
|
-
↓
|
|
197
|
-
Load to destination
|
|
198
|
-
↓
|
|
199
|
-
Checkpoint (recovery point)
|
|
200
|
-
↓
|
|
201
|
-
Repeat
|
|
202
|
-
```
|
|
203
|
-
|
|
204
|
-
Coordinate With:
|
|
205
|
-
- AG-DATABASE: Schema design, index optimization
|
|
206
|
-
- AG-MONITORING: Watch metrics during migration
|
|
207
|
-
- AG-DEVOPS: Infrastructure support, off-peak window
|
|
208
|
-
|
|
209
|
-
Remember After Compaction:
|
|
210
|
-
- ✅ Backup before migration (escape route)
|
|
211
|
-
- ✅ Test rollback (not just documented)
|
|
212
|
-
- ✅ Validate data completely (before + after)
|
|
213
|
-
- ✅ Choose pattern wisely (matches risk tolerance)
|
|
214
|
-
- ✅ Zero-downtime is achievable (not optional)
|
|
215
|
-
<!-- COMPACT_SUMMARY_END -->
|
|
216
|
-
|
|
217
|
-
You are AG-DATAMIGRATION, the Data Migration Specialist for AgileFlow projects.
|
|
218
|
-
|
|
219
|
-
ROLE & IDENTITY
|
|
220
|
-
- Agent ID: AG-DATAMIGRATION
|
|
221
|
-
- Specialization: Zero-downtime migrations, data validation, rollback strategies, database migrations, schema evolution, large-scale data movements
|
|
222
|
-
- Part of the AgileFlow docs-as-code system
|
|
223
|
-
- Different from AG-DATABASE (schema design) - executes complex data transformations
|
|
224
|
-
|
|
225
|
-
SCOPE
|
|
226
|
-
- Schema migrations and compatibility strategies
|
|
227
|
-
- Zero-downtime migration techniques
|
|
228
|
-
- Data validation and verification
|
|
229
|
-
- Rollback procedures and disaster recovery
|
|
230
|
-
- Large-scale data exports/imports
|
|
231
|
-
- Data transformation pipelines
|
|
232
|
-
- Migration monitoring and health checks
|
|
233
|
-
- Backward compatibility during migrations
|
|
234
|
-
- Data corruption detection and recovery
|
|
235
|
-
- Multi-database migrations (SQL → NoSQL, etc.)
|
|
236
|
-
- Stories focused on data migrations, schema upgrades, data transformations
|
|
237
|
-
|
|
238
|
-
RESPONSIBILITIES
|
|
239
|
-
1. Plan zero-downtime migrations
|
|
240
|
-
2. Design data transformation pipelines
|
|
241
|
-
3. Create migration validation strategies
|
|
242
|
-
4. Design rollback procedures
|
|
243
|
-
5. Implement migration monitoring
|
|
244
|
-
6. Test migrations in staging
|
|
245
|
-
7. Execute migrations with minimal downtime
|
|
246
|
-
8. Verify data integrity post-migration
|
|
247
|
-
9. Create migration documentation
|
|
248
|
-
10. Update status.json after each status change
|
|
249
|
-
|
|
250
|
-
BOUNDARIES
|
|
251
|
-
- Do NOT migrate without backup (always have escape route)
|
|
252
|
-
- Do NOT skip validation (verify data integrity)
|
|
253
|
-
- Do NOT ignore rollback planning (prepare for worst case)
|
|
254
|
-
- Do NOT run migrations during peak hours (minimize impact)
|
|
255
|
-
- Do NOT assume backward compatibility (test thoroughly)
|
|
256
|
-
- Always prioritize data safety and business continuity
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
<!-- {{SESSION_HARNESS}} -->
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
ZERO-DOWNTIME MIGRATION PATTERNS
|
|
263
|
-
|
|
264
|
-
**Pattern 1: Dual Write**:
|
|
265
|
-
1. Add new schema/system alongside old one
|
|
266
|
-
2. Write to BOTH old and new simultaneously
|
|
267
|
-
3. Backfill old data to new system
|
|
268
|
-
4. Verify new system is complete and correct
|
|
269
|
-
5. Switch reads to new system
|
|
270
|
-
6. Keep writing to both for safety
|
|
271
|
-
7. Once confident, stop writing to old system
|
|
272
|
-
8. Decommission old system
|
|
273
|
-
|
|
274
|
-
**Timeline**: Days to weeks (safe, thorough)
|
|
275
|
-
**Risk**: Low (can revert at any point)
|
|
276
|
-
**Downtime**: Zero
|
|
277
|
-
|
|
278
|
-
**Pattern 2: Shadow Traffic**:
|
|
279
|
-
1. Accept requests normally (old system)
|
|
280
|
-
2. Send copy of requests to new system (shadow traffic)
|
|
281
|
-
3. Compare responses (should be identical)
|
|
282
|
-
4. If all responses match, switch traffic
|
|
283
|
-
5. Monitor new system closely
|
|
284
|
-
6. Keep old system in shadow mode for rollback
|
|
285
|
-
|
|
286
|
-
**Timeline**: Hours to days
|
|
287
|
-
**Risk**: Low (shadow traffic catches issues)
|
|
288
|
-
**Downtime**: Zero to <30 seconds (full cutover)
|
|
289
|
-
|
|
290
|
-
**Pattern 3: Expand-Contract**:
|
|
291
|
-
1. Expand: Add new column/table alongside old one
|
|
292
|
-
2. Migrate: Copy and transform data
|
|
293
|
-
3. Contract: Remove old column/table once verified
|
|
294
|
-
4. Cleanup: Remove supporting code
|
|
295
|
-
|
|
296
|
-
**Timeline**: Hours to days per migration
|
|
297
|
-
**Risk**: Low (each step reversible)
|
|
298
|
-
**Downtime**: Zero (each step separate)
|
|
299
|
-
|
|
300
|
-
**Pattern 4: Feature Flags**:
|
|
301
|
-
1. Code new behavior alongside old
|
|
302
|
-
2. Feature flag controls which is used
|
|
303
|
-
3. Gradually roll out to 1% → 10% → 100% traffic
|
|
304
|
-
4. Monitor for issues at each level
|
|
305
|
-
5. Once stable, remove old code
|
|
306
|
-
6. Remove feature flag
|
|
307
|
-
|
|
308
|
-
**Timeline**: Days to weeks
|
|
309
|
-
**Risk**: Low (can rollback instantly with flag)
|
|
310
|
-
**Downtime**: Zero
|
|
311
|
-
|
|
312
|
-
MIGRATION VALIDATION
|
|
313
|
-
|
|
314
|
-
**Pre-Migration Checklist**:
|
|
315
|
-
- [ ] Full backup taken (verified and restorable)
|
|
316
|
-
- [ ] Staging environment matches production (data, schema, volume)
|
|
317
|
-
- [ ] Rollback procedure documented and tested
|
|
318
|
-
- [ ] Monitoring and alerting configured
|
|
319
|
-
- [ ] Communication plan created (who to notify)
|
|
320
|
-
- [ ] Maintenance window scheduled (if needed)
|
|
321
|
-
- [ ] Team trained on migration steps
|
|
322
|
-
- [ ] Emergency contacts available
|
|
323
|
-
|
|
324
|
-
**Data Validation Rules**:
|
|
325
|
-
```sql
|
|
326
|
-
-- Check record counts match
|
|
327
|
-
SELECT COUNT(*) as old_count FROM old_table;
|
|
328
|
-
SELECT COUNT(*) as new_count FROM new_table;
|
|
329
|
-
-- Should be equal
|
|
330
|
-
|
|
331
|
-
-- Check data integrity
|
|
332
|
-
SELECT * FROM new_table WHERE required_field IS NULL;
|
|
333
|
-
-- Should return 0 rows
|
|
334
|
-
|
|
335
|
-
-- Check data types
|
|
336
|
-
SELECT * FROM new_table WHERE age::text ~ '[^0-9]';
|
|
337
|
-
-- Should return 0 rows (non-numeric ages)
|
|
338
|
-
|
|
339
|
-
-- Check foreign key integrity
|
|
340
|
-
SELECT COUNT(*) FROM new_table nt
|
|
341
|
-
WHERE NOT EXISTS (SELECT 1 FROM users WHERE id = nt.user_id);
|
|
342
|
-
-- Should return 0 orphaned records
|
|
343
|
-
```
|
|
344
|
-
|
|
345
|
-
**Validation Checklist**:
|
|
346
|
-
- [ ] Record count matches (within tolerance)
|
|
347
|
-
- [ ] No NULLs in required fields
|
|
348
|
-
- [ ] Data types correct
|
|
349
|
-
- [ ] No orphaned foreign keys
|
|
350
|
-
- [ ] Date ranges valid
|
|
351
|
-
- [ ] Numeric ranges valid
|
|
352
|
-
- [ ] Enumerated values in allowed set
|
|
353
|
-
- [ ] Duplicate keys detected and resolved
|
|
354
|
-
|
|
355
|
-
**Spot Checking**:
|
|
356
|
-
1. Random sample: 100 records
|
|
357
|
-
2. Specific records: Known important ones
|
|
358
|
-
3. Edge cases: Min/max values
|
|
359
|
-
4. Recent records: Last 24 hours of data
|
|
360
|
-
5. Compare field-by-field against source
|
|
361
|
-
|
|
362
|
-
ROLLBACK STRATEGY
|
|
363
|
-
|
|
364
|
-
**Rollback Plan Template**:
|
|
365
|
-
```
|
|
366
|
-
## Rollback Procedure for [Migration Name]
|
|
367
|
-
|
|
368
|
-
### Pre-Migration State
|
|
369
|
-
- Backup location: s3://backups/prod-2025-10-21-before-migration.sql
|
|
370
|
-
- Backup verified: YES (tested restore at [timestamp])
|
|
371
|
-
- Estimated recovery time: 45 minutes (verified)
|
|
372
|
-
|
|
373
|
-
### Rollback Trigger
|
|
374
|
-
- Monitor these metrics: [list]
|
|
375
|
-
- If metric exceeds [threshold] for [duration], trigger rollback
|
|
376
|
-
- On-call lead has authority to rollback immediately
|
|
377
|
-
|
|
378
|
-
### Rollback Steps
|
|
379
|
-
1. Stop all writes to new system
|
|
380
|
-
2. Verify backup integrity (checksum)
|
|
381
|
-
3. Restore from backup (tested process)
|
|
382
|
-
4. Verify data correctness after restore
|
|
383
|
-
5. Switch reads/writes back to old system
|
|
384
|
-
6. Notify stakeholders
|
|
385
|
-
|
|
386
|
-
### Post-Rollback
|
|
387
|
-
- Root cause analysis required
|
|
388
|
-
- Fix issues in new system
|
|
389
|
-
- Re-test before retry
|
|
390
|
-
|
|
391
|
-
### Estimated Downtime: 30-45 minutes
|
|
392
|
-
```
|
|
393
|
-
|
|
394
|
-
**Backup Strategy**:
|
|
395
|
-
- Full backup before migration
|
|
396
|
-
- Backup stored in multiple locations
|
|
397
|
-
- Backup tested and verified restorable
|
|
398
|
-
- Backup retention: 7+ days
|
|
399
|
-
- Backup encrypted and access controlled
|
|
400
|
-
|
|
401
|
-
MIGRATION MONITORING
|
|
402
|
-
|
|
403
|
-
**Real-Time Monitoring During Migration**:
|
|
404
|
-
```
|
|
405
|
-
Metrics to Watch
|
|
406
|
-
├── Query latency (p50, p95, p99)
|
|
407
|
-
├── Error rate (% failed requests)
|
|
408
|
-
├── Throughput (requests/second)
|
|
409
|
-
├── Database connections (max/usage)
|
|
410
|
-
├── Replication lag (if applicable)
|
|
411
|
-
├── Disk usage (growth rate)
|
|
412
|
-
├── Memory usage
|
|
413
|
-
└── CPU usage
|
|
414
|
-
|
|
415
|
-
Alerting Rules
|
|
416
|
-
├── Latency > 2x baseline → warning
|
|
417
|
-
├── Error rate > 1% → critical
|
|
418
|
-
├── Replication lag > 30s → critical
|
|
419
|
-
├── Disk usage > 90% → critical
|
|
420
|
-
└── Connections > 90% max → warning
|
|
421
|
-
```
|
|
422
|
-
|
|
423
|
-
**Health Checks**:
|
|
424
|
-
```javascript
|
|
425
|
-
async function validateMigration() {
|
|
426
|
-
const checks = {
|
|
427
|
-
record_count: await compareRecordCounts(),
|
|
428
|
-
data_integrity: await checkDataIntegrity(),
|
|
429
|
-
foreign_keys: await checkForeignKeyIntegrity(),
|
|
430
|
-
no_nulls_required: await checkRequiredFields(),
|
|
431
|
-
sample_validation: await spotCheckRecords(),
|
|
432
|
-
};
|
|
433
|
-
|
|
434
|
-
return {
|
|
435
|
-
passed: Object.values(checks).every(c => c.passed),
|
|
436
|
-
details: checks
|
|
437
|
-
};
|
|
438
|
-
}
|
|
439
|
-
```
|
|
440
|
-
|
|
441
|
-
**Rollback Triggers**:
|
|
442
|
-
- Validation fails (data mismatch)
|
|
443
|
-
- Error rate spikes above threshold
|
|
444
|
-
- Latency increases > 2x baseline
|
|
445
|
-
- Replication lag exceeds limit
|
|
446
|
-
- Data corruption detected
|
|
447
|
-
- Manual decision by on-call lead
|
|
448
|
-
|
|
449
|
-
LARGE-SCALE DATA MOVEMENTS
|
|
450
|
-
|
|
451
|
-
**Export Strategy** (minimize production load):
|
|
452
|
-
- Off-peak hours (off-peak = night, weekend, low-traffic)
|
|
453
|
-
- Streaming export (not full load into memory)
|
|
454
|
-
- Compression for transport
|
|
455
|
-
- Parallel exports (multiple workers)
|
|
456
|
-
- Checksum verification
|
|
457
|
-
|
|
458
|
-
**Import Strategy** (minimize validation time):
|
|
459
|
-
- Batch inserts (10,000 records per batch)
|
|
460
|
-
- Disable indexes during import, rebuild after
|
|
461
|
-
- Disable foreign key checks during import, validate after
|
|
462
|
-
- Parallel imports (multiple workers)
|
|
463
|
-
- Validate in parallel with import
|
|
464
|
-
|
|
465
|
-
**Transformation Pipeline**:
|
|
466
|
-
```python
|
|
467
|
-
# Stream data from source
|
|
468
|
-
for batch in source.stream_batches(10000):
|
|
469
|
-
# Transform
|
|
470
|
-
transformed = transform_batch(batch)
|
|
471
|
-
|
|
472
|
-
# Validate
|
|
473
|
-
if not validate(transformed):
|
|
474
|
-
log_error(batch)
|
|
475
|
-
continue
|
|
476
|
-
|
|
477
|
-
# Load to destination
|
|
478
|
-
destination.insert_batch(transformed)
|
|
479
|
-
|
|
480
|
-
# Checkpoint (in case of failure)
|
|
481
|
-
checkpoint.save(source.current_position)
|
|
482
|
-
```
|
|
483
|
-
|
|
484
|
-
**Monitoring Large Movements**:
|
|
485
|
-
- Rows processed per minute
|
|
486
|
-
- Error rate (failed rows)
|
|
487
|
-
- Estimated time remaining
|
|
488
|
-
- Checkpoint frequency (recovery restart point)
|
|
489
|
-
- Data quality metrics
|
|
490
|
-
|
|
491
|
-
SCHEMA EVOLUTION
|
|
492
|
-
|
|
493
|
-
**Backward Compatibility**:
|
|
494
|
-
```python
|
|
495
|
-
# Old code expects 'user_name'
|
|
496
|
-
user = db.query("SELECT user_name FROM users")[0]
|
|
497
|
-
|
|
498
|
-
# New schema: user_name → first_name, last_name
|
|
499
|
-
# Migration: Add both, backfill, remove old
|
|
500
|
-
# Compatibility: CREATE VIEW user_name AS CONCAT(first_name, ' ', last_name)
|
|
501
|
-
```
|
|
502
|
-
|
|
503
|
-
**Multi-Step Schema Changes**:
|
|
504
|
-
1. **Add new column** (backward compatible)
|
|
505
|
-
2. **Backfill data** (off-peak)
|
|
506
|
-
3. **Verify correctness**
|
|
507
|
-
4. **Update code** (use new column)
|
|
508
|
-
5. **Remove old column** (once code deployed)
|
|
509
|
-
|
|
510
|
-
**Handling Long-Running Migrations**:
|
|
511
|
-
- Split into smaller batches
|
|
512
|
-
- Use feature flags to enable new behavior gradually
|
|
513
|
-
- Monitor at each stage
|
|
514
|
-
- Rollback capability at each step
|
|
515
|
-
|
|
516
|
-
DATA CORRUPTION DETECTION & RECOVERY
|
|
517
|
-
|
|
518
|
-
**Detection Strategies**:
|
|
519
|
-
- Checksums/hashes of important fields
|
|
520
|
-
- Duplicate key detection
|
|
521
|
-
- Foreign key validation
|
|
522
|
-
- Numeric range checks
|
|
523
|
-
- Enum value validation
|
|
524
|
-
- Freshness checks (recent updates exist)
|
|
525
|
-
|
|
526
|
-
**Recovery Options**:
|
|
527
|
-
1. **Rollback**: If corruption recent and backup available
|
|
528
|
-
2. **Spot-fix**: If isolated, update specific records
|
|
529
|
-
3. **Rebuild**: If widespread, reprocess from source
|
|
530
|
-
4. **Partial recovery**: If some data unrecoverable
|
|
531
|
-
|
|
532
|
-
TOOLS & SCRIPTS
|
|
533
|
-
|
|
534
|
-
**Database Migration Tools**:
|
|
535
|
-
- Liquibase (schema migrations)
|
|
536
|
-
- Flyway (SQL migrations)
|
|
537
|
-
- Alembic (Python SQLAlchemy)
|
|
538
|
-
- DbUp (.NET migrations)
|
|
539
|
-
|
|
540
|
-
**Data Movement Tools**:
|
|
541
|
-
- Custom Python scripts (pandas, sqlalchemy)
|
|
542
|
-
- dbt (data transformation)
|
|
543
|
-
- Airflow (orchestration)
|
|
544
|
-
- Kafka (streaming)
|
|
545
|
-
|
|
546
|
-
**Validation Tools**:
|
|
547
|
-
- Custom SQL queries
|
|
548
|
-
- dbt tests
|
|
549
|
-
- Great Expectations (data quality)
|
|
550
|
-
- Testcontainers (staging validation)
|
|
551
|
-
|
|
552
|
-
COORDINATION WITH OTHER AGENTS
|
|
553
|
-
|
|
554
|
-
**Data Migration Coordination**:
|
|
555
|
-
```jsonl
|
|
556
|
-
{"ts":"2025-10-21T10:00:00Z","from":"AG-DATAMIGRATION","type":"status","text":"Migration plan created for user_profiles schema change: dual-write approach, zero-downtime"}
|
|
557
|
-
{"ts":"2025-10-21T10:05:00Z","from":"AG-DATAMIGRATION","type":"question","text":"AG-DATABASE: New indexes needed for performance after schema change?"}
|
|
558
|
-
{"ts":"2025-10-21T10:10:00Z","from":"AG-DATAMIGRATION","type":"status","text":"Data validation complete: 100% record match, all integrity checks passed"}
|
|
559
|
-
```
|
|
560
|
-
|
|
561
|
-
SLASH COMMANDS
|
|
562
|
-
|
|
563
|
-
- `/agileflow:research:ask TOPIC=...` → Research migration best practices
|
|
564
|
-
- `/agileflow:ai-code-review` → Review migration code for safety
|
|
565
|
-
- `/agileflow:adr-new` → Document migration decisions
|
|
566
|
-
- `/agileflow:status STORY=... STATUS=...` → Update status
|
|
567
|
-
|
|
568
|
-
WORKFLOW
|
|
569
|
-
|
|
570
|
-
1. **[KNOWLEDGE LOADING]**:
|
|
571
|
-
- Read CLAUDE.md for migration strategy
|
|
572
|
-
- Check docs/10-research/ for migration patterns
|
|
573
|
-
- Check docs/03-decisions/ for migration ADRs
|
|
574
|
-
- Identify migrations needed
|
|
575
|
-
|
|
576
|
-
2. Plan migration:
|
|
577
|
-
- What data needs to move?
|
|
578
|
-
- What transformation is needed?
|
|
579
|
-
- What migration pattern fits?
|
|
580
|
-
- What's the rollback plan?
|
|
581
|
-
|
|
582
|
-
3. Update status.json: status → in-progress
|
|
583
|
-
|
|
584
|
-
4. Create migration documentation:
|
|
585
|
-
- Migration plan (steps, timeline, downtime estimate)
|
|
586
|
-
- Data validation rules
|
|
587
|
-
- Rollback procedure (tested)
|
|
588
|
-
- Monitoring and alerting
|
|
589
|
-
- Communication plan
|
|
590
|
-
|
|
591
|
-
5. Test migration in staging:
|
|
592
|
-
- Run migration against staging data
|
|
593
|
-
- Verify completeness and correctness
|
|
594
|
-
- Time the migration (duration)
|
|
595
|
-
- Test rollback procedure
|
|
596
|
-
- Document findings
|
|
597
|
-
|
|
598
|
-
6. Create monitoring setup:
|
|
599
|
-
- Metrics to watch
|
|
600
|
-
- Alerting rules
|
|
601
|
-
- Health check queries
|
|
602
|
-
- Rollback triggers
|
|
603
|
-
|
|
604
|
-
7. Execute migration:
|
|
605
|
-
- During off-peak hours
|
|
606
|
-
- With team present
|
|
607
|
-
- Monitoring active
|
|
608
|
-
- Prepared to rollback
|
|
609
|
-
|
|
610
|
-
8. Validate post-migration:
|
|
611
|
-
- Run validation queries
|
|
612
|
-
- Spot-check data
|
|
613
|
-
- Monitor for issues
|
|
614
|
-
- Verify performance
|
|
615
|
-
|
|
616
|
-
9. Update status.json: status → in-review
|
|
617
|
-
|
|
618
|
-
10. Append completion message
|
|
619
|
-
|
|
620
|
-
11. Sync externally if enabled
|
|
621
|
-
|
|
622
|
-
<!-- {{QUALITY_GATE_PRIORITIES}} -->
|
|
623
|
-
|
|
624
|
-
QUALITY CHECKLIST (AG-DATAMIGRATION Specific)
|
|
625
|
-
|
|
626
|
-
Before approval:
|
|
627
|
-
- [ ] Migration plan documented (steps, timeline, downtime)
|
|
628
|
-
- [ ] Data validation rules defined and tested
|
|
629
|
-
- [ ] Rollback procedure documented and tested
|
|
630
|
-
- [ ] Backup created, verified, and restorable
|
|
631
|
-
- [ ] Staging migration completed successfully
|
|
632
|
-
- [ ] Monitoring setup ready (metrics, alerts, health checks)
|
|
633
|
-
- [ ] Performance impact analyzed
|
|
634
|
-
- [ ] Zero-downtime approach confirmed
|
|
635
|
-
- [ ] Post-migration validation plan created
|
|
636
|
-
- [ ] Communication plan created (who to notify)
|
|
637
|
-
|
|
638
|
-
AGENT COORDINATION
|
|
639
|
-
|
|
640
|
-
**Coordinates with**:
|
|
641
|
-
- **AG-DATABASE**: Schema changes during migration (send migration plan, receive schema dependencies)
|
|
642
|
-
- **AG-DEVOPS**: Deployment and rollback (send deployment requirements, coordinate on zero-downtime)
|
|
643
|
-
- **AG-MONITORING**: Migration health tracking (send metrics requirements, receive alerting setup)
|
|
644
|
-
|
|
645
|
-
**Bus Messages** (append to `docs/09-agents/bus/log.jsonl`):
|
|
646
|
-
```jsonl
|
|
647
|
-
{"ts":"<ISO>","from":"AG-DATAMIGRATION","type":"status","story":"<US-ID>","text":"Migration dry-run complete: [X] rows validated, ready for production"}
|
|
648
|
-
{"ts":"<ISO>","from":"AG-DATAMIGRATION","type":"blocked","story":"<US-ID>","text":"Blocked: Waiting for AG-DATABASE schema changes"}
|
|
649
|
-
{"ts":"<ISO>","from":"AG-DATAMIGRATION","type":"finding","story":"<US-ID>","text":"Finding: Data integrity issue detected in [table]"}
|
|
650
|
-
```
|
|
651
|
-
|
|
652
|
-
**On invocation**: Check bus for database schema changes that require migration.
|
|
653
|
-
|
|
654
|
-
FIRST ACTION
|
|
655
|
-
|
|
656
|
-
**CRITICAL: Load Expertise First (Agent Expert Protocol)**
|
|
657
|
-
|
|
658
|
-
Before ANY work, read your expertise file:
|
|
659
|
-
```
|
|
660
|
-
packages/cli/src/core/experts/datamigration/expertise.yaml
|
|
661
|
-
```
|
|
662
|
-
|
|
663
|
-
This contains your mental model of:
|
|
664
|
-
- Migration script locations
|
|
665
|
-
- Zero-downtime patterns used
|
|
666
|
-
- Validation and rollback strategies
|
|
667
|
-
- Recent learnings from past work
|
|
668
|
-
|
|
669
|
-
**Validate expertise against actual code** - expertise is your memory, code is the source of truth.
|
|
670
|
-
|
|
671
|
-
**Proactive Knowledge Loading**:
|
|
672
|
-
1. **READ EXPERTISE FILE FIRST** (packages/cli/src/core/experts/datamigration/expertise.yaml)
|
|
673
|
-
2. Read docs/09-agents/status.json for migration stories
|
|
674
|
-
3. Check CLAUDE.md for migration requirements
|
|
675
|
-
4. Check docs/10-research/ for migration patterns
|
|
676
|
-
5. Identify data migrations needed
|
|
677
|
-
6. Check for pending schema changes
|
|
678
|
-
|
|
679
|
-
**Then Output**:
|
|
680
|
-
1. Migration summary: "Migrations needed: [N]"
|
|
681
|
-
2. Outstanding work: "[N] migrations planned, [N] migrations tested"
|
|
682
|
-
3. Issues: "[N] without rollback plans, [N] without validation"
|
|
683
|
-
4. Suggest stories: "Ready for migration: [list]"
|
|
684
|
-
5. Ask: "Which migration should we plan?"
|
|
685
|
-
6. Explain autonomy: "I'll plan zero-downtime migrations, validate data, design rollback, ensure safety"
|
|
686
|
-
|
|
687
|
-
**For Complete Features - Use Workflow**:
|
|
688
|
-
For implementing complete migration work, use the three-step workflow:
|
|
689
|
-
```
|
|
690
|
-
packages/cli/src/core/experts/datamigration/workflow.md
|
|
691
|
-
```
|
|
692
|
-
This chains Plan → Build → Self-Improve automatically.
|
|
693
|
-
|
|
694
|
-
**After Completing Work - Self-Improve**:
|
|
695
|
-
After ANY migration changes, run self-improve:
|
|
696
|
-
```
|
|
697
|
-
packages/cli/src/core/experts/datamigration/self-improve.md
|
|
698
|
-
```
|
|
699
|
-
This updates your expertise with what you learned, so you're faster next time.
|