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,731 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Set up automated testing infrastructure
|
|
3
|
-
phase: implementation
|
|
4
|
-
argument-hint: "(no arguments)"
|
|
5
|
-
compact_context:
|
|
6
|
-
priority: high
|
|
7
|
-
preserve_rules:
|
|
8
|
-
- "Auto-detect language/runtime and testing framework (Node.js→Jest, Python→pytest, Ruby→RSpec, etc.)"
|
|
9
|
-
- "MUST use TaskCreate/TaskUpdate to track all 10 steps (detect, check existing, install, config, examples, structure, scripts, CI, docs, run)"
|
|
10
|
-
- "Always show diff-first preview before creating files"
|
|
11
|
-
- "Create working example tests (unit, integration, E2E if requested) - not just config"
|
|
12
|
-
- "Set reasonable coverage thresholds (70%, not 100%)"
|
|
13
|
-
- "Integrate with CI immediately (.github/workflows/ci.yml update)"
|
|
14
|
-
- "Create docs/02-practices/testing.md documentation"
|
|
15
|
-
- "Run test suite after setup to verify it works"
|
|
16
|
-
state_fields:
|
|
17
|
-
- framework_detected
|
|
18
|
-
- example_tests_created
|
|
19
|
-
- ci_integrated
|
|
20
|
-
- coverage_threshold_set
|
|
21
|
-
---
|
|
22
|
-
|
|
23
|
-
# setup-tests
|
|
24
|
-
|
|
25
|
-
Automatically set up testing infrastructure for projects without existing tests.
|
|
26
|
-
|
|
27
|
-
---
|
|
28
|
-
|
|
29
|
-
## STEP 0: Gather Context
|
|
30
|
-
|
|
31
|
-
```bash
|
|
32
|
-
node .agileflow/scripts/obtain-context.js tests
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
---
|
|
36
|
-
|
|
37
|
-
<!-- COMPACT_SUMMARY_START -->
|
|
38
|
-
|
|
39
|
-
## ⚠️ COMPACT SUMMARY - /agileflow:setup-tests IS ACTIVE
|
|
40
|
-
|
|
41
|
-
**CRITICAL**: You are bootstrapping test infrastructure. All 10 steps must complete to have working test suite.
|
|
42
|
-
|
|
43
|
-
**ROLE**: Test Infrastructure Bootstrapper - Auto-detect language, install framework, create examples, integrate CI
|
|
44
|
-
|
|
45
|
-
---
|
|
46
|
-
|
|
47
|
-
### 🚨 RULE #1: ALWAYS USE TaskCreate/TaskUpdate FOR 10 STEPS
|
|
48
|
-
|
|
49
|
-
Track all steps explicitly:
|
|
50
|
-
```xml
|
|
51
|
-
<invoke name="TaskCreate/TaskUpdate">
|
|
52
|
-
<parameter name="content">
|
|
53
|
-
1. Detect language/runtime and framework
|
|
54
|
-
2. Check existing test setup
|
|
55
|
-
3. Install testing framework dependencies
|
|
56
|
-
4. Create test configuration files
|
|
57
|
-
5. Create example tests (unit, integration, E2E if requested)
|
|
58
|
-
6. Create test directory structure
|
|
59
|
-
7. Add test scripts to package.json/equivalent
|
|
60
|
-
8. Integrate with CI workflow
|
|
61
|
-
9. Create docs/02-practices/testing.md documentation
|
|
62
|
-
10. Run tests to verify setup
|
|
63
|
-
</parameter>
|
|
64
|
-
<parameter name="status">in-progress</parameter>
|
|
65
|
-
</invoke>
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
Mark each step complete. This ensures comprehensive setup.
|
|
69
|
-
|
|
70
|
-
---
|
|
71
|
-
|
|
72
|
-
### 🚨 RULE #2: FRAMEWORK AUTO-DETECTION
|
|
73
|
-
|
|
74
|
-
Detect from manifest files:
|
|
75
|
-
- **Node.js**: package.json → **Jest** (or Mocha if configured)
|
|
76
|
-
- **Python**: requirements.txt/pyproject.toml → **pytest**
|
|
77
|
-
- **Ruby**: Gemfile → **RSpec**
|
|
78
|
-
- **Go**: go.mod → **go test**
|
|
79
|
-
- **Rust**: Cargo.toml → **cargo test**
|
|
80
|
-
- **Java**: pom.xml/build.gradle → **JUnit**
|
|
81
|
-
- **.NET**: *.csproj → **xUnit/NUnit**
|
|
82
|
-
|
|
83
|
-
If unclear, ask: "Detected Node.js. Use Jest?"
|
|
84
|
-
|
|
85
|
-
---
|
|
86
|
-
|
|
87
|
-
### 🚨 RULE #3: WORKING EXAMPLES, NOT JUST CONFIG
|
|
88
|
-
|
|
89
|
-
**NEVER** create config without example tests:
|
|
90
|
-
- Create `tests/unit/example.test.ts` (passes immediately)
|
|
91
|
-
- Create `tests/integration/api.test.ts` (passes immediately)
|
|
92
|
-
- Create `tests/e2e/flow.spec.ts` (only if E2E=yes)
|
|
93
|
-
|
|
94
|
-
Examples MUST pass on first run:
|
|
95
|
-
```typescript
|
|
96
|
-
describe('Example Test Suite', () => {
|
|
97
|
-
it('should pass this example test', () => {
|
|
98
|
-
expect(true).toBe(true);
|
|
99
|
-
});
|
|
100
|
-
});
|
|
101
|
-
```
|
|
102
|
-
|
|
103
|
-
---
|
|
104
|
-
|
|
105
|
-
### 🚨 RULE #4: COVERAGE THRESHOLD
|
|
106
|
-
|
|
107
|
-
Always set REASONABLE thresholds (not perfectionistic):
|
|
108
|
-
|
|
109
|
-
```javascript
|
|
110
|
-
coverageThreshold: {
|
|
111
|
-
global: {
|
|
112
|
-
branches: 70, // Don't require 100%
|
|
113
|
-
functions: 70, // Realistic goals
|
|
114
|
-
lines: 70,
|
|
115
|
-
statements: 70
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
```
|
|
119
|
-
|
|
120
|
-
Don't enforce >80% initially. Users will increase over time.
|
|
121
|
-
|
|
122
|
-
---
|
|
123
|
-
|
|
124
|
-
### 🚨 RULE #5: CI INTEGRATION MANDATORY
|
|
125
|
-
|
|
126
|
-
Always update/create `.github/workflows/ci.yml` with test job:
|
|
127
|
-
|
|
128
|
-
```yaml
|
|
129
|
-
test:
|
|
130
|
-
runs-on: ubuntu-latest
|
|
131
|
-
steps:
|
|
132
|
-
- uses: actions/checkout@v4
|
|
133
|
-
- run: npm install
|
|
134
|
-
- run: npm test -- --coverage
|
|
135
|
-
- uses: codecov/codecov-action@v3
|
|
136
|
-
```
|
|
137
|
-
|
|
138
|
-
If .github/workflows/ci.yml exists, add test job. Don't replace.
|
|
139
|
-
|
|
140
|
-
---
|
|
141
|
-
|
|
142
|
-
### 🚨 RULE #6: DIFF-FIRST PATTERN
|
|
143
|
-
|
|
144
|
-
Always show preview:
|
|
145
|
-
|
|
146
|
-
```
|
|
147
|
-
Will set up testing for: Node.js (Jest)
|
|
148
|
-
|
|
149
|
-
Will create:
|
|
150
|
-
✓ jest.config.js (test configuration)
|
|
151
|
-
✓ tests/unit/example.test.ts (example unit test)
|
|
152
|
-
✓ tests/integration/api.test.ts (example integration test)
|
|
153
|
-
✓ tests/fixtures/ directory
|
|
154
|
-
✓ Update .github/workflows/ci.yml
|
|
155
|
-
|
|
156
|
-
Will install:
|
|
157
|
-
✓ jest @types/jest ts-jest
|
|
158
|
-
|
|
159
|
-
Proceed? (YES/NO)
|
|
160
|
-
```
|
|
161
|
-
|
|
162
|
-
Then ask: "Proceed with test setup? (YES/NO)"
|
|
163
|
-
|
|
164
|
-
---
|
|
165
|
-
|
|
166
|
-
### ANTI-PATTERNS (DON'T DO THESE)
|
|
167
|
-
|
|
168
|
-
❌ Create jest.config.js but no example tests
|
|
169
|
-
❌ Set coverage threshold to 100%
|
|
170
|
-
❌ Forget to integrate with CI
|
|
171
|
-
❌ Skip running tests after setup
|
|
172
|
-
❌ Create config without docs
|
|
173
|
-
❌ Hardcode framework (don't auto-detect)
|
|
174
|
-
|
|
175
|
-
### DO THESE INSTEAD
|
|
176
|
-
|
|
177
|
-
✅ Create config AND working example tests
|
|
178
|
-
✅ Set realistic thresholds (70%)
|
|
179
|
-
✅ Add test job to CI immediately
|
|
180
|
-
✅ Run tests after setup to verify
|
|
181
|
-
✅ Create docs/02-practices/testing.md
|
|
182
|
-
✅ Auto-detect language/framework first
|
|
183
|
-
|
|
184
|
-
---
|
|
185
|
-
|
|
186
|
-
### WORKFLOW PHASES
|
|
187
|
-
|
|
188
|
-
**Phase 1: Detection (Steps 1-2)**
|
|
189
|
-
- Scan for package.json, Gemfile, go.mod, etc.
|
|
190
|
-
- Detect language/runtime
|
|
191
|
-
- Check if tests already exist
|
|
192
|
-
|
|
193
|
-
**Phase 2: Installation (Step 3)**
|
|
194
|
-
- Install framework deps (jest, pytest, etc.)
|
|
195
|
-
- Install coverage tools if needed
|
|
196
|
-
|
|
197
|
-
**Phase 3: Configuration (Step 4)**
|
|
198
|
-
- Create config file (jest.config.js, pytest.ini, etc.)
|
|
199
|
-
- Set coverage thresholds (70%)
|
|
200
|
-
|
|
201
|
-
**Phase 4: Examples (Steps 5-6)**
|
|
202
|
-
- Create working example tests
|
|
203
|
-
- Create test directory structure
|
|
204
|
-
|
|
205
|
-
**Phase 5: Integration (Steps 7-8)**
|
|
206
|
-
- Add test scripts to package.json
|
|
207
|
-
- Add test job to CI workflow
|
|
208
|
-
|
|
209
|
-
**Phase 6: Documentation (Step 9)**
|
|
210
|
-
- Create docs/02-practices/testing.md
|
|
211
|
-
|
|
212
|
-
**Phase 7: Verification (Step 10)**
|
|
213
|
-
- Run tests to verify everything works
|
|
214
|
-
- Show test output
|
|
215
|
-
|
|
216
|
-
---
|
|
217
|
-
|
|
218
|
-
### OUTPUT STRUCTURE
|
|
219
|
-
|
|
220
|
-
Always create:
|
|
221
|
-
```
|
|
222
|
-
tests/
|
|
223
|
-
├── unit/ # Fast, isolated tests
|
|
224
|
-
├── integration/ # Slower, multi-component tests
|
|
225
|
-
├── e2e/ # Slow, full-flow tests (if E2E=yes)
|
|
226
|
-
├── fixtures/ # Test data files
|
|
227
|
-
└── helpers/ # Test utilities (mocks, factories)
|
|
228
|
-
```
|
|
229
|
-
|
|
230
|
-
---
|
|
231
|
-
|
|
232
|
-
### SCRIPTS TO ADD
|
|
233
|
-
|
|
234
|
-
```json
|
|
235
|
-
{
|
|
236
|
-
"scripts": {
|
|
237
|
-
"test": "jest",
|
|
238
|
-
"test:watch": "jest --watch",
|
|
239
|
-
"test:coverage": "jest --coverage",
|
|
240
|
-
"test:unit": "jest tests/unit",
|
|
241
|
-
"test:integration": "jest tests/integration",
|
|
242
|
-
"test:e2e": "playwright test"
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
|
-
```
|
|
246
|
-
|
|
247
|
-
---
|
|
248
|
-
|
|
249
|
-
### KEY FILES TO REMEMBER
|
|
250
|
-
|
|
251
|
-
| File | Purpose |
|
|
252
|
-
|------|---------|
|
|
253
|
-
| `jest.config.js` (or equivalent) | Test framework configuration |
|
|
254
|
-
| `tests/unit/example.test.ts` | Working example test |
|
|
255
|
-
| `docs/02-practices/testing.md` | How to write and run tests |
|
|
256
|
-
| `.github/workflows/ci.yml` | CI test job |
|
|
257
|
-
| `.gitignore` entry | Exclude coverage/ from git |
|
|
258
|
-
|
|
259
|
-
---
|
|
260
|
-
|
|
261
|
-
### REMEMBER AFTER COMPACTION
|
|
262
|
-
|
|
263
|
-
- `/agileflow:setup-tests` IS ACTIVE - bootstrap test infrastructure
|
|
264
|
-
- Auto-detect language/framework (Node.js→Jest, Python→pytest, etc.)
|
|
265
|
-
- ALWAYS create working example tests (not just config)
|
|
266
|
-
- Set reasonable coverage (70%, not 100%)
|
|
267
|
-
- Run tests after setup to verify they pass
|
|
268
|
-
- Use TaskCreate/TaskUpdate to track 10 steps
|
|
269
|
-
- Integrate with CI immediately
|
|
270
|
-
- Create docs/02-practices/testing.md
|
|
271
|
-
|
|
272
|
-
<!-- COMPACT_SUMMARY_END -->
|
|
273
|
-
|
|
274
|
-
## Prompt
|
|
275
|
-
|
|
276
|
-
ROLE: Test Infrastructure Bootstrapper
|
|
277
|
-
|
|
278
|
-
INPUTS
|
|
279
|
-
FRAMEWORK=<name> jest|mocha|pytest|rspec|go-test|cargo-test (default: auto-detect)
|
|
280
|
-
COVERAGE=yes|no Enable coverage reporting (default: yes)
|
|
281
|
-
E2E=yes|no Include E2E tests (default: no)
|
|
282
|
-
|
|
283
|
-
ACTIONS
|
|
284
|
-
1) Detect language/runtime and framework
|
|
285
|
-
2) Check existing test setup
|
|
286
|
-
3) Install testing framework dependencies
|
|
287
|
-
4) Create test configuration files
|
|
288
|
-
5) Create example tests
|
|
289
|
-
6) Add test scripts to package.json/equivalent
|
|
290
|
-
7) Integrate with CI workflow
|
|
291
|
-
8) Run tests to verify setup
|
|
292
|
-
|
|
293
|
-
TODO LIST TRACKING
|
|
294
|
-
**CRITICAL**: Immediately create a todo list using TaskCreate/TaskUpdate tool to track test infrastructure setup:
|
|
295
|
-
```
|
|
296
|
-
1. Detect language/runtime and framework
|
|
297
|
-
2. Check existing test setup
|
|
298
|
-
3. Install testing framework dependencies
|
|
299
|
-
4. Create test configuration files
|
|
300
|
-
5. Create example tests (unit, integration, E2E if requested)
|
|
301
|
-
6. Create test directory structure
|
|
302
|
-
7. Add test scripts to package.json/equivalent
|
|
303
|
-
8. Integrate with CI workflow
|
|
304
|
-
9. Create docs/02-practices/testing.md documentation
|
|
305
|
-
10. Run tests to verify setup
|
|
306
|
-
```
|
|
307
|
-
|
|
308
|
-
Mark each step complete as you finish it. This ensures comprehensive test infrastructure setup.
|
|
309
|
-
|
|
310
|
-
OBJECTIVE
|
|
311
|
-
Detect project type and set up appropriate testing framework with example tests and CI integration.
|
|
312
|
-
|
|
313
|
-
INPUTS (optional)
|
|
314
|
-
- FRAMEWORK=auto|jest|mocha|pytest|rspec|go-test|cargo-test (default: auto-detect)
|
|
315
|
-
- COVERAGE=yes|no (default: yes)
|
|
316
|
-
- E2E=yes|no (default: no, ask if needed)
|
|
317
|
-
|
|
318
|
-
PROJECT DETECTION
|
|
319
|
-
|
|
320
|
-
1. Detect language/runtime:
|
|
321
|
-
- Node.js: package.json
|
|
322
|
-
- Python: requirements.txt, pyproject.toml
|
|
323
|
-
- Ruby: Gemfile
|
|
324
|
-
- Go: go.mod
|
|
325
|
-
- Rust: Cargo.toml
|
|
326
|
-
- Java: pom.xml, build.gradle
|
|
327
|
-
- .NET: *.csproj
|
|
328
|
-
|
|
329
|
-
2. Detect framework (if applicable):
|
|
330
|
-
- React, Vue, Angular (npm deps)
|
|
331
|
-
- Django, Flask, FastAPI (Python imports)
|
|
332
|
-
- Rails, Sinatra (Gemfile)
|
|
333
|
-
|
|
334
|
-
3. Check existing test setup:
|
|
335
|
-
- Test directories: test/, tests/, __tests__/, spec/
|
|
336
|
-
- Test config: jest.config.js, pytest.ini, .rspec
|
|
337
|
-
- CI config: .github/workflows/*test*
|
|
338
|
-
|
|
339
|
-
SETUP ACTIONS
|
|
340
|
-
|
|
341
|
-
### For Node.js (Jest)
|
|
342
|
-
```bash
|
|
343
|
-
npm install --save-dev jest @types/jest ts-jest
|
|
344
|
-
# If TypeScript: npm install --save-dev @types/jest ts-jest
|
|
345
|
-
# If React: npm install --save-dev @testing-library/react @testing-library/jest-dom
|
|
346
|
-
```
|
|
347
|
-
|
|
348
|
-
Create jest.config.js:
|
|
349
|
-
```javascript
|
|
350
|
-
module.exports = {
|
|
351
|
-
preset: 'ts-jest',
|
|
352
|
-
testEnvironment: 'node',
|
|
353
|
-
coverageDirectory: 'coverage',
|
|
354
|
-
collectCoverageFrom: [
|
|
355
|
-
'src/**/*.{js,ts}',
|
|
356
|
-
'!src/**/*.d.ts',
|
|
357
|
-
'!src/**/*.spec.ts'
|
|
358
|
-
],
|
|
359
|
-
coverageThreshold: {
|
|
360
|
-
global: {
|
|
361
|
-
branches: 70,
|
|
362
|
-
functions: 70,
|
|
363
|
-
lines: 70,
|
|
364
|
-
statements: 70
|
|
365
|
-
}
|
|
366
|
-
}
|
|
367
|
-
};
|
|
368
|
-
```
|
|
369
|
-
|
|
370
|
-
### For Python (pytest)
|
|
371
|
-
```bash
|
|
372
|
-
pip install pytest pytest-cov pytest-mock
|
|
373
|
-
```
|
|
374
|
-
|
|
375
|
-
Create pytest.ini:
|
|
376
|
-
```ini
|
|
377
|
-
[pytest]
|
|
378
|
-
testpaths = tests
|
|
379
|
-
python_files = test_*.py *_test.py
|
|
380
|
-
python_classes = Test*
|
|
381
|
-
python_functions = test_*
|
|
382
|
-
addopts = --cov=src --cov-report=html --cov-report=term
|
|
383
|
-
```
|
|
384
|
-
|
|
385
|
-
### For Ruby (RSpec)
|
|
386
|
-
```ruby
|
|
387
|
-
# Add to Gemfile
|
|
388
|
-
group :test do
|
|
389
|
-
gem 'rspec'
|
|
390
|
-
gem 'rspec-rails' # if Rails
|
|
391
|
-
gem 'factory_bot'
|
|
392
|
-
gem 'simplecov'
|
|
393
|
-
end
|
|
394
|
-
```
|
|
395
|
-
|
|
396
|
-
```bash
|
|
397
|
-
bundle install
|
|
398
|
-
rspec --init
|
|
399
|
-
```
|
|
400
|
-
|
|
401
|
-
CREATE EXAMPLE TESTS
|
|
402
|
-
|
|
403
|
-
### Unit Test Example (Node.js/Jest)
|
|
404
|
-
```typescript
|
|
405
|
-
// tests/unit/example.test.ts
|
|
406
|
-
describe('Example Test Suite', () => {
|
|
407
|
-
it('should pass this example test', () => {
|
|
408
|
-
expect(true).toBe(true);
|
|
409
|
-
});
|
|
410
|
-
|
|
411
|
-
it('should test basic math', () => {
|
|
412
|
-
expect(2 + 2).toBe(4);
|
|
413
|
-
});
|
|
414
|
-
});
|
|
415
|
-
```
|
|
416
|
-
|
|
417
|
-
### Component Test Example (React)
|
|
418
|
-
```typescript
|
|
419
|
-
// tests/components/Button.test.tsx
|
|
420
|
-
import { render, screen, fireEvent } from '@testing-library/react';
|
|
421
|
-
import Button from '@/components/Button';
|
|
422
|
-
|
|
423
|
-
describe('Button Component', () => {
|
|
424
|
-
it('renders with text', () => {
|
|
425
|
-
render(<Button>Click Me</Button>);
|
|
426
|
-
expect(screen.getByText('Click Me')).toBeInTheDocument();
|
|
427
|
-
});
|
|
428
|
-
|
|
429
|
-
it('calls onClick when clicked', () => {
|
|
430
|
-
const handleClick = jest.fn();
|
|
431
|
-
render(<Button onClick={handleClick}>Click</Button>);
|
|
432
|
-
fireEvent.click(screen.getByText('Click'));
|
|
433
|
-
expect(handleClick).toHaveBeenCalledTimes(1);
|
|
434
|
-
});
|
|
435
|
-
});
|
|
436
|
-
```
|
|
437
|
-
|
|
438
|
-
### API Test Example (Integration)
|
|
439
|
-
```typescript
|
|
440
|
-
// tests/integration/api.test.ts
|
|
441
|
-
import request from 'supertest';
|
|
442
|
-
import app from '@/app';
|
|
443
|
-
|
|
444
|
-
describe('API Integration Tests', () => {
|
|
445
|
-
it('GET / should return 200', async () => {
|
|
446
|
-
const response = await request(app).get('/');
|
|
447
|
-
expect(response.status).toBe(200);
|
|
448
|
-
});
|
|
449
|
-
|
|
450
|
-
it('POST /api/users should create user', async () => {
|
|
451
|
-
const response = await request(app)
|
|
452
|
-
.post('/api/users')
|
|
453
|
-
.send({ name: 'Test User', email: 'test@example.com' });
|
|
454
|
-
expect(response.status).toBe(201);
|
|
455
|
-
expect(response.body).toHaveProperty('id');
|
|
456
|
-
});
|
|
457
|
-
});
|
|
458
|
-
```
|
|
459
|
-
|
|
460
|
-
DIRECTORY STRUCTURE
|
|
461
|
-
|
|
462
|
-
Create:
|
|
463
|
-
```
|
|
464
|
-
tests/
|
|
465
|
-
├── unit/ # Unit tests (isolated functions/classes)
|
|
466
|
-
├── integration/ # Integration tests (multiple components)
|
|
467
|
-
├── e2e/ # End-to-end tests (full user flows) [if E2E=yes]
|
|
468
|
-
├── fixtures/ # Test data
|
|
469
|
-
└── helpers/ # Test utilities
|
|
470
|
-
```
|
|
471
|
-
|
|
472
|
-
E2E SETUP (if E2E=yes)
|
|
473
|
-
|
|
474
|
-
### Playwright (recommended)
|
|
475
|
-
```bash
|
|
476
|
-
npm install --save-dev @playwright/test
|
|
477
|
-
npx playwright install
|
|
478
|
-
```
|
|
479
|
-
|
|
480
|
-
Create playwright.config.ts and example E2E test:
|
|
481
|
-
```typescript
|
|
482
|
-
// tests/e2e/login.spec.ts
|
|
483
|
-
import { test, expect } from '@playwright/test';
|
|
484
|
-
|
|
485
|
-
test('user can log in', async ({ page }) => {
|
|
486
|
-
await page.goto('http://localhost:3000/login');
|
|
487
|
-
await page.fill('input[name="email"]', 'test@example.com');
|
|
488
|
-
await page.fill('input[name="password"]', 'password123');
|
|
489
|
-
await page.click('button[type="submit"]');
|
|
490
|
-
await expect(page).toHaveURL('http://localhost:3000/dashboard');
|
|
491
|
-
});
|
|
492
|
-
```
|
|
493
|
-
|
|
494
|
-
CI INTEGRATION
|
|
495
|
-
|
|
496
|
-
Add to .github/workflows/ci.yml (or create):
|
|
497
|
-
```yaml
|
|
498
|
-
test:
|
|
499
|
-
runs-on: ubuntu-latest
|
|
500
|
-
steps:
|
|
501
|
-
- uses: actions/checkout@v4
|
|
502
|
-
|
|
503
|
-
- name: Setup Node
|
|
504
|
-
uses: actions/setup-node@v4
|
|
505
|
-
with:
|
|
506
|
-
node-version: '20'
|
|
507
|
-
cache: 'npm'
|
|
508
|
-
|
|
509
|
-
- name: Install dependencies
|
|
510
|
-
run: npm ci
|
|
511
|
-
|
|
512
|
-
- name: Run tests
|
|
513
|
-
run: npm test -- --coverage
|
|
514
|
-
|
|
515
|
-
- name: Upload coverage
|
|
516
|
-
uses: codecov/codecov-action@v3
|
|
517
|
-
with:
|
|
518
|
-
files: ./coverage/lcov.info
|
|
519
|
-
```
|
|
520
|
-
|
|
521
|
-
NPM SCRIPTS
|
|
522
|
-
|
|
523
|
-
Add to package.json:
|
|
524
|
-
```json
|
|
525
|
-
{
|
|
526
|
-
"scripts": {
|
|
527
|
-
"test": "jest",
|
|
528
|
-
"test:watch": "jest --watch",
|
|
529
|
-
"test:coverage": "jest --coverage",
|
|
530
|
-
"test:unit": "jest tests/unit",
|
|
531
|
-
"test:integration": "jest tests/integration",
|
|
532
|
-
"test:e2e": "playwright test"
|
|
533
|
-
}
|
|
534
|
-
}
|
|
535
|
-
```
|
|
536
|
-
|
|
537
|
-
DOCUMENTATION
|
|
538
|
-
|
|
539
|
-
Create docs/02-practices/testing.md:
|
|
540
|
-
```markdown
|
|
541
|
-
# Testing Guide
|
|
542
|
-
|
|
543
|
-
## Running Tests
|
|
544
|
-
|
|
545
|
-
\`\`\`bash
|
|
546
|
-
npm test # Run all tests
|
|
547
|
-
npm run test:watch # Watch mode
|
|
548
|
-
npm run test:coverage # With coverage report
|
|
549
|
-
npm run test:unit # Unit tests only
|
|
550
|
-
\`\`\`
|
|
551
|
-
|
|
552
|
-
## Writing Tests
|
|
553
|
-
|
|
554
|
-
### Unit Tests
|
|
555
|
-
- Test individual functions/classes in isolation
|
|
556
|
-
- Mock external dependencies
|
|
557
|
-
- Fast (<10ms per test)
|
|
558
|
-
|
|
559
|
-
### Integration Tests
|
|
560
|
-
- Test multiple components together
|
|
561
|
-
- Use real dependencies when possible
|
|
562
|
-
- Medium speed (<100ms per test)
|
|
563
|
-
|
|
564
|
-
### E2E Tests
|
|
565
|
-
- Test full user flows
|
|
566
|
-
- Run against real app
|
|
567
|
-
- Slow (seconds per test)
|
|
568
|
-
|
|
569
|
-
## Coverage Requirements
|
|
570
|
-
- Minimum 70% coverage (enforced in CI)
|
|
571
|
-
- New code should be 90%+ covered
|
|
572
|
-
- Critical paths require 100% coverage
|
|
573
|
-
|
|
574
|
-
## Best Practices
|
|
575
|
-
- Use descriptive test names (Given/When/Then)
|
|
576
|
-
- One assertion per test when possible
|
|
577
|
-
- Avoid test interdependence
|
|
578
|
-
- Use factories/fixtures for test data
|
|
579
|
-
```
|
|
580
|
-
|
|
581
|
-
WORKFLOW
|
|
582
|
-
|
|
583
|
-
1. Detect project type and existing setup
|
|
584
|
-
2. Show proposed setup plan (diff-first):
|
|
585
|
-
```
|
|
586
|
-
Will install:
|
|
587
|
-
- jest, @types/jest, ts-jest
|
|
588
|
-
- @testing-library/react, @testing-library/jest-dom
|
|
589
|
-
|
|
590
|
-
Will create:
|
|
591
|
-
- jest.config.js
|
|
592
|
-
- tests/unit/example.test.ts
|
|
593
|
-
- tests/integration/api.test.ts
|
|
594
|
-
- docs/02-practices/testing.md
|
|
595
|
-
|
|
596
|
-
Will update:
|
|
597
|
-
- package.json (add test scripts)
|
|
598
|
-
- .github/workflows/ci.yml (add test job)
|
|
599
|
-
```
|
|
600
|
-
|
|
601
|
-
3. Ask: "Proceed with test setup? (YES/NO)"
|
|
602
|
-
|
|
603
|
-
4. If YES:
|
|
604
|
-
- Run installations
|
|
605
|
-
- Create config files
|
|
606
|
-
- Create example tests
|
|
607
|
-
- Update CI
|
|
608
|
-
- Run tests to verify setup
|
|
609
|
-
|
|
610
|
-
5. Show results:
|
|
611
|
-
```
|
|
612
|
-
✅ Testing framework installed
|
|
613
|
-
✅ Example tests created
|
|
614
|
-
✅ CI integration added
|
|
615
|
-
|
|
616
|
-
Try running: npm test
|
|
617
|
-
```
|
|
618
|
-
|
|
619
|
-
INTEGRATION
|
|
620
|
-
|
|
621
|
-
- Create story: "US-XXXX: Set up testing infrastructure"
|
|
622
|
-
- Update docs/02-practices/testing.md
|
|
623
|
-
- Suggest setting required checks in GitHub
|
|
624
|
-
|
|
625
|
-
RULES
|
|
626
|
-
- Preview all changes (diff-first, YES/NO)
|
|
627
|
-
- Run test suite after setup to verify
|
|
628
|
-
- Create working examples, not just config
|
|
629
|
-
- Document how to run and write tests
|
|
630
|
-
- Integrate with CI immediately
|
|
631
|
-
- Set reasonable coverage thresholds (not 100%)
|
|
632
|
-
|
|
633
|
-
OUTPUT
|
|
634
|
-
- Setup summary
|
|
635
|
-
- Test framework configuration
|
|
636
|
-
- Example tests (unit + integration + E2E if requested)
|
|
637
|
-
- CI integration
|
|
638
|
-
- Testing documentation
|
|
639
|
-
|
|
640
|
-
---
|
|
641
|
-
|
|
642
|
-
## Expected Output
|
|
643
|
-
|
|
644
|
-
### Success - Test Setup Complete
|
|
645
|
-
|
|
646
|
-
```
|
|
647
|
-
🧪 Test Infrastructure Setup
|
|
648
|
-
══════════════════════════════════════════════════════════════
|
|
649
|
-
|
|
650
|
-
Detected: Node.js (TypeScript)
|
|
651
|
-
Framework: Jest
|
|
652
|
-
|
|
653
|
-
✅ Installed dependencies:
|
|
654
|
-
• jest @types/jest ts-jest
|
|
655
|
-
• @testing-library/react @testing-library/jest-dom
|
|
656
|
-
|
|
657
|
-
✅ Created configuration:
|
|
658
|
-
• jest.config.js (coverage threshold: 70%)
|
|
659
|
-
|
|
660
|
-
✅ Created example tests:
|
|
661
|
-
• tests/unit/example.test.ts (2 tests)
|
|
662
|
-
• tests/integration/api.test.ts (2 tests)
|
|
663
|
-
|
|
664
|
-
✅ Updated package.json scripts:
|
|
665
|
-
• test, test:watch, test:coverage, test:unit, test:integration
|
|
666
|
-
|
|
667
|
-
✅ Updated CI workflow:
|
|
668
|
-
• .github/workflows/ci.yml (test job added)
|
|
669
|
-
|
|
670
|
-
✅ Created documentation:
|
|
671
|
-
• docs/02-practices/testing.md
|
|
672
|
-
|
|
673
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
674
|
-
Running verification...
|
|
675
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
676
|
-
|
|
677
|
-
$ npm test
|
|
678
|
-
PASS tests/unit/example.test.ts (4 tests)
|
|
679
|
-
PASS tests/integration/api.test.ts (2 tests)
|
|
680
|
-
|
|
681
|
-
Tests: 6 passed, 6 total
|
|
682
|
-
Time: 2.3s
|
|
683
|
-
|
|
684
|
-
✅ Test infrastructure ready!
|
|
685
|
-
|
|
686
|
-
Try running: npm test
|
|
687
|
-
```
|
|
688
|
-
|
|
689
|
-
### Error - Tests Already Exist
|
|
690
|
-
|
|
691
|
-
```
|
|
692
|
-
⚠️ Existing Test Setup Detected
|
|
693
|
-
══════════════════════════════════════════════════════════════
|
|
694
|
-
|
|
695
|
-
Found:
|
|
696
|
-
• jest.config.js (existing configuration)
|
|
697
|
-
• tests/ directory (14 test files)
|
|
698
|
-
• package.json test script
|
|
699
|
-
|
|
700
|
-
Current coverage: 72%
|
|
701
|
-
|
|
702
|
-
Options:
|
|
703
|
-
1. Skip setup (tests already configured)
|
|
704
|
-
2. Add missing components only
|
|
705
|
-
3. Reset and reconfigure
|
|
706
|
-
|
|
707
|
-
What would you like to do?
|
|
708
|
-
```
|
|
709
|
-
|
|
710
|
-
### Error - Unknown Project Type
|
|
711
|
-
|
|
712
|
-
```
|
|
713
|
-
❌ Could not detect project type
|
|
714
|
-
|
|
715
|
-
No package.json, requirements.txt, Gemfile, or go.mod found.
|
|
716
|
-
|
|
717
|
-
Please specify framework manually:
|
|
718
|
-
/agileflow:tests FRAMEWORK=jest
|
|
719
|
-
/agileflow:tests FRAMEWORK=pytest
|
|
720
|
-
/agileflow:tests FRAMEWORK=rspec
|
|
721
|
-
```
|
|
722
|
-
|
|
723
|
-
---
|
|
724
|
-
|
|
725
|
-
## Related Commands
|
|
726
|
-
|
|
727
|
-
- `/agileflow:configure` - Manage AgileFlow features and hooks
|
|
728
|
-
- `/agileflow:ci` - Bootstrap CI/CD workflow
|
|
729
|
-
- `/agileflow:verify` - Run tests and update story status
|
|
730
|
-
- `/agileflow:baseline` - Mark verified baseline
|
|
731
|
-
- `/agileflow:pr` - Generate pull request from story
|