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,844 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Analytics dashboard with cycle time and throughput
|
|
3
|
-
argument-hint: "[TIMEFRAME=7d|30d|90d|all] [EPIC=<EP-ID>] [OWNER=<id>] [FORMAT=ascii|json|csv] [METRIC=cycle-time|lead-time|throughput|all]"
|
|
4
|
-
model: haiku
|
|
5
|
-
type: output-only # Analytics display - read-only, not an ongoing task
|
|
6
|
-
compact_context:
|
|
7
|
-
priority: medium
|
|
8
|
-
preserve_rules:
|
|
9
|
-
- "ACTIVE COMMAND: /agileflow:metrics - Metrics & analytics specialist (read-only)"
|
|
10
|
-
- "MUST read docs/09-agents/bus/log.jsonl (parse all lifecycle events)"
|
|
11
|
-
- "MUST read docs/09-agents/status.json (current state, WIP, owners)"
|
|
12
|
-
- "MUST calculate 10+ metrics: cycle-time, lead-time, throughput, WIP, utilization, epic-health, estimation, blockers, flow-efficiency, CFD"
|
|
13
|
-
- "MUST show trends (↗ ↘ →) with % change compared to previous period"
|
|
14
|
-
- "MUST use health indicators (🟢🟡🔴) for quick status assessment"
|
|
15
|
-
- "MUST provide actionable recommendations based on data"
|
|
16
|
-
- "MUST always include timeframe and generation timestamp"
|
|
17
|
-
state_fields:
|
|
18
|
-
- timeframe
|
|
19
|
-
- metric_type
|
|
20
|
-
- format
|
|
21
|
-
- epic_filter
|
|
22
|
-
---
|
|
23
|
-
|
|
24
|
-
# metrics
|
|
25
|
-
|
|
26
|
-
---
|
|
27
|
-
|
|
28
|
-
## STEP 0: Gather Context
|
|
29
|
-
|
|
30
|
-
```bash
|
|
31
|
-
node .agileflow/scripts/obtain-context.js metrics
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
This gathers git status, stories/epics, session state, and registers for PreCompact.
|
|
35
|
-
|
|
36
|
-
---
|
|
37
|
-
|
|
38
|
-
Comprehensive project analytics dashboard with cycle time, lead time, throughput, and trend analysis.
|
|
39
|
-
|
|
40
|
-
<!-- COMPACT_SUMMARY_START -->
|
|
41
|
-
|
|
42
|
-
## ⚠️ COMPACT SUMMARY - /agileflow:metrics IS ACTIVE
|
|
43
|
-
|
|
44
|
-
**CRITICAL**: You are the Metrics Specialist. This command provides data-driven analytics (read-only).
|
|
45
|
-
|
|
46
|
-
---
|
|
47
|
-
|
|
48
|
-
### 🚨 RULE #1: ALWAYS Calculate From Raw Data
|
|
49
|
-
|
|
50
|
-
- Read docs/09-agents/bus/log.jsonl (lifecycle events)
|
|
51
|
-
- Read docs/09-agents/status.json (current state)
|
|
52
|
-
- Never assume or estimate (calculate from data)
|
|
53
|
-
- Show all source timestamps and calculations
|
|
54
|
-
|
|
55
|
-
### 🚨 RULE #2: ALWAYS Show Trends With Comparison
|
|
56
|
-
|
|
57
|
-
Compare to previous period:
|
|
58
|
-
- Show % change (↗ ↑5%, ↘ ↓12%, → stable)
|
|
59
|
-
- Highlight improvements and regressions
|
|
60
|
-
- Identify patterns and anomalies
|
|
61
|
-
|
|
62
|
-
### 🚨 RULE #3: ALWAYS Use Health Indicators
|
|
63
|
-
|
|
64
|
-
Quick status assessment:
|
|
65
|
-
- 🟢 Green: Healthy/on-track (no action needed)
|
|
66
|
-
- 🟡 Yellow: At-risk/monitor (may need attention)
|
|
67
|
-
- 🔴 Red: Critical/off-track (action required)
|
|
68
|
-
|
|
69
|
-
### 🚨 RULE #4: ALWAYS Include Actionable Recommendations
|
|
70
|
-
|
|
71
|
-
Every metric should suggest:
|
|
72
|
-
- What's good (continue this)
|
|
73
|
-
- What needs attention (action item)
|
|
74
|
-
- How to improve (specific suggestion)
|
|
75
|
-
|
|
76
|
-
---
|
|
77
|
-
|
|
78
|
-
## Key Metrics Calculated
|
|
79
|
-
|
|
80
|
-
11 core metrics:
|
|
81
|
-
1. **Cycle Time** - in-progress → done
|
|
82
|
-
2. **Lead Time** - created → done
|
|
83
|
-
3. **Throughput** - stories completed/period
|
|
84
|
-
4. **WIP** - current in-progress + in-review
|
|
85
|
-
5. **Agent Utilization** - work distribution
|
|
86
|
-
6. **Thread Distribution** - session breakdown by thread type
|
|
87
|
-
7. **Epic Health** - progress % + trend
|
|
88
|
-
8. **Estimation Accuracy** - estimate vs actual
|
|
89
|
-
9. **Blocked Stories** - count + duration
|
|
90
|
-
10. **Flow Efficiency** - active vs total time %
|
|
91
|
-
11. **Cumulative Flow Diagram** - stacked area chart
|
|
92
|
-
|
|
93
|
-
---
|
|
94
|
-
|
|
95
|
-
## Input Parameters
|
|
96
|
-
|
|
97
|
-
```
|
|
98
|
-
TIMEFRAME=7d|30d|90d|all # Date range (default: 30d)
|
|
99
|
-
EPIC=<EP_ID> # Filter by epic (optional)
|
|
100
|
-
OWNER=<AG_*> # Filter by agent (optional)
|
|
101
|
-
FORMAT=ascii|json|csv # Output format (default: ascii)
|
|
102
|
-
METRIC=cycle-time|lead-time|throughput|all # Which metrics
|
|
103
|
-
```
|
|
104
|
-
|
|
105
|
-
**Data Sources** (read-only):
|
|
106
|
-
1. docs/09-agents/bus/log.jsonl - Event timestamps
|
|
107
|
-
2. docs/09-agents/status.json - Current state
|
|
108
|
-
3. docs/06-stories/**/US-*.md - Story metadata
|
|
109
|
-
4. docs/05-epics/*.md - Epic data
|
|
110
|
-
|
|
111
|
-
---
|
|
112
|
-
|
|
113
|
-
## Output Structure
|
|
114
|
-
|
|
115
|
-
**Dashboard Includes**:
|
|
116
|
-
- Header with timeframe & generation timestamp
|
|
117
|
-
- Key Metrics section (cycle time, lead time, throughput, WIP)
|
|
118
|
-
- Work In Progress status (current WIP vs limit)
|
|
119
|
-
- Epic Health summary (progress bars + status)
|
|
120
|
-
- Recommendations (prioritized action items)
|
|
121
|
-
|
|
122
|
-
**Key Metrics Section**:
|
|
123
|
-
- Current value (average/median)
|
|
124
|
-
- Trend (↗↘→ with % change)
|
|
125
|
-
- Previous period comparison
|
|
126
|
-
- Health indicator (🟢🟡🔴)
|
|
127
|
-
|
|
128
|
-
**Epic Health**:
|
|
129
|
-
- Progress bar (% complete)
|
|
130
|
-
- Status indicator (🟢🟡🔴)
|
|
131
|
-
- ETA (weeks to completion)
|
|
132
|
-
- Blockers count
|
|
133
|
-
|
|
134
|
-
**Recommendations**:
|
|
135
|
-
- HIGH: Immediate action (blockers, WIP violations)
|
|
136
|
-
- MEDIUM: Process improvements
|
|
137
|
-
- LOW: Long-term optimizations
|
|
138
|
-
|
|
139
|
-
---
|
|
140
|
-
|
|
141
|
-
## Anti-Patterns & Correct Usage
|
|
142
|
-
|
|
143
|
-
❌ **DON'T**:
|
|
144
|
-
- Assume or estimate metrics (calculate from data)
|
|
145
|
-
- Skip trend comparison (context matters)
|
|
146
|
-
- Use vague status (use 🟢🟡🔴)
|
|
147
|
-
- Ignore actionable recommendations
|
|
148
|
-
|
|
149
|
-
✅ **DO**:
|
|
150
|
-
- Calculate all metrics from raw data
|
|
151
|
-
- Show % change vs previous period
|
|
152
|
-
- Use health indicators for quick assessment
|
|
153
|
-
- Provide specific actionable next steps
|
|
154
|
-
|
|
155
|
-
---
|
|
156
|
-
|
|
157
|
-
## Follow-up Integration
|
|
158
|
-
|
|
159
|
-
After displaying metrics:
|
|
160
|
-
- `/agileflow:velocity` - See velocity trends
|
|
161
|
-
- `/agileflow:blockers` - Drill into blockers
|
|
162
|
-
- `/agileflow:retro` - Analyze patterns retrospectively
|
|
163
|
-
- Save metrics report for stakeholder updates
|
|
164
|
-
|
|
165
|
-
---
|
|
166
|
-
|
|
167
|
-
## REMEMBER AFTER COMPACTION
|
|
168
|
-
|
|
169
|
-
- Command is read-only (analyzes bus/log.jsonl + status.json + session registry)
|
|
170
|
-
- Calculates 11 metrics (cycle-time, lead-time, throughput, WIP, thread-distribution, etc.)
|
|
171
|
-
- Shows trends (↗ ↘ →) with % change vs previous period
|
|
172
|
-
- Uses health indicators (🟢🟡🔴) for quick assessment
|
|
173
|
-
- Thread Distribution shows session breakdown by thread type (base/parallel/chained/fusion/big/long)
|
|
174
|
-
- Provides actionable recommendations (HIGH/MEDIUM/LOW)
|
|
175
|
-
- Saves reports to docs/08-project/metrics-reports/
|
|
176
|
-
- Always includes timeframe and generation timestamp
|
|
177
|
-
|
|
178
|
-
<!-- COMPACT_SUMMARY_END -->
|
|
179
|
-
|
|
180
|
-
## Prompt
|
|
181
|
-
|
|
182
|
-
ROLE: Metrics & Analytics Specialist
|
|
183
|
-
|
|
184
|
-
OBJECTIVE
|
|
185
|
-
Generate comprehensive project metrics from AgileFlow data sources (status.json, bus/log.jsonl, story files) to enable data-driven decision making.
|
|
186
|
-
|
|
187
|
-
CONTEXT
|
|
188
|
-
|
|
189
|
-
Live repository state:
|
|
190
|
-
- Current branch: !`git branch --show-current`
|
|
191
|
-
- Recent commits: !`git log --since="30 days ago" --oneline | wc -l`
|
|
192
|
-
- Active stories: !`grep -c '"status":"in-progress"' docs/09-agents/status.json 2>/dev/null || echo "0"`
|
|
193
|
-
- Bus log entries: !`wc -l < docs/09-agents/bus/log.jsonl 2>/dev/null || echo "0"`
|
|
194
|
-
|
|
195
|
-
INPUTS (optional)
|
|
196
|
-
- TIMEFRAME=7d|30d|90d|all (default: 30d)
|
|
197
|
-
- EPIC=<EP_ID> (filter by specific epic)
|
|
198
|
-
- OWNER=<AG_*> (filter by agent/owner)
|
|
199
|
-
- FORMAT=ascii|markdown|json|csv (default: ascii)
|
|
200
|
-
- METRIC=cycle-time|lead-time|throughput|all (default: all)
|
|
201
|
-
|
|
202
|
-
DATA SOURCES
|
|
203
|
-
|
|
204
|
-
### Primary Sources
|
|
205
|
-
1. **docs/09-agents/bus/log.jsonl** - Event stream with timestamps
|
|
206
|
-
- Story lifecycle events (created, status changes, completed)
|
|
207
|
-
- Timestamps for all state transitions
|
|
208
|
-
- Agent assignments and handoffs
|
|
209
|
-
|
|
210
|
-
2. **docs/09-agents/status.json** - Current state
|
|
211
|
-
- Active stories and their statuses
|
|
212
|
-
- Owner assignments
|
|
213
|
-
- Last updated timestamps
|
|
214
|
-
|
|
215
|
-
3. **docs/06-stories/**/US-*.md** - Story metadata
|
|
216
|
-
- Creation dates (from frontmatter or file mtime)
|
|
217
|
-
- Estimates vs actuals
|
|
218
|
-
- Epic relationships
|
|
219
|
-
|
|
220
|
-
4. **docs/05-epics/*.md** - Epic data
|
|
221
|
-
- Epic start/end dates
|
|
222
|
-
- Story rollup
|
|
223
|
-
|
|
224
|
-
CORE METRICS
|
|
225
|
-
|
|
226
|
-
### 1. Cycle Time
|
|
227
|
-
**Definition**: Time from "in-progress" to "done" (actual work time)
|
|
228
|
-
|
|
229
|
-
```bash
|
|
230
|
-
# Extract from bus/log.jsonl
|
|
231
|
-
for story in stories; do
|
|
232
|
-
start=$(jq -r 'select(.story=="'$story'" and .status=="in-progress") | .ts' bus/log.jsonl | head -1)
|
|
233
|
-
end=$(jq -r 'select(.story=="'$story'" and .status=="done") | .ts' bus/log.jsonl | head -1)
|
|
234
|
-
|
|
235
|
-
cycle_time=$(date_diff $start $end)
|
|
236
|
-
echo "$story: $cycle_time days"
|
|
237
|
-
done
|
|
238
|
-
|
|
239
|
-
# Calculate statistics
|
|
240
|
-
avg_cycle_time=$(echo "$cycle_times" | awk '{sum+=$1; count++} END {print sum/count}')
|
|
241
|
-
p50_cycle_time=$(echo "$cycle_times" | sort -n | awk '{a[NR]=$1} END {print a[int(NR/2)]}')
|
|
242
|
-
p85_cycle_time=$(echo "$cycle_times" | sort -n | awk '{a[NR]=$1} END {print a[int(NR*0.85)]}')
|
|
243
|
-
```
|
|
244
|
-
|
|
245
|
-
**Output**:
|
|
246
|
-
```
|
|
247
|
-
Cycle Time (30 days)
|
|
248
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
249
|
-
Average: 3.2 days
|
|
250
|
-
Median: 2.5 days
|
|
251
|
-
85th %ile: 5.0 days
|
|
252
|
-
Min: 0.5 days
|
|
253
|
-
Max: 8.0 days
|
|
254
|
-
|
|
255
|
-
Distribution:
|
|
256
|
-
0-1 days ████████░░ 8 stories (32%)
|
|
257
|
-
1-3 days ████████████████░░ 12 stories (48%)
|
|
258
|
-
3-5 days ████░░ 3 stories (12%)
|
|
259
|
-
5+ days ██░░ 2 stories (8%)
|
|
260
|
-
```
|
|
261
|
-
|
|
262
|
-
### 2. Lead Time
|
|
263
|
-
**Definition**: Time from story creation to "done" (total time including waiting)
|
|
264
|
-
|
|
265
|
-
```bash
|
|
266
|
-
for story in stories; do
|
|
267
|
-
created=$(stat -f %B docs/06-stories/*/$story.md 2>/dev/null || stat -c %Y docs/06-stories/*/$story.md)
|
|
268
|
-
completed=$(jq -r 'select(.story=="'$story'" and .status=="done") | .ts' bus/log.jsonl | tail -1)
|
|
269
|
-
|
|
270
|
-
lead_time=$(date_diff $created $completed)
|
|
271
|
-
echo "$story: $lead_time days"
|
|
272
|
-
done
|
|
273
|
-
```
|
|
274
|
-
|
|
275
|
-
**Output**:
|
|
276
|
-
```
|
|
277
|
-
Lead Time (30 days)
|
|
278
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
279
|
-
Average: 7.8 days
|
|
280
|
-
Median: 6.0 days
|
|
281
|
-
85th %ile: 12.0 days
|
|
282
|
-
|
|
283
|
-
Breakdown:
|
|
284
|
-
Waiting (ready): 2.5 days (32%)
|
|
285
|
-
Active (in-progress): 3.2 days (41%)
|
|
286
|
-
Review (in-review): 2.1 days (27%)
|
|
287
|
-
```
|
|
288
|
-
|
|
289
|
-
### 3. Throughput
|
|
290
|
-
**Definition**: Stories completed per time period
|
|
291
|
-
|
|
292
|
-
```bash
|
|
293
|
-
# Count stories completed in each week
|
|
294
|
-
for week in weeks; do
|
|
295
|
-
count=$(jq -r 'select(.status=="done" and .ts >= "'$week_start'" and .ts < "'$week_end'") | .story' bus/log.jsonl | sort -u | wc -l)
|
|
296
|
-
echo "Week $week: $count stories"
|
|
297
|
-
done
|
|
298
|
-
```
|
|
299
|
-
|
|
300
|
-
**Output**:
|
|
301
|
-
```
|
|
302
|
-
Throughput (Last 8 Weeks)
|
|
303
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
304
|
-
Week 1 ████████░░ 8 stories
|
|
305
|
-
Week 2 ██████████░░ 10 stories
|
|
306
|
-
Week 3 ██████░░ 6 stories
|
|
307
|
-
Week 4 ████████████░░ 12 stories ← Peak
|
|
308
|
-
Week 5 ████████░░ 8 stories
|
|
309
|
-
Week 6 ██████░░ 6 stories
|
|
310
|
-
Week 7 ██████████░░ 10 stories
|
|
311
|
-
Week 8 ████████░░ 8 stories
|
|
312
|
-
|
|
313
|
-
Average: 8.5 stories/week
|
|
314
|
-
Trend: ↗ +12% vs previous month
|
|
315
|
-
```
|
|
316
|
-
|
|
317
|
-
### 4. Work In Progress (WIP)
|
|
318
|
-
**Definition**: Stories currently in-progress or in-review
|
|
319
|
-
|
|
320
|
-
```bash
|
|
321
|
-
wip_count=$(jq -r '.stories | to_entries[] | select(.value.status == "in-progress" or .value.status == "in-review") | .key' status.json | wc -l)
|
|
322
|
-
wip_limit=6 # 2 per agent * 3 agents
|
|
323
|
-
|
|
324
|
-
echo "Current WIP: $wip_count / $wip_limit"
|
|
325
|
-
if [ $wip_count -gt $wip_limit ]; then
|
|
326
|
-
echo "⚠️ WIP limit exceeded! Consider finishing stories before starting new ones."
|
|
327
|
-
fi
|
|
328
|
-
```
|
|
329
|
-
|
|
330
|
-
**Output**:
|
|
331
|
-
```
|
|
332
|
-
Work In Progress
|
|
333
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
334
|
-
Current WIP: 4 / 6 stories (67% capacity)
|
|
335
|
-
Status: ✅ Within limits
|
|
336
|
-
|
|
337
|
-
Breakdown:
|
|
338
|
-
in-progress: 3 stories
|
|
339
|
-
in-review: 1 story
|
|
340
|
-
blocked: 0 stories
|
|
341
|
-
|
|
342
|
-
By Owner:
|
|
343
|
-
AG-API: 2 stories (at limit)
|
|
344
|
-
AG-UI: 1 story
|
|
345
|
-
AG-CI: 1 story
|
|
346
|
-
```
|
|
347
|
-
|
|
348
|
-
### 5. Agent Utilization
|
|
349
|
-
**Definition**: Distribution of work across agents
|
|
350
|
-
|
|
351
|
-
```bash
|
|
352
|
-
for agent in AG-UI AG-API AG-CI AG-DEVOPS; do
|
|
353
|
-
completed=$(jq -r 'select(.status=="done" and .owner=="'$agent'") | .story' bus/log.jsonl | sort -u | wc -l)
|
|
354
|
-
in_progress=$(jq -r '.stories | to_entries[] | select(.value.owner=="'$agent'" and .value.status=="in-progress") | .key' status.json | wc -l)
|
|
355
|
-
echo "$agent: $completed done, $in_progress active"
|
|
356
|
-
done
|
|
357
|
-
```
|
|
358
|
-
|
|
359
|
-
**Output**:
|
|
360
|
-
```
|
|
361
|
-
Agent Utilization (30 days)
|
|
362
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
363
|
-
AG-API ████████████████░░ 12 stories (40%) 2 active
|
|
364
|
-
AG-UI ████████████░░ 10 stories (33%) 1 active
|
|
365
|
-
AG-CI ██████░░ 6 stories (20%) 1 active
|
|
366
|
-
AG-DEVOPS ██░░ 2 stories (7%) 0 active
|
|
367
|
-
|
|
368
|
-
Balance Score: 78/100 (Good distribution)
|
|
369
|
-
Recommendation: Consider assigning more work to AG-DEVOPS
|
|
370
|
-
```
|
|
371
|
-
|
|
372
|
-
### 6. Thread Distribution
|
|
373
|
-
**Definition**: Distribution of work by thread type (see docs/02-practices/thread-based-engineering.md)
|
|
374
|
-
|
|
375
|
-
```bash
|
|
376
|
-
# Get thread type from session registry
|
|
377
|
-
for session in sessions; do
|
|
378
|
-
thread_type=$(node .agileflow/scripts/session-manager.js thread-type $session)
|
|
379
|
-
stories_completed=$(count_stories_completed_in_session $session)
|
|
380
|
-
duration=$(calculate_session_duration $session)
|
|
381
|
-
echo "$thread_type: $stories_completed stories, $duration hours"
|
|
382
|
-
done
|
|
383
|
-
```
|
|
384
|
-
|
|
385
|
-
**Output**:
|
|
386
|
-
```
|
|
387
|
-
Thread Distribution (30 days)
|
|
388
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
389
|
-
Sessions by Thread Type:
|
|
390
|
-
base ████████████████████░░ 65% (13 sessions)
|
|
391
|
-
parallel ████████░░ 25% (5 sessions)
|
|
392
|
-
chained ██░░ 5% (1 session)
|
|
393
|
-
fusion ██░░ 5% (1 session)
|
|
394
|
-
big ░░ 0% (0 sessions)
|
|
395
|
-
long ░░ 0% (0 sessions)
|
|
396
|
-
|
|
397
|
-
Avg Duration by Type:
|
|
398
|
-
base: 45 min avg 8 stories/session
|
|
399
|
-
parallel: 2.5 hours avg 12 stories/session
|
|
400
|
-
chained: 3 hours avg 15 stories/session
|
|
401
|
-
fusion: 30 min avg 1 decision/session
|
|
402
|
-
|
|
403
|
-
Success Rate by Type:
|
|
404
|
-
base: 85% stories completed
|
|
405
|
-
parallel: 92% stories completed ← Highest
|
|
406
|
-
chained: 78% stories completed
|
|
407
|
-
fusion: N/A (advisory only)
|
|
408
|
-
|
|
409
|
-
Trend (vs last month): ↗ +15% parallel usage
|
|
410
|
-
Recommendation: Consider using parallel sessions for independent tasks
|
|
411
|
-
```
|
|
412
|
-
|
|
413
|
-
### 7. Epic Health (was 6)
|
|
414
|
-
**Definition**: Progress and health indicators for epics
|
|
415
|
-
|
|
416
|
-
```bash
|
|
417
|
-
for epic in epics; do
|
|
418
|
-
total_stories=$(ls docs/06-stories/$epic/*.md | wc -l)
|
|
419
|
-
done_stories=$(jq -r 'select(.epic=="'$epic'" and .status=="done")' bus/log.jsonl | wc -l)
|
|
420
|
-
blocked_stories=$(jq -r '.stories | to_entries[] | select(.value.epic=="'$epic'" and .value.status=="blocked") | .key' status.json | wc -l)
|
|
421
|
-
|
|
422
|
-
completion_pct=$((done_stories * 100 / total_stories))
|
|
423
|
-
health="🟢" # Green
|
|
424
|
-
[ $blocked_stories -gt 0 ] && health="🟡" # Yellow
|
|
425
|
-
[ $completion_pct -lt 30 ] && [ $blocked_stories -gt 1 ] && health="🔴" # Red
|
|
426
|
-
|
|
427
|
-
echo "$epic: $completion_pct% complete, $blocked_stories blocked $health"
|
|
428
|
-
done
|
|
429
|
-
```
|
|
430
|
-
|
|
431
|
-
**Output**:
|
|
432
|
-
```
|
|
433
|
-
Epic Health
|
|
434
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
435
|
-
EP-0010: Authentication
|
|
436
|
-
Progress: ████████████████████░░ 85% (11/13 stories)
|
|
437
|
-
Status: 🟢 On track
|
|
438
|
-
Velocity: 2.5 stories/week
|
|
439
|
-
ETA: ~1 week
|
|
440
|
-
|
|
441
|
-
EP-0011: Payment Processing
|
|
442
|
-
Progress: ████████░░ 40% (4/10 stories)
|
|
443
|
-
Status: 🟡 At risk (2 blocked)
|
|
444
|
-
Velocity: 1.2 stories/week
|
|
445
|
-
ETA: ~5 weeks
|
|
446
|
-
⚠️ Action: Unblock US-0045, US-0048
|
|
447
|
-
|
|
448
|
-
EP-0012: User Dashboard
|
|
449
|
-
Progress: ██░░ 10% (1/10 stories)
|
|
450
|
-
Status: 🟢 Healthy
|
|
451
|
-
Velocity: 0.5 stories/week (just started)
|
|
452
|
-
ETA: ~18 weeks
|
|
453
|
-
```
|
|
454
|
-
|
|
455
|
-
ADVANCED METRICS
|
|
456
|
-
|
|
457
|
-
### 7. Estimation Accuracy
|
|
458
|
-
**Definition**: Compare estimates vs actual cycle time
|
|
459
|
-
|
|
460
|
-
```bash
|
|
461
|
-
for story in completed_stories; do
|
|
462
|
-
estimate=$(grep "^estimate:" docs/06-stories/*/$story.md | awk '{print $2}' | sed 's/d//')
|
|
463
|
-
actual=$(calculate_cycle_time $story)
|
|
464
|
-
variance=$((actual - estimate))
|
|
465
|
-
echo "$story: Est $estimate, Act $actual, Var $variance"
|
|
466
|
-
done
|
|
467
|
-
|
|
468
|
-
avg_variance=$(echo "$variances" | awk '{sum+=$1; count++} END {print sum/count}')
|
|
469
|
-
```
|
|
470
|
-
|
|
471
|
-
**Output**:
|
|
472
|
-
```
|
|
473
|
-
Estimation Accuracy
|
|
474
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
475
|
-
Average Variance: +0.5 days (underestimating by 15%)
|
|
476
|
-
|
|
477
|
-
Distribution:
|
|
478
|
-
Under-estimated ████████████░░ 12 stories (48%)
|
|
479
|
-
Accurate (±20%) ████████░░ 8 stories (32%)
|
|
480
|
-
Over-estimated ████░░ 5 stories (20%)
|
|
481
|
-
|
|
482
|
-
Worst Offenders:
|
|
483
|
-
US-0042: Est 2d, Act 5d (+150%)
|
|
484
|
-
US-0035: Est 1d, Act 3d (+200%)
|
|
485
|
-
|
|
486
|
-
Best Estimates:
|
|
487
|
-
US-0038: Est 3d, Act 3d (0%)
|
|
488
|
-
US-0040: Est 2d, Act 2d (0%)
|
|
489
|
-
|
|
490
|
-
Recommendation: Increase estimates by ~20% for accuracy
|
|
491
|
-
```
|
|
492
|
-
|
|
493
|
-
### 8. Blocked Story Analysis
|
|
494
|
-
**Definition**: Identify blocking patterns
|
|
495
|
-
|
|
496
|
-
```bash
|
|
497
|
-
blocked_stories=$(jq -r '.stories | to_entries[] | select(.value.status=="blocked")' status.json)
|
|
498
|
-
|
|
499
|
-
for story in blocked_stories; do
|
|
500
|
-
blocked_duration=$(date_diff $(get_blocked_timestamp $story) $(date +%s))
|
|
501
|
-
echo "$story: Blocked for $blocked_duration days"
|
|
502
|
-
done
|
|
503
|
-
```
|
|
504
|
-
|
|
505
|
-
**Output**:
|
|
506
|
-
```
|
|
507
|
-
Blocked Story Analysis
|
|
508
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
509
|
-
Currently Blocked: 2 stories
|
|
510
|
-
|
|
511
|
-
US-0045: Payment gateway integration
|
|
512
|
-
Blocked: 5 days
|
|
513
|
-
Reason: Waiting for API keys
|
|
514
|
-
Owner: AG-API
|
|
515
|
-
Impact: Blocks EP-0011 (40% complete)
|
|
516
|
-
Action: Escalate to product for API access
|
|
517
|
-
|
|
518
|
-
US-0048: Stripe webhook setup
|
|
519
|
-
Blocked: 2 days
|
|
520
|
-
Reason: Depends on US-0045
|
|
521
|
-
Owner: AG-API
|
|
522
|
-
Impact: Delays payment epic by 1 week
|
|
523
|
-
Action: Can unblock after US-0045
|
|
524
|
-
|
|
525
|
-
⚠️ Critical: 2 stories blocked > 2 days. Review immediately.
|
|
526
|
-
```
|
|
527
|
-
|
|
528
|
-
### 9. Flow Efficiency
|
|
529
|
-
**Definition**: Active work time / total lead time
|
|
530
|
-
|
|
531
|
-
```bash
|
|
532
|
-
for story in stories; do
|
|
533
|
-
lead_time=$(calculate_lead_time $story)
|
|
534
|
-
cycle_time=$(calculate_cycle_time $story)
|
|
535
|
-
flow_efficiency=$((cycle_time * 100 / lead_time))
|
|
536
|
-
echo "$story: $flow_efficiency% efficiency"
|
|
537
|
-
done
|
|
538
|
-
|
|
539
|
-
avg_efficiency=$(echo "$efficiencies" | awk '{sum+=$1; count++} END {print sum/count}')
|
|
540
|
-
```
|
|
541
|
-
|
|
542
|
-
**Output**:
|
|
543
|
-
```
|
|
544
|
-
Flow Efficiency
|
|
545
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
546
|
-
Average: 41% (3.2d active / 7.8d total)
|
|
547
|
-
|
|
548
|
-
Interpretation:
|
|
549
|
-
Stories spend 59% of time waiting (in 'ready' or 'in-review')
|
|
550
|
-
Only 41% of time is active work
|
|
551
|
-
|
|
552
|
-
Breakdown:
|
|
553
|
-
Ready → In-Progress: 2.5 days avg wait
|
|
554
|
-
In-Progress → Done: 3.2 days avg work
|
|
555
|
-
In-Review → Done: 2.1 days avg review
|
|
556
|
-
|
|
557
|
-
Recommendations:
|
|
558
|
-
🎯 Reduce "ready" wait time (start stories faster)
|
|
559
|
-
🎯 Reduce "in-review" time (faster code reviews)
|
|
560
|
-
Target: >60% flow efficiency
|
|
561
|
-
```
|
|
562
|
-
|
|
563
|
-
### 10. Cumulative Flow Diagram (CFD)
|
|
564
|
-
**Definition**: Stacked area chart showing story distribution over time
|
|
565
|
-
|
|
566
|
-
```bash
|
|
567
|
-
# Generate data for each day in timeframe
|
|
568
|
-
for day in $(seq 0 30); do
|
|
569
|
-
date=$(date -d "$day days ago" +%Y-%m-%d)
|
|
570
|
-
|
|
571
|
-
ready=$(count_stories_in_status_on_date "ready" $date)
|
|
572
|
-
in_progress=$(count_stories_in_status_on_date "in-progress" $date)
|
|
573
|
-
in_review=$(count_stories_in_status_on_date "in-review" $date)
|
|
574
|
-
done=$(count_stories_in_status_on_date "done" $date)
|
|
575
|
-
|
|
576
|
-
echo "$date $ready $in_progress $in_review $done"
|
|
577
|
-
done
|
|
578
|
-
```
|
|
579
|
-
|
|
580
|
-
**Output (ASCII visualization)**:
|
|
581
|
-
```
|
|
582
|
-
Cumulative Flow Diagram (Last 30 Days)
|
|
583
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
584
|
-
30 │ ████████████ Done
|
|
585
|
-
25 │ ████████████████████
|
|
586
|
-
20 │ ████████████████████████████
|
|
587
|
-
15 │ ████████████████████████████████████ In Review
|
|
588
|
-
10 │ ████████████████████████████████████████████ In Progress
|
|
589
|
-
5 │██████████████████████████████████████████████████ Ready
|
|
590
|
-
0 └────────────────────────────────────────────────→
|
|
591
|
-
Oct 17 Oct 24 Oct 31 Nov 7 Nov 14
|
|
592
|
-
|
|
593
|
-
Insights:
|
|
594
|
-
✅ Steady throughput (done stories increasing linearly)
|
|
595
|
-
⚠️ WIP creeping up (in-progress growing)
|
|
596
|
-
🎯 Review bottleneck (in-review staying constant)
|
|
597
|
-
```
|
|
598
|
-
|
|
599
|
-
DASHBOARD OUTPUT
|
|
600
|
-
|
|
601
|
-
### ASCII Dashboard (default)
|
|
602
|
-
```markdown
|
|
603
|
-
╔════════════════════════════════════════════════════════════════╗
|
|
604
|
-
║ AGILEFLOW METRICS DASHBOARD ║
|
|
605
|
-
║ Last 30 Days (Oct 17 - Nov 14) ║
|
|
606
|
-
╠════════════════════════════════════════════════════════════════╣
|
|
607
|
-
║ ║
|
|
608
|
-
║ 📊 KEY METRICS ║
|
|
609
|
-
║ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ║
|
|
610
|
-
║ ║
|
|
611
|
-
║ Cycle Time: 3.2 days avg (↓ 8% vs last month) ║
|
|
612
|
-
║ Lead Time: 7.8 days avg (↑ 5% vs last month) ║
|
|
613
|
-
║ Throughput: 8.5 stories/week (↗ +12%) ║
|
|
614
|
-
║ Flow Efficiency: 41% (Target: >60%) ║
|
|
615
|
-
║ ║
|
|
616
|
-
║ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ║
|
|
617
|
-
║ ║
|
|
618
|
-
║ 🎯 WORK IN PROGRESS ║
|
|
619
|
-
║ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ║
|
|
620
|
-
║ ║
|
|
621
|
-
║ Current WIP: 4 / 6 stories (67%) ✅ ║
|
|
622
|
-
║ Blocked: 2 stories ⚠️ ║
|
|
623
|
-
║ ║
|
|
624
|
-
║ AG-API: 2 stories (at limit) ║
|
|
625
|
-
║ AG-UI: 1 story ║
|
|
626
|
-
║ AG-CI: 1 story ║
|
|
627
|
-
║ AG-DEVOPS: 0 stories ║
|
|
628
|
-
║ ║
|
|
629
|
-
║ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ║
|
|
630
|
-
║ ║
|
|
631
|
-
║ 📈 EPIC HEALTH ║
|
|
632
|
-
║ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ║
|
|
633
|
-
║ ║
|
|
634
|
-
║ EP-0010 ████████████████████░░ 85% 🟢 On track ║
|
|
635
|
-
║ EP-0011 ████████░░ 40% 🟡 2 blocked ║
|
|
636
|
-
║ EP-0012 ██░░ 10% 🟢 Healthy ║
|
|
637
|
-
║ ║
|
|
638
|
-
║ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ║
|
|
639
|
-
║ ║
|
|
640
|
-
║ ⚡ RECOMMENDATIONS ║
|
|
641
|
-
║ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ║
|
|
642
|
-
║ ║
|
|
643
|
-
║ 1. Unblock US-0045, US-0048 (blocked >2 days) ║
|
|
644
|
-
║ 2. Reduce review time (currently 2.1 days avg) ║
|
|
645
|
-
║ 3. Assign more stories to AG-DEVOPS (0 active) ║
|
|
646
|
-
║ 4. Improve estimation accuracy (+15% variance) ║
|
|
647
|
-
║ ║
|
|
648
|
-
╚════════════════════════════════════════════════════════════════╝
|
|
649
|
-
|
|
650
|
-
Run `/agileflow:velocity` for forecasting
|
|
651
|
-
Run `/agileflow:board` for current kanban view
|
|
652
|
-
Run `/agileflow:retro` for retrospective insights
|
|
653
|
-
```
|
|
654
|
-
|
|
655
|
-
EXPORT FORMATS
|
|
656
|
-
|
|
657
|
-
### JSON Export
|
|
658
|
-
```json
|
|
659
|
-
{
|
|
660
|
-
"timeframe": "30d",
|
|
661
|
-
"generated_at": "2025-10-17T15:00:00Z",
|
|
662
|
-
"metrics": {
|
|
663
|
-
"cycle_time": {
|
|
664
|
-
"avg": 3.2,
|
|
665
|
-
"median": 2.5,
|
|
666
|
-
"p85": 5.0,
|
|
667
|
-
"unit": "days",
|
|
668
|
-
"change_pct": -8
|
|
669
|
-
},
|
|
670
|
-
"lead_time": {
|
|
671
|
-
"avg": 7.8,
|
|
672
|
-
"median": 6.0,
|
|
673
|
-
"p85": 12.0,
|
|
674
|
-
"unit": "days",
|
|
675
|
-
"change_pct": 5
|
|
676
|
-
},
|
|
677
|
-
"throughput": {
|
|
678
|
-
"avg": 8.5,
|
|
679
|
-
"unit": "stories/week",
|
|
680
|
-
"change_pct": 12,
|
|
681
|
-
"trend": "up"
|
|
682
|
-
},
|
|
683
|
-
"wip": {
|
|
684
|
-
"current": 4,
|
|
685
|
-
"limit": 6,
|
|
686
|
-
"pct": 67,
|
|
687
|
-
"blocked": 2
|
|
688
|
-
},
|
|
689
|
-
"thread_distribution": {
|
|
690
|
-
"base": {"count": 13, "pct": 65, "avg_duration_min": 45, "stories_per_session": 8},
|
|
691
|
-
"parallel": {"count": 5, "pct": 25, "avg_duration_min": 150, "stories_per_session": 12},
|
|
692
|
-
"chained": {"count": 1, "pct": 5, "avg_duration_min": 180, "stories_per_session": 15},
|
|
693
|
-
"fusion": {"count": 1, "pct": 5, "avg_duration_min": 30, "decisions_per_session": 1},
|
|
694
|
-
"big": {"count": 0, "pct": 0},
|
|
695
|
-
"long": {"count": 0, "pct": 0},
|
|
696
|
-
"trend": "parallel_increasing",
|
|
697
|
-
"change_pct": 15
|
|
698
|
-
}
|
|
699
|
-
},
|
|
700
|
-
"epics": [...],
|
|
701
|
-
"recommendations": [...]
|
|
702
|
-
}
|
|
703
|
-
```
|
|
704
|
-
|
|
705
|
-
### CSV Export
|
|
706
|
-
```csv
|
|
707
|
-
Date,Cycle Time,Lead Time,Throughput,WIP,Blocked
|
|
708
|
-
2025-10-17,3.2,7.8,8.5,4,2
|
|
709
|
-
2025-10-16,3.1,7.5,8.2,5,1
|
|
710
|
-
...
|
|
711
|
-
```
|
|
712
|
-
|
|
713
|
-
USAGE EXAMPLES
|
|
714
|
-
|
|
715
|
-
### View all metrics for last 30 days
|
|
716
|
-
```bash
|
|
717
|
-
/agileflow:metrics
|
|
718
|
-
```
|
|
719
|
-
|
|
720
|
-
### Last 90 days, specific epic
|
|
721
|
-
```bash
|
|
722
|
-
/agileflow:metrics TIMEFRAME=90d EPIC=EP-0010
|
|
723
|
-
```
|
|
724
|
-
|
|
725
|
-
### Only cycle time, export as JSON
|
|
726
|
-
```bash
|
|
727
|
-
/agileflow:metrics METRIC=cycle-time FORMAT=json
|
|
728
|
-
```
|
|
729
|
-
|
|
730
|
-
### Agent-specific metrics
|
|
731
|
-
```bash
|
|
732
|
-
/agileflow:metrics OWNER=AG-API TIMEFRAME=7d
|
|
733
|
-
```
|
|
734
|
-
|
|
735
|
-
### Export to CSV for spreadsheet analysis
|
|
736
|
-
```bash
|
|
737
|
-
/agileflow:metrics FORMAT=csv > metrics.csv
|
|
738
|
-
```
|
|
739
|
-
|
|
740
|
-
INTEGRATION WITH OTHER COMMANDS
|
|
741
|
-
|
|
742
|
-
- After `/agileflow:velocity`: Run `/agileflow:metrics` to see detailed trends
|
|
743
|
-
- After `/agileflow:board`: Run `/agileflow:metrics` to understand bottlenecks
|
|
744
|
-
- Before `/agileflow:retro`: Run `/agileflow:metrics` to gather data for retrospective
|
|
745
|
-
- In `/agileflow:babysit`: Auto-run `/agileflow:metrics` when velocity drops
|
|
746
|
-
|
|
747
|
-
RULES
|
|
748
|
-
- Always calculate from raw data (bus/log.jsonl, status.json)
|
|
749
|
-
- Show trends (↗↘) compared to previous period
|
|
750
|
-
- Highlight actionable insights
|
|
751
|
-
- Use color coding (🟢🟡🔴) for health indicators
|
|
752
|
-
- Provide recommendations based on data
|
|
753
|
-
- Respect privacy (no individual developer metrics, only agent-level)
|
|
754
|
-
|
|
755
|
-
OUTPUT
|
|
756
|
-
- ASCII dashboard (default, shown above)
|
|
757
|
-
- Or JSON/CSV/Markdown based on FORMAT parameter
|
|
758
|
-
- Always include timeframe and generation timestamp
|
|
759
|
-
- Save to docs/08-project/metrics-reports/metrics-YYYYMMDD.md (optional)
|
|
760
|
-
|
|
761
|
-
---
|
|
762
|
-
|
|
763
|
-
## Expected Output
|
|
764
|
-
|
|
765
|
-
### Success - Metrics Dashboard
|
|
766
|
-
|
|
767
|
-
```
|
|
768
|
-
📊 AgileFlow Metrics Dashboard
|
|
769
|
-
══════════════════════════════════════════════════════════════
|
|
770
|
-
Period: 2026-01-22 to 2026-01-29 (7 days)
|
|
771
|
-
|
|
772
|
-
🎯 VELOCITY
|
|
773
|
-
┌────────────────────────────────────────────────────────────┐
|
|
774
|
-
│ Stories Completed: 12 │
|
|
775
|
-
│ Story Points: 34 │
|
|
776
|
-
│ Average: 4.9 stories/week │
|
|
777
|
-
│ Trend: ↑ 15% from previous week │
|
|
778
|
-
└────────────────────────────────────────────────────────────┘
|
|
779
|
-
|
|
780
|
-
⏱️ CYCLE TIME
|
|
781
|
-
┌────────────────────────────────────────────────────────────┐
|
|
782
|
-
│ Average: 2.3 days │
|
|
783
|
-
│ Median: 1.8 days │
|
|
784
|
-
│ P95: 4.1 days │
|
|
785
|
-
│ Trend: ↓ 10% (improving) │
|
|
786
|
-
└────────────────────────────────────────────────────────────┘
|
|
787
|
-
|
|
788
|
-
📋 WORK DISTRIBUTION
|
|
789
|
-
│ By Status: │ By Owner: │
|
|
790
|
-
│ ✅ Done: 24 (72%) │ AG-API: 12 stories │
|
|
791
|
-
│ 🔄 In Progress: 3 │ AG-UI: 8 stories │
|
|
792
|
-
│ 📋 Ready: 5 │ AG-DEVOPS: 7 stories │
|
|
793
|
-
│ 🚧 Blocked: 1 │ AG-CI: 6 stories │
|
|
794
|
-
|
|
795
|
-
🧪 QUALITY
|
|
796
|
-
│ Test Pass Rate: 98.5% │
|
|
797
|
-
│ Coverage: 82% │
|
|
798
|
-
│ Bugs Found: 2 (both fixed) │
|
|
799
|
-
|
|
800
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
801
|
-
Health Score: 🟢 92/100 (Excellent)
|
|
802
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
803
|
-
|
|
804
|
-
Insights:
|
|
805
|
-
- Velocity up 15% - team is hitting stride
|
|
806
|
-
- 1 blocked story needs attention (US-0055)
|
|
807
|
-
- Consider adding capacity to AG-CI (backlog growing)
|
|
808
|
-
```
|
|
809
|
-
|
|
810
|
-
### Success - Export to JSON
|
|
811
|
-
|
|
812
|
-
```
|
|
813
|
-
📊 Metrics exported to: docs/08-project/metrics-2026-01-29.json
|
|
814
|
-
|
|
815
|
-
{
|
|
816
|
-
"period": { "start": "2026-01-22", "end": "2026-01-29" },
|
|
817
|
-
"velocity": { "stories": 12, "points": 34, "trend": 0.15 },
|
|
818
|
-
"cycleTime": { "average": 2.3, "median": 1.8, "p95": 4.1 },
|
|
819
|
-
"health": 92
|
|
820
|
-
}
|
|
821
|
-
```
|
|
822
|
-
|
|
823
|
-
### Error - No Data Available
|
|
824
|
-
|
|
825
|
-
```
|
|
826
|
-
⚠️ Insufficient data for metrics
|
|
827
|
-
|
|
828
|
-
No completed stories in the selected period.
|
|
829
|
-
|
|
830
|
-
Try:
|
|
831
|
-
- Expand date range: PERIOD=30d
|
|
832
|
-
- Check status.json has story history
|
|
833
|
-
- Run /agileflow:status to record completions
|
|
834
|
-
```
|
|
835
|
-
|
|
836
|
-
---
|
|
837
|
-
|
|
838
|
-
## Related Commands
|
|
839
|
-
|
|
840
|
-
- `/agileflow:velocity` - Track velocity and forecast capacity
|
|
841
|
-
- `/agileflow:sprint` - Sprint planning
|
|
842
|
-
- `/agileflow:retro` - Sprint retrospective
|
|
843
|
-
- `/agileflow:board` - Kanban board view
|
|
844
|
-
- `/agileflow:deps` - Dependency visualization
|