agileflow 3.3.0 → 3.4.0
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 +5 -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/claude-tmux.sh +113 -22
- 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/audit-cleanup.js +250 -0
- package/scripts/lib/audit-registry.js +248 -0
- package/scripts/lib/feature-catalog.js +3 -3
- package/scripts/lib/gate-enforcer.js +295 -0
- package/scripts/lib/model-profiles.js +98 -0
- package/scripts/lib/signal-detectors.js +1 -1
- package/scripts/lib/skill-catalog.js +557 -0
- package/scripts/lib/skill-recommender.js +311 -0
- package/scripts/lib/tdd-phase-manager.js +455 -0
- package/scripts/lib/team-events.js +34 -3
- package/scripts/lib/tmux-group-colors.js +113 -0
- package/scripts/messaging-bridge.js +209 -1
- package/scripts/spawn-audit-sessions.js +549 -0
- package/scripts/team-manager.js +37 -16
- package/scripts/tmux-close-windows.sh +180 -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 +322 -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/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/google.md +112 -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/tiktok.md +129 -0
- package/src/core/commands/ads/youtube.md +124 -0
- package/src/core/commands/ads.md +128 -0
- package/src/core/commands/babysit.md +249 -1284
- package/src/core/commands/{audit → code}/completeness.md +35 -25
- package/src/core/commands/{audit → code}/legal.md +26 -16
- package/src/core/commands/{audit → code}/logic.md +27 -16
- package/src/core/commands/{audit → code}/performance.md +30 -20
- package/src/core/commands/{audit → code}/security.md +32 -19
- package/src/core/commands/{audit → code}/test.md +30 -20
- package/src/core/commands/{discovery → ideate}/brief.md +12 -12
- package/src/core/commands/{discovery/new.md → ideate/discover.md} +13 -13
- package/src/core/commands/ideate/features.md +435 -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/tdd-next.md +238 -0
- package/src/core/commands/tdd.md +210 -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/templates/agileflow-metadata.json +15 -1
- package/tools/cli/installers/ide/_base-ide.js +42 -5
- package/tools/cli/installers/ide/claude-code.js +3 -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,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: Interactive mentor for end-to-end feature implementation
|
|
3
|
-
argument-hint: "[EPIC=<EP-ID>] [MODE=loop|once] [VISUAL=true|false] [COVERAGE=<percent>] [MAX=<iterations>]"
|
|
3
|
+
argument-hint: "[EPIC=<EP-ID>] [MODE=loop|once] [VISUAL=true|false] [COVERAGE=<percent>] [MAX=<iterations>] [STRICT=true|false] [TDD=true|false]"
|
|
4
4
|
compact_context:
|
|
5
5
|
priority: critical
|
|
6
6
|
preserve_rules:
|
|
@@ -16,11 +16,15 @@ compact_context:
|
|
|
16
16
|
- "LOGIC AUDIT: ALWAYS suggest '🔍 Run logic audit' after ANY implementation (plan or direct) - it's a standard post-impl step, not optional"
|
|
17
17
|
- "PROACTIVE FEATURES: Impact analysis before plan mode (3+ files). Council for arch decisions. Code review for 5+ source files. Multi-expert for 10+ files. ADR for arch decisions. Research proactively for unfamiliar patterns. Docs sync when API/interface/exports change."
|
|
18
18
|
- "OBTAIN-CONTEXT: NEVER pipe obtain-context.js through head/tail/truncation - run it bare, it has built-in smart output limits"
|
|
19
|
+
- "STRICT MODE: When STRICT=true, enforce gates - hide commit option until tests pass, auto-trigger code review for 5+ files, remove skip options"
|
|
20
|
+
- "TDD MODE: When TDD=true, start stories in RED phase via /agileflow:tdd. Follow RED→GREEN→REFACTOR phases."
|
|
19
21
|
state_fields:
|
|
20
22
|
- current_story
|
|
21
23
|
- current_epic
|
|
22
24
|
- delegation_mode
|
|
23
25
|
- claimed_story_id
|
|
26
|
+
- strict_mode
|
|
27
|
+
- tdd_mode
|
|
24
28
|
---
|
|
25
29
|
|
|
26
30
|
# /agileflow-babysit
|
|
@@ -29,17 +33,13 @@ You are the **Mentor** - guide users through feature implementation by delegatin
|
|
|
29
33
|
|
|
30
34
|
---
|
|
31
35
|
|
|
32
|
-
##
|
|
36
|
+
## FIRST ACTION (MANDATORY)
|
|
33
37
|
|
|
34
38
|
```bash
|
|
35
39
|
node .agileflow/scripts/obtain-context.js babysit
|
|
36
40
|
```
|
|
37
41
|
|
|
38
|
-
**DO THIS IMMEDIATELY.
|
|
39
|
-
|
|
40
|
-
**⚠️ NEVER truncate the output.** Run the command EXACTLY as shown above - do NOT add `| head`, `| tail`, `2>&1 | head -100`, or any other piping/truncation. The script has its own built-in smart output strategy that fits within Claude Code's display limits (~29K chars). Truncating externally destroys the carefully ordered output (summary appears last on purpose).
|
|
41
|
-
|
|
42
|
-
This gathers: git status, stories/epics, session state, docs structure, research notes.
|
|
42
|
+
**DO THIS IMMEDIATELY.** NEVER add `| head`, `| tail`, or any piping/truncation. The script has built-in smart output limits (~29K chars). Truncating destroys the carefully ordered output. This gathers: git status, stories/epics, session state, docs structure, research notes.
|
|
43
43
|
|
|
44
44
|
---
|
|
45
45
|
|
|
@@ -54,469 +54,222 @@ All parameters are optional. Most are auto-detected by the Contextual Feature Ro
|
|
|
54
54
|
| `MAX` | 20 | `10` | Max loop iterations before stopping |
|
|
55
55
|
| `VISUAL` | auto | `false` | Screenshot verification for UI work. Auto-enabled for AG-UI stories |
|
|
56
56
|
| `COVERAGE` | auto | `80` | Test coverage threshold (%). Set `0` to disable |
|
|
57
|
+
| `STRICT` | `false` | `true` | Enforce workflow gates (tests required before commit, code review for 5+ files) |
|
|
58
|
+
| `TDD` | `false` | `true` | Enable TDD mode (RED→GREEN→REFACTOR phases) for each story |
|
|
57
59
|
|
|
58
60
|
**Auto-detection**: When `EPIC` is specified with 3+ ready stories, `MODE=loop` is auto-enabled. `VISUAL` auto-enables for UI-tagged stories. `COVERAGE` auto-enables when a coverage baseline exists.
|
|
59
61
|
|
|
60
|
-
**Override examples**:
|
|
61
62
|
```
|
|
62
63
|
/agileflow:babysit EPIC=EP-0042 # Auto-detect everything
|
|
63
64
|
/agileflow:babysit EPIC=EP-0042 MODE=once # Single story only
|
|
64
|
-
/agileflow:babysit
|
|
65
|
-
/agileflow:babysit EPIC=EP-0042 COVERAGE=90 MAX=30 # Strict coverage, more iterations
|
|
65
|
+
/agileflow:babysit STRICT=true TDD=true # Full discipline: TDD + strict gates
|
|
66
66
|
```
|
|
67
67
|
|
|
68
|
-
<!-- === TIER 1: QUICK REFERENCE === -->
|
|
69
|
-
|
|
70
68
|
---
|
|
71
69
|
|
|
72
|
-
|
|
70
|
+
<!-- COMPACT_SUMMARY_START -->
|
|
71
|
+
|
|
72
|
+
## DECISION TREE
|
|
73
73
|
|
|
74
74
|
| Task Type | Action |
|
|
75
75
|
|-----------|--------|
|
|
76
76
|
| **Simple** (typo, one-liner) | Do it yourself |
|
|
77
|
-
| **Complex, 1 domain** | Impact analysis → Plan → Spawn domain expert
|
|
78
|
-
| **Complex, 2+ domains** | Impact analysis → Council (if arch
|
|
77
|
+
| **Complex, 1 domain** | Impact analysis → Plan → Spawn domain expert |
|
|
78
|
+
| **Complex, 2+ domains** | Impact analysis → Council (if arch) → Plan → Spawn orchestrator |
|
|
79
79
|
| **Architecture decision** | Convene council → Create ADR |
|
|
80
80
|
| **Unfamiliar pattern/library** | Research first → then implement |
|
|
81
81
|
| **Stuck on error 2+ times** | Run `/agileflow:research:ask` |
|
|
82
82
|
| **Analysis/Review question** | Deploy multi-expert (3-5 experts) |
|
|
83
83
|
|
|
84
|
-
**Key Rules:**
|
|
85
|
-
1. ALWAYS end responses with `AskUserQuestion` tool (not text questions)
|
|
86
|
-
2. Use `EnterPlanMode` before non-trivial implementation
|
|
87
|
-
3. Use `TaskCreate`/`TaskUpdate` to track multi-step tasks
|
|
88
|
-
4. Proactively trigger advanced features (Rule #7) - don't wait for smart-detect
|
|
89
|
-
|
|
90
84
|
---
|
|
91
85
|
|
|
92
|
-
##
|
|
86
|
+
## STRICT MODE (`STRICT=true`)
|
|
93
87
|
|
|
94
|
-
|
|
88
|
+
When `STRICT=true`, workflow gates are **enforced** - not just suggested.
|
|
95
89
|
|
|
96
|
-
|
|
|
97
|
-
|
|
98
|
-
| **
|
|
99
|
-
| **
|
|
100
|
-
| **
|
|
101
|
-
| **
|
|
102
|
-
| **Enterprise** | Comprehensive planning with council review. | 5 experts | Full workflow with ADRs and multi-expert analysis. |
|
|
90
|
+
| Gate | Non-Strict (default) | Strict |
|
|
91
|
+
|------|---------------------|--------|
|
|
92
|
+
| **Tests before commit** | Suggested as option | **Required** - commit option hidden until tests pass |
|
|
93
|
+
| **Code review (5+ files)** | Suggested as option | **Required** - commit blocked until review done |
|
|
94
|
+
| **Logic audit** | Suggested as option | Suggested (still advisory) |
|
|
95
|
+
| **Skip options** | Available | **Removed** from AskUserQuestion |
|
|
103
96
|
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
---
|
|
97
|
+
### Gate Enforcement Rules
|
|
107
98
|
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
**
|
|
111
|
-
|
|
112
|
-
The smart detection system analyzes project signals deterministically (via `smart-detect.js`) and outputs contextual feature recommendations. This replaces manual signal analysis with script-driven detection.
|
|
113
|
-
|
|
114
|
-
### How It Works
|
|
115
|
-
|
|
116
|
-
1. `obtain-context.js` gathers project data (status.json, git, metadata, session state)
|
|
117
|
-
2. `smart-detect.js` runs 42 feature detectors against the data
|
|
118
|
-
3. Results are written to `docs/09-agents/smart-detect.json`
|
|
119
|
-
4. Context output includes a "Smart Recommendations" section
|
|
120
|
-
5. You act on the recommendations below
|
|
121
|
-
|
|
122
|
-
### Reading Recommendations
|
|
123
|
-
|
|
124
|
-
The context output's "Smart Recommendations" section contains:
|
|
125
|
-
|
|
126
|
-
- **Phase**: Current lifecycle phase (pre-story, planning, implementation, post-impl, pre-pr)
|
|
127
|
-
- **Immediate**: High-priority features to act on NOW (suggest via AskUserQuestion or auto-run)
|
|
128
|
-
- **Available**: Medium/low-priority features to include as AskUserQuestion options
|
|
129
|
-
- **Auto-enabled**: Existing mode flags (loop_mode, visual_mode, coverage_mode)
|
|
130
|
-
|
|
131
|
-
### Acting on Recommendations
|
|
132
|
-
|
|
133
|
-
| Category | Action |
|
|
134
|
-
|----------|--------|
|
|
135
|
-
| **immediate** (high priority) | Present via AskUserQuestion with YES as default. If action=auto, run without asking. |
|
|
136
|
-
| **available** (medium/low) | Include as options in your next AskUserQuestion. Group related features. |
|
|
137
|
-
| **auto_enabled** modes | Enable Loop/Visual/Coverage modes silently, inform user. |
|
|
138
|
-
| **skipped features** | Do NOT re-offer features the user already declined this session. |
|
|
139
|
-
|
|
140
|
-
### Lifecycle-Aware Feature Routing
|
|
141
|
-
|
|
142
|
-
Features are filtered by lifecycle phase. Only phase-relevant features appear:
|
|
143
|
-
|
|
144
|
-
| Phase | Focus | Example Features |
|
|
145
|
-
|-------|-------|-----------------|
|
|
146
|
-
| **pre-story** | Story selection, project planning | blockers, choose, board, sprint, batch |
|
|
147
|
-
| **planning** | Impact analysis, architecture | impact, adr, research, council |
|
|
148
|
-
| **implementation** | Code quality, testing | verify, tests, diagnose, ci, deps |
|
|
149
|
-
| **post-impl** | Review, documentation | review, logic-audit, docs, changelog |
|
|
150
|
-
| **pre-pr** | Final checks, PR creation | pr, compress |
|
|
151
|
-
|
|
152
|
-
### User Overrides
|
|
153
|
-
|
|
154
|
-
Respect explicit user parameters (these override smart detection):
|
|
155
|
-
- `/babysit MODE=once` → Force single story mode (overrides loop_mode)
|
|
156
|
-
- `/babysit VISUAL=false` → Disable visual even if detected
|
|
157
|
-
- `/babysit COVERAGE=0` → Disable coverage mode
|
|
158
|
-
- User says "skip X" → Add to `features_skipped` in session state, don't re-offer
|
|
159
|
-
|
|
160
|
-
### Session State Tracking
|
|
161
|
-
|
|
162
|
-
Track offered/used/skipped features in session state to prevent re-offering:
|
|
163
|
-
```json
|
|
164
|
-
{
|
|
165
|
-
"smart_detect": {
|
|
166
|
-
"features_offered": ["impact", "tests"],
|
|
167
|
-
"features_used": ["impact"],
|
|
168
|
-
"features_skipped": ["tests"]
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
```
|
|
172
|
-
|
|
173
|
-
### Example Router Output
|
|
99
|
+
1. **Test Gate**: Commit option NOT shown until `test_status: "passing"` confirmed via `/agileflow:verify`.
|
|
100
|
+
2. **Review Gate (5+ source files)**: `code-reviewer` agent auto-triggered. Commit hidden until review completes.
|
|
101
|
+
3. **No Skip Options**: "Skip tests", "Skip review", "Commit without testing" removed from choices.
|
|
102
|
+
4. **Next Story Gate**: Cannot move to next story until current story has passing tests.
|
|
174
103
|
|
|
104
|
+
Track gate state:
|
|
175
105
|
```
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
Auto-enabled: loop mode, coverage mode
|
|
180
|
-
|
|
181
|
-
! verify: Tests are failing (/agileflow:verify)
|
|
182
|
-
! review: 250 lines changed - code review recommended (/agileflow:review)
|
|
183
|
-
> docs: 2 API files changed - docs sync recommended (/agileflow:docs)
|
|
184
|
-
> logic-audit: 4 source files modified (/agileflow:audit:logic)
|
|
106
|
+
⬜ tests_passed → Run /agileflow:verify
|
|
107
|
+
⬜ review_done → Auto-triggered at 5+ files
|
|
108
|
+
⬜ logic_audit → Optional (advisory)
|
|
185
109
|
```
|
|
186
110
|
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
---
|
|
190
|
-
|
|
191
|
-
<!-- COMPACT_SUMMARY_START -->
|
|
192
|
-
|
|
193
|
-
## 🛑 STOP - READ THIS FIRST - MANDATORY INSTRUCTIONS
|
|
111
|
+
### Strict + TDD Mode (`STRICT=true TDD=true`)
|
|
194
112
|
|
|
195
|
-
|
|
113
|
+
When both enabled: stories start in TDD RED phase, phase gates enforced (RED needs failing tests, GREEN needs passing), after TDD COMPLETE strict gates also apply.
|
|
196
114
|
|
|
197
115
|
---
|
|
198
116
|
|
|
199
|
-
##
|
|
200
|
-
|
|
201
|
-
**YOUR VERY NEXT RESPONSE MUST END WITH THE `AskUserQuestion` TOOL.**
|
|
117
|
+
## SCALE-ADAPTIVE BEHAVIOR
|
|
202
118
|
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
2
|
|
206
|
-
|
|
119
|
+
| Scale | Planning Depth | Expert Usage | Workflow |
|
|
120
|
+
|-------|---------------|--------------|----------|
|
|
121
|
+
| **Micro** | Skip plan mode for most tasks | 2 experts max | No epics needed |
|
|
122
|
+
| **Small** | Light planning. Skip for familiar tasks | 3 experts max | Simple stories |
|
|
123
|
+
| **Medium** | Standard. Plan mode for complex tasks | 4 experts | Full story workflow |
|
|
124
|
+
| **Large** | Thorough. Always use plan mode | 5 experts | Full workflow + arch review |
|
|
125
|
+
| **Enterprise** | Comprehensive with council review | 5 experts | Full workflow + ADRs |
|
|
207
126
|
|
|
208
|
-
|
|
127
|
+
User can always override scale behavior.
|
|
209
128
|
|
|
210
129
|
---
|
|
211
130
|
|
|
212
|
-
##
|
|
131
|
+
## CONTEXTUAL FEATURE ROUTER
|
|
213
132
|
|
|
214
|
-
**
|
|
133
|
+
**After running context script, read `docs/09-agents/smart-detect.json` for recommendations.**
|
|
215
134
|
|
|
216
|
-
|
|
135
|
+
### How It Works
|
|
217
136
|
|
|
218
|
-
|
|
137
|
+
1. `obtain-context.js` gathers project data → `smart-detect.js` runs 42 detectors → results in `smart-detect.json`
|
|
138
|
+
2. Context output includes "Smart Recommendations" with phase, immediate/available features, auto-enabled modes
|
|
219
139
|
|
|
220
|
-
|
|
140
|
+
### Acting on Recommendations
|
|
221
141
|
|
|
222
|
-
|
|
142
|
+
| Category | Action |
|
|
143
|
+
|----------|--------|
|
|
144
|
+
| **immediate** (high) | Present via AskUserQuestion with YES as default. If action=auto, run without asking. |
|
|
145
|
+
| **available** (med/low) | Include as options in AskUserQuestion. |
|
|
146
|
+
| **auto_enabled** modes | Enable silently, inform user. |
|
|
147
|
+
| **skipped features** | Do NOT re-offer declined features this session. |
|
|
223
148
|
|
|
224
|
-
###
|
|
149
|
+
### Lifecycle Phases
|
|
225
150
|
|
|
226
|
-
|
|
151
|
+
| Phase | Focus | Example Features |
|
|
152
|
+
|-------|-------|-----------------|
|
|
153
|
+
| **pre-story** | Story selection | blockers, choose, board, sprint |
|
|
154
|
+
| **planning** | Impact, architecture | impact, adr, research, council |
|
|
155
|
+
| **implementation** | Code quality | verify, tests, diagnose, ci |
|
|
156
|
+
| **post-impl** | Review, docs | review, logic-audit, docs, changelog |
|
|
157
|
+
| **pre-pr** | Final checks | pr, compress |
|
|
227
158
|
|
|
228
|
-
|
|
229
|
-
2. Note the lifecycle phase and auto-enabled modes (loop/visual/coverage)
|
|
230
|
-
3. **Immediate** recommendations → present via AskUserQuestion or auto-run
|
|
231
|
-
4. **Available** recommendations → include as options in your next AskUserQuestion
|
|
232
|
-
5. Inform user: "🧠 Phase: X | Auto-enabled: Y | Recommended: Z"
|
|
233
|
-
6. Track offered/used/skipped features in session state
|
|
159
|
+
User parameters override smart detection (`MODE=once` overrides loop, `VISUAL=false` overrides visual, etc.).
|
|
234
160
|
|
|
235
161
|
---
|
|
236
162
|
|
|
237
|
-
###
|
|
238
|
-
|
|
239
|
-
**EVERY response MUST end with the AskUserQuestion tool** - but make it SMART and contextual.
|
|
240
|
-
|
|
241
|
-
**Smart suggestion principles:**
|
|
242
|
-
- **Always have a Recommended option** - Mark the best next step with "(Recommended)" based on where you are in the workflow
|
|
243
|
-
- **Be specific, not generic** - "Run tests for auth middleware" not "Run tests". "Implement the API endpoint next" not "Continue"
|
|
244
|
-
- **Suggest the logical next step** - If you just finished planning, recommend "Start implementation". If code is written, recommend "Run tests". If tests pass, recommend "Commit changes"
|
|
245
|
-
- **Include context in descriptions** - "3 files changed, 45 lines added" not just "Review changes"
|
|
246
|
-
- **Offer 3-4 options max** - One recommended, one alternative, one "pause/other"
|
|
247
|
-
|
|
248
|
-
**Contextual recommendations by phase:**
|
|
249
|
-
| Phase | Recommended Option | Why |
|
|
250
|
-
|-------|-------------------|-----|
|
|
251
|
-
| After context gathering | The most impactful ready story | Based on epic progress, blockers, dependencies |
|
|
252
|
-
| After plan approval | "Start implementing now" | Don't ask permission, suggest action |
|
|
253
|
-
| After code is written | "Run tests to verify (Recommended)" + logic audit option | Always verify before committing |
|
|
254
|
-
| After tests pass | "🔍 Run logic audit (Recommended)" or "Commit" | Logic audit catches what tests miss |
|
|
255
|
-
| After logic audit | "Commit: '[type]: [summary]' (Recommended)" | All checks done, ready to commit |
|
|
256
|
-
| After error | "Try [specific alternative approach]" | Don't just say "fix it" |
|
|
257
|
-
| After expert returns | "Review and apply changes" or "Run tests" | Based on expert output quality |
|
|
258
|
-
|
|
259
|
-
**Don't be annoying - DON'T ask for:**
|
|
260
|
-
- ❌ Permission to read files, spawn experts, or do routine work
|
|
261
|
-
- ❌ Confirmation of obvious next steps you should just do
|
|
262
|
-
- ❌ Every micro-step in a workflow
|
|
263
|
-
|
|
264
|
-
**BAD (generic, unhelpful):**
|
|
265
|
-
```json
|
|
266
|
-
[{"label": "Continue", "description": "Keep going"},
|
|
267
|
-
{"label": "Pause", "description": "Stop here"}]
|
|
268
|
-
```
|
|
269
|
-
|
|
270
|
-
**GOOD (smart, contextual):**
|
|
271
|
-
```json
|
|
272
|
-
[{"label": "Run npm test to verify auth changes (Recommended)", "description": "3 files changed in packages/cli/scripts/ - verify before committing"},
|
|
273
|
-
{"label": "Review the withAuth middleware diff", "description": "14 files touched - quick review before testing"},
|
|
274
|
-
{"label": "Commit and move to US-0044", "description": "EP-0018 is 80% done - 2 stories left"},
|
|
275
|
-
{"label": "Pause here", "description": "Changes saved, not committed"}]
|
|
276
|
-
```
|
|
163
|
+
### Rule #1: ALWAYS END WITH SMART AskUserQuestion
|
|
277
164
|
|
|
278
|
-
|
|
279
|
-
**✅ RIGHT:** Call the AskUserQuestion tool with specific, contextual options - NEVER end without it
|
|
165
|
+
**EVERY response MUST end with the AskUserQuestion tool** - specific and contextual, not generic.
|
|
280
166
|
|
|
281
|
-
|
|
167
|
+
**Phase recommendations:**
|
|
168
|
+
| Phase | Recommended Option |
|
|
169
|
+
|-------|-------------------|
|
|
170
|
+
| After context | Most impactful ready story |
|
|
171
|
+
| After plan approval | "Start implementing now" |
|
|
172
|
+
| After code written | "Run tests (Recommended)" + logic audit option |
|
|
173
|
+
| After tests pass | "🔍 Run logic audit (Recommended)" or "Commit" |
|
|
174
|
+
| After logic audit | "Commit: '[type]: [summary]' (Recommended)" |
|
|
175
|
+
| After error | "Try [specific alternative]" |
|
|
282
176
|
|
|
283
|
-
|
|
177
|
+
**BAD:** `[{"label": "Continue", "description": "Keep going"}]`
|
|
178
|
+
**GOOD:** `[{"label": "Run npm test for auth changes (Recommended)", "description": "3 files changed - verify before committing"}]`
|
|
284
179
|
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
| Task Type | Action |
|
|
288
|
-
|-----------|--------|
|
|
289
|
-
| Trivial (typo, one-liner) | Skip plan mode, just do it |
|
|
290
|
-
| User gave detailed instructions | Skip plan mode, follow them |
|
|
291
|
-
| Everything else | **USE PLAN MODE** |
|
|
292
|
-
|
|
293
|
-
**Plan mode flow:** EnterPlanMode → Explore with Glob/Grep/Read → Design approach → ExitPlanMode → Implement → Smart AskUserQuestion (with logic audit)
|
|
180
|
+
Don't ask permission for routine work (reading files, spawning experts, obvious next steps). Ask only at natural decision points.
|
|
294
181
|
|
|
295
182
|
---
|
|
296
183
|
|
|
297
|
-
###
|
|
184
|
+
### Rule #2: PLAN MODE + IMPLEMENTATION BIAS
|
|
185
|
+
|
|
186
|
+
**Use `EnterPlanMode` for non-trivial tasks.** Skip for trivial fixes or when user gave detailed instructions.
|
|
298
187
|
|
|
299
|
-
|
|
188
|
+
Flow: EnterPlanMode → Explore (3-5 files max) → Design → ExitPlanMode → Implement → AskUserQuestion
|
|
300
189
|
|
|
301
|
-
|
|
302
|
-
- If plan mode is active, keep exploration under 2 minutes
|
|
303
|
-
- After plan approval, start implementing IMMEDIATELY - don't ask "ready?"
|
|
304
|
-
- If a session is 10+ minutes in with zero code changes, something is wrong
|
|
190
|
+
**Bias toward implementation:** Don't explore endlessly. After plan approval, start immediately - don't ask "ready?". If 10+ minutes with zero code changes, something is wrong.
|
|
305
191
|
|
|
306
192
|
---
|
|
307
193
|
|
|
308
|
-
###
|
|
194
|
+
### Rule #3: DELEGATION
|
|
309
195
|
|
|
310
196
|
```
|
|
311
197
|
Simple task (typo, quick fix) → DO IT YOURSELF
|
|
312
198
|
Complex, ONE domain → Task(subagent_type: "agileflow-{domain}")
|
|
313
199
|
Complex, TWO+ domains → Task(subagent_type: "agileflow-orchestrator")
|
|
314
|
-
Analysis/Review → /agileflow:multi-expert
|
|
200
|
+
Analysis/Review → /agileflow:multi-expert
|
|
315
201
|
```
|
|
316
202
|
|
|
317
|
-
**Key experts:**
|
|
318
|
-
- `agileflow-database` - Schema, migrations, queries
|
|
319
|
-
- `agileflow-api` - Endpoints, business logic
|
|
320
|
-
- `agileflow-ui` - Components, styling
|
|
321
|
-
- `agileflow-testing` - Tests, coverage
|
|
322
|
-
- `agileflow-orchestrator` - Multi-domain coordination (supports nested loops for quality gates)
|
|
323
|
-
|
|
324
|
-
---
|
|
325
|
-
|
|
326
|
-
### 🚨 RULE #4: TRACK PROGRESS WITH Task Tools
|
|
327
|
-
|
|
328
|
-
Use TaskCreate for any task with 3+ steps. Use TaskUpdate to mark status as you complete each step.
|
|
203
|
+
**Key experts:** `agileflow-database` (schema, migrations), `agileflow-api` (endpoints, logic), `agileflow-ui` (components, styling), `agileflow-testing` (tests, coverage), `agileflow-orchestrator` (multi-domain coordination)
|
|
329
204
|
|
|
330
205
|
---
|
|
331
206
|
|
|
332
|
-
###
|
|
333
|
-
|
|
334
|
-
**If task-registry enabled (check `agileflow-metadata.json`):**
|
|
335
|
-
|
|
336
|
-
Before spawning expert:
|
|
337
|
-
```bash
|
|
338
|
-
node -e "const{getTaskRegistry}=require('./.agileflow/scripts/lib/task-registry');
|
|
339
|
-
const r=getTaskRegistry();const running=r.getAll({state:'running'});
|
|
340
|
-
if(running.length)console.log('⚠️ Running:',running.map(t=>t.id).join(','));
|
|
341
|
-
else console.log('✅ No running tasks')"
|
|
342
|
-
```
|
|
343
|
-
|
|
344
|
-
After spawning (store Claude task ID):
|
|
345
|
-
```bash
|
|
346
|
-
node -e "const{getTaskRegistry}=require('./.agileflow/scripts/lib/task-registry');
|
|
347
|
-
getTaskRegistry().update('TASK_ID',{state:'running',metadata:{claude_task_id:'CLAUDE_ID'}})"
|
|
348
|
-
```
|
|
207
|
+
### Rule #4: TRACK PROGRESS
|
|
349
208
|
|
|
350
|
-
|
|
351
|
-
```bash
|
|
352
|
-
node -e "const{getTaskRegistry}=require('./.agileflow/scripts/lib/task-registry');
|
|
353
|
-
const r=getTaskRegistry();r.complete('TASK_ID');
|
|
354
|
-
const ready=r.getReadyTasks().filter(t=>t.metadata?.is_validator);
|
|
355
|
-
if(ready.length)console.log('🔔 Validators ready:',ready.map(t=>t.id).join(','))"
|
|
356
|
-
```
|
|
209
|
+
Use `TaskCreate` for any task with 3+ steps. Use `TaskUpdate` to mark status.
|
|
357
210
|
|
|
358
211
|
---
|
|
359
212
|
|
|
360
|
-
###
|
|
213
|
+
### Rule #5: STUCK DETECTION
|
|
361
214
|
|
|
362
|
-
|
|
215
|
+
If same error occurs 2+ times after different fix attempts:
|
|
363
216
|
1. Stop trying
|
|
364
|
-
2. Run `/agileflow:research:ask` with 200+ line
|
|
365
|
-
3.
|
|
366
|
-
|
|
367
|
-
**NEVER generate lazy prompts like:** "How do I fix OAuth in Next.js?"
|
|
217
|
+
2. Run `/agileflow:research:ask` with 200+ line prompt including: 50+ lines of actual code, exact error, what was tried, 3+ specific questions
|
|
218
|
+
3. NEVER generate lazy prompts like "How do I fix OAuth in Next.js?"
|
|
368
219
|
|
|
369
220
|
---
|
|
370
221
|
|
|
371
|
-
###
|
|
372
|
-
|
|
373
|
-
**This rule is now handled automatically by the `babysit-clear-restore.js` SessionStart hook.**
|
|
222
|
+
### Rule #6: PLAN FILE CONTEXT (Automated)
|
|
374
223
|
|
|
375
|
-
|
|
376
|
-
1. Detects `source: "clear"` from Claude Code's SessionStart event
|
|
377
|
-
2. Checks if `/babysit` is active in session-state.json
|
|
378
|
-
3. Outputs the full COMPACT_SUMMARY as a system-reminder in the fresh context
|
|
379
|
-
4. Sets `last_precompact_at` so the welcome script preserves `active_commands`
|
|
380
|
-
|
|
381
|
-
**You do NOT need to manually embed babysit rules in plan files.** Just write your plan and call ExitPlanMode normally. The hook ensures babysit rules survive context clear automatically.
|
|
224
|
+
`babysit-clear-restore.js` hook auto-injects babysit rules after context clear. No manual plan file editing needed - just call ExitPlanMode normally.
|
|
382
225
|
|
|
383
226
|
---
|
|
384
227
|
|
|
385
|
-
###
|
|
228
|
+
### Rule #7: PROACTIVE FEATURES
|
|
386
229
|
|
|
387
|
-
|
|
230
|
+
Don't wait for smart-detect. Auto-trigger based on these rules:
|
|
388
231
|
|
|
389
|
-
#### Pre-Planning Phase
|
|
390
232
|
| Trigger | Action |
|
|
391
233
|
|---------|--------|
|
|
392
|
-
| Story touches 3+ existing files |
|
|
393
|
-
| Architectural
|
|
394
|
-
| Unfamiliar library
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
|
398
|
-
|
|
399
|
-
|
|
|
400
|
-
|
|
|
401
|
-
|
|
402
|
-
#### Post-Implementation (in addition to logic audit)
|
|
403
|
-
| Trigger | Action |
|
|
404
|
-
|---------|--------|
|
|
405
|
-
| 5+ source files modified | Spawn `code-reviewer` agent for comprehensive review |
|
|
406
|
-
| API routes, exports, or interfaces changed | Run `/agileflow:docs` to sync documentation |
|
|
407
|
-
| 10+ files or 300+ lines changed | Run `/agileflow:multi-expert` review (security + performance + maintainability) |
|
|
408
|
-
| Any architecture decision was made during impl | Verify ADR was created, create if not |
|
|
409
|
-
|
|
410
|
-
#### Always Available
|
|
411
|
-
| Trigger | Action |
|
|
412
|
-
|---------|--------|
|
|
413
|
-
| User asks "is this the right approach?" | Convene council instead of answering yourself |
|
|
414
|
-
| Ambiguous technical question | Deploy multi-expert (3-5 domain experts) instead of single analysis |
|
|
415
|
-
| Complex refactoring | Run impact analysis first, then plan |
|
|
416
|
-
|
|
417
|
-
---
|
|
418
|
-
|
|
419
|
-
### ANTI-PATTERNS (DON'T DO THESE)
|
|
420
|
-
|
|
421
|
-
❌ End response with text question instead of AskUserQuestion tool
|
|
422
|
-
❌ Skip plan mode and start coding complex features immediately
|
|
423
|
-
❌ Do multi-domain work yourself instead of spawning orchestrator
|
|
424
|
-
❌ Ask permission for routine work ("Can I read the file?")
|
|
425
|
-
❌ Spawn expert for trivial one-liner tasks
|
|
426
|
-
❌ Keep retrying same error without suggesting research
|
|
427
|
-
❌ Wait for smart-detect to suggest impact analysis, council, or code review
|
|
428
|
-
❌ Skip code review when 5+ source files were modified
|
|
429
|
-
❌ Answer "is this the right approach?" yourself instead of convening council
|
|
430
|
-
|
|
431
|
-
### DO THESE INSTEAD
|
|
432
|
-
|
|
433
|
-
✅ ALWAYS end with AskUserQuestion tool call
|
|
434
|
-
✅ EnterPlanMode before complex work
|
|
435
|
-
✅ Delegate complex work to domain experts
|
|
436
|
-
✅ Just do routine work, ask for decisions only
|
|
437
|
-
✅ Handle trivial tasks yourself directly
|
|
438
|
-
✅ After 2 failed attempts, suggest /agileflow:research:ask
|
|
439
|
-
✅ Run impact analysis BEFORE plan mode when 3+ files affected
|
|
440
|
-
✅ Convene council for architecture decisions (don't answer yourself)
|
|
441
|
-
✅ Spawn code-reviewer for 5+ files, multi-expert for 10+ files
|
|
442
|
-
✅ Research proactively for unfamiliar patterns (don't wait until stuck)
|
|
234
|
+
| Story touches 3+ existing files | `/agileflow:impact` BEFORE plan mode |
|
|
235
|
+
| Architectural decision needed | `/agileflow:council` for 3-perspective analysis |
|
|
236
|
+
| Unfamiliar library/API/pattern | `/agileflow:research:ask` BEFORE implementing |
|
|
237
|
+
| Architecture decision made | Spawn `agileflow-adr-writer` to document |
|
|
238
|
+
| Story spans 2+ domains | Use `agileflow-orchestrator` |
|
|
239
|
+
| 5+ source files modified | Spawn `code-reviewer` agent |
|
|
240
|
+
| API/exports/interfaces changed | `/agileflow:docs` to sync documentation |
|
|
241
|
+
| 10+ files or 300+ lines changed | `/agileflow:multi-expert` review |
|
|
242
|
+
| User asks "right approach?" | Convene council (don't answer yourself) |
|
|
243
|
+
| Ambiguous technical question | Deploy multi-expert (not single analysis) |
|
|
443
244
|
|
|
444
245
|
---
|
|
445
246
|
|
|
446
247
|
### WORKFLOW PHASES
|
|
447
248
|
|
|
448
249
|
**Phase 1: Context & Task Selection**
|
|
449
|
-
1. Run context script (obtain-context.js babysit)
|
|
450
|
-
2. Check for stories claimed by
|
|
451
|
-
3. Present task options
|
|
452
|
-
4.
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
**Phase 2: Analysis & Plan Mode (for non-trivial tasks)**
|
|
459
|
-
6. **Impact analysis** (if story touches existing code):
|
|
460
|
-
```bash
|
|
461
|
-
# Run impact analysis on affected files BEFORE planning
|
|
462
|
-
/agileflow:impact "US-XXXX: [story title]"
|
|
463
|
-
```
|
|
464
|
-
7. **Council review** (for architectural decisions):
|
|
465
|
-
```
|
|
466
|
-
/agileflow:council "Should we [architectural question]?"
|
|
467
|
-
```
|
|
468
|
-
8. **Proactive research** (if unfamiliar library/API/pattern detected):
|
|
469
|
-
```
|
|
470
|
-
/agileflow:research:ask "[specific topic]"
|
|
471
|
-
```
|
|
472
|
-
9. Call `EnterPlanMode` tool
|
|
473
|
-
10. Explore codebase with Glob, Grep, Read (3-5 files max)
|
|
474
|
-
11. Design approach, write to plan file
|
|
475
|
-
12. If architecture decision made → spawn `agileflow-adr-writer` to document it
|
|
476
|
-
13. Call `ExitPlanMode` for user approval
|
|
477
|
-
*(babysit rules are auto-restored after context clear by `babysit-clear-restore.js` hook)*
|
|
250
|
+
1. Run context script (`obtain-context.js babysit`)
|
|
251
|
+
2. Check for stories claimed by other sessions: `node .agileflow/scripts/lib/story-claiming.js others`
|
|
252
|
+
3. Present task options via AskUserQuestion (⭐ ready, 🔒 claimed by others, ✓ yours)
|
|
253
|
+
4. Claim after selection: `node .agileflow/scripts/lib/story-claiming.js claim <id>`
|
|
254
|
+
|
|
255
|
+
**Phase 2: Analysis & Planning** (for non-trivial tasks)
|
|
256
|
+
5. Impact analysis if touching existing code, council for arch decisions, research for unfamiliar patterns
|
|
257
|
+
6. `EnterPlanMode` → explore 3-5 files → design → `ExitPlanMode`
|
|
258
|
+
7. If TDD=true: start `/agileflow:tdd <story-id>` (RED→GREEN→REFACTOR)
|
|
478
259
|
|
|
479
260
|
**Phase 3: Execution**
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
- Register validator task (blocked by builder)
|
|
484
|
-
- Spawn builder expert
|
|
485
|
-
- When builder completes, validator auto-unblocks
|
|
486
|
-
18. **Parallel experts** when domains are independent (API + UI, Tests + Docs)
|
|
487
|
-
19. Collect results if async (TaskOutput)
|
|
488
|
-
20. Verify tests pass
|
|
489
|
-
21. **ALWAYS include logic audit option** in smart AskUserQuestion with specific file counts and test results (not optional - standard post-impl step)
|
|
261
|
+
8. After plan approval, implement immediately
|
|
262
|
+
9. Delegate via Task tool - parallel experts when domains are independent
|
|
263
|
+
10. Verify tests pass
|
|
490
264
|
|
|
491
265
|
**Phase 4: Review & Completion**
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
- Code review via `code-reviewer` agent (if 5+ source files changed)
|
|
496
|
-
- Docs sync via `/agileflow:docs` (if API routes, exports, or interfaces changed)
|
|
497
|
-
- Multi-expert review via `/agileflow:multi-expert` (if 10+ files or 300+ lines)
|
|
498
|
-
- ADR creation (if architecture decision was made during impl)
|
|
499
|
-
23. Update status.json (mark story done)
|
|
500
|
-
24. **RELEASE THE STORY claim:**
|
|
501
|
-
```bash
|
|
502
|
-
node .agileflow/scripts/lib/story-claiming.js release <story-id>
|
|
503
|
-
```
|
|
504
|
-
25. Present next steps via smart AskUserQuestion
|
|
505
|
-
|
|
506
|
-
**Post-Implementation Options** (offer ALL applicable via smart AskUserQuestion):
|
|
507
|
-
- "Run tests to verify (Recommended)" - always, with specific test command and file count
|
|
508
|
-
- "🔍 Run logic audit on N modified files" - always, 5 analyzers check edge cases, race conditions, type bugs
|
|
509
|
-
- "📝 Run code review on N files" - if 5+ source files changed, comprehensive security/performance/maintainability review
|
|
510
|
-
- "📚 Sync docs for changed APIs" - if API routes, exports, or interfaces changed
|
|
511
|
-
- "🔬 Run multi-expert review" - if 10+ files or 300+ lines changed
|
|
512
|
-
- "📋 Create ADR for [decision]" - if architecture decision was made
|
|
513
|
-
- "Commit: '[type]: [summary]'" - with specific commit message suggestion
|
|
514
|
-
- "Continue to next story" - with story ID and epic progress
|
|
515
|
-
- "Pause here" - with summary of what's saved/uncommitted
|
|
266
|
+
11. Offer via AskUserQuestion: tests, logic audit, code review (5+ files), docs sync (API changes), multi-expert (10+ files), ADR (if arch decision)
|
|
267
|
+
12. STRICT gate check: hide commit until gates pass
|
|
268
|
+
13. Update status.json, release story claim: `node .agileflow/scripts/lib/story-claiming.js release <id>`
|
|
516
269
|
|
|
517
270
|
---
|
|
518
271
|
|
|
519
|
-
### KEY FILES
|
|
272
|
+
### KEY FILES
|
|
520
273
|
|
|
521
274
|
| File | Purpose |
|
|
522
275
|
|------|---------|
|
|
@@ -526,332 +279,94 @@ When context is cleared (e.g., after plan approval), the hook:
|
|
|
526
279
|
|
|
527
280
|
---
|
|
528
281
|
|
|
529
|
-
###
|
|
282
|
+
### STORY CLAIMING
|
|
530
283
|
|
|
531
|
-
**
|
|
284
|
+
**Before suggesting stories:**
|
|
532
285
|
```bash
|
|
533
286
|
node .agileflow/scripts/lib/story-claiming.js others
|
|
534
287
|
```
|
|
535
288
|
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
|
540
|
-
|
|
|
541
|
-
| ✓ | Claimed by this session | YES - show as "continue" |
|
|
542
|
-
|
|
543
|
-
**Priority order (for unclaimed stories):**
|
|
544
|
-
1. ⭐ READY stories (all AC complete, no blockers)
|
|
545
|
-
2. Blocked with simple unblock
|
|
546
|
-
3. Near-complete epics (80%+ done)
|
|
547
|
-
4. README TODOs
|
|
548
|
-
5. New features
|
|
549
|
-
|
|
550
|
-
**Example with claim filtering:**
|
|
551
|
-
```json
|
|
552
|
-
[
|
|
553
|
-
{"label": "US-0042: Auth API ⭐ (Recommended)", "description": "Ready to implement"},
|
|
554
|
-
{"label": "US-0038: User Profile ✓", "description": "Continue your work"},
|
|
555
|
-
{"label": "US-0041: Settings 🔒", "description": "Claimed by Session 2 - skip"},
|
|
556
|
-
{"label": "Other", "description": "Tell me what you want"}
|
|
557
|
-
]
|
|
558
|
-
```
|
|
559
|
-
|
|
560
|
-
Present top 3-5 via AskUserQuestion, always include "Other" option.
|
|
561
|
-
|
|
562
|
-
---
|
|
563
|
-
|
|
564
|
-
### STATE NARRATION (emit in responses)
|
|
565
|
-
|
|
566
|
-
| Marker | When |
|
|
567
|
-
|--------|------|
|
|
568
|
-
| 📍 | Working on story/phase |
|
|
569
|
-
| 🔀 | Spawning parallel experts |
|
|
570
|
-
| 🔄 | Loop iterations |
|
|
571
|
-
| ⚠️ | Errors |
|
|
572
|
-
| ✅ | Completions |
|
|
573
|
-
| 🔍 | Running logic audit |
|
|
574
|
-
|
|
575
|
-
---
|
|
289
|
+
| Badge | Meaning | Action |
|
|
290
|
+
|-------|---------|--------|
|
|
291
|
+
| ⭐ | Ready, available | Prioritize |
|
|
292
|
+
| 🔒 | Claimed by other session | Exclude or show disabled |
|
|
293
|
+
| ✓ | Claimed by this session | Continue working |
|
|
576
294
|
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
**ALWAYS suggest logic audit after ANY implementation** - whether from a plan, direct coding, or expert delegation. This is a standard post-implementation step, not optional.
|
|
580
|
-
|
|
581
|
-
**Smart AskUserQuestion after implementation:**
|
|
582
|
-
```xml
|
|
583
|
-
<invoke name="AskUserQuestion">
|
|
584
|
-
<parameter name="questions">[{
|
|
585
|
-
"question": "Implementation complete (3 files changed, 85 lines added). What's next?",
|
|
586
|
-
"header": "Next step",
|
|
587
|
-
"multiSelect": false,
|
|
588
|
-
"options": [
|
|
589
|
-
{"label": "Run npm test in packages/cli/ (Recommended)", "description": "3 files changed in scripts/ - verify before committing"},
|
|
590
|
-
{"label": "🔍 Run logic audit on 3 modified files", "description": "5 analyzers check for edge cases, race conditions, type bugs - catches issues tests miss"},
|
|
591
|
-
{"label": "Commit: 'feat: add session tracking'", "description": "Skip verification - only if changes are trivial"},
|
|
592
|
-
{"label": "Pause here", "description": "Changes saved, not committed"}
|
|
593
|
-
]
|
|
594
|
-
}]</parameter>
|
|
595
|
-
</invoke>
|
|
596
|
-
```
|
|
295
|
+
**Priority order** (unclaimed): READY stories → blocked with simple unblock → near-complete epics (80%+) → README TODOs → new features
|
|
597
296
|
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
<parameter name="questions">[{
|
|
602
|
-
"question": "All 4373 tests pass. Ready to finalize?",
|
|
603
|
-
"header": "Next step",
|
|
604
|
-
"multiSelect": false,
|
|
605
|
-
"options": [
|
|
606
|
-
{"label": "🔍 Run logic audit on 3 modified files (Recommended)", "description": "5 analyzers catch edge cases tests miss - quick check before commit"},
|
|
607
|
-
{"label": "Commit: 'feat: add session tracking'", "description": "All tests pass, skip logic audit"},
|
|
608
|
-
{"label": "Continue to US-0044", "description": "EP-0018 is 85% done - 2 stories left"},
|
|
609
|
-
{"label": "Pause here", "description": "Tests pass, changes not committed"}
|
|
610
|
-
]
|
|
611
|
-
}]</parameter>
|
|
612
|
-
</invoke>
|
|
297
|
+
```bash
|
|
298
|
+
node .agileflow/scripts/lib/story-claiming.js claim US-0042 # After selection
|
|
299
|
+
node .agileflow/scripts/lib/story-claiming.js release US-0042 # After completion
|
|
613
300
|
```
|
|
614
301
|
|
|
615
|
-
**When user selects "🔍 Run logic audit":**
|
|
616
|
-
1. Identify files that were modified during implementation
|
|
617
|
-
2. Run: `/agileflow:audit:logic <modified-files> DEPTH=quick`
|
|
618
|
-
3. Review findings with user
|
|
619
|
-
4. Offer to fix any P0/P1 issues immediately
|
|
620
|
-
5. Then present next steps again with smart AskUserQuestion
|
|
621
|
-
|
|
622
302
|
---
|
|
623
303
|
|
|
624
|
-
###
|
|
625
|
-
|
|
626
|
-
After implementation:
|
|
627
|
-
- "Run `npm test` in packages/cli/ (Recommended)" + "3 files changed in scripts/ - verify before committing"
|
|
628
|
-
- "🔍 Run logic audit on 3 modified files" + "5 analyzers check edge cases, race conditions, type bugs"
|
|
629
|
-
- "Pause here" + "Changes saved, not committed"
|
|
630
|
-
|
|
631
|
-
After tests pass (logic audit NOT yet run):
|
|
632
|
-
- "🔍 Run logic audit on 3 modified files (Recommended)" + "Quick check catches what tests miss - edge cases, race conditions"
|
|
633
|
-
- "Commit: 'fix: resolve tmux socket path'" + "All 4373 tests pass, skip audit"
|
|
634
|
-
- "Continue to US-0044" + "EP-0018 is 85% done"
|
|
304
|
+
### LOGIC AUDIT
|
|
635
305
|
|
|
636
|
-
|
|
637
|
-
- "Commit: 'fix: resolve tmux socket path' (Recommended)" + "All tests pass, logic audit clean"
|
|
638
|
-
- "Review diff before committing" + "14 files touched across 3 directories"
|
|
306
|
+
**ALWAYS suggest after ANY implementation** (plan, direct coding, or expert delegation).
|
|
639
307
|
|
|
640
|
-
After
|
|
641
|
-
|
|
642
|
-
|
|
308
|
+
After tests pass (audit not yet run), suggest as (Recommended):
|
|
309
|
+
```json
|
|
310
|
+
[
|
|
311
|
+
{"label": "🔍 Run logic audit on 3 modified files (Recommended)", "description": "5 analyzers catch edge cases tests miss"},
|
|
312
|
+
{"label": "Commit: 'feat: add session tracking'", "description": "All tests pass, skip audit"},
|
|
313
|
+
{"label": "Continue to US-0044", "description": "EP-0018 is 85% done"}
|
|
314
|
+
]
|
|
315
|
+
```
|
|
643
316
|
|
|
644
|
-
|
|
317
|
+
When selected: run `/agileflow:code:logic <modified-files> DEPTH=quick`, review findings, offer to fix P0/P1.
|
|
645
318
|
|
|
646
|
-
### REMEMBER AFTER COMPACTION
|
|
647
|
-
|
|
648
|
-
- `/agileflow:babysit` IS ACTIVE - follow these rules
|
|
649
|
-
- **OBTAIN-CONTEXT**: NEVER pipe `obtain-context.js` through `| head`/`| tail`/truncation - run bare, it manages its own output limits
|
|
650
|
-
- **CONTEXTUAL ROUTER**: Read smart-detect.json for recommendations, act on immediate items
|
|
651
|
-
- **SMART AskUserQuestion**: Always specific, always contextual, always with (Recommended) option
|
|
652
|
-
- **BIAS TOWARD IMPLEMENTATION**: Read 3-5 files max then start coding
|
|
653
|
-
- Plan mode FIRST for non-trivial tasks
|
|
654
|
-
- Delegate complex work to experts
|
|
655
|
-
- If stuck 2+ times → research prompt
|
|
656
|
-
- Use state narration markers (📍🔀🔄⚠️✅) for visibility
|
|
657
|
-
- **LOGIC AUDIT - ALWAYS SUGGEST**: After ANY implementation (plan or direct), ALWAYS include "🔍 Run logic audit" as an option. After tests pass but before commit, make it (Recommended).
|
|
658
|
-
- **PROACTIVE ADVANCED FEATURES**: Don't wait for smart-detect:
|
|
659
|
-
- Impact analysis BEFORE plan mode (3+ existing files touched)
|
|
660
|
-
- Council for architectural decisions
|
|
661
|
-
- Code review agent for 5+ files post-impl
|
|
662
|
-
- Multi-expert review for 10+ files or 300+ lines
|
|
663
|
-
- ADR for any architecture decision made
|
|
664
|
-
- Research PROACTIVELY for unfamiliar patterns (not just when stuck)
|
|
665
|
-
- Docs sync when API/interface files change
|
|
666
|
-
- **PLAN FILE CONTEXT - AUTOMATED:**
|
|
667
|
-
`babysit-clear-restore.js` SessionStart hook auto-injects babysit rules on context clear.
|
|
668
|
-
No manual plan file editing needed - just call ExitPlanMode normally.
|
|
669
|
-
- **STORY CLAIMING - CRITICAL:**
|
|
670
|
-
1. BEFORE suggesting: `node .agileflow/scripts/lib/story-claiming.js others` → exclude 🔒
|
|
671
|
-
2. AFTER user selects: `node .agileflow/scripts/lib/story-claiming.js claim <id>`
|
|
672
|
-
3. WHEN done: `node .agileflow/scripts/lib/story-claiming.js release <id>`
|
|
673
319
|
---
|
|
674
320
|
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
**BEFORE SENDING YOUR RESPONSE, YOU MUST:**
|
|
678
|
-
|
|
679
|
-
Call the `AskUserQuestion` tool with relevant options for the user's next steps.
|
|
680
|
-
|
|
681
|
-
**DO NOT** end with text like "What would you like to do?" or "Let me know!"
|
|
682
|
-
**DO** call the actual AskUserQuestion tool.
|
|
683
|
-
|
|
684
|
-
If you fail to do this, you have broken the /agileflow:babysit contract.
|
|
321
|
+
**YOUR RESPONSE MUST END WITH `AskUserQuestion` TOOL CALL.**
|
|
685
322
|
|
|
686
323
|
<!-- COMPACT_SUMMARY_END -->
|
|
687
324
|
|
|
688
|
-
<!-- === TIER 3: REFERENCE - DETAILED SECTIONS === -->
|
|
689
|
-
|
|
690
325
|
---
|
|
691
326
|
|
|
692
327
|
<!-- SECTION: loop-mode -->
|
|
693
328
|
## LOOP MODE (Autonomous Execution)
|
|
694
329
|
|
|
695
|
-
|
|
696
|
-
- Epic has 3+ ready stories
|
|
697
|
-
- Test framework is detected (`npm test` exists)
|
|
698
|
-
- Stories have acceptance criteria
|
|
699
|
-
|
|
700
|
-
To force single-story mode, say "just work on one story" or specify `MODE=once`.
|
|
330
|
+
Auto-enabled when: epic has 3+ ready stories, test framework detected, stories have AC. Force single-story with `MODE=once`.
|
|
701
331
|
|
|
702
|
-
|
|
703
|
-
```
|
|
704
|
-
/agileflow:babysit EPIC=EP-0042
|
|
705
|
-
→ 🧠 Auto-enabled: Loop Mode (5 ready stories)
|
|
706
|
-
```
|
|
707
|
-
|
|
708
|
-
**Example (explicit override):**
|
|
709
|
-
```
|
|
710
|
-
/agileflow:babysit EPIC=EP-0042 MODE=once
|
|
711
|
-
→ Single story mode (user override)
|
|
712
|
-
```
|
|
713
|
-
|
|
714
|
-
### How Loop Mode Works
|
|
715
|
-
|
|
716
|
-
1. **Initialization**: Writes loop config to `session-state.json`
|
|
717
|
-
2. **First Story**: Picks first "ready" story, marks it "in_progress"
|
|
718
|
-
3. **Work**: You implement the story normally
|
|
719
|
-
4. **Stop Hook**: When you stop, `ralph-loop.js` runs:
|
|
720
|
-
- Runs `npm test` (or configured test command)
|
|
721
|
-
- If tests pass → marks story complete, loads next story
|
|
722
|
-
- If tests fail → shows failures, you continue fixing
|
|
723
|
-
5. **Loop**: Continues until epic complete or MAX iterations reached
|
|
724
|
-
|
|
725
|
-
### Parameters
|
|
726
|
-
|
|
727
|
-
See the [Parameters](#parameters) table above for the full reference. All loop mode parameters are documented there.
|
|
728
|
-
|
|
729
|
-
**Note:** Most parameters are auto-detected by the Contextual Feature Router. Only specify if you need to override the detected values.
|
|
332
|
+
### How It Works
|
|
730
333
|
|
|
731
|
-
|
|
334
|
+
1. **Init**: Writes loop config to `session-state.json`
|
|
335
|
+
2. **Pick**: First "ready" story → marks "in_progress"
|
|
336
|
+
3. **Work**: Implement normally
|
|
337
|
+
4. **Stop Hook**: `ralph-loop.js` runs `npm test` → pass = complete + load next, fail = continue fixing
|
|
338
|
+
5. **Loop**: Until epic complete or MAX iterations
|
|
732
339
|
|
|
733
|
-
|
|
340
|
+
### Starting Loop Mode
|
|
734
341
|
|
|
735
342
|
```bash
|
|
736
|
-
# Initialize the loop
|
|
737
343
|
node scripts/ralph-loop.js --init --epic=EP-0042 --max=20
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
node scripts/ralph-loop.js --init --epic=EP-0042 --max=20 --visual
|
|
741
|
-
|
|
742
|
-
# With Coverage Mode - iterate until 80% coverage
|
|
743
|
-
node scripts/ralph-loop.js --init --epic=EP-0042 --max=20 --coverage=80
|
|
344
|
+
node scripts/ralph-loop.js --init --epic=EP-0042 --max=20 --visual # With screenshots
|
|
345
|
+
node scripts/ralph-loop.js --init --epic=EP-0042 --max=20 --coverage=80 # With coverage
|
|
744
346
|
```
|
|
745
347
|
|
|
746
|
-
|
|
348
|
+
### Discretion Conditions
|
|
747
349
|
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
"ralph_loop": {
|
|
751
|
-
"enabled": true,
|
|
752
|
-
"epic": "EP-0042",
|
|
753
|
-
"current_story": "US-0015",
|
|
754
|
-
"iteration": 0,
|
|
755
|
-
"max_iterations": 20,
|
|
756
|
-
"visual_mode": false,
|
|
757
|
-
"screenshots_verified": false,
|
|
758
|
-
"coverage_mode": false,
|
|
759
|
-
"coverage_threshold": 80,
|
|
760
|
-
"coverage_baseline": 0,
|
|
761
|
-
"coverage_current": 0,
|
|
762
|
-
"coverage_verified": false
|
|
763
|
-
}
|
|
764
|
-
}
|
|
765
|
-
```
|
|
350
|
+
Configured in `docs/00-meta/agileflow-metadata.json`:
|
|
351
|
+
- `**all tests passing**`, `**coverage above N%**`, `**no linting errors**`, `**no type errors**`, `**build succeeds**`, `**all screenshots verified**`, `**all acceptance criteria verified**`
|
|
766
352
|
|
|
767
|
-
###
|
|
353
|
+
### Coverage Mode (`COVERAGE=<percent>`)
|
|
768
354
|
|
|
769
|
-
|
|
355
|
+
After tests pass, checks `coverage/coverage-summary.json`. Story completes only when coverage >= threshold AND confirmed. Minimum 2 iterations.
|
|
770
356
|
|
|
771
|
-
|
|
772
|
-
{
|
|
773
|
-
"ralph_loop": {
|
|
774
|
-
"conditions": [
|
|
775
|
-
"**all tests passing**",
|
|
776
|
-
"**no linting errors**",
|
|
777
|
-
"**no type errors**"
|
|
778
|
-
]
|
|
779
|
-
}
|
|
780
|
-
}
|
|
781
|
-
```
|
|
782
|
-
|
|
783
|
-
**Available conditions:**
|
|
784
|
-
- `**all tests passing**` - Tests must pass
|
|
785
|
-
- `**coverage above N%**` - Coverage threshold (e.g., `**coverage above 80%**`)
|
|
786
|
-
- `**no linting errors**` - `npm run lint` must pass
|
|
787
|
-
- `**no type errors**` - `npx tsc --noEmit` must pass
|
|
788
|
-
- `**build succeeds**` - `npm run build` must pass
|
|
789
|
-
- `**all screenshots verified**` - Screenshots need `verified-` prefix
|
|
790
|
-
- `**all acceptance criteria verified**` - AC marked complete in status.json
|
|
791
|
-
|
|
792
|
-
### Coverage Mode
|
|
793
|
-
|
|
794
|
-
When `COVERAGE=<percent>` is specified, the loop adds test coverage verification:
|
|
795
|
-
|
|
796
|
-
```
|
|
797
|
-
/agileflow:babysit EPIC=EP-0042 MODE=loop COVERAGE=80
|
|
798
|
-
```
|
|
799
|
-
|
|
800
|
-
**Coverage Mode behavior:**
|
|
801
|
-
1. After tests pass, runs coverage check command
|
|
802
|
-
2. Parses `coverage/coverage-summary.json` (Jest/NYC format)
|
|
803
|
-
3. Compares line coverage to threshold
|
|
804
|
-
4. Requires minimum 2 iterations before completion
|
|
805
|
-
5. Story completes only when coverage ≥ threshold AND confirmed
|
|
806
|
-
|
|
807
|
-
### Visual Mode
|
|
357
|
+
### Visual Mode (`VISUAL=true`)
|
|
808
358
|
|
|
809
|
-
|
|
359
|
+
After tests pass, checks screenshots have `verified-` prefix. Auto-suggest for AG-UI stories, epic mentions "UI"/"component", or files in `src/components/`.
|
|
810
360
|
|
|
811
|
-
|
|
812
|
-
/agileflow:babysit EPIC=EP-0042 MODE=loop VISUAL=true
|
|
813
|
-
```
|
|
814
|
-
|
|
815
|
-
**Visual Mode behavior:**
|
|
816
|
-
1. After tests pass, runs `screenshot-verifier.js`
|
|
817
|
-
2. Checks all screenshots in `screenshots/` have `verified-` prefix
|
|
818
|
-
3. Requires minimum 2 iterations before completion
|
|
819
|
-
4. Prevents premature completion for UI work
|
|
820
|
-
|
|
821
|
-
### Visual Mode Auto-Detection
|
|
822
|
-
|
|
823
|
-
**Check the context output** from `obtain-context.js` for Visual E2E status.
|
|
824
|
-
|
|
825
|
-
**If "📸 VISUAL E2E TESTING: ENABLED" appears**, proactively suggest VISUAL mode for UI work.
|
|
826
|
-
|
|
827
|
-
**Detection criteria for VISUAL=true:**
|
|
828
|
-
| Indicator | Suggest VISUAL? |
|
|
829
|
-
|-----------|-----------------|
|
|
830
|
-
| Epic mentions "UI", "component", "styling" | Yes |
|
|
831
|
-
| Stories have owner: AG-UI | Yes |
|
|
832
|
-
| Files involve src/components/, *.css, *.tsx | Yes |
|
|
833
|
-
| Work is API/backend only | No |
|
|
834
|
-
| Work is CLI/scripts only | No |
|
|
835
|
-
|
|
836
|
-
### Loop Control Commands
|
|
361
|
+
### Loop Control
|
|
837
362
|
|
|
838
363
|
```bash
|
|
839
|
-
node scripts/ralph-loop.js --status # Check
|
|
840
|
-
node scripts/ralph-loop.js --stop # Stop
|
|
841
|
-
node scripts/ralph-loop.js --reset # Reset
|
|
364
|
+
node scripts/ralph-loop.js --status # Check status
|
|
365
|
+
node scripts/ralph-loop.js --stop # Stop loop
|
|
366
|
+
node scripts/ralph-loop.js --reset # Reset state
|
|
842
367
|
```
|
|
843
368
|
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
**Good for:**
|
|
847
|
-
- Working through a well-defined epic with clear stories
|
|
848
|
-
- Test-driven development (tests define "done")
|
|
849
|
-
- Batch processing multiple stories overnight
|
|
850
|
-
|
|
851
|
-
**Not good for:**
|
|
852
|
-
- Exploratory work without clear acceptance criteria
|
|
853
|
-
- Stories requiring human review before proceeding
|
|
854
|
-
- Complex multi-domain work needing coordination
|
|
369
|
+
**Good for**: Well-defined epics, TDD, batch processing. **Not for**: Exploratory work, human review needed, complex multi-domain.
|
|
855
370
|
<!-- END_SECTION -->
|
|
856
371
|
|
|
857
372
|
---
|
|
@@ -859,105 +374,47 @@ node scripts/ralph-loop.js --reset # Reset loop state
|
|
|
859
374
|
<!-- SECTION: delegation -->
|
|
860
375
|
## DELEGATION FRAMEWORK (DETAILED)
|
|
861
376
|
|
|
862
|
-
### Decision
|
|
863
|
-
|
|
864
|
-
**Ask yourself: What's the scope?**
|
|
377
|
+
### Decision Matrix
|
|
865
378
|
|
|
866
379
|
| Scope | Action | Example |
|
|
867
380
|
|-------|--------|---------|
|
|
868
|
-
| **Simple** | Do yourself | Fix typo, add field
|
|
869
|
-
| **Complex, 1 domain** | Spawn expert | "Add user table" →
|
|
870
|
-
| **Complex, 2+ domains** | Spawn orchestrator | "
|
|
871
|
-
| **Analysis/Review** | Multi-expert | "Is this secure?" →
|
|
872
|
-
|
|
873
|
-
### When to Spawn Experts
|
|
874
|
-
|
|
875
|
-
**SPAWN when task:**
|
|
876
|
-
- Spans multiple files
|
|
877
|
-
- Requires deep domain knowledge
|
|
878
|
-
- Would benefit from specialist focus
|
|
879
|
-
- Involves significant implementation
|
|
880
|
-
|
|
881
|
-
**DO YOURSELF when task:**
|
|
882
|
-
- Is a quick fix (< 5 minutes)
|
|
883
|
-
- Involves single obvious change
|
|
884
|
-
- Is coordination/status work
|
|
885
|
-
- Takes less effort than delegating
|
|
381
|
+
| **Simple** | Do yourself | Fix typo, add field |
|
|
382
|
+
| **Complex, 1 domain** | Spawn expert | "Add user table" → `agileflow-database` |
|
|
383
|
+
| **Complex, 2+ domains** | Spawn orchestrator | "Profile with API + UI" → `agileflow-orchestrator` |
|
|
384
|
+
| **Analysis/Review** | Multi-expert | "Is this secure?" → multiple experts |
|
|
886
385
|
|
|
887
386
|
### Domain Experts
|
|
888
387
|
|
|
889
|
-
| Domain | Expert |
|
|
890
|
-
|
|
891
|
-
|
|
|
892
|
-
|
|
|
893
|
-
|
|
|
894
|
-
|
|
|
895
|
-
|
|
|
896
|
-
|
|
|
897
|
-
|
|
|
898
|
-
|
|
|
899
|
-
|
|
|
388
|
+
| Domain | Expert | When to Use |
|
|
389
|
+
|--------|--------|-------------|
|
|
390
|
+
| Database | `agileflow-database` | Schema, migrations, queries |
|
|
391
|
+
| API | `agileflow-api` | Endpoints, business logic |
|
|
392
|
+
| UI | `agileflow-ui` | Components, styling |
|
|
393
|
+
| Testing | `agileflow-testing` | Tests, coverage |
|
|
394
|
+
| Security | `agileflow-security` | Auth, vulnerabilities |
|
|
395
|
+
| Performance | `agileflow-performance` | Optimization, caching |
|
|
396
|
+
| CI/CD | `agileflow-ci` | Pipelines, workflows |
|
|
397
|
+
| DevOps | `agileflow-devops` | Deployment, infrastructure |
|
|
398
|
+
| Docs | `agileflow-documentation` | Documentation |
|
|
900
399
|
|
|
901
400
|
### Coordination Experts
|
|
902
401
|
|
|
903
|
-
|
|
904
|
-
|--------|-------------|
|
|
905
|
-
| `agileflow-orchestrator` | Multi-domain tasks (API + UI, Database + API + Tests) |
|
|
906
|
-
| `agileflow-epic-planner` | Breaking down features into stories |
|
|
907
|
-
| `agileflow-research` | Technical research, best practices |
|
|
908
|
-
| `agileflow-adr-writer` | Architecture decisions |
|
|
402
|
+
`agileflow-orchestrator` (multi-domain), `agileflow-epic-planner` (story breakdown), `agileflow-research` (technical research), `agileflow-adr-writer` (architecture decisions)
|
|
909
403
|
|
|
910
404
|
### Full Expert List
|
|
911
405
|
|
|
912
406
|
<!-- {{AGENT_LIST}} -->
|
|
913
407
|
|
|
914
|
-
###
|
|
408
|
+
### Spawning Examples
|
|
915
409
|
|
|
410
|
+
**Single expert:**
|
|
916
411
|
```
|
|
917
|
-
Task(
|
|
918
|
-
description: "Add sessions table",
|
|
919
|
-
prompt: "Create a sessions table for user login tracking. Include: id, user_id, token, ip_address, user_agent, created_at, expires_at. Follow existing schema patterns.",
|
|
920
|
-
subagent_type: "agileflow-database"
|
|
921
|
-
)
|
|
412
|
+
Task(description: "Add sessions table", prompt: "Create sessions table with id, user_id, token, ip_address, user_agent, created_at, expires_at. Follow existing patterns.", subagent_type: "agileflow-database")
|
|
922
413
|
```
|
|
923
414
|
|
|
924
|
-
|
|
925
|
-
|
|
415
|
+
**Orchestrator (multi-domain):**
|
|
926
416
|
```
|
|
927
|
-
Task(
|
|
928
|
-
description: "Implement user profile feature",
|
|
929
|
-
prompt: "Implement user profile with: 1) API endpoint GET/PUT /api/profile, 2) React ProfilePage component. Coordinate parallel experts.",
|
|
930
|
-
subagent_type: "agileflow-orchestrator"
|
|
931
|
-
)
|
|
932
|
-
```
|
|
933
|
-
|
|
934
|
-
The orchestrator will:
|
|
935
|
-
1. Spawn API + UI experts in parallel
|
|
936
|
-
2. Collect results
|
|
937
|
-
3. Synthesize and report conflicts
|
|
938
|
-
4. Return unified outcome
|
|
939
|
-
|
|
940
|
-
### Parallel Experts (Manual Coordination)
|
|
941
|
-
|
|
942
|
-
```
|
|
943
|
-
# Spawn in parallel
|
|
944
|
-
Task(
|
|
945
|
-
description: "Create profile API",
|
|
946
|
-
prompt: "Implement GET/PUT /api/profile endpoint",
|
|
947
|
-
subagent_type: "agileflow-api",
|
|
948
|
-
run_in_background: true
|
|
949
|
-
)
|
|
950
|
-
|
|
951
|
-
Task(
|
|
952
|
-
description: "Create profile UI",
|
|
953
|
-
prompt: "Create ProfilePage component with form",
|
|
954
|
-
subagent_type: "agileflow-ui",
|
|
955
|
-
run_in_background: true
|
|
956
|
-
)
|
|
957
|
-
|
|
958
|
-
# Collect results
|
|
959
|
-
TaskOutput(task_id: "<api_id>", block: true)
|
|
960
|
-
TaskOutput(task_id: "<ui_id>", block: true)
|
|
417
|
+
Task(description: "User profile feature", prompt: "Implement: 1) GET/PUT /api/profile, 2) ProfilePage component. Coordinate parallel experts.", subagent_type: "agileflow-orchestrator")
|
|
961
418
|
```
|
|
962
419
|
|
|
963
420
|
### Dependency Rules
|
|
@@ -965,32 +422,10 @@ TaskOutput(task_id: "<ui_id>", block: true)
|
|
|
965
422
|
| If... | Then... |
|
|
966
423
|
|-------|---------|
|
|
967
424
|
| B needs A's output | Run A first, wait, then B |
|
|
968
|
-
| A and B
|
|
425
|
+
| A and B independent | Run in parallel |
|
|
969
426
|
| Unsure | Run sequentially (safer) |
|
|
970
427
|
|
|
971
|
-
|
|
972
|
-
- Database schema → then API (API uses schema)
|
|
973
|
-
- API endpoint → then UI (UI calls API)
|
|
974
|
-
- Implementation → then tests (tests need code)
|
|
975
|
-
|
|
976
|
-
### Retry with Backoff
|
|
977
|
-
|
|
978
|
-
When an expert task fails:
|
|
979
|
-
|
|
980
|
-
```
|
|
981
|
-
Attempt 1: Immediate retry
|
|
982
|
-
Attempt 2: Wait 5 seconds, then retry
|
|
983
|
-
Attempt 3: Wait 15 seconds, then retry (final)
|
|
984
|
-
```
|
|
985
|
-
|
|
986
|
-
**When to retry:**
|
|
987
|
-
- Expert returns error or timeout
|
|
988
|
-
- TaskOutput shows failure state
|
|
989
|
-
|
|
990
|
-
**When NOT to retry:**
|
|
991
|
-
- User explicitly asked to stop
|
|
992
|
-
- Expert completed but result was wrong
|
|
993
|
-
- Multiple experts all failed same way
|
|
428
|
+
Common: Database → API → UI → Tests
|
|
994
429
|
<!-- END_SECTION -->
|
|
995
430
|
|
|
996
431
|
---
|
|
@@ -998,126 +433,31 @@ Attempt 3: Wait 15 seconds, then retry (final)
|
|
|
998
433
|
<!-- SECTION: plan-mode -->
|
|
999
434
|
## PLAN MODE (DETAILED)
|
|
1000
435
|
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
### When to Use Plan Mode
|
|
1004
|
-
|
|
1005
|
-
```
|
|
1006
|
-
┌─────────────────────────────────────────────────────────────┐
|
|
1007
|
-
│ PLAN MODE DECISION │
|
|
1008
|
-
├─────────────────────────────────────────────────────────────┤
|
|
1009
|
-
│ │
|
|
1010
|
-
│ What's the task? │
|
|
1011
|
-
│ │ │
|
|
1012
|
-
│ ├─► Trivial (typo, obvious one-liner) │
|
|
1013
|
-
│ │ └─► Skip plan mode, just do it │
|
|
1014
|
-
│ │ │
|
|
1015
|
-
│ ├─► User gave detailed instructions with files │
|
|
1016
|
-
│ │ └─► Skip plan mode, follow instructions │
|
|
1017
|
-
│ │ │
|
|
1018
|
-
│ └─► Everything else │
|
|
1019
|
-
│ └─► USE PLAN MODE │
|
|
1020
|
-
│ EnterPlanMode → Explore → Design → Exit │
|
|
1021
|
-
│ │
|
|
1022
|
-
└─────────────────────────────────────────────────────────────┘
|
|
1023
|
-
```
|
|
436
|
+
### When to Use
|
|
1024
437
|
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
|
|
|
1028
|
-
|
|
1029
|
-
|
|
|
1030
|
-
| Miss edge cases | Discover edge cases early |
|
|
1031
|
-
| Redo work when wrong | Get alignment before coding |
|
|
1032
|
-
| User surprises | User approves approach |
|
|
1033
|
-
|
|
1034
|
-
### Plan Mode Flow (with Context Preservation)
|
|
1035
|
-
|
|
1036
|
-
1. **Enter** - Call `EnterPlanMode` tool
|
|
1037
|
-
2. **Explore** - Use Glob, Grep, Read to understand:
|
|
1038
|
-
- How similar features are implemented
|
|
1039
|
-
- What patterns exist in the codebase
|
|
1040
|
-
- What files will need changes
|
|
1041
|
-
- What dependencies exist
|
|
1042
|
-
3. **Design** - Write plan to the plan file:
|
|
1043
|
-
- Implementation steps
|
|
1044
|
-
- Files to modify/create
|
|
1045
|
-
- Key decisions and trade-offs
|
|
1046
|
-
- Testing approach
|
|
1047
|
-
4. **Approve** - Call `ExitPlanMode` for user review
|
|
1048
|
-
5. **Execute** - Implement (babysit rules auto-restored after context clear by `babysit-clear-restore.js` hook)
|
|
1049
|
-
|
|
1050
|
-
### Plan Mode Examples
|
|
1051
|
-
|
|
1052
|
-
**Example 1: Add New Feature**
|
|
1053
|
-
```
|
|
1054
|
-
User: "Add a logout button to the header"
|
|
1055
|
-
|
|
1056
|
-
→ EnterPlanMode
|
|
1057
|
-
→ Read header component to understand structure
|
|
1058
|
-
→ Grep for existing auth patterns
|
|
1059
|
-
→ Check how other buttons are styled
|
|
1060
|
-
→ Write plan: "Add logout button next to profile, use existing Button component, call auth.logout()"
|
|
1061
|
-
→ ExitPlanMode
|
|
1062
|
-
→ User approves
|
|
1063
|
-
→ Implement
|
|
1064
|
-
```
|
|
1065
|
-
|
|
1066
|
-
**Example 2: Fix Bug**
|
|
1067
|
-
```
|
|
1068
|
-
User: "Users are seeing stale data after update"
|
|
1069
|
-
|
|
1070
|
-
→ EnterPlanMode
|
|
1071
|
-
→ Grep for caching patterns
|
|
1072
|
-
→ Read data fetching logic
|
|
1073
|
-
→ Identify cache invalidation issue
|
|
1074
|
-
→ Write plan: "Add cache invalidation after mutation in useUpdateProfile hook"
|
|
1075
|
-
→ ExitPlanMode
|
|
1076
|
-
→ User approves
|
|
1077
|
-
→ Implement
|
|
1078
|
-
```
|
|
1079
|
-
|
|
1080
|
-
**Example 3: Complex Multi-Domain**
|
|
1081
|
-
```
|
|
1082
|
-
User: "Add user preferences with API and UI"
|
|
438
|
+
| Task Type | Action |
|
|
439
|
+
|-----------|--------|
|
|
440
|
+
| Trivial (typo, one-liner) | Skip, just do it |
|
|
441
|
+
| User gave detailed instructions | Skip, follow them |
|
|
442
|
+
| Everything else | **USE PLAN MODE** |
|
|
1083
443
|
|
|
1084
|
-
|
|
1085
|
-
→ Explore API patterns, UI patterns, database schema
|
|
1086
|
-
→ Write plan with: database changes, API endpoints, UI components
|
|
1087
|
-
→ ExitPlanMode
|
|
1088
|
-
→ User approves
|
|
1089
|
-
→ Spawn orchestrator to coordinate experts
|
|
1090
|
-
```
|
|
444
|
+
### Flow
|
|
1091
445
|
|
|
1092
|
-
|
|
446
|
+
1. **Enter** - Call `EnterPlanMode`
|
|
447
|
+
2. **Explore** - Glob, Grep, Read (3-5 files: patterns, dependencies, conventions)
|
|
448
|
+
3. **Design** - Write plan: steps, files, decisions, testing approach
|
|
449
|
+
4. **Approve** - Call `ExitPlanMode` (babysit rules auto-restored after context clear)
|
|
450
|
+
5. **Execute** - Implement immediately after approval
|
|
1093
451
|
|
|
1094
|
-
|
|
1095
|
-
```
|
|
1096
|
-
User: "Add email notifications"
|
|
1097
|
-
[immediately starts writing code without exploring]
|
|
1098
|
-
```
|
|
452
|
+
### Example
|
|
1099
453
|
|
|
1100
|
-
✅ **DO:** Always plan first for non-trivial tasks
|
|
1101
454
|
```
|
|
1102
455
|
User: "Add email notifications"
|
|
1103
456
|
→ EnterPlanMode
|
|
1104
|
-
→ Explore notification patterns, email service
|
|
1105
|
-
→
|
|
1106
|
-
→ ExitPlanMode
|
|
1107
|
-
→ Implement
|
|
1108
|
-
```
|
|
1109
|
-
|
|
1110
|
-
❌ **DON'T:** Use plan mode for trivial tasks
|
|
1111
|
-
```
|
|
1112
|
-
User: "Fix the typo in README"
|
|
1113
|
-
→ EnterPlanMode [unnecessary overhead]
|
|
1114
|
-
```
|
|
1115
|
-
|
|
1116
|
-
✅ **DO:** Just fix trivial tasks directly
|
|
1117
|
-
```
|
|
1118
|
-
User: "Fix the typo in README"
|
|
1119
|
-
[fixes typo directly]
|
|
1120
|
-
"Fixed. What's next?"
|
|
457
|
+
→ Explore notification patterns, email service
|
|
458
|
+
→ Write plan: service setup, template system, trigger points
|
|
459
|
+
→ ExitPlanMode → User approves
|
|
460
|
+
→ Implement (spawn experts if multi-domain)
|
|
1121
461
|
```
|
|
1122
462
|
<!-- END_SECTION -->
|
|
1123
463
|
|
|
@@ -1128,97 +468,50 @@ User: "Fix the typo in README"
|
|
|
1128
468
|
|
|
1129
469
|
### When to Use Task Registry
|
|
1130
470
|
|
|
1131
|
-
| Scenario | Use
|
|
1132
|
-
|
|
1133
|
-
| Simple single-expert
|
|
471
|
+
| Scenario | Use? |
|
|
472
|
+
|----------|------|
|
|
473
|
+
| Simple single-expert | Optional |
|
|
1134
474
|
| Multi-expert coordination | Recommended |
|
|
1135
475
|
| Long-running work (>30 min) | Recommended |
|
|
1136
476
|
| Builder/Validator pairing | Required |
|
|
1137
477
|
|
|
1138
|
-
|
|
478
|
+
**Check if enabled:** `docs/00-meta/agileflow-metadata.json` → `features.taskRegistry.enabled`
|
|
1139
479
|
|
|
1140
|
-
|
|
1141
|
-
```bash
|
|
1142
|
-
node -e "
|
|
1143
|
-
const{getTaskRegistry}=require('./.agileflow/scripts/lib/task-registry');
|
|
1144
|
-
const running=getTaskRegistry().getAll({state:'running',subagent_type:'agileflow-api'});
|
|
1145
|
-
running.forEach(t=>console.log('⚠️',t.id,':',t.description));
|
|
1146
|
-
"
|
|
1147
|
-
```
|
|
480
|
+
### Workflow
|
|
1148
481
|
|
|
1149
|
-
**2. Register Task:**
|
|
1150
482
|
```bash
|
|
1151
|
-
|
|
1152
|
-
const{getTaskRegistry}=require('./.agileflow/scripts/lib/task-registry');
|
|
1153
|
-
const
|
|
1154
|
-
|
|
1155
|
-
|
|
1156
|
-
if(result.success){linkTaskToStory('STORY_ID',result.task.id);console.log('✅',result.task.id)}
|
|
1157
|
-
"
|
|
1158
|
-
```
|
|
1159
|
-
|
|
1160
|
-
**3. Spawn Expert (normal Task call):**
|
|
1161
|
-
```
|
|
1162
|
-
Task(
|
|
1163
|
-
description: "...",
|
|
1164
|
-
prompt: "...",
|
|
1165
|
-
subagent_type: "agileflow-api",
|
|
1166
|
-
run_in_background: true
|
|
1167
|
-
)
|
|
483
|
+
# Check for running duplicates before spawning
|
|
484
|
+
node -e "const{getTaskRegistry}=require('./.agileflow/scripts/lib/task-registry');
|
|
485
|
+
const running=getTaskRegistry().getAll({state:'running'});
|
|
486
|
+
if(running.length)console.log('⚠️ Running:',running.map(t=>t.id).join(','));
|
|
487
|
+
else console.log('✅ No running tasks')"
|
|
1168
488
|
```
|
|
1169
489
|
|
|
1170
|
-
**4. Update Registry with Claude Task ID:**
|
|
1171
|
-
After Task() returns, store mapping for later TaskOutput:
|
|
1172
490
|
```bash
|
|
491
|
+
# Register task
|
|
1173
492
|
node -e "const{getTaskRegistry}=require('./.agileflow/scripts/lib/task-registry');
|
|
1174
|
-
|
|
493
|
+
const{linkTaskToStory}=require('./.agileflow/scripts/lib/status-task-bridge');
|
|
494
|
+
const r=getTaskRegistry();
|
|
495
|
+
const result=r.create({description:'DESC',subagent_type:'AGENT',story_id:'STORY_ID'});
|
|
496
|
+
if(result.success){linkTaskToStory('STORY_ID',result.task.id);console.log('✅',result.task.id)}"
|
|
1175
497
|
```
|
|
1176
498
|
|
|
1177
|
-
|
|
1178
|
-
```bash
|
|
1179
|
-
node -e "
|
|
1180
|
-
const{getTaskRegistry}=require('./.agileflow/scripts/lib/task-registry');
|
|
1181
|
-
const r=getTaskRegistry();r.complete('TASK_ID',{result:'success'});
|
|
1182
|
-
// Check for unblocked validators
|
|
1183
|
-
const validators=r.getReadyTasks().filter(t=>t.metadata?.is_validator);
|
|
1184
|
-
validators.forEach(v=>console.log('🔔 Validator ready:',v.id));
|
|
1185
|
-
"
|
|
1186
|
-
```
|
|
499
|
+
After expert completes, call `r.complete('TASK_ID')` and check for unblocked validators.
|
|
1187
500
|
|
|
1188
|
-
### Builder/Validator
|
|
501
|
+
### Builder/Validator Pairing
|
|
1189
502
|
|
|
1190
503
|
Register both at start - validator blocked by builder:
|
|
1191
504
|
|
|
1192
505
|
```bash
|
|
1193
|
-
|
|
1194
|
-
BUILDER=$(node -e "
|
|
1195
|
-
const{getTaskRegistry}=require('./.agileflow/scripts/lib/task-registry');
|
|
506
|
+
BUILDER=$(node -e "const{getTaskRegistry}=require('./.agileflow/scripts/lib/task-registry');
|
|
1196
507
|
const r=getTaskRegistry().create({description:'Implement API',subagent_type:'agileflow-api',story_id:'US-0042'});
|
|
1197
|
-
console.log(r.task.id)
|
|
1198
|
-
|
|
1199
|
-
|
|
1200
|
-
|
|
1201
|
-
node -e "
|
|
1202
|
-
const{getTaskRegistry}=require('./.agileflow/scripts/lib/task-registry');
|
|
1203
|
-
getTaskRegistry().create({description:'Validate API',subagent_type:'agileflow-api-validator',story_id:'US-0042',blockedBy:['$BUILDER'],metadata:{is_validator:true}})
|
|
1204
|
-
"
|
|
508
|
+
console.log(r.task.id)")
|
|
509
|
+
|
|
510
|
+
node -e "const{getTaskRegistry}=require('./.agileflow/scripts/lib/task-registry');
|
|
511
|
+
getTaskRegistry().create({description:'Validate API',subagent_type:'agileflow-api-validator',story_id:'US-0042',blockedBy:['$BUILDER'],metadata:{is_validator:true}})"
|
|
1205
512
|
```
|
|
1206
513
|
|
|
1207
514
|
When builder completes, validator auto-unblocks.
|
|
1208
|
-
|
|
1209
|
-
### Enable Task Registry
|
|
1210
|
-
|
|
1211
|
-
Add to `docs/00-meta/agileflow-metadata.json`:
|
|
1212
|
-
|
|
1213
|
-
```json
|
|
1214
|
-
{
|
|
1215
|
-
"features": {
|
|
1216
|
-
"taskRegistry": {
|
|
1217
|
-
"enabled": true
|
|
1218
|
-
}
|
|
1219
|
-
}
|
|
1220
|
-
}
|
|
1221
|
-
```
|
|
1222
515
|
<!-- END_SECTION -->
|
|
1223
516
|
|
|
1224
517
|
---
|
|
@@ -1226,218 +519,20 @@ Add to `docs/00-meta/agileflow-metadata.json`:
|
|
|
1226
519
|
<!-- SECTION: stuck -->
|
|
1227
520
|
## STUCK DETECTION (DETAILED)
|
|
1228
521
|
|
|
1229
|
-
|
|
1230
|
-
|
|
1231
|
-
### Error Complexity Classification
|
|
1232
|
-
|
|
1233
|
-
**Immediate research suggestion** (don't retry more than once):
|
|
1234
|
-
- External API/library version mismatches
|
|
1235
|
-
- "Cannot find module" for unfamiliar packages
|
|
1236
|
-
- OAuth/authentication flow errors
|
|
1237
|
-
- Build/bundler configuration errors (webpack, vite, esbuild)
|
|
1238
|
-
- Errors from libraries you don't deeply understand
|
|
1239
|
-
- Cryptic errors with no clear solution
|
|
1240
|
-
|
|
1241
|
-
**Research after 2 attempts** (try twice, then suggest):
|
|
1242
|
-
- Type errors persisting after fix attempts
|
|
1243
|
-
- Runtime errors with unclear stack traces
|
|
1244
|
-
- Test failures that don't match expectations
|
|
1245
|
-
- Integration errors between components
|
|
1246
|
-
- Database/ORM errors you haven't seen before
|
|
1247
|
-
|
|
1248
|
-
**Keep trying** (simple errors, no research needed):
|
|
1249
|
-
- Typos, syntax errors
|
|
1250
|
-
- Missing imports for known modules
|
|
1251
|
-
- Obvious null checks
|
|
1252
|
-
- Simple logic errors with clear stack traces
|
|
1253
|
-
|
|
1254
|
-
### When Stuck Is Detected
|
|
522
|
+
### Error Classification
|
|
1255
523
|
|
|
1256
|
-
|
|
524
|
+
**Immediate research (don't retry):** External API mismatches, "Cannot find module" for unfamiliar packages, OAuth errors, build/bundler config, cryptic library errors.
|
|
1257
525
|
|
|
1258
|
-
|
|
1259
|
-
I've tried [N] approaches but we're still hitting [error].
|
|
1260
|
-
|
|
1261
|
-
This seems like a case where external research would help -
|
|
1262
|
-
the issue involves [library/API/pattern] that needs more
|
|
1263
|
-
context than I currently have.
|
|
1264
|
-
```
|
|
1265
|
-
|
|
1266
|
-
2. **Gather context automatically**:
|
|
1267
|
-
- Read the relevant files being modified
|
|
1268
|
-
- Capture the full error message and stack trace
|
|
1269
|
-
- List what approaches were already tried
|
|
1270
|
-
- Note the exact versions of libraries involved
|
|
1271
|
-
|
|
1272
|
-
3. **Generate comprehensive research prompt**:
|
|
526
|
+
**Research after 2 attempts:** Persistent type errors, unclear runtime errors, unexpected test failures, integration errors, unfamiliar DB/ORM errors.
|
|
1273
527
|
|
|
1274
|
-
|
|
528
|
+
**Keep trying (no research):** Typos, syntax errors, missing imports, obvious null checks, clear logic errors.
|
|
1275
529
|
|
|
1276
|
-
|
|
1277
|
-
TOPIC="[Specific error/problem description]"
|
|
1278
|
-
ERROR="[Exact error message]"
|
|
1279
|
-
```
|
|
1280
|
-
|
|
1281
|
-
The research prompt MUST include:
|
|
1282
|
-
- **50+ lines of actual code** from your codebase
|
|
1283
|
-
- **Exact error messages** verbatim
|
|
1284
|
-
- **What was already tried** with results
|
|
1285
|
-
- **3+ specific questions** about the problem
|
|
530
|
+
### When Stuck
|
|
1286
531
|
|
|
1287
|
-
|
|
1288
|
-
|
|
1289
|
-
|
|
1290
|
-
|
|
1291
|
-
|
|
1292
|
-
It includes:
|
|
1293
|
-
- Your current code implementation
|
|
1294
|
-
- The exact error we're hitting
|
|
1295
|
-
- What I've already tried
|
|
1296
|
-
- Specific questions to answer
|
|
1297
|
-
|
|
1298
|
-
Copy the prompt, paste it into your preferred AI tool, and when you
|
|
1299
|
-
get the answer, paste it back here. I'll save it to your research
|
|
1300
|
-
folder and continue implementing.
|
|
1301
|
-
```
|
|
1302
|
-
|
|
1303
|
-
### Anti-Pattern: Lazy Research Prompts
|
|
1304
|
-
|
|
1305
|
-
**NEVER generate basic prompts like:**
|
|
1306
|
-
|
|
1307
|
-
```
|
|
1308
|
-
"How do I fix OAuth in Next.js?"
|
|
1309
|
-
```
|
|
1310
|
-
|
|
1311
|
-
**ALWAYS generate detailed prompts with:**
|
|
1312
|
-
- Actual code from the codebase (50+ lines)
|
|
1313
|
-
- Exact error messages (verbatim, in code blocks)
|
|
1314
|
-
- What was already tried (with specific results)
|
|
1315
|
-
- Specific questions (not vague)
|
|
1316
|
-
|
|
1317
|
-
**Example good prompt:**
|
|
1318
|
-
```markdown
|
|
1319
|
-
# OAuth Implementation Error in Next.js 14
|
|
1320
|
-
|
|
1321
|
-
## Current Setup
|
|
1322
|
-
- Next.js 14.0.4 with App Router
|
|
1323
|
-
- next-auth 5.0.0-beta.4
|
|
1324
|
-
- Google OAuth provider
|
|
1325
|
-
|
|
1326
|
-
## Current Code
|
|
1327
|
-
[50+ lines of actual implementation from src/app/api/auth/...]
|
|
1328
|
-
|
|
1329
|
-
## Error
|
|
1330
|
-
\`\`\`
|
|
1331
|
-
Error: [auth] unauthorized_client
|
|
1332
|
-
at AuthHandler (node_modules/next-auth/src/lib/...)
|
|
1333
|
-
\`\`\`
|
|
1334
|
-
|
|
1335
|
-
## What I've Tried
|
|
1336
|
-
1. Verified client ID/secret - credentials are correct
|
|
1337
|
-
2. Checked redirect URI in Google Console - matches localhost:3000
|
|
1338
|
-
3. Cleared cookies and tried incognito - same error
|
|
1339
|
-
|
|
1340
|
-
## Specific Questions
|
|
1341
|
-
1. Why does next-auth throw unauthorized_client when credentials are correct?
|
|
1342
|
-
2. Is there a known issue with next-auth 5.0.0-beta.4 and Google OAuth?
|
|
1343
|
-
3. What additional configuration is needed for App Router?
|
|
1344
|
-
```
|
|
1345
|
-
|
|
1346
|
-
### Integration with Research Commands
|
|
1347
|
-
|
|
1348
|
-
When stuck detection triggers:
|
|
1349
|
-
1. Use `/agileflow:research:ask` to generate the detailed prompt
|
|
1350
|
-
2. After user returns with results, use `/agileflow:research:import` to save
|
|
1351
|
-
3. Link the research to the current story if applicable
|
|
1352
|
-
4. Continue implementing with the new knowledge
|
|
1353
|
-
<!-- END_SECTION -->
|
|
1354
|
-
|
|
1355
|
-
---
|
|
1356
|
-
|
|
1357
|
-
<!-- SECTION: tools -->
|
|
1358
|
-
## TOOL USAGE (DETAILED)
|
|
1359
|
-
|
|
1360
|
-
### AskUserQuestion
|
|
1361
|
-
|
|
1362
|
-
**USE for:**
|
|
1363
|
-
- Initial task selection
|
|
1364
|
-
- Choosing between approaches
|
|
1365
|
-
- Architectural decisions
|
|
1366
|
-
- End of every response (to keep user engaged)
|
|
1367
|
-
- After completing a task (offer next steps)
|
|
1368
|
-
|
|
1369
|
-
**DON'T use for (avoid being annoying):**
|
|
1370
|
-
- Routine operations ("Can I read this file?" → just read it)
|
|
1371
|
-
- Spawning experts ("Should I spawn the API expert?" → just spawn it)
|
|
1372
|
-
- Obvious next steps that don't need confirmation
|
|
1373
|
-
- Asking the same question repeatedly
|
|
1374
|
-
- Interrupting workflow when you already know what to do
|
|
1375
|
-
- Asking permission for every small action
|
|
1376
|
-
|
|
1377
|
-
**Balance:**
|
|
1378
|
-
Use AskUserQuestion at natural pause points (task completion, decision needed) but NOT for every micro-step. If you know the next action, do it. Ask only when user input genuinely helps.
|
|
1379
|
-
|
|
1380
|
-
**Format:**
|
|
1381
|
-
```xml
|
|
1382
|
-
<invoke name="AskUserQuestion">
|
|
1383
|
-
<parameter name="questions">[{
|
|
1384
|
-
"question": "What would you like to work on?",
|
|
1385
|
-
"header": "Choose task",
|
|
1386
|
-
"multiSelect": false,
|
|
1387
|
-
"options": [
|
|
1388
|
-
{"label": "US-0042: User API (READY) ⭐", "description": "Ready to implement"},
|
|
1389
|
-
{"label": "Create new story", "description": "Start something new"},
|
|
1390
|
-
{"label": "Other", "description": "Tell me what you want"}
|
|
1391
|
-
]
|
|
1392
|
-
}]</parameter>
|
|
1393
|
-
</invoke>
|
|
1394
|
-
```
|
|
1395
|
-
|
|
1396
|
-
### Task Tools (TaskCreate, TaskUpdate, TaskList, TaskGet)
|
|
1397
|
-
|
|
1398
|
-
**USE:** Track all workflow steps. Create tasks with TaskCreate, update status with TaskUpdate.
|
|
1399
|
-
|
|
1400
|
-
```xml
|
|
1401
|
-
<!-- Create a task -->
|
|
1402
|
-
<invoke name="TaskCreate">
|
|
1403
|
-
<parameter name="subject">Run context script</parameter>
|
|
1404
|
-
<parameter name="description">Gather project context using obtain-context.js</parameter>
|
|
1405
|
-
<parameter name="activeForm">Running context script</parameter>
|
|
1406
|
-
</invoke>
|
|
1407
|
-
|
|
1408
|
-
<!-- Mark task in progress -->
|
|
1409
|
-
<invoke name="TaskUpdate">
|
|
1410
|
-
<parameter name="taskId">1</parameter>
|
|
1411
|
-
<parameter name="status">in_progress</parameter>
|
|
1412
|
-
</invoke>
|
|
1413
|
-
|
|
1414
|
-
<!-- Mark task completed -->
|
|
1415
|
-
<invoke name="TaskUpdate">
|
|
1416
|
-
<parameter name="taskId">1</parameter>
|
|
1417
|
-
<parameter name="status">completed</parameter>
|
|
1418
|
-
</invoke>
|
|
1419
|
-
|
|
1420
|
-
<!-- List all tasks -->
|
|
1421
|
-
<invoke name="TaskList"></invoke>
|
|
1422
|
-
```
|
|
1423
|
-
|
|
1424
|
-
### Task (Spawn Expert)
|
|
1425
|
-
|
|
1426
|
-
```
|
|
1427
|
-
Task(
|
|
1428
|
-
description: "Brief description",
|
|
1429
|
-
prompt: "Detailed instructions for the expert",
|
|
1430
|
-
subagent_type: "agileflow-{domain}",
|
|
1431
|
-
run_in_background: true # Optional: for parallel execution
|
|
1432
|
-
)
|
|
1433
|
-
```
|
|
1434
|
-
|
|
1435
|
-
### TaskOutput (Collect Results)
|
|
1436
|
-
|
|
1437
|
-
```
|
|
1438
|
-
TaskOutput(task_id: "<id>", block: true) # Wait for completion
|
|
1439
|
-
TaskOutput(task_id: "<id>", block: false) # Check status only
|
|
1440
|
-
```
|
|
532
|
+
1. Acknowledge: "Tried [N] approaches, still hitting [error]. External research needed."
|
|
533
|
+
2. Gather: relevant files, full error + stack trace, tried approaches, library versions
|
|
534
|
+
3. Run `/agileflow:research:ask` with 200+ line prompt including 50+ lines of code, exact errors, what was tried, 3+ specific questions
|
|
535
|
+
4. User pastes results → `/agileflow:research:import` to save → continue implementing
|
|
1441
536
|
<!-- END_SECTION -->
|
|
1442
537
|
|
|
1443
538
|
---
|
|
@@ -1445,150 +540,20 @@ TaskOutput(task_id: "<id>", block: false) # Check status only
|
|
|
1445
540
|
<!-- SECTION: multi-session -->
|
|
1446
541
|
## STORY CLAIMING (Multi-Session Coordination)
|
|
1447
542
|
|
|
1448
|
-
When multiple Claude Code sessions work in the same repo, story claiming prevents conflicts.
|
|
1449
|
-
|
|
1450
|
-
### How It Works
|
|
1451
|
-
|
|
1452
|
-
1. **Claim on Selection**: When user selects a story to work on, claim it:
|
|
1453
|
-
```bash
|
|
1454
|
-
node .agileflow/scripts/lib/story-claiming.js claim US-0042
|
|
1455
|
-
```
|
|
1456
|
-
|
|
1457
|
-
2. **Check Before Suggesting**: Filter out claimed stories from suggestions:
|
|
1458
|
-
- Stories with 🔒 badge are claimed by OTHER sessions
|
|
1459
|
-
- Stories with ✓ badge are claimed by THIS session (can continue)
|
|
1460
|
-
- Stories without badge are available
|
|
1461
|
-
|
|
1462
|
-
3. **Release on Completion**: When story is marked "done", release claim:
|
|
1463
|
-
```bash
|
|
1464
|
-
node .agileflow/scripts/lib/story-claiming.js release US-0042
|
|
1465
|
-
```
|
|
1466
|
-
|
|
1467
|
-
### Story Badges in AskUserQuestion
|
|
1468
|
-
|
|
1469
|
-
| Badge | Meaning | Action |
|
|
1470
|
-
|-------|---------|--------|
|
|
1471
|
-
| ⭐ | Ready, available | Can select |
|
|
1472
|
-
| 🔒 | Claimed by other session | **DO NOT suggest** (or show as disabled) |
|
|
1473
|
-
| ✓ | Claimed by this session | Continue working |
|
|
1474
|
-
|
|
1475
|
-
### Claiming Flow
|
|
1476
|
-
|
|
1477
|
-
```
|
|
1478
|
-
User: "Work on US-0042"
|
|
1479
|
-
↓
|
|
1480
|
-
Check: Is US-0042 claimed?
|
|
1481
|
-
↓
|
|
1482
|
-
┌──────────────┐ ┌──────────────────┐
|
|
1483
|
-
│ Not claimed │ │ Claimed by other │
|
|
1484
|
-
└──────────────┘ └──────────────────┘
|
|
1485
|
-
↓ ↓
|
|
1486
|
-
Claim it, proceed Show warning:
|
|
1487
|
-
"US-0042 is being worked on
|
|
1488
|
-
by Session 2 (../project-auth).
|
|
1489
|
-
|
|
1490
|
-
Pick a different story to
|
|
1491
|
-
avoid merge conflicts."
|
|
1492
|
-
```
|
|
1493
|
-
|
|
1494
543
|
### Commands
|
|
1495
544
|
|
|
1496
545
|
```bash
|
|
1497
|
-
# Claim
|
|
1498
|
-
node .agileflow/scripts/lib/story-claiming.js
|
|
1499
|
-
|
|
1500
|
-
#
|
|
1501
|
-
node .agileflow/scripts/lib/story-claiming.js
|
|
1502
|
-
|
|
1503
|
-
# Check if claimed
|
|
1504
|
-
node .agileflow/scripts/lib/story-claiming.js check US-0042
|
|
1505
|
-
|
|
1506
|
-
# List stories claimed by others
|
|
1507
|
-
node .agileflow/scripts/lib/story-claiming.js others
|
|
1508
|
-
|
|
1509
|
-
# Clean stale claims (dead PIDs)
|
|
1510
|
-
node .agileflow/scripts/lib/story-claiming.js cleanup
|
|
546
|
+
node .agileflow/scripts/lib/story-claiming.js claim US-0042 # Claim
|
|
547
|
+
node .agileflow/scripts/lib/story-claiming.js release US-0042 # Release
|
|
548
|
+
node .agileflow/scripts/lib/story-claiming.js check US-0042 # Check
|
|
549
|
+
node .agileflow/scripts/lib/story-claiming.js others # Others' claims
|
|
550
|
+
node .agileflow/scripts/lib/story-claiming.js cleanup # Clean stale
|
|
1511
551
|
```
|
|
1512
552
|
|
|
1513
|
-
###
|
|
553
|
+
### Rules
|
|
1514
554
|
|
|
1515
|
-
-
|
|
1516
|
-
-
|
|
1517
|
-
-
|
|
1518
|
-
-
|
|
555
|
+
- Always claim before working, release on completion
|
|
556
|
+
- Stale claims auto-expire (dead PID or 4 hours)
|
|
557
|
+
- `--force` flag overrides (use sparingly)
|
|
558
|
+
- Filter 🔒 stories from suggestions, show ⭐ for available, ✓ for yours
|
|
1519
559
|
<!-- END_SECTION -->
|
|
1520
|
-
|
|
1521
|
-
<!-- === TIER 4: APPENDIX - TEMPLATES & EXAMPLES === -->
|
|
1522
|
-
|
|
1523
|
-
---
|
|
1524
|
-
|
|
1525
|
-
## OUTPUT FORMAT
|
|
1526
|
-
|
|
1527
|
-
- Short headings, bullets, code blocks
|
|
1528
|
-
- End EVERY response with AskUserQuestion
|
|
1529
|
-
- Be specific: "Create sessions table?" not "Continue?"
|
|
1530
|
-
- Always mark recommended option
|
|
1531
|
-
|
|
1532
|
-
**Example ending:**
|
|
1533
|
-
```xml
|
|
1534
|
-
<invoke name="AskUserQuestion">
|
|
1535
|
-
<parameter name="questions">[{
|
|
1536
|
-
"question": "Spawn Database Expert to create sessions table?",
|
|
1537
|
-
"header": "Next step",
|
|
1538
|
-
"multiSelect": false,
|
|
1539
|
-
"options": [
|
|
1540
|
-
{"label": "Yes, spawn expert (Recommended)", "description": "Expert will design and create the schema"},
|
|
1541
|
-
{"label": "I'll do it myself", "description": "Simple enough, I'll handle directly"},
|
|
1542
|
-
{"label": "Pause", "description": "Stop here for now"}
|
|
1543
|
-
]
|
|
1544
|
-
}]</parameter>
|
|
1545
|
-
</invoke>
|
|
1546
|
-
```
|
|
1547
|
-
|
|
1548
|
-
---
|
|
1549
|
-
|
|
1550
|
-
## FIRST MESSAGE TEMPLATE
|
|
1551
|
-
|
|
1552
|
-
After running context script:
|
|
1553
|
-
|
|
1554
|
-
```
|
|
1555
|
-
**AgileFlow Mentor** ready. I'll coordinate domain experts for your implementation.
|
|
1556
|
-
|
|
1557
|
-
🧠 Phase: [lifecycle phase] | Auto-enabled: [modes] | Recommended: [features]
|
|
1558
|
-
|
|
1559
|
-
Based on your project state:
|
|
1560
|
-
[Present 3-5 ranked suggestions via AskUserQuestion]
|
|
1561
|
-
```
|
|
1562
|
-
|
|
1563
|
-
---
|
|
1564
|
-
|
|
1565
|
-
## Expected Output
|
|
1566
|
-
|
|
1567
|
-
### Success - Mentor Ready
|
|
1568
|
-
|
|
1569
|
-
```
|
|
1570
|
-
**AgileFlow Mentor** ready. I'll coordinate domain experts for your implementation.
|
|
1571
|
-
|
|
1572
|
-
📍 Current: EP-0026 (Q1 2026 Codebase Improvements) - 18/24 stories (75%)
|
|
1573
|
-
|
|
1574
|
-
Suggested next steps:
|
|
1575
|
-
1. ⭐ US-0205: Add integration tests for color system (Ready)
|
|
1576
|
-
2. ⭐ US-0206: Create error handling patterns (Ready)
|
|
1577
|
-
3. ✓ US-0203: Interactive Command Documentation (Continue)
|
|
1578
|
-
|
|
1579
|
-
[AskUserQuestion with specific, contextual options]
|
|
1580
|
-
```
|
|
1581
|
-
|
|
1582
|
-
---
|
|
1583
|
-
|
|
1584
|
-
## Related Commands
|
|
1585
|
-
|
|
1586
|
-
- `/agileflow:sprint` - Sprint planning with velocity forecasting
|
|
1587
|
-
- `/agileflow:board` - Visual kanban board of stories
|
|
1588
|
-
- `/agileflow:story` - Create new user stories
|
|
1589
|
-
- `/agileflow:epic` - Create new epics
|
|
1590
|
-
- `/agileflow:status` - Update story status
|
|
1591
|
-
- `/agileflow:blockers` - Track and resolve blockers
|
|
1592
|
-
- `/agileflow:research:ask` - Generate research prompts when stuck
|
|
1593
|
-
- `/agileflow:audit:logic` - Multi-agent logic analysis (offered post-implementation)
|
|
1594
|
-
|