agileflow 3.3.0 → 3.4.1
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 +10 -0
- package/README.md +6 -6
- package/lib/skill-loader.js +0 -1
- package/package.json +1 -1
- package/scripts/agileflow-statusline.sh +81 -0
- package/scripts/agileflow-welcome.js +79 -0
- package/scripts/claude-tmux.sh +90 -23
- package/scripts/claude-watchdog.sh +225 -0
- package/scripts/generators/agent-registry.js +14 -1
- package/scripts/generators/inject-babysit.js +22 -9
- package/scripts/generators/inject-help.js +19 -9
- package/scripts/lib/ac-test-matcher.js +452 -0
- package/scripts/lib/audit-cleanup.js +250 -0
- package/scripts/lib/audit-registry.js +304 -0
- package/scripts/lib/configure-features.js +35 -0
- package/scripts/lib/feature-catalog.js +3 -3
- package/scripts/lib/gate-enforcer.js +295 -0
- package/scripts/lib/model-profiles.js +118 -0
- package/scripts/lib/quality-gates.js +163 -0
- package/scripts/lib/signal-detectors.js +44 -1
- package/scripts/lib/skill-catalog.js +557 -0
- package/scripts/lib/skill-recommender.js +311 -0
- package/scripts/lib/status-writer.js +255 -0
- package/scripts/lib/story-claiming.js +128 -45
- package/scripts/lib/task-sync.js +32 -38
- package/scripts/lib/tdd-phase-manager.js +455 -0
- package/scripts/lib/team-events.js +34 -3
- package/scripts/lib/tmux-audit-monitor.js +611 -0
- package/scripts/lib/tmux-group-colors.js +113 -0
- package/scripts/lib/tool-registry.yaml +241 -0
- package/scripts/lib/tool-shed.js +441 -0
- package/scripts/messaging-bridge.js +209 -1
- package/scripts/native-team-observer.js +219 -0
- package/scripts/obtain-context.js +14 -0
- package/scripts/ralph-loop.js +30 -5
- package/scripts/smart-detect.js +21 -0
- package/scripts/spawn-audit-sessions.js +877 -0
- package/scripts/team-manager.js +56 -16
- package/scripts/tmux-close-windows.sh +180 -0
- package/src/core/agents/a11y-analyzer-aria.md +155 -0
- package/src/core/agents/a11y-analyzer-forms.md +162 -0
- package/src/core/agents/a11y-analyzer-keyboard.md +175 -0
- package/src/core/agents/a11y-analyzer-semantic.md +153 -0
- package/src/core/agents/a11y-analyzer-visual.md +158 -0
- package/src/core/agents/a11y-consensus.md +248 -0
- package/src/core/agents/ads-audit-budget.md +181 -0
- package/src/core/agents/ads-audit-compliance.md +169 -0
- package/src/core/agents/ads-audit-creative.md +164 -0
- package/src/core/agents/ads-audit-google.md +226 -0
- package/src/core/agents/ads-audit-meta.md +183 -0
- package/src/core/agents/ads-audit-tracking.md +197 -0
- package/src/core/agents/ads-consensus.md +396 -0
- package/src/core/agents/ads-generate.md +145 -0
- package/src/core/agents/ads-performance-tracker.md +197 -0
- package/src/core/agents/api-quality-analyzer-conventions.md +148 -0
- package/src/core/agents/api-quality-analyzer-docs.md +176 -0
- package/src/core/agents/api-quality-analyzer-errors.md +183 -0
- package/src/core/agents/api-quality-analyzer-pagination.md +171 -0
- package/src/core/agents/api-quality-analyzer-versioning.md +143 -0
- package/src/core/agents/api-quality-consensus.md +214 -0
- package/src/core/agents/arch-analyzer-circular.md +148 -0
- package/src/core/agents/arch-analyzer-complexity.md +171 -0
- package/src/core/agents/arch-analyzer-coupling.md +146 -0
- package/src/core/agents/arch-analyzer-layering.md +151 -0
- package/src/core/agents/arch-analyzer-patterns.md +162 -0
- package/src/core/agents/arch-consensus.md +227 -0
- package/src/core/agents/brainstorm-analyzer-features.md +169 -0
- package/src/core/agents/brainstorm-analyzer-growth.md +161 -0
- package/src/core/agents/brainstorm-analyzer-integration.md +172 -0
- package/src/core/agents/brainstorm-analyzer-market.md +147 -0
- package/src/core/agents/brainstorm-analyzer-ux.md +167 -0
- package/src/core/agents/brainstorm-consensus.md +237 -0
- package/src/core/agents/completeness-consensus.md +5 -5
- package/src/core/agents/perf-consensus.md +2 -2
- package/src/core/agents/security-consensus.md +2 -2
- package/src/core/agents/seo-analyzer-content.md +167 -0
- package/src/core/agents/seo-analyzer-images.md +187 -0
- package/src/core/agents/seo-analyzer-performance.md +206 -0
- package/src/core/agents/seo-analyzer-schema.md +176 -0
- package/src/core/agents/seo-analyzer-sitemap.md +172 -0
- package/src/core/agents/seo-analyzer-technical.md +144 -0
- package/src/core/agents/seo-consensus.md +289 -0
- package/src/core/agents/test-consensus.md +2 -2
- package/src/core/commands/adr.md +1 -0
- package/src/core/commands/ads/audit.md +375 -0
- package/src/core/commands/ads/budget.md +97 -0
- package/src/core/commands/ads/competitor.md +112 -0
- package/src/core/commands/ads/creative.md +85 -0
- package/src/core/commands/ads/generate.md +238 -0
- package/src/core/commands/ads/google.md +112 -0
- package/src/core/commands/ads/health.md +327 -0
- package/src/core/commands/ads/landing.md +119 -0
- package/src/core/commands/ads/linkedin.md +112 -0
- package/src/core/commands/ads/meta.md +91 -0
- package/src/core/commands/ads/microsoft.md +115 -0
- package/src/core/commands/ads/plan.md +321 -0
- package/src/core/commands/ads/test-plan.md +317 -0
- package/src/core/commands/ads/tiktok.md +129 -0
- package/src/core/commands/ads/track.md +288 -0
- package/src/core/commands/ads/youtube.md +124 -0
- package/src/core/commands/ads.md +140 -0
- package/src/core/commands/assign.md +1 -0
- package/src/core/commands/audit.md +43 -6
- package/src/core/commands/babysit.md +315 -1266
- package/src/core/commands/baseline.md +1 -0
- package/src/core/commands/blockers.md +1 -0
- package/src/core/commands/board.md +1 -0
- package/src/core/commands/changelog.md +1 -0
- package/src/core/commands/choose.md +1 -0
- package/src/core/commands/ci.md +1 -0
- package/src/core/commands/code/accessibility.md +347 -0
- package/src/core/commands/code/api.md +297 -0
- package/src/core/commands/code/architecture.md +297 -0
- package/src/core/commands/{audit → code}/completeness.md +72 -25
- package/src/core/commands/{audit → code}/legal.md +63 -16
- package/src/core/commands/{audit → code}/logic.md +64 -16
- package/src/core/commands/{audit → code}/performance.md +67 -20
- package/src/core/commands/{audit → code}/security.md +69 -19
- package/src/core/commands/{audit → code}/test.md +67 -20
- package/src/core/commands/configure.md +1 -0
- package/src/core/commands/council.md +1 -0
- package/src/core/commands/deploy.md +1 -0
- package/src/core/commands/diagnose.md +1 -0
- package/src/core/commands/docs.md +1 -0
- package/src/core/commands/epic/edit.md +213 -0
- package/src/core/commands/epic.md +1 -0
- package/src/core/commands/export.md +238 -0
- package/src/core/commands/help.md +16 -1
- package/src/core/commands/{discovery → ideate}/brief.md +12 -12
- package/src/core/commands/{discovery/new.md → ideate/discover.md} +20 -16
- package/src/core/commands/ideate/features.md +496 -0
- package/src/core/commands/ideate/new.md +158 -124
- package/src/core/commands/impact.md +1 -0
- package/src/core/commands/learn/explain.md +118 -0
- package/src/core/commands/learn/glossary.md +135 -0
- package/src/core/commands/learn/patterns.md +138 -0
- package/src/core/commands/learn/tour.md +126 -0
- package/src/core/commands/migrate/codemods.md +151 -0
- package/src/core/commands/migrate/plan.md +131 -0
- package/src/core/commands/migrate/scan.md +114 -0
- package/src/core/commands/migrate/validate.md +119 -0
- package/src/core/commands/multi-expert.md +1 -0
- package/src/core/commands/pr.md +1 -0
- package/src/core/commands/review.md +1 -0
- package/src/core/commands/seo/audit.md +373 -0
- package/src/core/commands/seo/competitor.md +174 -0
- package/src/core/commands/seo/content.md +107 -0
- package/src/core/commands/seo/geo.md +229 -0
- package/src/core/commands/seo/hreflang.md +140 -0
- package/src/core/commands/seo/images.md +96 -0
- package/src/core/commands/seo/page.md +198 -0
- package/src/core/commands/seo/plan.md +163 -0
- package/src/core/commands/seo/programmatic.md +131 -0
- package/src/core/commands/seo/references/cwv-thresholds.md +64 -0
- package/src/core/commands/seo/references/eeat-framework.md +110 -0
- package/src/core/commands/seo/references/quality-gates.md +91 -0
- package/src/core/commands/seo/references/schema-types.md +102 -0
- package/src/core/commands/seo/schema.md +183 -0
- package/src/core/commands/seo/sitemap.md +97 -0
- package/src/core/commands/seo/technical.md +100 -0
- package/src/core/commands/seo.md +107 -0
- package/src/core/commands/skill/list.md +68 -212
- package/src/core/commands/skill/recommend.md +216 -0
- package/src/core/commands/sprint.md +1 -0
- package/src/core/commands/status/undo.md +191 -0
- package/src/core/commands/status.md +1 -0
- package/src/core/commands/story/edit.md +204 -0
- package/src/core/commands/story/view.md +29 -7
- package/src/core/commands/story-validate.md +1 -0
- package/src/core/commands/story.md +1 -0
- package/src/core/commands/tdd-next.md +238 -0
- package/src/core/commands/tdd.md +211 -0
- package/src/core/commands/team/start.md +10 -6
- package/src/core/commands/tests.md +1 -0
- package/src/core/commands/verify.md +27 -1
- package/src/core/commands/workflow.md +2 -0
- package/src/core/experts/_core-expertise.yaml +105 -0
- package/src/core/experts/analytics/expertise.yaml +5 -99
- package/src/core/experts/codebase-query/expertise.yaml +3 -72
- package/src/core/experts/compliance/expertise.yaml +6 -72
- package/src/core/experts/database/expertise.yaml +9 -52
- package/src/core/experts/documentation/expertise.yaml +7 -140
- package/src/core/experts/integrations/expertise.yaml +7 -127
- package/src/core/experts/mentor/expertise.yaml +8 -35
- package/src/core/experts/monitoring/expertise.yaml +7 -49
- package/src/core/experts/performance/expertise.yaml +1 -26
- package/src/core/experts/security/expertise.yaml +9 -34
- package/src/core/experts/ui/expertise.yaml +6 -36
- package/src/core/knowledge/ads/ad-audit-checklist-scoring.md +424 -0
- package/src/core/knowledge/ads/ad-optimization-logic.md +590 -0
- package/src/core/knowledge/ads/ad-technical-specifications.md +385 -0
- package/src/core/knowledge/ads/definitive-advertising-reference-2026.md +506 -0
- package/src/core/knowledge/ads/paid-advertising-research-2026.md +445 -0
- package/src/core/teams/backend.json +41 -0
- package/src/core/teams/frontend.json +41 -0
- package/src/core/teams/qa.json +41 -0
- package/src/core/teams/solo.json +35 -0
- package/src/core/templates/agileflow-metadata.json +20 -1
- package/tools/cli/commands/setup.js +85 -3
- package/tools/cli/commands/update.js +42 -0
- package/tools/cli/installers/ide/_base-ide.js +42 -5
- package/tools/cli/installers/ide/claude-code.js +71 -3
- package/tools/cli/lib/content-injector.js +160 -12
- package/tools/cli/lib/docs-setup.js +1 -1
- package/src/core/commands/skill/create.md +0 -698
- package/src/core/commands/skill/delete.md +0 -316
- package/src/core/commands/skill/edit.md +0 -359
- package/src/core/commands/skill/test.md +0 -394
- package/src/core/commands/skill/upgrade.md +0 -552
- package/src/core/templates/skill-template.md +0 -117
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: Multi-agent security vulnerability analysis with consensus voting for finding exploitable weaknesses
|
|
3
|
-
argument-hint: "[file|directory] [DEPTH=quick|deep] [FOCUS=injection|auth|authz|secrets|input|deps|infra|api|all]"
|
|
3
|
+
argument-hint: "[file|directory] [DEPTH=quick|deep|ultradeep|extreme] [FOCUS=injection|auth|authz|secrets|input|deps|infra|api|all] [MODEL=haiku|sonnet|opus]"
|
|
4
4
|
compact_context:
|
|
5
5
|
priority: high
|
|
6
6
|
preserve_rules:
|
|
7
|
-
- "ACTIVE COMMAND: /agileflow:
|
|
7
|
+
- "ACTIVE COMMAND: /agileflow:code:security - Multi-agent security vulnerability analysis"
|
|
8
8
|
- "CRITICAL: Deploy analyzers IN PARALLEL in ONE message with multiple Task calls"
|
|
9
9
|
- "CRITICAL: Wait for all results before running consensus (use TaskOutput with block=true)"
|
|
10
10
|
- "CRITICAL: Confidence scoring: CONFIRMED (2+ agree), LIKELY (1 with evidence), INVESTIGATE (1 weak)"
|
|
11
|
-
- "MUST parse arguments: TARGET (file/dir), DEPTH (quick/deep), FOCUS (injection|auth|authz|secrets|input|deps|infra|api|all)"
|
|
11
|
+
- "MUST parse arguments: TARGET (file/dir), DEPTH (quick/deep/ultradeep), FOCUS (injection|auth|authz|secrets|input|deps|infra|api|all)"
|
|
12
12
|
- "Pass consensus all analyzer outputs, let it synthesize the final report"
|
|
13
13
|
state_fields:
|
|
14
14
|
- target_path
|
|
@@ -18,7 +18,7 @@ compact_context:
|
|
|
18
18
|
- findings_collected
|
|
19
19
|
---
|
|
20
20
|
|
|
21
|
-
# /agileflow:
|
|
21
|
+
# /agileflow:code:security
|
|
22
22
|
|
|
23
23
|
Deploy multiple specialized security vulnerability analyzers in parallel to find exploitable weaknesses, then synthesize results through consensus voting into a prioritized Security Audit Report.
|
|
24
24
|
|
|
@@ -27,11 +27,14 @@ Deploy multiple specialized security vulnerability analyzers in parallel to find
|
|
|
27
27
|
## Quick Reference
|
|
28
28
|
|
|
29
29
|
```
|
|
30
|
-
/agileflow:
|
|
31
|
-
/agileflow:
|
|
32
|
-
/agileflow:
|
|
33
|
-
/agileflow:
|
|
34
|
-
/agileflow:
|
|
30
|
+
/agileflow:code:security app/ # Analyze app directory (quick, core 5 analyzers)
|
|
31
|
+
/agileflow:code:security . DEPTH=deep # Deep analysis - all 8 analyzers
|
|
32
|
+
/agileflow:code:security src/ FOCUS=injection,auth # Focus on specific areas
|
|
33
|
+
/agileflow:code:security . DEPTH=deep FOCUS=all # Comprehensive full audit
|
|
34
|
+
/agileflow:code:security . DEPTH=ultradeep # Each analyzer in its own tmux session
|
|
35
|
+
/agileflow:code:security src/ MODEL=sonnet # Use Sonnet for all analyzers
|
|
36
|
+
/agileflow:code:security . DEPTH=ultradeep MODEL=opus # Ultradeep with Opus
|
|
37
|
+
/agileflow:code:security app/api/ FOCUS=api # Check API routes specifically
|
|
35
38
|
```
|
|
36
39
|
|
|
37
40
|
---
|
|
@@ -40,7 +43,7 @@ Deploy multiple specialized security vulnerability analyzers in parallel to find
|
|
|
40
43
|
|
|
41
44
|
```
|
|
42
45
|
┌─────────────────────────────────────────────────────────────┐
|
|
43
|
-
│ /agileflow:
|
|
46
|
+
│ /agileflow:code:security │
|
|
44
47
|
│ │
|
|
45
48
|
│ 1. Parse arguments (target, depth, focus) │
|
|
46
49
|
│ 2. Deploy analyzers IN PARALLEL │
|
|
@@ -73,8 +76,9 @@ Deploy multiple specialized security vulnerability analyzers in parallel to find
|
|
|
73
76
|
| Argument | Values | Default | Description |
|
|
74
77
|
|----------|--------|---------|-------------|
|
|
75
78
|
| TARGET | file/directory | `.` | What to analyze |
|
|
76
|
-
| DEPTH | quick, deep | quick | quick = core 5
|
|
79
|
+
| DEPTH | quick, deep, ultradeep | quick | quick = core 5, deep = all 8, ultradeep = separate tmux sessions |
|
|
77
80
|
| FOCUS | injection,auth,authz,secrets,input,deps,infra,api,all | all | Which analyzers to deploy |
|
|
81
|
+
| MODEL | haiku, sonnet, opus | haiku | Model for analyzer subagents. Default preserves existing behavior. |
|
|
78
82
|
|
|
79
83
|
---
|
|
80
84
|
|
|
@@ -107,6 +111,52 @@ FOCUS = all (default) or comma-separated list
|
|
|
107
111
|
**DEPTH behavior**:
|
|
108
112
|
- `quick` (default): Deploy core 5 analyzers. Focus on CRITICAL/HIGH issues only.
|
|
109
113
|
- `deep`: Deploy all 8 analyzers. Include MEDIUM/LOW findings.
|
|
114
|
+
- `ultradeep`: Spawn each analyzer as a separate Claude Code session in tmux. Requires tmux. Uses model profiles from metadata. Falls back to `deep` if tmux unavailable.
|
|
115
|
+
|
|
116
|
+
**ULTRADEEP mode** (DEPTH=ultradeep):
|
|
117
|
+
1. Show cost estimate:
|
|
118
|
+
```bash
|
|
119
|
+
node .agileflow/scripts/spawn-audit-sessions.js --audit=security --target=TARGET --focus=FOCUS --model=MODEL --dry-run
|
|
120
|
+
```
|
|
121
|
+
2. Confirm with user before launching
|
|
122
|
+
3. Spawn sessions (use `--json` to capture trace ID):
|
|
123
|
+
```bash
|
|
124
|
+
node .agileflow/scripts/spawn-audit-sessions.js --audit=security --target=TARGET --focus=FOCUS --model=MODEL --json
|
|
125
|
+
```
|
|
126
|
+
Parse the JSON output to get `traceId`. Example: `{"ok":true,"traceId":"abc123ef",...}`
|
|
127
|
+
4. Wait for all analyzers to complete:
|
|
128
|
+
```bash
|
|
129
|
+
node .agileflow/scripts/lib/tmux-audit-monitor.js wait TRACE_ID --timeout=1800
|
|
130
|
+
```
|
|
131
|
+
- Exit 0 = all complete (JSON results on stdout)
|
|
132
|
+
- Exit 1 = timeout (partial results on stdout, `missing` array shows what's left)
|
|
133
|
+
- To check progress without blocking: `node .agileflow/scripts/lib/tmux-audit-monitor.js status TRACE_ID`
|
|
134
|
+
- To retry stalled analyzers: `node .agileflow/scripts/lib/tmux-audit-monitor.js retry TRACE_ID`
|
|
135
|
+
5. Parse `results` array from the JSON output. Pass all findings to consensus coordinator (same as deep mode).
|
|
136
|
+
6. If tmux unavailable (spawn exits code 2), fall back to `DEPTH=deep` with warning
|
|
137
|
+
|
|
138
|
+
**EXTREME mode** (DEPTH=extreme):
|
|
139
|
+
Partition-based multi-agent audit. Instead of 1 analyzer per tmux window, the codebase is split into partitions and each partition runs ALL analyzers.
|
|
140
|
+
1. Scan the target directory to understand the codebase structure:
|
|
141
|
+
- Use Glob to find top-level source directories
|
|
142
|
+
- Group related directories into 3-7 logical partitions (coherent domains: auth, api, ui, etc.)
|
|
143
|
+
- If user provided PARTITIONS=N (a number), split into exactly N partitions
|
|
144
|
+
- If user provided PARTITIONS=dir1,dir2,dir3, use those exact directories
|
|
145
|
+
2. Show the partition plan and agent count to the user, confirm before launching:
|
|
146
|
+
Example: "5 partitions x 8 analyzers = 40 agents. Estimated cost: $X. Proceed?"
|
|
147
|
+
3. Spawn sessions with partitions:
|
|
148
|
+
```bash
|
|
149
|
+
node .agileflow/scripts/spawn-audit-sessions.js --audit=security --target=TARGET --depth=extreme --partitions=dir1,dir2,dir3 --model=MODEL --json
|
|
150
|
+
```
|
|
151
|
+
4. Wait and collect results (same as ultradeep - use tmux-audit-monitor.js)
|
|
152
|
+
5. Run consensus on combined results from all partitions
|
|
153
|
+
|
|
154
|
+
**PARTITIONS argument** (only used with DEPTH=extreme):
|
|
155
|
+
| Value | Behavior |
|
|
156
|
+
|-------|----------|
|
|
157
|
+
| Not set | AI decides partitions (3-7 based on codebase size) |
|
|
158
|
+
| `PARTITIONS=5` | AI creates exactly 5 partitions |
|
|
159
|
+
| `PARTITIONS=src/auth,src/api,lib` | Use these exact directories |
|
|
110
160
|
|
|
111
161
|
### STEP 2: Deploy Analyzers in Parallel
|
|
112
162
|
|
|
@@ -368,13 +418,13 @@ Total: 7 findings (2 false positives excluded)
|
|
|
368
418
|
<!-- COMPACT_SUMMARY_START -->
|
|
369
419
|
## Compact Summary
|
|
370
420
|
|
|
371
|
-
**Command**: `/agileflow:
|
|
421
|
+
**Command**: `/agileflow:code:security` - Multi-agent security vulnerability analysis with consensus
|
|
372
422
|
|
|
373
423
|
**Quick Usage**:
|
|
374
424
|
```
|
|
375
|
-
/agileflow:
|
|
376
|
-
/agileflow:
|
|
377
|
-
/agileflow:
|
|
425
|
+
/agileflow:code:security app/ # Quick scan (core 5 analyzers)
|
|
426
|
+
/agileflow:code:security . DEPTH=deep # All 8 analyzers
|
|
427
|
+
/agileflow:code:security src/ FOCUS=injection,auth # Specific areas
|
|
378
428
|
```
|
|
379
429
|
|
|
380
430
|
**What It Does**: Deploy security analyzers in parallel -> Each finds different vulnerability classes -> Consensus coordinator validates, filters by project type, maps to OWASP/CWE -> Actionable Security Audit Report
|
|
@@ -409,8 +459,8 @@ Total: 7 findings (2 false positives excluded)
|
|
|
409
459
|
|
|
410
460
|
## Boundary Rules (No Overlap)
|
|
411
461
|
|
|
412
|
-
- **vs
|
|
413
|
-
- **vs
|
|
462
|
+
- **vs code:logic**: No race conditions, type bugs, control flow, edge cases - those are logic domain
|
|
463
|
+
- **vs code:legal**: No breach notification, PCI-DSS compliance, encryption requirements, negligence liability - those are legal domain
|
|
414
464
|
- **vs security agent**: The `security.md` agent is a team member for story work. This is an on-demand analysis tool
|
|
415
465
|
|
|
416
466
|
---
|
|
@@ -436,8 +486,8 @@ Fix before merging? [Y/n]
|
|
|
436
486
|
|
|
437
487
|
## Related Commands
|
|
438
488
|
|
|
439
|
-
- `/agileflow:
|
|
440
|
-
- `/agileflow:
|
|
489
|
+
- `/agileflow:code:logic` - Logic bug analysis (similar architecture)
|
|
490
|
+
- `/agileflow:code:legal` - Legal compliance analysis (similar architecture)
|
|
441
491
|
- `/agileflow:review` - Code review (includes some security checks)
|
|
442
492
|
- `/agileflow:multi-expert` - General multi-expert analysis
|
|
443
493
|
- `/agileflow:verify` - Run tests
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: Multi-agent test quality analysis with consensus voting for finding test suite weaknesses
|
|
3
|
-
argument-hint: "[file|directory] [DEPTH=quick|deep] [FOCUS=coverage|fragility|mocking|assertions|structure|integration|maintenance|patterns|all]"
|
|
3
|
+
argument-hint: "[file|directory] [DEPTH=quick|deep|ultradeep|extreme] [FOCUS=coverage|fragility|mocking|assertions|structure|integration|maintenance|patterns|all] [MODEL=haiku|sonnet|opus]"
|
|
4
4
|
compact_context:
|
|
5
5
|
priority: high
|
|
6
6
|
preserve_rules:
|
|
7
|
-
- "ACTIVE COMMAND: /agileflow:
|
|
7
|
+
- "ACTIVE COMMAND: /agileflow:code:test - Multi-agent test quality analysis"
|
|
8
8
|
- "CRITICAL: Deploy analyzers IN PARALLEL in ONE message with multiple Task calls"
|
|
9
9
|
- "CRITICAL: Wait for all results before running consensus (use TaskOutput with block=true)"
|
|
10
10
|
- "CRITICAL: Confidence scoring: CONFIRMED (2+ agree), LIKELY (1 with evidence), INVESTIGATE (1 weak)"
|
|
11
|
-
- "MUST parse arguments: TARGET (file/dir), DEPTH (quick/deep), FOCUS (coverage|fragility|mocking|assertions|structure|integration|maintenance|patterns|all)"
|
|
11
|
+
- "MUST parse arguments: TARGET (file/dir), DEPTH (quick/deep/ultradeep), FOCUS (coverage|fragility|mocking|assertions|structure|integration|maintenance|patterns|all)"
|
|
12
12
|
- "Pass consensus all analyzer outputs, let it synthesize the final report"
|
|
13
13
|
state_fields:
|
|
14
14
|
- target_path
|
|
@@ -18,7 +18,7 @@ compact_context:
|
|
|
18
18
|
- findings_collected
|
|
19
19
|
---
|
|
20
20
|
|
|
21
|
-
# /agileflow:
|
|
21
|
+
# /agileflow:code:test
|
|
22
22
|
|
|
23
23
|
Deploy multiple specialized test quality analyzers in parallel to find weaknesses in the test suite, then synthesize results through consensus voting into a prioritized Test Quality Audit Report.
|
|
24
24
|
|
|
@@ -27,11 +27,11 @@ Deploy multiple specialized test quality analyzers in parallel to find weaknesse
|
|
|
27
27
|
## Quick Reference
|
|
28
28
|
|
|
29
29
|
```
|
|
30
|
-
/agileflow:
|
|
31
|
-
/agileflow:
|
|
32
|
-
/agileflow:
|
|
33
|
-
/agileflow:
|
|
34
|
-
/agileflow:
|
|
30
|
+
/agileflow:code:test app/ # Analyze app tests (quick, core 5 analyzers)
|
|
31
|
+
/agileflow:code:test . DEPTH=deep # Deep analysis - all 8 analyzers
|
|
32
|
+
/agileflow:code:test src/ FOCUS=coverage,mocking # Focus on specific areas
|
|
33
|
+
/agileflow:code:test . DEPTH=deep FOCUS=all # Comprehensive full audit
|
|
34
|
+
/agileflow:code:test __tests__/ FOCUS=fragility # Check test fragility specifically
|
|
35
35
|
```
|
|
36
36
|
|
|
37
37
|
---
|
|
@@ -40,7 +40,7 @@ Deploy multiple specialized test quality analyzers in parallel to find weaknesse
|
|
|
40
40
|
|
|
41
41
|
```
|
|
42
42
|
+-------------------------------------------------------------+
|
|
43
|
-
| /agileflow:
|
|
43
|
+
| /agileflow:code:test |
|
|
44
44
|
| |
|
|
45
45
|
| 1. Parse arguments (target, depth, focus) |
|
|
46
46
|
| 2. Deploy analyzers IN PARALLEL |
|
|
@@ -73,8 +73,9 @@ Deploy multiple specialized test quality analyzers in parallel to find weaknesse
|
|
|
73
73
|
| Argument | Values | Default | Description |
|
|
74
74
|
|----------|--------|---------|-------------|
|
|
75
75
|
| TARGET | file/directory | `.` | What to analyze |
|
|
76
|
-
| DEPTH | quick, deep | quick | quick = core 5
|
|
76
|
+
| DEPTH | quick, deep, ultradeep | quick | quick = core 5, deep = all 8, ultradeep = separate tmux sessions |
|
|
77
77
|
| FOCUS | coverage,fragility,mocking,assertions,structure,integration,maintenance,patterns,all | all | Which analyzers to deploy |
|
|
78
|
+
| MODEL | haiku, sonnet, opus | haiku | Model for analyzer subagents. Default preserves existing behavior. |
|
|
78
79
|
|
|
79
80
|
---
|
|
80
81
|
|
|
@@ -107,6 +108,52 @@ FOCUS = all (default) or comma-separated list
|
|
|
107
108
|
**DEPTH behavior**:
|
|
108
109
|
- `quick` (default): Deploy core 5 analyzers. Focus on CRITICAL/HIGH issues only.
|
|
109
110
|
- `deep`: Deploy all 8 analyzers. Include MEDIUM/LOW findings.
|
|
111
|
+
- `ultradeep`: Spawn each analyzer as a separate Claude Code session in tmux. Requires tmux. Uses model profiles from metadata. Falls back to `deep` if tmux unavailable.
|
|
112
|
+
|
|
113
|
+
**ULTRADEEP mode** (DEPTH=ultradeep):
|
|
114
|
+
1. Show cost estimate:
|
|
115
|
+
```bash
|
|
116
|
+
node .agileflow/scripts/spawn-audit-sessions.js --audit=test --target=TARGET --focus=FOCUS --model=MODEL --dry-run
|
|
117
|
+
```
|
|
118
|
+
2. Confirm with user before launching
|
|
119
|
+
3. Spawn sessions (use `--json` to capture trace ID):
|
|
120
|
+
```bash
|
|
121
|
+
node .agileflow/scripts/spawn-audit-sessions.js --audit=test --target=TARGET --focus=FOCUS --model=MODEL --json
|
|
122
|
+
```
|
|
123
|
+
Parse the JSON output to get `traceId`. Example: `{"ok":true,"traceId":"abc123ef",...}`
|
|
124
|
+
4. Wait for all analyzers to complete:
|
|
125
|
+
```bash
|
|
126
|
+
node .agileflow/scripts/lib/tmux-audit-monitor.js wait TRACE_ID --timeout=1800
|
|
127
|
+
```
|
|
128
|
+
- Exit 0 = all complete (JSON results on stdout)
|
|
129
|
+
- Exit 1 = timeout (partial results on stdout, `missing` array shows what's left)
|
|
130
|
+
- To check progress without blocking: `node .agileflow/scripts/lib/tmux-audit-monitor.js status TRACE_ID`
|
|
131
|
+
- To retry stalled analyzers: `node .agileflow/scripts/lib/tmux-audit-monitor.js retry TRACE_ID`
|
|
132
|
+
5. Parse `results` array from the JSON output. Pass all findings to consensus coordinator (same as deep mode).
|
|
133
|
+
6. If tmux unavailable (spawn exits code 2), fall back to `DEPTH=deep` with warning
|
|
134
|
+
|
|
135
|
+
**EXTREME mode** (DEPTH=extreme):
|
|
136
|
+
Partition-based multi-agent audit. Instead of 1 analyzer per tmux window, the codebase is split into partitions and each partition runs ALL analyzers.
|
|
137
|
+
1. Scan the target directory to understand the codebase structure:
|
|
138
|
+
- Use Glob to find top-level source directories
|
|
139
|
+
- Group related directories into 3-7 logical partitions (coherent domains: auth, api, ui, etc.)
|
|
140
|
+
- If user provided PARTITIONS=N (a number), split into exactly N partitions
|
|
141
|
+
- If user provided PARTITIONS=dir1,dir2,dir3, use those exact directories
|
|
142
|
+
2. Show the partition plan and agent count to the user, confirm before launching:
|
|
143
|
+
Example: "5 partitions x 8 analyzers = 40 agents. Estimated cost: $X. Proceed?"
|
|
144
|
+
3. Spawn sessions with partitions:
|
|
145
|
+
```bash
|
|
146
|
+
node .agileflow/scripts/spawn-audit-sessions.js --audit=test --target=TARGET --depth=extreme --partitions=dir1,dir2,dir3 --model=MODEL --json
|
|
147
|
+
```
|
|
148
|
+
4. Wait and collect results (same as ultradeep - use tmux-audit-monitor.js)
|
|
149
|
+
5. Run consensus on combined results from all partitions
|
|
150
|
+
|
|
151
|
+
**PARTITIONS argument** (only used with DEPTH=extreme):
|
|
152
|
+
| Value | Behavior |
|
|
153
|
+
|-------|----------|
|
|
154
|
+
| Not set | AI decides partitions (3-7 based on codebase size) |
|
|
155
|
+
| `PARTITIONS=5` | AI creates exactly 5 partitions |
|
|
156
|
+
| `PARTITIONS=src/auth,src/api,lib` | Use these exact directories |
|
|
110
157
|
|
|
111
158
|
### STEP 2: Deploy Analyzers in Parallel
|
|
112
159
|
|
|
@@ -368,13 +415,13 @@ FIX THIS SPRINT
|
|
|
368
415
|
<!-- COMPACT_SUMMARY_START -->
|
|
369
416
|
## Compact Summary
|
|
370
417
|
|
|
371
|
-
**Command**: `/agileflow:
|
|
418
|
+
**Command**: `/agileflow:code:test` - Multi-agent test quality analysis with consensus
|
|
372
419
|
|
|
373
420
|
**Quick Usage**:
|
|
374
421
|
```
|
|
375
|
-
/agileflow:
|
|
376
|
-
/agileflow:
|
|
377
|
-
/agileflow:
|
|
422
|
+
/agileflow:code:test app/ # Quick scan (core 5 analyzers)
|
|
423
|
+
/agileflow:code:test . DEPTH=deep # All 8 analyzers
|
|
424
|
+
/agileflow:code:test src/ FOCUS=coverage,mocking # Specific areas
|
|
378
425
|
```
|
|
379
426
|
|
|
380
427
|
**What It Does**: Deploy test quality analyzers in parallel -> Each finds different test weakness classes -> Consensus coordinator validates, filters by project type, assesses false confidence risk -> Actionable Test Quality Audit Report
|
|
@@ -409,7 +456,7 @@ FIX THIS SPRINT
|
|
|
409
456
|
|
|
410
457
|
## Boundary Rules (No Overlap)
|
|
411
458
|
|
|
412
|
-
- **vs
|
|
459
|
+
- **vs code:logic**: No logic bugs in application code — only test quality
|
|
413
460
|
- **vs qa agent**: The `qa.md` agent is a team member for story work. This is an on-demand test analysis tool
|
|
414
461
|
|
|
415
462
|
---
|
|
@@ -435,8 +482,8 @@ Add error handling tests before merging? [Y/n]
|
|
|
435
482
|
|
|
436
483
|
## Related Commands
|
|
437
484
|
|
|
438
|
-
- `/agileflow:
|
|
439
|
-
- `/agileflow:
|
|
440
|
-
- `/agileflow:
|
|
441
|
-
- `/agileflow:
|
|
485
|
+
- `/agileflow:code:logic` - Logic bug analysis (similar architecture)
|
|
486
|
+
- `/agileflow:code:security` - Security vulnerability analysis (similar architecture)
|
|
487
|
+
- `/agileflow:code:performance` - Performance bottleneck analysis (similar architecture)
|
|
488
|
+
- `/agileflow:code:legal` - Legal compliance analysis (similar architecture)
|
|
442
489
|
- `/agileflow:verify` - Run tests
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: Configure AgileFlow features, hooks, and project infrastructure (Visual E2E, CI, git)
|
|
3
|
+
phase: pre-story
|
|
3
4
|
argument-hint: "[--profile=<name>] [--save-profile=<name>] [--list-profiles] [--export-profile=<name>] [--import-profile=<file>] [--enable/--disable=features]"
|
|
4
5
|
compact_context:
|
|
5
6
|
priority: critical
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Edit an existing epic's fields (title, owner, goal, status)
|
|
3
|
+
argument-hint: "EPIC=<EP-ID> [TITLE=<text>] [OWNER=<id>] [GOAL=<text>] [STATUS=<status>]"
|
|
4
|
+
compact_context:
|
|
5
|
+
priority: high
|
|
6
|
+
preserve_rules:
|
|
7
|
+
- "ACTIVE COMMAND: /agileflow:epic:edit - Edit epic fields with diff-preview-confirm"
|
|
8
|
+
- "{{RULES:json_operations}}"
|
|
9
|
+
- "{{RULES:user_confirmation}}"
|
|
10
|
+
- "{{RULES:file_preview}}"
|
|
11
|
+
- "MUST read current epic from status.json BEFORE proposing changes"
|
|
12
|
+
- "MUST show diff of old vs new values"
|
|
13
|
+
- "MUST confirm with AskUserQuestion before writing"
|
|
14
|
+
- "MUST log edit event to bus/log.jsonl"
|
|
15
|
+
- "MUST update epic file in docs/05-epics/ if it exists"
|
|
16
|
+
state_fields:
|
|
17
|
+
- epic_id
|
|
18
|
+
- fields_changed
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
# /agileflow:epic:edit
|
|
22
|
+
|
|
23
|
+
Edit an existing epic's metadata fields with diff preview and confirmation.
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## STEP 0: Gather Context
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
node .agileflow/scripts/obtain-context.js epic:edit
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
<!-- COMPACT_SUMMARY_START -->
|
|
36
|
+
## Compact Summary
|
|
37
|
+
|
|
38
|
+
**Command**: `/agileflow:epic:edit EPIC=<EP-ID> [TITLE=...] [OWNER=...] [GOAL=...] [STATUS=...]`
|
|
39
|
+
**Purpose**: Edit epic fields in status.json with diff-preview-confirm workflow
|
|
40
|
+
|
|
41
|
+
### Flow
|
|
42
|
+
1. Parse EPIC parameter (required) and optional field overrides
|
|
43
|
+
2. Read current epic from status.json
|
|
44
|
+
3. Show diff of proposed changes
|
|
45
|
+
4. Confirm via AskUserQuestion
|
|
46
|
+
5. Apply changes to status.json
|
|
47
|
+
6. Update epic file in docs/05-epics/ if it exists
|
|
48
|
+
7. Log edit event to bus/log.jsonl
|
|
49
|
+
|
|
50
|
+
### Critical Rules
|
|
51
|
+
- **Diff preview**: Always show old vs new before writing
|
|
52
|
+
- **Confirmation**: Never write without user approval
|
|
53
|
+
- **Bus logging**: Always append epic-edited event
|
|
54
|
+
- **Epic file sync**: Update markdown file if it exists
|
|
55
|
+
- **Validation**: Verify JSON integrity after write
|
|
56
|
+
<!-- COMPACT_SUMMARY_END -->
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## Arguments
|
|
61
|
+
|
|
62
|
+
| Argument | Required | Description |
|
|
63
|
+
|----------|----------|-------------|
|
|
64
|
+
| EPIC | Yes | Epic ID (e.g., EP-0041) |
|
|
65
|
+
| TITLE | No | New epic title |
|
|
66
|
+
| OWNER | No | New owner (e.g., AG-DEVOPS, AG-API) |
|
|
67
|
+
| GOAL | No | New epic goal description |
|
|
68
|
+
| STATUS | No | New status (ready, active, complete, on-hold) |
|
|
69
|
+
|
|
70
|
+
At least one optional field must be provided (otherwise suggest `/agileflow:epic:view`).
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## IMMEDIATE ACTIONS
|
|
75
|
+
|
|
76
|
+
### Step 1: Validate Input
|
|
77
|
+
|
|
78
|
+
If EPIC not provided:
|
|
79
|
+
|
|
80
|
+
```xml
|
|
81
|
+
<invoke name="AskUserQuestion">
|
|
82
|
+
<parameter name="questions">[{
|
|
83
|
+
"question": "Which epic would you like to edit?",
|
|
84
|
+
"header": "Select",
|
|
85
|
+
"multiSelect": false,
|
|
86
|
+
"options": [
|
|
87
|
+
{"label": "Enter epic ID", "description": "Provide an EP-XXXX identifier"}
|
|
88
|
+
]
|
|
89
|
+
}]</parameter>
|
|
90
|
+
</invoke>
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
### Step 2: Read Current Epic
|
|
94
|
+
|
|
95
|
+
Read the epic entry from `docs/09-agents/status.json`:
|
|
96
|
+
|
|
97
|
+
```javascript
|
|
98
|
+
const data = JSON.parse(fs.readFileSync('docs/09-agents/status.json', 'utf8'));
|
|
99
|
+
const epic = data.epics[epicId];
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
If epic not found, show error: "Epic {EPIC} not found in status.json"
|
|
103
|
+
|
|
104
|
+
### Step 3: Build Change Set
|
|
105
|
+
|
|
106
|
+
Compare provided fields against current values. Skip fields that match current values (no-op).
|
|
107
|
+
|
|
108
|
+
If no fields would change, inform user: "No changes detected. Current values match provided values."
|
|
109
|
+
|
|
110
|
+
### Step 4: Show Diff Preview
|
|
111
|
+
|
|
112
|
+
Display a clear diff of what will change:
|
|
113
|
+
|
|
114
|
+
```markdown
|
|
115
|
+
## Editing EP-0041: Current Title
|
|
116
|
+
|
|
117
|
+
| Field | Current | New |
|
|
118
|
+
|-------|---------|-----|
|
|
119
|
+
| title | "DX Quick Wins" | "DX Quick Wins - March 2026" |
|
|
120
|
+
| owner | AG-DEVOPS | AG-API |
|
|
121
|
+
| status | ready | active |
|
|
122
|
+
|
|
123
|
+
Files modified:
|
|
124
|
+
1. docs/09-agents/status.json (epic entry update)
|
|
125
|
+
2. docs/05-epics/EP-0041-*.md (if exists, update frontmatter)
|
|
126
|
+
3. docs/09-agents/bus/log.jsonl (edit event append)
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
### Step 5: Confirm Changes
|
|
130
|
+
|
|
131
|
+
```xml
|
|
132
|
+
<invoke name="AskUserQuestion">
|
|
133
|
+
<parameter name="questions">[{
|
|
134
|
+
"question": "Apply these changes to EP-0041?",
|
|
135
|
+
"header": "Confirm edit",
|
|
136
|
+
"multiSelect": false,
|
|
137
|
+
"options": [
|
|
138
|
+
{"label": "Yes, apply changes (Recommended)", "description": "Update status.json and log edit event"},
|
|
139
|
+
{"label": "No, cancel", "description": "Discard changes"}
|
|
140
|
+
]
|
|
141
|
+
}]</parameter>
|
|
142
|
+
</invoke>
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
### Step 6: Apply Changes
|
|
146
|
+
|
|
147
|
+
On confirmation:
|
|
148
|
+
|
|
149
|
+
1. **Update status.json** using Edit tool or jq:
|
|
150
|
+
- Update only the changed fields in the epic entry
|
|
151
|
+
- Set `updated` timestamp to current ISO date
|
|
152
|
+
|
|
153
|
+
2. **Update epic file** (if exists in `docs/05-epics/`):
|
|
154
|
+
- Find matching file: `docs/05-epics/EP-XXXX-*.md`
|
|
155
|
+
- Update title in heading and frontmatter
|
|
156
|
+
- Update owner, status, goal fields
|
|
157
|
+
|
|
158
|
+
3. **Validate JSON**:
|
|
159
|
+
```bash
|
|
160
|
+
node -e "JSON.parse(require('fs').readFileSync('docs/09-agents/status.json','utf8')); console.log('valid')"
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
4. **Append to bus/log.jsonl**:
|
|
164
|
+
```json
|
|
165
|
+
{"ts":"<ISO>","type":"epic-edited","from":"USER","epic":"<EPIC>","changes":{"field":"old_value->new_value"},"text":"Epic edited: <changed fields>"}
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
### Step 7: Confirm Success
|
|
169
|
+
|
|
170
|
+
```
|
|
171
|
+
Epic EP-0041 updated:
|
|
172
|
+
title: "DX Quick Wins" -> "DX Quick Wins - March 2026"
|
|
173
|
+
status: ready -> active
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
---
|
|
177
|
+
|
|
178
|
+
## Example Usage
|
|
179
|
+
|
|
180
|
+
```bash
|
|
181
|
+
# Edit title
|
|
182
|
+
/agileflow:epic:edit EPIC=EP-0041 TITLE="Updated Title"
|
|
183
|
+
|
|
184
|
+
# Change owner and status
|
|
185
|
+
/agileflow:epic:edit EPIC=EP-0041 OWNER=AG-API STATUS=active
|
|
186
|
+
|
|
187
|
+
# Update goal
|
|
188
|
+
/agileflow:epic:edit EPIC=EP-0041 GOAL="New goal description for this epic"
|
|
189
|
+
|
|
190
|
+
# Multiple fields at once
|
|
191
|
+
/agileflow:epic:edit EPIC=EP-0041 TITLE="New Title" OWNER=AG-UI STATUS=active
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
---
|
|
195
|
+
|
|
196
|
+
## Rules
|
|
197
|
+
|
|
198
|
+
- **Always preview**: Show diff before applying
|
|
199
|
+
- **Always confirm**: Use AskUserQuestion before writes
|
|
200
|
+
- **Always log**: Append edit event to bus/log.jsonl
|
|
201
|
+
- **Always validate**: Check JSON integrity after write
|
|
202
|
+
- **Sync epic file**: Update docs/05-epics/ markdown if it exists
|
|
203
|
+
- **No silent changes**: Every change must be visible to the user
|
|
204
|
+
|
|
205
|
+
---
|
|
206
|
+
|
|
207
|
+
## Related Commands
|
|
208
|
+
|
|
209
|
+
- `/agileflow:epic:view` - View epic details
|
|
210
|
+
- `/agileflow:epic:list` - List all epics
|
|
211
|
+
- `/agileflow:epic` - Create new epic
|
|
212
|
+
- `/agileflow:story:edit` - Edit story fields
|
|
213
|
+
- `/agileflow:status` - Quick status update
|