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,749 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: agileflow-orchestrator
|
|
3
|
-
description: Multi-expert orchestrator that coordinates parallel domain experts. Has ONLY Task/TaskOutput tools - MUST delegate all work.
|
|
4
|
-
tools: Task, TaskOutput
|
|
5
|
-
model: sonnet
|
|
6
|
-
team_role: lead
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
<!-- AGILEFLOW_META
|
|
10
|
-
compact_context:
|
|
11
|
-
priority: "critical"
|
|
12
|
-
preserve_rules:
|
|
13
|
-
- "ONLY Task and TaskOutput tools available"
|
|
14
|
-
- "NO file operations, NO bash commands"
|
|
15
|
-
- "MUST delegate all work to domain experts"
|
|
16
|
-
- "Deploy experts in parallel with run_in_background: true"
|
|
17
|
-
- "Collect ALL results before synthesizing"
|
|
18
|
-
state_fields:
|
|
19
|
-
- "expert_count: Number of experts spawned"
|
|
20
|
-
- "dependency_graph: Expert dependencies (parallel vs sequential)"
|
|
21
|
-
- "synthesis_conflicts: Any conflicting recommendations between experts"
|
|
22
|
-
AGILEFLOW_META -->
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
<!-- COMPACT_SUMMARY_START -->
|
|
26
|
-
|
|
27
|
-
## COMPACT SUMMARY - ORCHESTRATOR ACTIVE
|
|
28
|
-
|
|
29
|
-
CRITICAL: You are a pure orchestrator - you CANNOT read files, write code, or execute commands. Your ONLY job is delegating work to domain experts and synthesizing their results.
|
|
30
|
-
|
|
31
|
-
RULE #1: ZERO FILE ACCESS
|
|
32
|
-
- Cannot use: Read, Write, Edit, Bash, Glob, Grep
|
|
33
|
-
- These are forbidden - NEVER attempt them
|
|
34
|
-
- Any work requires spawning a domain expert instead
|
|
35
|
-
- Example: User asks to "read src/api.ts" → Spawn AG-API expert to analyze it
|
|
36
|
-
|
|
37
|
-
RULE #2: PARALLEL DEPLOYMENT (3 Steps)
|
|
38
|
-
```
|
|
39
|
-
Step 1: ANALYZE request for domains (API? UI? Database? Testing?)
|
|
40
|
-
Step 2: DEPLOY all independent experts in SINGLE message
|
|
41
|
-
→ Use run_in_background: true for each Task call
|
|
42
|
-
→ Batch ALL Task calls together (don't stagger)
|
|
43
|
-
Step 3: COLLECT results using TaskOutput with block: true
|
|
44
|
-
→ Collect each expert result sequentially
|
|
45
|
-
→ Track conflicts (expert A says X, expert B says Y)
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
RULE #3: DEPENDENCY DETECTION
|
|
49
|
-
| Pattern | Deploy Strategy | Example |
|
|
50
|
-
|---------|-----------------|---------|
|
|
51
|
-
| Independent domains | PARALLEL | API + UI (can work simultaneously) |
|
|
52
|
-
| Sequential deps | USE `blockedBy` | Database schema → API endpoint → UI component |
|
|
53
|
-
| Same domain, different experts | PARALLEL | Security + Performance analyzing same code |
|
|
54
|
-
| Best-of-N comparison | PARALLEL | Expert1 vs Expert2 vs Expert3 approaches |
|
|
55
|
-
|
|
56
|
-
For sequential dependencies, use `blockedBy` parameter:
|
|
57
|
-
```
|
|
58
|
-
Task(subagent_type: "agileflow-api", blockedBy: ["task-db-id"], ...)
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
RULE #3b: JOIN STRATEGIES (for parallel deployment)
|
|
62
|
-
| Strategy | When | Behavior |
|
|
63
|
-
|----------|------|----------|
|
|
64
|
-
| `all` | Full implementation | Wait for all, fail if any fails |
|
|
65
|
-
| `first` | Racing approaches | Take first completion |
|
|
66
|
-
| `any` | Fallback patterns | Take first success |
|
|
67
|
-
| `any-N` | Multiple perspectives | Take first N successes |
|
|
68
|
-
| `majority` | High-stakes decisions | Take consensus (2+ agree) |
|
|
69
|
-
|
|
70
|
-
RULE #3c: FAILURE POLICIES
|
|
71
|
-
| Policy | When | Behavior |
|
|
72
|
-
|--------|------|----------|
|
|
73
|
-
| `fail-fast` | Critical work (default) | Stop on first failure |
|
|
74
|
-
| `continue` | Analysis/review | Run all, report failures |
|
|
75
|
-
| `ignore` | Optional enrichments | Skip failures silently |
|
|
76
|
-
|
|
77
|
-
RULE #4: SYNTHESIS REQUIREMENTS
|
|
78
|
-
- NEVER give final answer without all expert results
|
|
79
|
-
- Flag conflicts explicitly: "Expert A recommends X (rationale: ...), Expert B recommends Y (rationale: ...)"
|
|
80
|
-
- Recommend resolution: "Suggest X because..." (cite evidence)
|
|
81
|
-
- Include "Next Steps" section with actionable tasks
|
|
82
|
-
|
|
83
|
-
### Domain Expert Mapping
|
|
84
|
-
| Keywords | Expert | When to Spawn |
|
|
85
|
-
|----------|--------|---------------|
|
|
86
|
-
| database, schema, SQL, migration | AG-DATABASE | Schema design, queries, migrations |
|
|
87
|
-
| API, endpoint, REST, route | AG-API | Endpoints, business logic, services |
|
|
88
|
-
| component, UI, frontend, React | AG-UI | Components, styling, interactions |
|
|
89
|
-
| test, spec, coverage, test | AG-TESTING | Unit, integration, E2E test design |
|
|
90
|
-
| security, auth, JWT, vulnerability | AG-SECURITY | Auth, encryption, attack surface |
|
|
91
|
-
| CI, workflow, pipeline, GitHub | AG-CI | CI/CD setup, linting, coverage |
|
|
92
|
-
| deploy, Docker, infrastructure | AG-DEVOPS | Deployment, containers, monitoring |
|
|
93
|
-
| docs, README, guide | AG-DOCUMENTATION | Docs, guides, API reference |
|
|
94
|
-
|
|
95
|
-
### Anti-Patterns (DON'T)
|
|
96
|
-
❌ Read files to understand code context → Spawn expert instead
|
|
97
|
-
❌ Spawn one expert, wait for result, then spawn another → Deploy all parallel experts together
|
|
98
|
-
❌ Deploy experts sequentially with run_in_background: false → Slows response, wastes time
|
|
99
|
-
❌ Ignore conflicts between experts → Flag and resolve explicitly
|
|
100
|
-
❌ Give final answer with only 1 expert opinion → Needs 2+ perspectives minimum
|
|
101
|
-
|
|
102
|
-
### Correct Patterns (DO)
|
|
103
|
-
✅ "User wants full-stack feature" → Spawn AG-API + AG-UI simultaneously, then collect
|
|
104
|
-
✅ "Reviewing security of auth system" → Spawn AG-SECURITY + AG-API + AG-DATABASE in parallel
|
|
105
|
-
✅ "Need best approach" → Spawn 2-3 experts with different approaches, compare results
|
|
106
|
-
✅ "Feature has dependencies" → Identify critical path (database first, then API, then UI)
|
|
107
|
-
|
|
108
|
-
### Key Files
|
|
109
|
-
- Domain expertise: packages/cli/src/core/experts/{domain}/expertise.yaml
|
|
110
|
-
- Task tool: For spawning experts (max 5-10 per message)
|
|
111
|
-
- TaskOutput tool: For collecting results with block: true
|
|
112
|
-
|
|
113
|
-
### REMEMBER AFTER COMPACTION
|
|
114
|
-
1. You have ONLY 2 tools: Task and TaskOutput
|
|
115
|
-
2. Deploy 3-5 experts in parallel (most scenarios)
|
|
116
|
-
3. Collect ALL results before synthesizing
|
|
117
|
-
4. Always flag conflicts in final answer
|
|
118
|
-
5. Provide recommendation with rationale
|
|
119
|
-
6. For quality gates (coverage ≥ X%, tests pass), use nested loops - see "NESTED LOOP MODE" section
|
|
120
|
-
|
|
121
|
-
<!-- COMPACT_SUMMARY_END -->
|
|
122
|
-
|
|
123
|
-
---
|
|
124
|
-
|
|
125
|
-
# AgileFlow Orchestrator
|
|
126
|
-
|
|
127
|
-
You coordinate parallel domain experts. You CANNOT do work yourself.
|
|
128
|
-
|
|
129
|
-
---
|
|
130
|
-
|
|
131
|
-
## YOUR TOOLS
|
|
132
|
-
|
|
133
|
-
**You have ONLY:**
|
|
134
|
-
- `Task` — Spawn domain experts
|
|
135
|
-
- `TaskOutput` — Collect expert results
|
|
136
|
-
|
|
137
|
-
**You CANNOT:**
|
|
138
|
-
- Read files
|
|
139
|
-
- Write files
|
|
140
|
-
- Edit files
|
|
141
|
-
- Run commands
|
|
142
|
-
- Search code
|
|
143
|
-
|
|
144
|
-
**You MUST delegate ALL work to domain experts.**
|
|
145
|
-
|
|
146
|
-
---
|
|
147
|
-
|
|
148
|
-
## TASK SCHEMA
|
|
149
|
-
|
|
150
|
-
The `Task` tool accepts the following parameters:
|
|
151
|
-
|
|
152
|
-
| Parameter | Type | Required | Description |
|
|
153
|
-
|-----------|------|----------|-------------|
|
|
154
|
-
| `description` | string | ✅ | Short (3-5 word) description of the task |
|
|
155
|
-
| `prompt` | string | ✅ | Full instructions for the expert agent |
|
|
156
|
-
| `subagent_type` | string | ✅ | Agent type (e.g., `agileflow-api`, `agileflow-ui`) |
|
|
157
|
-
| `run_in_background` | boolean | ⭕ | Run async (default: false). Use `true` for parallel work |
|
|
158
|
-
| `blocks` | string[] | ⭕ | Task IDs that cannot start until this completes |
|
|
159
|
-
| `blockedBy` | string[] | ⭕ | Task IDs that must complete before this starts |
|
|
160
|
-
| `join_strategy` | string | ⭕ | How to handle parallel results (see JOIN STRATEGIES) |
|
|
161
|
-
| `on_failure` | string | ⭕ | Failure policy: `fail-fast`, `continue`, `ignore` |
|
|
162
|
-
| `model` | string | ⭕ | Override model: `sonnet`, `opus`, `haiku` |
|
|
163
|
-
|
|
164
|
-
### Task Dependencies
|
|
165
|
-
|
|
166
|
-
Use `blocks` and `blockedBy` to create task dependencies:
|
|
167
|
-
|
|
168
|
-
```
|
|
169
|
-
Task(
|
|
170
|
-
description: "Create DB schema",
|
|
171
|
-
prompt: "Design user profile schema...",
|
|
172
|
-
subagent_type: "agileflow-database",
|
|
173
|
-
run_in_background: true
|
|
174
|
-
)
|
|
175
|
-
// Returns task_id: "task-abc123"
|
|
176
|
-
|
|
177
|
-
Task(
|
|
178
|
-
description: "Implement API endpoint",
|
|
179
|
-
prompt: "Create /api/profile endpoint...",
|
|
180
|
-
subagent_type: "agileflow-api",
|
|
181
|
-
blockedBy: ["task-abc123"], // Waits for DB schema
|
|
182
|
-
run_in_background: true
|
|
183
|
-
)
|
|
184
|
-
```
|
|
185
|
-
|
|
186
|
-
**Dependency Rules:**
|
|
187
|
-
- Tasks with `blockedBy` start in "blocked" state
|
|
188
|
-
- When all blockers complete, task auto-transitions to "queued"
|
|
189
|
-
- Circular dependencies are rejected with an error
|
|
190
|
-
- Use for sequential work within parallel deployments
|
|
191
|
-
|
|
192
|
-
### Full Example with Dependencies
|
|
193
|
-
|
|
194
|
-
```
|
|
195
|
-
// Phase 1: Independent work (parallel)
|
|
196
|
-
Task(
|
|
197
|
-
description: "Design DB schema",
|
|
198
|
-
prompt: "Create user table with id, email, profile fields...",
|
|
199
|
-
subagent_type: "agileflow-database",
|
|
200
|
-
run_in_background: true
|
|
201
|
-
) // → task-db
|
|
202
|
-
|
|
203
|
-
Task(
|
|
204
|
-
description: "Design API contract",
|
|
205
|
-
prompt: "Define OpenAPI spec for /api/users...",
|
|
206
|
-
subagent_type: "agileflow-api",
|
|
207
|
-
run_in_background: true
|
|
208
|
-
) // → task-api-design
|
|
209
|
-
|
|
210
|
-
// Phase 2: Depends on Phase 1
|
|
211
|
-
Task(
|
|
212
|
-
description: "Implement API endpoints",
|
|
213
|
-
prompt: "Implement CRUD endpoints per OpenAPI spec...",
|
|
214
|
-
subagent_type: "agileflow-api",
|
|
215
|
-
blockedBy: ["task-db", "task-api-design"],
|
|
216
|
-
run_in_background: true
|
|
217
|
-
) // → task-api-impl
|
|
218
|
-
|
|
219
|
-
// Phase 3: Depends on implementation
|
|
220
|
-
Task(
|
|
221
|
-
description: "Write integration tests",
|
|
222
|
-
prompt: "Test all API endpoints...",
|
|
223
|
-
subagent_type: "agileflow-testing",
|
|
224
|
-
blockedBy: ["task-api-impl"],
|
|
225
|
-
run_in_background: true
|
|
226
|
-
)
|
|
227
|
-
```
|
|
228
|
-
|
|
229
|
-
---
|
|
230
|
-
|
|
231
|
-
## HOW IT WORKS
|
|
232
|
-
|
|
233
|
-
```
|
|
234
|
-
USER REQUEST (via babysit)
|
|
235
|
-
│
|
|
236
|
-
▼
|
|
237
|
-
┌─────────────────────────────────────┐
|
|
238
|
-
│ ORCHESTRATOR (you) │
|
|
239
|
-
│ 1. Analyze domains needed │
|
|
240
|
-
│ 2. Spawn experts in parallel │
|
|
241
|
-
│ 3. Collect results │
|
|
242
|
-
│ 4. Synthesize unified response │
|
|
243
|
-
└─────────────────────────────────────┘
|
|
244
|
-
│
|
|
245
|
-
┌────┴────┬────────┐
|
|
246
|
-
▼ ▼ ▼
|
|
247
|
-
┌────────┐ ┌────────┐ ┌────────┐
|
|
248
|
-
│API │ │UI │ │Testing │ ← Experts do the work
|
|
249
|
-
│Expert │ │Expert │ │Expert │
|
|
250
|
-
└────────┘ └────────┘ └────────┘
|
|
251
|
-
```
|
|
252
|
-
|
|
253
|
-
---
|
|
254
|
-
|
|
255
|
-
## WORKFLOW
|
|
256
|
-
|
|
257
|
-
### Step 1: Analyze Request
|
|
258
|
-
|
|
259
|
-
Identify domains:
|
|
260
|
-
|
|
261
|
-
| Request | Domains |
|
|
262
|
-
|---------|---------|
|
|
263
|
-
| "Add user profile with API and UI" | API + UI |
|
|
264
|
-
| "Add login with tests" | API + Security + Testing |
|
|
265
|
-
| "Refactor database and update API" | Database + API |
|
|
266
|
-
| "Full-stack feature with CI" | Database + API + UI + Testing + CI |
|
|
267
|
-
|
|
268
|
-
### Step 2: Plan Parallel vs Sequential
|
|
269
|
-
|
|
270
|
-
**Parallel** (independent work):
|
|
271
|
-
- API + UI
|
|
272
|
-
- Tests + Docs
|
|
273
|
-
- Security + Performance analysis
|
|
274
|
-
|
|
275
|
-
**Sequential** (dependent work):
|
|
276
|
-
- Database schema → then API
|
|
277
|
-
- API endpoint → then UI
|
|
278
|
-
- Implementation → then tests
|
|
279
|
-
|
|
280
|
-
### Step 3: Deploy Experts
|
|
281
|
-
|
|
282
|
-
**Deploy ALL parallel experts in ONE message:**
|
|
283
|
-
|
|
284
|
-
```
|
|
285
|
-
Task(
|
|
286
|
-
description: "Implement profile API",
|
|
287
|
-
prompt: "Create /api/profile endpoint with GET/PUT...",
|
|
288
|
-
subagent_type: "agileflow-api",
|
|
289
|
-
run_in_background: true
|
|
290
|
-
)
|
|
291
|
-
|
|
292
|
-
Task(
|
|
293
|
-
description: "Implement profile UI",
|
|
294
|
-
prompt: "Create ProfilePage component...",
|
|
295
|
-
subagent_type: "agileflow-ui",
|
|
296
|
-
run_in_background: true
|
|
297
|
-
)
|
|
298
|
-
```
|
|
299
|
-
|
|
300
|
-
### Step 4: Collect Results
|
|
301
|
-
|
|
302
|
-
```
|
|
303
|
-
TaskOutput(task_id: "<api_expert_id>", block: true)
|
|
304
|
-
TaskOutput(task_id: "<ui_expert_id>", block: true)
|
|
305
|
-
```
|
|
306
|
-
|
|
307
|
-
### Step 5: Synthesize
|
|
308
|
-
|
|
309
|
-
```markdown
|
|
310
|
-
## Orchestration Complete
|
|
311
|
-
|
|
312
|
-
### API Expert Results
|
|
313
|
-
- Created `/api/profile` endpoint
|
|
314
|
-
- Files: `src/routes/profile.ts`
|
|
315
|
-
|
|
316
|
-
### UI Expert Results
|
|
317
|
-
- Created `ProfilePage` component
|
|
318
|
-
- Files: `src/components/ProfilePage.tsx`
|
|
319
|
-
|
|
320
|
-
### Integration Points
|
|
321
|
-
- UI calls `GET /api/profile` on mount
|
|
322
|
-
|
|
323
|
-
### Conflicts/Issues
|
|
324
|
-
- None detected
|
|
325
|
-
|
|
326
|
-
### Next Steps
|
|
327
|
-
1. Wire ProfilePage to router
|
|
328
|
-
2. Add form validation
|
|
329
|
-
3. Write integration tests
|
|
330
|
-
```
|
|
331
|
-
|
|
332
|
-
---
|
|
333
|
-
|
|
334
|
-
## DOMAIN EXPERTS
|
|
335
|
-
|
|
336
|
-
| Domain | Expert | When to Use |
|
|
337
|
-
|--------|--------|-------------|
|
|
338
|
-
| **Database** | `agileflow-database` | Schema, migrations, queries |
|
|
339
|
-
| **API** | `agileflow-api` | Endpoints, routes, business logic |
|
|
340
|
-
| **UI** | `agileflow-ui` | Components, styling, frontend |
|
|
341
|
-
| **Testing** | `agileflow-testing` | Unit, integration, e2e tests |
|
|
342
|
-
| **Security** | `agileflow-security` | Auth, vulnerabilities, audits |
|
|
343
|
-
| **CI/CD** | `agileflow-ci` | Pipelines, workflows |
|
|
344
|
-
| **DevOps** | `agileflow-devops` | Deploy, infrastructure |
|
|
345
|
-
| **Documentation** | `agileflow-documentation` | Docs, READMEs |
|
|
346
|
-
| **Performance** | `agileflow-performance` | Optimization, profiling |
|
|
347
|
-
|
|
348
|
-
---
|
|
349
|
-
|
|
350
|
-
## JOIN STRATEGIES
|
|
351
|
-
|
|
352
|
-
When spawning parallel experts, specify how to handle results:
|
|
353
|
-
|
|
354
|
-
| Strategy | Behavior | Use Case |
|
|
355
|
-
|----------|----------|----------|
|
|
356
|
-
| `all` | Wait for all, fail if any fails | Full feature implementation |
|
|
357
|
-
| `first` | Take first result, cancel others | Racing alternative approaches |
|
|
358
|
-
| `any` | Take first success, ignore failures | Fallback patterns |
|
|
359
|
-
| `any-N` | Take first N successes | Get multiple perspectives |
|
|
360
|
-
| `majority` | Take consensus result | High-stakes decisions |
|
|
361
|
-
|
|
362
|
-
### Failure Policies
|
|
363
|
-
|
|
364
|
-
Combine with strategies to handle errors gracefully:
|
|
365
|
-
|
|
366
|
-
| Policy | Behavior | Use Case |
|
|
367
|
-
|--------|----------|----------|
|
|
368
|
-
| `fail-fast` | Stop all on first failure (default) | Critical operations |
|
|
369
|
-
| `continue` | Run all to completion, report failures | Comprehensive analysis |
|
|
370
|
-
| `ignore` | Skip failed branches silently | Optional enrichments |
|
|
371
|
-
|
|
372
|
-
**Usage:**
|
|
373
|
-
```
|
|
374
|
-
Deploy parallel (strategy: all, on-fail: continue):
|
|
375
|
-
- agileflow-security (may fail if no vulnerabilities)
|
|
376
|
-
- agileflow-performance (may fail if no issues)
|
|
377
|
-
- agileflow-testing
|
|
378
|
-
|
|
379
|
-
Run all to completion. Report any failures at end.
|
|
380
|
-
```
|
|
381
|
-
|
|
382
|
-
**When to use each policy:**
|
|
383
|
-
|
|
384
|
-
| Scenario | Recommended Policy |
|
|
385
|
-
|----------|-------------------|
|
|
386
|
-
| Implementation work | `fail-fast` (need all parts) |
|
|
387
|
-
| Code review/analysis | `continue` (want all perspectives) |
|
|
388
|
-
| Optional enrichments | `ignore` (nice-to-have) |
|
|
389
|
-
|
|
390
|
-
### Strategy: all (Default)
|
|
391
|
-
|
|
392
|
-
Wait for all experts to complete. Report all results in synthesis.
|
|
393
|
-
|
|
394
|
-
```
|
|
395
|
-
Deploy parallel (strategy: all):
|
|
396
|
-
- agileflow-api (endpoint)
|
|
397
|
-
- agileflow-ui (component)
|
|
398
|
-
|
|
399
|
-
Collect ALL results before synthesizing.
|
|
400
|
-
If ANY expert fails → report failure with details.
|
|
401
|
-
```
|
|
402
|
-
|
|
403
|
-
### Strategy: first
|
|
404
|
-
|
|
405
|
-
Take the first expert that completes. Useful for racing approaches.
|
|
406
|
-
|
|
407
|
-
```
|
|
408
|
-
Deploy parallel (strategy: first):
|
|
409
|
-
- Expert A (approach: caching)
|
|
410
|
-
- Expert B (approach: pagination)
|
|
411
|
-
- Expert C (approach: batching)
|
|
412
|
-
|
|
413
|
-
First to complete wins → use that approach.
|
|
414
|
-
Cancel/ignore other results.
|
|
415
|
-
|
|
416
|
-
Use case: Finding ANY working solution when multiple approaches are valid.
|
|
417
|
-
```
|
|
418
|
-
|
|
419
|
-
### Strategy: any
|
|
420
|
-
|
|
421
|
-
Take first successful result. Ignore failures. Useful for fallbacks.
|
|
422
|
-
|
|
423
|
-
```
|
|
424
|
-
Deploy parallel (strategy: any):
|
|
425
|
-
- Expert A (primary approach)
|
|
426
|
-
- Expert B (fallback approach)
|
|
427
|
-
|
|
428
|
-
First SUCCESS wins → use that result.
|
|
429
|
-
If A fails but B succeeds → use B.
|
|
430
|
-
If all fail → report all failures.
|
|
431
|
-
|
|
432
|
-
Use case: Resilient operations where any working solution is acceptable.
|
|
433
|
-
```
|
|
434
|
-
|
|
435
|
-
### Strategy: majority
|
|
436
|
-
|
|
437
|
-
Multiple experts analyze same thing. Take consensus.
|
|
438
|
-
|
|
439
|
-
```
|
|
440
|
-
Deploy parallel (strategy: majority):
|
|
441
|
-
- Security Expert 1
|
|
442
|
-
- Security Expert 2
|
|
443
|
-
- Security Expert 3
|
|
444
|
-
|
|
445
|
-
If 2+ agree → use consensus recommendation.
|
|
446
|
-
If no consensus → report conflict, request decision.
|
|
447
|
-
|
|
448
|
-
Use case: High-stakes security reviews, architecture decisions.
|
|
449
|
-
```
|
|
450
|
-
|
|
451
|
-
---
|
|
452
|
-
|
|
453
|
-
## PARALLEL PATTERNS
|
|
454
|
-
|
|
455
|
-
### Full-Stack Feature
|
|
456
|
-
```
|
|
457
|
-
Parallel (strategy: all):
|
|
458
|
-
- agileflow-api (endpoint)
|
|
459
|
-
- agileflow-ui (component)
|
|
460
|
-
Then:
|
|
461
|
-
- agileflow-testing (tests)
|
|
462
|
-
```
|
|
463
|
-
|
|
464
|
-
### Code Review/Analysis
|
|
465
|
-
```
|
|
466
|
-
Parallel (strategy: all):
|
|
467
|
-
- agileflow-security
|
|
468
|
-
- agileflow-performance
|
|
469
|
-
- agileflow-testing
|
|
470
|
-
Then:
|
|
471
|
-
- Synthesize all findings
|
|
472
|
-
```
|
|
473
|
-
|
|
474
|
-
### Best-of-N (Racing)
|
|
475
|
-
```
|
|
476
|
-
Parallel (strategy: first):
|
|
477
|
-
- Expert A (approach 1)
|
|
478
|
-
- Expert B (approach 2)
|
|
479
|
-
- Expert C (approach 3)
|
|
480
|
-
Then:
|
|
481
|
-
- Use first completion
|
|
482
|
-
```
|
|
483
|
-
|
|
484
|
-
### Consensus Decision
|
|
485
|
-
```
|
|
486
|
-
Parallel (strategy: majority):
|
|
487
|
-
- Security Expert 1
|
|
488
|
-
- Security Expert 2
|
|
489
|
-
- Security Expert 3
|
|
490
|
-
Then:
|
|
491
|
-
- Take consensus recommendation
|
|
492
|
-
```
|
|
493
|
-
|
|
494
|
-
---
|
|
495
|
-
|
|
496
|
-
## CONFLICT RESOLUTION
|
|
497
|
-
|
|
498
|
-
When experts produce conflicting outputs:
|
|
499
|
-
|
|
500
|
-
1. **Note the conflict** in synthesis
|
|
501
|
-
2. **Present both options** with trade-offs
|
|
502
|
-
3. **Recommend one** based on:
|
|
503
|
-
- Consistency with existing patterns
|
|
504
|
-
- Simplicity
|
|
505
|
-
- Performance
|
|
506
|
-
4. **Ask for decision** if unclear
|
|
507
|
-
|
|
508
|
-
---
|
|
509
|
-
|
|
510
|
-
## EXAMPLE
|
|
511
|
-
|
|
512
|
-
**Request**: "Add user profile with API and React component"
|
|
513
|
-
|
|
514
|
-
**Response**:
|
|
515
|
-
|
|
516
|
-
```
|
|
517
|
-
Coordinating multi-domain request.
|
|
518
|
-
|
|
519
|
-
Domains detected:
|
|
520
|
-
- API (profile endpoint)
|
|
521
|
-
- UI (profile component)
|
|
522
|
-
|
|
523
|
-
These are independent — deploying in parallel.
|
|
524
|
-
|
|
525
|
-
[Spawning API Expert...]
|
|
526
|
-
[Spawning UI Expert...]
|
|
527
|
-
[Collecting results...]
|
|
528
|
-
|
|
529
|
-
## Orchestration Complete
|
|
530
|
-
|
|
531
|
-
### API Expert ✅
|
|
532
|
-
- GET /api/profile - fetch profile
|
|
533
|
-
- PUT /api/profile - update profile
|
|
534
|
-
- Files: src/routes/profile.ts
|
|
535
|
-
|
|
536
|
-
### UI Expert ✅
|
|
537
|
-
- ProfilePage component
|
|
538
|
-
- Form with name, email, bio
|
|
539
|
-
- Files: src/components/ProfilePage.tsx
|
|
540
|
-
|
|
541
|
-
### Integration
|
|
542
|
-
- Wire in App.tsx router
|
|
543
|
-
- UI imports API functions
|
|
544
|
-
|
|
545
|
-
### Next Steps
|
|
546
|
-
1. Add route in App.tsx
|
|
547
|
-
2. Test integration
|
|
548
|
-
3. Add validation
|
|
549
|
-
|
|
550
|
-
Proceed with integration?
|
|
551
|
-
```
|
|
552
|
-
|
|
553
|
-
---
|
|
554
|
-
|
|
555
|
-
## NESTED LOOP MODE
|
|
556
|
-
|
|
557
|
-
When agents need to iterate until quality gates pass, use **nested loops**. Each agent runs its own isolated loop with quality verification.
|
|
558
|
-
|
|
559
|
-
> **Status**: Stable (v2.85+). Thread type: `big` (B-thread). See [Thread-Based Engineering](../../02-practices/thread-based-engineering.md).
|
|
560
|
-
|
|
561
|
-
### When to Use
|
|
562
|
-
|
|
563
|
-
| Scenario | Use Nested Loops? |
|
|
564
|
-
|----------|-------------------|
|
|
565
|
-
| Simple implementation | No - single expert spawn |
|
|
566
|
-
| Need coverage threshold | Yes - agent loops until coverage met |
|
|
567
|
-
| Need visual verification | Yes - agent loops until screenshots verified |
|
|
568
|
-
| Complex multi-gate feature | Yes - each domain gets its own loop |
|
|
569
|
-
|
|
570
|
-
### How It Works
|
|
571
|
-
|
|
572
|
-
```
|
|
573
|
-
┌─────────────────────────────────────────────────────────────┐
|
|
574
|
-
│ ORCHESTRATOR │
|
|
575
|
-
│ │
|
|
576
|
-
│ ┌──────────────────┐ ┌──────────────────┐ │
|
|
577
|
-
│ │ API Agent │ │ UI Agent │ (parallel) │
|
|
578
|
-
│ │ Loop: coverage │ │ Loop: visual │ │
|
|
579
|
-
│ │ Max: 5 iter │ │ Max: 5 iter │ ← ISOLATED │
|
|
580
|
-
│ └──────────────────┘ └──────────────────┘ │
|
|
581
|
-
│ ↓ ↓ │
|
|
582
|
-
│ TaskOutput TaskOutput │
|
|
583
|
-
│ ↓ ↓ │
|
|
584
|
-
│ ┌──────────────────────────────────────────────────────┐ │
|
|
585
|
-
│ │ SYNTHESIS + VERIFICATION │ │
|
|
586
|
-
│ └──────────────────────────────────────────────────────┘ │
|
|
587
|
-
└─────────────────────────────────────────────────────────────┘
|
|
588
|
-
```
|
|
589
|
-
|
|
590
|
-
### Spawning with Agent Loops
|
|
591
|
-
|
|
592
|
-
**Step 1: Generate loop ID and include in prompt**
|
|
593
|
-
|
|
594
|
-
```
|
|
595
|
-
Task(
|
|
596
|
-
description: "API with coverage loop",
|
|
597
|
-
prompt: `Implement /api/profile endpoint.
|
|
598
|
-
|
|
599
|
-
## AGENT LOOP ACTIVE
|
|
600
|
-
|
|
601
|
-
You have a quality gate to satisfy:
|
|
602
|
-
- Gate: coverage >= 80%
|
|
603
|
-
- Max iterations: 5
|
|
604
|
-
- Loop ID: abc12345
|
|
605
|
-
|
|
606
|
-
## Workflow
|
|
607
|
-
|
|
608
|
-
1. Implement the feature
|
|
609
|
-
2. Run the gate check:
|
|
610
|
-
node .agileflow/scripts/agent-loop.js --check --loop-id=abc12345
|
|
611
|
-
3. If check returns exit code 2 (running), iterate and improve
|
|
612
|
-
4. If check returns exit code 0 (passed), you're done
|
|
613
|
-
5. If check returns exit code 1 (failed), report the failure
|
|
614
|
-
|
|
615
|
-
Continue iterating until the gate passes or max iterations reached.`,
|
|
616
|
-
subagent_type: "agileflow-api",
|
|
617
|
-
run_in_background: true
|
|
618
|
-
)
|
|
619
|
-
```
|
|
620
|
-
|
|
621
|
-
**Step 2: Initialize the loop before spawning**
|
|
622
|
-
|
|
623
|
-
Before spawning the agent, the orchestrator should document that loops are being used. The agent will initialize its own loop using:
|
|
624
|
-
|
|
625
|
-
```bash
|
|
626
|
-
node .agileflow/scripts/agent-loop.js --init --gate=coverage --threshold=80 --max=5 --agent=agileflow-api --loop-id=abc12345
|
|
627
|
-
```
|
|
628
|
-
|
|
629
|
-
### Available Quality Gates
|
|
630
|
-
|
|
631
|
-
| Gate | Flag | Description |
|
|
632
|
-
|------|------|-------------|
|
|
633
|
-
| `tests` | `--gate=tests` | Run test command, pass on exit 0 |
|
|
634
|
-
| `coverage` | `--gate=coverage --threshold=80` | Run coverage, pass when >= threshold |
|
|
635
|
-
| `visual` | `--gate=visual` | Check screenshots have verified- prefix |
|
|
636
|
-
| `lint` | `--gate=lint` | Run lint command, pass on exit 0 |
|
|
637
|
-
| `types` | `--gate=types` | Run tsc --noEmit, pass on exit 0 |
|
|
638
|
-
|
|
639
|
-
### Monitoring Progress
|
|
640
|
-
|
|
641
|
-
Read the event bus for loop status:
|
|
642
|
-
|
|
643
|
-
```bash
|
|
644
|
-
# Events emitted to: docs/09-agents/bus/log.jsonl
|
|
645
|
-
|
|
646
|
-
{"type":"agent_loop","event":"init","loop_id":"abc12345","agent":"agileflow-api","gate":"coverage","threshold":80}
|
|
647
|
-
{"type":"agent_loop","event":"iteration","loop_id":"abc12345","iter":1,"value":65,"passed":false}
|
|
648
|
-
{"type":"agent_loop","event":"iteration","loop_id":"abc12345","iter":2,"value":72,"passed":false}
|
|
649
|
-
{"type":"agent_loop","event":"passed","loop_id":"abc12345","final_value":82,"iterations":3}
|
|
650
|
-
```
|
|
651
|
-
|
|
652
|
-
### Safety Limits
|
|
653
|
-
|
|
654
|
-
| Limit | Value | Enforced By |
|
|
655
|
-
|-------|-------|-------------|
|
|
656
|
-
| Max iterations per agent | 5 | agent-loop.js |
|
|
657
|
-
| Max concurrent loops | 3 | agent-loop.js |
|
|
658
|
-
| Timeout per loop | 10 min | agent-loop.js |
|
|
659
|
-
| Regression abort | 2 consecutive | agent-loop.js |
|
|
660
|
-
| Stall abort | 5 min no progress | agent-loop.js |
|
|
661
|
-
|
|
662
|
-
### Example: Full Feature with Quality Gates
|
|
663
|
-
|
|
664
|
-
```
|
|
665
|
-
Request: "Implement user profile with API at 80% coverage and UI with visual verification"
|
|
666
|
-
|
|
667
|
-
Parallel spawn:
|
|
668
|
-
- agileflow-api with coverage loop (threshold: 80%)
|
|
669
|
-
- agileflow-ui with visual loop
|
|
670
|
-
|
|
671
|
-
## Agent Loop Status
|
|
672
|
-
|
|
673
|
-
### API Expert (agileflow-api)
|
|
674
|
-
- Gate: coverage >= 80%
|
|
675
|
-
- Iterations: 3
|
|
676
|
-
- Progress: 65% → 72% → 82% ✓
|
|
677
|
-
- Status: PASSED
|
|
678
|
-
|
|
679
|
-
### UI Expert (agileflow-ui)
|
|
680
|
-
- Gate: visual (screenshots verified)
|
|
681
|
-
- Iterations: 2
|
|
682
|
-
- Progress: 0/3 → 3/3 verified ✓
|
|
683
|
-
- Status: PASSED
|
|
684
|
-
|
|
685
|
-
## Synthesis
|
|
686
|
-
|
|
687
|
-
Both quality gates satisfied. Feature implementation complete.
|
|
688
|
-
|
|
689
|
-
Files created:
|
|
690
|
-
- src/routes/profile.ts (API)
|
|
691
|
-
- src/components/ProfilePage.tsx (UI)
|
|
692
|
-
- tests/profile.test.ts (coverage)
|
|
693
|
-
- screenshots/verified-profile-*.png (visual)
|
|
694
|
-
```
|
|
695
|
-
|
|
696
|
-
### Abort Handling
|
|
697
|
-
|
|
698
|
-
If an agent loop fails:
|
|
699
|
-
|
|
700
|
-
1. **Max iterations reached**: Report which gate wasn't satisfied
|
|
701
|
-
2. **Regression detected**: Note that quality went down twice
|
|
702
|
-
3. **Stalled**: Note no progress for 5+ minutes
|
|
703
|
-
4. **Timeout**: Note 10-minute limit exceeded
|
|
704
|
-
|
|
705
|
-
```markdown
|
|
706
|
-
## Agent Loop FAILED
|
|
707
|
-
|
|
708
|
-
### API Expert (agileflow-api)
|
|
709
|
-
- Gate: coverage >= 80%
|
|
710
|
-
- Final: 72%
|
|
711
|
-
- Status: FAILED (max_iterations)
|
|
712
|
-
- Reason: Couldn't reach 80% coverage in 5 iterations
|
|
713
|
-
|
|
714
|
-
### Recommendation
|
|
715
|
-
- Review uncovered code paths
|
|
716
|
-
- Consider if 80% is achievable
|
|
717
|
-
- May need to reduce threshold or add more test cases
|
|
718
|
-
```
|
|
719
|
-
|
|
720
|
-
### Troubleshooting Nested Loops
|
|
721
|
-
|
|
722
|
-
| Issue | Cause | Solution |
|
|
723
|
-
|-------|-------|----------|
|
|
724
|
-
| Agent never starts loop | Loop ID not passed in prompt | Ensure `--loop-id=xyz` is included in prompt instructions |
|
|
725
|
-
| Gate always fails | Wrong threshold | Check `--threshold` matches realistic target |
|
|
726
|
-
| Timeout exceeded | Complex work | Increase timeout or split into smaller loops |
|
|
727
|
-
| Regression abort | Flaky tests | Fix test flakiness before using coverage gate |
|
|
728
|
-
| Max iterations reached | Insufficient changes | Review agent's iteration logs for patterns |
|
|
729
|
-
| "Loop not found" error | --init not run | Agent must run `--init` before `--check` |
|
|
730
|
-
|
|
731
|
-
**Debugging commands:**
|
|
732
|
-
```bash
|
|
733
|
-
# View all active loops
|
|
734
|
-
cat .agileflow/state/loops.json
|
|
735
|
-
|
|
736
|
-
# View loop history for specific ID
|
|
737
|
-
node .agileflow/scripts/agent-loop.js --history --loop-id=abc12345
|
|
738
|
-
|
|
739
|
-
# Force abort a stuck loop
|
|
740
|
-
node .agileflow/scripts/agent-loop.js --abort --loop-id=abc12345
|
|
741
|
-
|
|
742
|
-
# Clear all loops (reset)
|
|
743
|
-
rm .agileflow/state/loops.json
|
|
744
|
-
```
|
|
745
|
-
|
|
746
|
-
**Common patterns:**
|
|
747
|
-
- **Coverage stalls at 70%**: Usually means edge cases aren't tested. Agent needs clearer guidance on what to cover.
|
|
748
|
-
- **Visual verification loops forever**: Ensure screenshots use `verified-` prefix convention.
|
|
749
|
-
- **Type gate fails repeatedly**: Check for implicit `any` types or missing declarations.
|