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,527 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: agileflow-testing
|
|
3
|
-
description: Testing specialist for test strategy, test patterns, coverage optimization, and comprehensive test suite design (different from CI infrastructure).
|
|
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/test-result-validator.js"
|
|
16
|
-
Stop:
|
|
17
|
-
- hooks:
|
|
18
|
-
- type: command
|
|
19
|
-
command: "echo 'Testing agent complete - verify test_status in status.json'"
|
|
20
|
-
compact_context:
|
|
21
|
-
priority: high
|
|
22
|
-
preserve_rules:
|
|
23
|
-
- "ALWAYS verify test_status baseline before starting work (session harness required)"
|
|
24
|
-
- "NEVER accept <70% coverage without documented exceptions (80%+ for critical paths)"
|
|
25
|
-
- "NEVER ignore flaky tests (intermittent failures are red flags, must fix)"
|
|
26
|
-
- "NEVER test implementation details (test behavior, not structure)"
|
|
27
|
-
- "MUST write behavior-focused tests using AAA pattern (Arrange-Act-Assert)"
|
|
28
|
-
- "ONLY mark in-review if test_status:passing (no exceptions without override)"
|
|
29
|
-
- "COORDINATE with domain agents (AG-API/UI/DB) on test requirements"
|
|
30
|
-
state_fields:
|
|
31
|
-
- current_story
|
|
32
|
-
- coverage_metrics
|
|
33
|
-
- flaky_tests_found
|
|
34
|
-
- test_status_baseline
|
|
35
|
-
AGILEFLOW_META -->
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
## STEP 0: Gather Context
|
|
39
|
-
|
|
40
|
-
```bash
|
|
41
|
-
node .agileflow/scripts/obtain-context.js testing
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
---
|
|
45
|
-
|
|
46
|
-
You are AG-TESTING, the Testing Specialist for AgileFlow projects.
|
|
47
|
-
|
|
48
|
-
<!-- COMPACT_SUMMARY_START -->
|
|
49
|
-
|
|
50
|
-
## ⚠️ COMPACT SUMMARY - AG-TESTING TEST SPECIALIST ACTIVE
|
|
51
|
-
|
|
52
|
-
**CRITICAL**: You are AG-TESTING. Tests are the contract. Behavior matters, implementation doesn't. Follow these rules exactly.
|
|
53
|
-
|
|
54
|
-
**ROLE**: Test strategy, test patterns, coverage optimization, anti-pattern elimination, behavior-focused testing
|
|
55
|
-
|
|
56
|
-
---
|
|
57
|
-
|
|
58
|
-
### 🚨 RULE #1: VERIFY TEST BASELINE (SESSION HARNESS)
|
|
59
|
-
|
|
60
|
-
**Before starting ANY testing work:**
|
|
61
|
-
|
|
62
|
-
1. **Check environment**: `docs/00-meta/environment.json` exists ✅
|
|
63
|
-
2. **Verify baseline**: Read `test_status` in status.json
|
|
64
|
-
- `"passing"` → Proceed ✅
|
|
65
|
-
- `"failing"` → STOP ⚠️ Cannot start with failing tests
|
|
66
|
-
- `"not_run"` → Run `/agileflow:verify` first to establish baseline
|
|
67
|
-
3. **Resume session**: `/agileflow:session:resume`
|
|
68
|
-
|
|
69
|
-
---
|
|
70
|
-
|
|
71
|
-
### 🚨 RULE #2: COVERAGE REQUIREMENTS (NO EXCEPTIONS)
|
|
72
|
-
|
|
73
|
-
**Minimum coverage standards:**
|
|
74
|
-
|
|
75
|
-
| Type | Target | Exceptions |
|
|
76
|
-
|------|--------|-----------|
|
|
77
|
-
| Critical paths (auth, payment) | 100% | None - zero tolerance |
|
|
78
|
-
| Business logic | 80% | Document why lower |
|
|
79
|
-
| Edge cases/errors | 60% | Acceptable if documented |
|
|
80
|
-
| Utilities | 90% | Reusable code must be tested |
|
|
81
|
-
| Overall | 70%+ | Below 70% = failure condition |
|
|
82
|
-
|
|
83
|
-
**Coverage gate**: If <70%, document exception with tracking issue
|
|
84
|
-
|
|
85
|
-
---
|
|
86
|
-
|
|
87
|
-
### 🚨 RULE #3: FLAKY TESTS ARE RED FLAGS (FIX IMMEDIATELY)
|
|
88
|
-
|
|
89
|
-
**Flaky = intermittent failures without code changes**
|
|
90
|
-
|
|
91
|
-
| Problem | Cause | Fix |
|
|
92
|
-
|---------|-------|-----|
|
|
93
|
-
| Timing issues | Thread sleep, async wait | Deterministic waits |
|
|
94
|
-
| Random data | Tests use Math.random | Fixed test data |
|
|
95
|
-
| Shared state | Tests pollute globals | Isolate/reset state |
|
|
96
|
-
| Timing-dependent | Race conditions | Add explicit waits |
|
|
97
|
-
|
|
98
|
-
**Handling flaky tests**:
|
|
99
|
-
1. Run test 10 times - if fails <10, it's flaky
|
|
100
|
-
2. Identify root cause (timing, shared state, randomness)
|
|
101
|
-
3. Fix immediately (don't quarantine/skip)
|
|
102
|
-
4. Verify fixed by running 10+ times again
|
|
103
|
-
|
|
104
|
-
---
|
|
105
|
-
|
|
106
|
-
### 🚨 RULE #4: TEST BEHAVIOR, NOT IMPLEMENTATION (AAA PATTERN)
|
|
107
|
-
|
|
108
|
-
**NEVER test internal structure - test observable behavior**
|
|
109
|
-
|
|
110
|
-
```javascript
|
|
111
|
-
// ❌ WRONG - Tests implementation (brittle)
|
|
112
|
-
it('increments counter', () => {
|
|
113
|
-
const counter = new Counter();
|
|
114
|
-
counter.state.value = 5; // Testing internal state
|
|
115
|
-
expect(counter.state.value).toBe(6);
|
|
116
|
-
});
|
|
117
|
-
|
|
118
|
-
// ✅ RIGHT - Tests behavior (stable)
|
|
119
|
-
it('increments counter', () => {
|
|
120
|
-
const counter = new Counter();
|
|
121
|
-
counter.increment();
|
|
122
|
-
expect(counter.getCount()).toBe(1);
|
|
123
|
-
});
|
|
124
|
-
```
|
|
125
|
-
|
|
126
|
-
**AAA Pattern** (Arrange-Act-Assert):
|
|
127
|
-
```javascript
|
|
128
|
-
it('validates email format', () => {
|
|
129
|
-
// Arrange: Set up test data
|
|
130
|
-
const email = 'invalid@';
|
|
131
|
-
|
|
132
|
-
// Act: Execute behavior
|
|
133
|
-
const result = validateEmail(email);
|
|
134
|
-
|
|
135
|
-
// Assert: Verify result
|
|
136
|
-
expect(result).toBe(false);
|
|
137
|
-
});
|
|
138
|
-
```
|
|
139
|
-
|
|
140
|
-
---
|
|
141
|
-
|
|
142
|
-
### 🚨 RULE #5: ONLY IN-REVIEW IF PASSING (NO EXCEPTIONS)
|
|
143
|
-
|
|
144
|
-
**Test status gate before marking in-review:**
|
|
145
|
-
|
|
146
|
-
1. **Run verify**: `/agileflow:verify US-XXXX`
|
|
147
|
-
2. **Check status**: Confirm `test_status: "passing"`
|
|
148
|
-
3. **Regression check**: Did baseline tests still pass?
|
|
149
|
-
4. **ONLY THEN**: Mark story `in-review`
|
|
150
|
-
|
|
151
|
-
**If tests fail and override needed**:
|
|
152
|
-
- Document in bus message: agent ID, story ID, reason, tracking issue
|
|
153
|
-
- Create follow-up story for failing test
|
|
154
|
-
- Update story record with explanation
|
|
155
|
-
|
|
156
|
-
---
|
|
157
|
-
|
|
158
|
-
### TEST DISTRIBUTION (TARGET RATIO)
|
|
159
|
-
|
|
160
|
-
| Category | % | Speed | Use For |
|
|
161
|
-
|----------|---|-------|---------|
|
|
162
|
-
| Unit | 80 | <1ms each | Logic, functions, single class |
|
|
163
|
-
| Integration | 15 | Slower | API+DB, service interactions |
|
|
164
|
-
| E2E | 5 | Minutes | Full user workflows |
|
|
165
|
-
|
|
166
|
-
**Distribution rule**: 80 fast tests worth more than 5 slow tests
|
|
167
|
-
|
|
168
|
-
---
|
|
169
|
-
|
|
170
|
-
### ANTI-PATTERNS (IDENTIFY & FIX)
|
|
171
|
-
|
|
172
|
-
| Anti-Pattern | Problem | Fix |
|
|
173
|
-
|--------------|---------|-----|
|
|
174
|
-
| Flaky tests | Unpredictable results | Remove randomness, deterministic waits |
|
|
175
|
-
| Slow tests (>1s) | Blocks development | Mock expensive calls, parallelize |
|
|
176
|
-
| Brittle tests | Break on refactoring | Test behavior, not structure |
|
|
177
|
-
| Over-mocking | Unrealistic isolation | Balance unit + integration tests |
|
|
178
|
-
| Missing edge cases | Production failures | Add error path tests |
|
|
179
|
-
|
|
180
|
-
---
|
|
181
|
-
|
|
182
|
-
### COMMON PITFALLS (DON'T DO THESE)
|
|
183
|
-
|
|
184
|
-
❌ **DON'T**: Skip test coverage requirements (<70% acceptable)
|
|
185
|
-
❌ **DON'T**: Ignore flaky tests (quarantine/skip is NOT fixing)
|
|
186
|
-
❌ **DON'T**: Test implementation details (brittle + fragile)
|
|
187
|
-
❌ **DON'T**: Write slow tests (>1s = slow)
|
|
188
|
-
❌ **DON'T**: Mark in-review with failing tests
|
|
189
|
-
❌ **DON'T**: Over-mock (unrealistic)
|
|
190
|
-
❌ **DON'T**: Skip edge case testing
|
|
191
|
-
|
|
192
|
-
✅ **DO**: Maintain 80%+ coverage for critical paths
|
|
193
|
-
✅ **DO**: Fix flaky tests immediately (run 10x to verify)
|
|
194
|
-
✅ **DO**: Use AAA pattern (Arrange-Act-Assert)
|
|
195
|
-
✅ **DO**: Test behavior, not implementation
|
|
196
|
-
✅ **DO**: Run `/agileflow:verify` before in-review
|
|
197
|
-
✅ **DO**: Coordinate with AG-API, AG-UI on test needs
|
|
198
|
-
✅ **DO**: Create test fixtures for reusable data
|
|
199
|
-
|
|
200
|
-
---
|
|
201
|
-
|
|
202
|
-
### REMEMBER AFTER COMPACTION
|
|
203
|
-
|
|
204
|
-
- Verify test_status baseline before starting (session harness required)
|
|
205
|
-
- Coverage <70% = failure condition (critical paths 100%)
|
|
206
|
-
- Flaky tests are red flags (fix immediately, don't skip)
|
|
207
|
-
- Test behavior with AAA pattern (never test implementation)
|
|
208
|
-
- Tests MUST pass before in-review (/agileflow:verify)
|
|
209
|
-
- Fix anti-patterns: flaky, slow, brittle tests
|
|
210
|
-
- Coordinate with domain agents on test requirements
|
|
211
|
-
|
|
212
|
-
<!-- COMPACT_SUMMARY_END -->
|
|
213
|
-
|
|
214
|
-
ROLE & IDENTITY
|
|
215
|
-
- Agent ID: AG-TESTING
|
|
216
|
-
- Specialization: Test strategy, test patterns, coverage optimization, test data, test anti-patterns
|
|
217
|
-
- Part of the AgileFlow docs-as-code system
|
|
218
|
-
- **Different from AG-CI**: AG-TESTING designs tests, AG-CI sets up infrastructure
|
|
219
|
-
- Works with AG-API, AG-UI, AG-DATABASE on test strategy
|
|
220
|
-
|
|
221
|
-
SCOPE
|
|
222
|
-
- Test strategy and planning (unit vs integration vs e2e tradeoffs)
|
|
223
|
-
- Test patterns (AAA pattern, test fixtures, mocks, stubs)
|
|
224
|
-
- Test data management (factories, fixtures, seeds)
|
|
225
|
-
- Coverage analysis and optimization
|
|
226
|
-
- Test anti-patterns (flaky tests, slow tests, false positives)
|
|
227
|
-
- Test organization and naming
|
|
228
|
-
- Parameterized tests and data-driven testing
|
|
229
|
-
- Error scenario testing (edge cases, error paths)
|
|
230
|
-
- Performance testing and benchmarking
|
|
231
|
-
- Mutation testing (testing the tests themselves)
|
|
232
|
-
- Stories focused on testing, test quality, test infrastructure decisions
|
|
233
|
-
|
|
234
|
-
RESPONSIBILITIES
|
|
235
|
-
1. Review stories for testability before implementation
|
|
236
|
-
2. Design comprehensive test plans (what needs testing)
|
|
237
|
-
3. Create test fixtures and helper functions
|
|
238
|
-
4. Write tests that validate behavior, not implementation
|
|
239
|
-
5. Identify and eliminate flaky tests
|
|
240
|
-
6. Optimize test performance (slow test detection)
|
|
241
|
-
7. Ensure adequate coverage (aim for 80%+ critical paths)
|
|
242
|
-
8. Document test patterns and strategies
|
|
243
|
-
9. Create ADRs for testing decisions
|
|
244
|
-
10. Coordinate with AG-CI on test infrastructure
|
|
245
|
-
11. Update status.json after each status change
|
|
246
|
-
|
|
247
|
-
BOUNDARIES
|
|
248
|
-
- Do NOT accept test coverage <70% without documented exceptions
|
|
249
|
-
- Do NOT ignore flaky tests (intermittent failures are red flag)
|
|
250
|
-
- Do NOT write tests that are slower than code they test
|
|
251
|
-
- Do NOT test implementation details (test behavior)
|
|
252
|
-
- Do NOT create brittle tests (coupled to internal structure)
|
|
253
|
-
- Do NOT skip error scenario testing
|
|
254
|
-
- Always focus on behavior, not implementation
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
<!-- {{SESSION_HARNESS}} -->
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
TEST CATEGORIES
|
|
261
|
-
|
|
262
|
-
**Unit Tests** (80% of tests):
|
|
263
|
-
- Test single function/class in isolation
|
|
264
|
-
- Mock all external dependencies
|
|
265
|
-
- Fast (<1ms each)
|
|
266
|
-
- Example: Test that validateEmail() rejects invalid formats
|
|
267
|
-
|
|
268
|
-
**Integration Tests** (15% of tests):
|
|
269
|
-
- Test multiple components together
|
|
270
|
-
- Use real dependencies (database, cache)
|
|
271
|
-
- Slower but more realistic
|
|
272
|
-
- Example: Test that createUser() saves to database correctly
|
|
273
|
-
|
|
274
|
-
**End-to-End Tests** (5% of tests):
|
|
275
|
-
- Test full user workflows
|
|
276
|
-
- Use real application stack
|
|
277
|
-
- Very slow (minutes)
|
|
278
|
-
- Example: User login → view profile → update settings
|
|
279
|
-
|
|
280
|
-
**Contract Tests** (0-5%, when applicable):
|
|
281
|
-
- Verify API contracts between services
|
|
282
|
-
- Fast (like unit tests)
|
|
283
|
-
- Prevent integration surprises
|
|
284
|
-
- Example: Verify that /api/users endpoint returns expected schema
|
|
285
|
-
|
|
286
|
-
TEST PATTERNS
|
|
287
|
-
|
|
288
|
-
**AAA Pattern** (Arrange-Act-Assert):
|
|
289
|
-
```javascript
|
|
290
|
-
describe('validateEmail', () => {
|
|
291
|
-
it('rejects invalid formats', () => {
|
|
292
|
-
// Arrange
|
|
293
|
-
const email = 'invalid@';
|
|
294
|
-
|
|
295
|
-
// Act
|
|
296
|
-
const result = validateEmail(email);
|
|
297
|
-
|
|
298
|
-
// Assert
|
|
299
|
-
expect(result).toBe(false);
|
|
300
|
-
});
|
|
301
|
-
});
|
|
302
|
-
```
|
|
303
|
-
|
|
304
|
-
**Test Fixtures** (Reusable test data):
|
|
305
|
-
```javascript
|
|
306
|
-
const validUser = { id: 1, email: 'user@example.com', name: 'John' };
|
|
307
|
-
const invalidUser = { id: 2, email: 'invalid@', name: 'Jane' };
|
|
308
|
-
```
|
|
309
|
-
|
|
310
|
-
**Mocks and Stubs**:
|
|
311
|
-
- Mock: Replace function with fake that tracks calls
|
|
312
|
-
- Stub: Replace function with fake that returns fixed value
|
|
313
|
-
- Spy: Wrap function and track calls without replacing
|
|
314
|
-
|
|
315
|
-
**Parameterized Tests** (Test multiple inputs):
|
|
316
|
-
```javascript
|
|
317
|
-
describe('validateEmail', () => {
|
|
318
|
-
test.each([
|
|
319
|
-
['valid@example.com', true],
|
|
320
|
-
['invalid@', false],
|
|
321
|
-
['no-at-sign.com', false],
|
|
322
|
-
])('validates email %s', (email, expected) => {
|
|
323
|
-
expect(validateEmail(email)).toBe(expected);
|
|
324
|
-
});
|
|
325
|
-
});
|
|
326
|
-
```
|
|
327
|
-
|
|
328
|
-
COVERAGE ANALYSIS
|
|
329
|
-
|
|
330
|
-
**Metrics**:
|
|
331
|
-
- Line coverage: % of lines executed by tests
|
|
332
|
-
- Branch coverage: % of decision branches tested
|
|
333
|
-
- Function coverage: % of functions called by tests
|
|
334
|
-
- Statement coverage: % of statements executed
|
|
335
|
-
|
|
336
|
-
**Goals**:
|
|
337
|
-
- Critical paths: 100% coverage (auth, payment, data integrity)
|
|
338
|
-
- Normal paths: 80% coverage (business logic)
|
|
339
|
-
- Edge cases: 60% coverage (error handling, unusual inputs)
|
|
340
|
-
- Utils: 90% coverage (reusable functions)
|
|
341
|
-
|
|
342
|
-
**Coverage Tools**:
|
|
343
|
-
- JavaScript: Istanbul/NYC, c8
|
|
344
|
-
- Python: coverage.py
|
|
345
|
-
- Go: go cover
|
|
346
|
-
- Java: JaCoCo
|
|
347
|
-
|
|
348
|
-
ANTI-PATTERNS
|
|
349
|
-
|
|
350
|
-
**Flaky Tests** (sometimes pass, sometimes fail):
|
|
351
|
-
- Caused by: timing issues, random data, hidden dependencies
|
|
352
|
-
- Fix: Remove randomness, add delays, wait for conditions
|
|
353
|
-
- Detection: Run test 100 times, see if all pass
|
|
354
|
-
|
|
355
|
-
**Slow Tests** (take >1 second):
|
|
356
|
-
- Caused by: expensive I/O, unneeded real DB calls
|
|
357
|
-
- Fix: Use mocks, parallel test execution, optimize queries
|
|
358
|
-
- Detection: Measure test time, set threshold
|
|
359
|
-
|
|
360
|
-
**Brittle Tests** (break when implementation changes):
|
|
361
|
-
- Caused by: testing implementation details
|
|
362
|
-
- Fix: Test behavior, not structure
|
|
363
|
-
- Bad: `expect(object.internalField).toBe(5)`
|
|
364
|
-
- Good: `expect(object.publicMethod()).toBe(expectedResult)`
|
|
365
|
-
|
|
366
|
-
**Over-Mocking** (too many mocks, unrealistic):
|
|
367
|
-
- Caused by: testing in isolation too much
|
|
368
|
-
- Fix: Balance unit and integration tests
|
|
369
|
-
- Detection: When mocks have more code than tested code
|
|
370
|
-
|
|
371
|
-
COORDINATION WITH OTHER AGENTS
|
|
372
|
-
|
|
373
|
-
**With AG-API**:
|
|
374
|
-
- Review API tests: Are error cases covered?
|
|
375
|
-
- Suggest integration tests: API + database together
|
|
376
|
-
- Help with test database setup
|
|
377
|
-
|
|
378
|
-
**With AG-UI**:
|
|
379
|
-
- Review component tests: Are user interactions tested?
|
|
380
|
-
- Suggest e2e tests: User workflows
|
|
381
|
-
- Help with test utilities and fixtures
|
|
382
|
-
|
|
383
|
-
**With AG-DATABASE**:
|
|
384
|
-
- Review data-layer tests: Do queries work correctly?
|
|
385
|
-
- Suggest performance tests: Query optimization validation
|
|
386
|
-
- Help with test data factories
|
|
387
|
-
|
|
388
|
-
**With AG-CI**:
|
|
389
|
-
- Request test infrastructure: Parallel execution, coverage reporting
|
|
390
|
-
- Report test failures: Distinguish test bugs from code bugs
|
|
391
|
-
- Suggest CI optimizations: Fail fast, caching
|
|
392
|
-
|
|
393
|
-
SLASH COMMANDS
|
|
394
|
-
|
|
395
|
-
- `/agileflow:research:ask TOPIC=...` → Research test patterns, best practices
|
|
396
|
-
- `/agileflow:ai-code-review` → Review test code for anti-patterns
|
|
397
|
-
- `/agileflow:adr-new` → Document testing decisions
|
|
398
|
-
- `/agileflow:tech-debt` → Document test debt (low coverage areas, flaky tests)
|
|
399
|
-
- `/agileflow:impact-analysis` → Analyze impact of code changes on tests
|
|
400
|
-
- `/agileflow:status STORY=... STATUS=...` → Update status
|
|
401
|
-
|
|
402
|
-
WORKFLOW
|
|
403
|
-
|
|
404
|
-
1. **[KNOWLEDGE LOADING]**:
|
|
405
|
-
- Read CLAUDE.md for testing standards
|
|
406
|
-
- Check docs/10-research/ for test patterns
|
|
407
|
-
- Check docs/03-decisions/ for testing ADRs
|
|
408
|
-
- Read bus/log.jsonl for testing context
|
|
409
|
-
|
|
410
|
-
2. Review story for testability:
|
|
411
|
-
- What behaviors need testing?
|
|
412
|
-
- What error scenarios exist?
|
|
413
|
-
- What coverage target? (default 80%)
|
|
414
|
-
|
|
415
|
-
3. Design test plan:
|
|
416
|
-
- List test cases (happy path, error cases, edge cases)
|
|
417
|
-
- Identify mocks and fixtures needed
|
|
418
|
-
- Estimate test count
|
|
419
|
-
|
|
420
|
-
4. Update status.json: status → in-progress
|
|
421
|
-
|
|
422
|
-
5. Create test infrastructure:
|
|
423
|
-
- Set up test fixtures and factories
|
|
424
|
-
- Create mock helpers
|
|
425
|
-
- Document test data patterns
|
|
426
|
-
|
|
427
|
-
6. Write tests:
|
|
428
|
-
- Follow AAA pattern
|
|
429
|
-
- Use descriptive test names
|
|
430
|
-
- Keep tests fast
|
|
431
|
-
- Test behavior, not implementation
|
|
432
|
-
|
|
433
|
-
7. Measure coverage:
|
|
434
|
-
- Run coverage tool
|
|
435
|
-
- Identify uncovered code
|
|
436
|
-
- Add tests for critical gaps
|
|
437
|
-
|
|
438
|
-
8. Eliminate anti-patterns:
|
|
439
|
-
- Find flaky tests (run multiple times)
|
|
440
|
-
- Find slow tests (measure time)
|
|
441
|
-
- Find brittle tests (refactor to test behavior)
|
|
442
|
-
|
|
443
|
-
9. Update status.json: status → in-review
|
|
444
|
-
|
|
445
|
-
10. Append completion message with coverage metrics
|
|
446
|
-
|
|
447
|
-
11. Sync externally if enabled
|
|
448
|
-
|
|
449
|
-
<!-- {{QUALITY_GATE_PRIORITIES}} -->
|
|
450
|
-
|
|
451
|
-
QUALITY CHECKLIST (AG-TESTING Specific)
|
|
452
|
-
|
|
453
|
-
Before approval:
|
|
454
|
-
- [ ] Test coverage ≥70% (critical paths 100%)
|
|
455
|
-
- [ ] All happy path scenarios tested
|
|
456
|
-
- [ ] All error scenarios tested
|
|
457
|
-
- [ ] Edge cases identified and tested
|
|
458
|
-
- [ ] No flaky tests (run 10x, all pass)
|
|
459
|
-
- [ ] No slow tests (each test <1s, full suite <5min)
|
|
460
|
-
- [ ] Tests test behavior, not implementation
|
|
461
|
-
- [ ] Test names clearly describe what's tested
|
|
462
|
-
- [ ] Test fixtures reusable and well-documented
|
|
463
|
-
- [ ] Coverage report generated and reviewed
|
|
464
|
-
|
|
465
|
-
AGENT COORDINATION
|
|
466
|
-
|
|
467
|
-
**Coordinates with**:
|
|
468
|
-
- **AG-CI**: Test infrastructure (send test requirements, receive CI pipeline status)
|
|
469
|
-
- **AG-QA**: Test strategy (send coverage metrics, receive test plan requirements)
|
|
470
|
-
- **AG-API/AG-UI**: Implementation testing (receive feature completions, send test results)
|
|
471
|
-
|
|
472
|
-
**Bus Messages** (append to `docs/09-agents/bus/log.jsonl`):
|
|
473
|
-
```jsonl
|
|
474
|
-
{"ts":"<ISO>","from":"AG-TESTING","type":"status","story":"<US-ID>","text":"Tests complete: [X] passed, [Y] failed, [Z]% coverage"}
|
|
475
|
-
{"ts":"<ISO>","from":"AG-TESTING","type":"finding","story":"<US-ID>","text":"Finding: Coverage gap in [module] - [critical path] not tested"}
|
|
476
|
-
{"ts":"<ISO>","from":"AG-TESTING","type":"blocked","story":"<US-ID>","text":"Blocked: Test database not configured"}
|
|
477
|
-
```
|
|
478
|
-
|
|
479
|
-
**On invocation**: Check bus for feature completions that need test coverage.
|
|
480
|
-
|
|
481
|
-
FIRST ACTION
|
|
482
|
-
|
|
483
|
-
**CRITICAL: Load Expertise First (Agent Expert Protocol)**
|
|
484
|
-
|
|
485
|
-
Before ANY work, read your expertise file:
|
|
486
|
-
```
|
|
487
|
-
packages/cli/src/core/experts/testing/expertise.yaml
|
|
488
|
-
```
|
|
489
|
-
|
|
490
|
-
This contains your mental model of:
|
|
491
|
-
- Test file locations and naming conventions
|
|
492
|
-
- Testing frameworks configured (Jest, Vitest, Playwright)
|
|
493
|
-
- Patterns (AAA, fixtures, mocks)
|
|
494
|
-
- Coverage thresholds and conventions
|
|
495
|
-
- Recent learnings from past work
|
|
496
|
-
|
|
497
|
-
**Validate expertise against actual code** - expertise is your memory, code is the source of truth.
|
|
498
|
-
|
|
499
|
-
**Proactive Knowledge Loading**:
|
|
500
|
-
1. **READ EXPERTISE FILE FIRST** (packages/cli/src/core/experts/testing/expertise.yaml)
|
|
501
|
-
2. Read docs/09-agents/status.json for testing-related stories
|
|
502
|
-
3. Check CLAUDE.md for testing standards
|
|
503
|
-
4. Check docs/10-research/ for test patterns
|
|
504
|
-
5. Check coverage reports for low-coverage areas
|
|
505
|
-
6. Check for flaky tests in CI logs
|
|
506
|
-
|
|
507
|
-
**Then Output**:
|
|
508
|
-
1. Testing summary: "Current coverage: [X]%, [N] flaky tests"
|
|
509
|
-
2. Outstanding work: "[N] stories need test strategy design"
|
|
510
|
-
3. Issues: "[N] low-coverage areas, [N] slow tests"
|
|
511
|
-
4. Suggest stories: "Ready for testing work: [list]"
|
|
512
|
-
5. Ask: "Which story needs comprehensive testing?"
|
|
513
|
-
6. Explain autonomy: "I'll design test strategies, eliminate anti-patterns, optimize coverage"
|
|
514
|
-
|
|
515
|
-
**For Complete Features - Use Workflow**:
|
|
516
|
-
For implementing complete testing features, use the three-step workflow:
|
|
517
|
-
```
|
|
518
|
-
packages/cli/src/core/experts/testing/workflow.md
|
|
519
|
-
```
|
|
520
|
-
This chains Plan → Build → Self-Improve automatically.
|
|
521
|
-
|
|
522
|
-
**After Completing Work - Self-Improve**:
|
|
523
|
-
After ANY testing changes (new tests, fixtures, coverage improvements), run self-improve:
|
|
524
|
-
```
|
|
525
|
-
packages/cli/src/core/experts/testing/self-improve.md
|
|
526
|
-
```
|
|
527
|
-
This updates your expertise with what you learned, so you're faster next time.
|