agileflow 2.90.7 → 2.92.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 +10 -0
- package/README.md +6 -6
- package/lib/README.md +178 -0
- package/lib/codebase-indexer.js +818 -0
- package/lib/colors.js +190 -12
- package/lib/consent.js +232 -0
- package/lib/correlation.js +277 -0
- package/lib/error-codes.js +46 -0
- package/lib/errors.js +48 -6
- package/lib/file-cache.js +182 -0
- package/lib/format-error.js +156 -0
- package/lib/path-resolver.js +155 -7
- package/lib/paths.js +212 -20
- package/lib/placeholder-registry.js +205 -0
- package/lib/registry-di.js +358 -0
- package/lib/result-schema.js +363 -0
- package/lib/result.js +210 -0
- package/lib/session-registry.js +13 -0
- package/lib/session-state-machine.js +465 -0
- package/lib/validate-commands.js +308 -0
- package/lib/validate-names.js +3 -3
- package/lib/validate.js +116 -52
- package/package.json +4 -1
- package/scripts/af +34 -0
- package/scripts/agent-loop.js +63 -9
- package/scripts/agileflow-configure.js +2 -2
- package/scripts/agileflow-welcome.js +435 -23
- package/scripts/archive-completed-stories.sh +57 -11
- package/scripts/claude-tmux.sh +102 -0
- package/scripts/damage-control-bash.js +3 -70
- package/scripts/damage-control-edit.js +3 -20
- package/scripts/damage-control-write.js +3 -20
- package/scripts/dependency-check.js +310 -0
- package/scripts/get-env.js +11 -4
- package/scripts/lib/configure-detect.js +23 -1
- package/scripts/lib/configure-features.js +43 -2
- package/scripts/lib/context-formatter.js +771 -0
- package/scripts/lib/context-loader.js +699 -0
- package/scripts/lib/damage-control-utils.js +107 -0
- package/scripts/lib/json-utils.sh +162 -0
- package/scripts/lib/state-migrator.js +353 -0
- package/scripts/lib/story-state-machine.js +437 -0
- package/scripts/obtain-context.js +118 -1048
- package/scripts/pre-push-check.sh +46 -0
- package/scripts/precompact-context.sh +36 -11
- package/scripts/query-codebase.js +538 -0
- package/scripts/ralph-loop.js +5 -5
- package/scripts/session-manager.js +220 -42
- package/scripts/spawn-parallel.js +651 -0
- package/scripts/tui/blessed/data/watcher.js +180 -0
- package/scripts/tui/blessed/index.js +244 -0
- package/scripts/tui/blessed/panels/output.js +101 -0
- package/scripts/tui/blessed/panels/sessions.js +150 -0
- package/scripts/tui/blessed/panels/trace.js +97 -0
- package/scripts/tui/blessed/ui/help.js +77 -0
- package/scripts/tui/blessed/ui/screen.js +52 -0
- package/scripts/tui/blessed/ui/statusbar.js +47 -0
- package/scripts/tui/blessed/ui/tabbar.js +99 -0
- package/scripts/tui/index.js +38 -30
- package/scripts/validators/README.md +143 -0
- package/scripts/validators/component-validator.js +239 -0
- package/scripts/validators/json-schema-validator.js +186 -0
- package/scripts/validators/markdown-validator.js +152 -0
- package/scripts/validators/migration-validator.js +129 -0
- package/scripts/validators/security-validator.js +380 -0
- package/scripts/validators/story-format-validator.js +197 -0
- package/scripts/validators/test-result-validator.js +114 -0
- package/scripts/validators/workflow-validator.js +247 -0
- package/src/core/agents/accessibility.md +6 -0
- package/src/core/agents/adr-writer.md +6 -0
- package/src/core/agents/analytics.md +6 -0
- package/src/core/agents/api.md +6 -0
- package/src/core/agents/ci.md +6 -0
- package/src/core/agents/codebase-query.md +261 -0
- package/src/core/agents/compliance.md +6 -0
- package/src/core/agents/configuration-damage-control.md +6 -0
- package/src/core/agents/configuration-visual-e2e.md +6 -0
- package/src/core/agents/database.md +10 -0
- package/src/core/agents/datamigration.md +6 -0
- package/src/core/agents/design.md +6 -0
- package/src/core/agents/devops.md +6 -0
- package/src/core/agents/documentation.md +6 -0
- package/src/core/agents/epic-planner.md +6 -0
- package/src/core/agents/integrations.md +6 -0
- package/src/core/agents/mentor.md +6 -0
- package/src/core/agents/mobile.md +6 -0
- package/src/core/agents/monitoring.md +6 -0
- package/src/core/agents/multi-expert.md +6 -0
- package/src/core/agents/performance.md +6 -0
- package/src/core/agents/product.md +6 -0
- package/src/core/agents/qa.md +6 -0
- package/src/core/agents/readme-updater.md +6 -0
- package/src/core/agents/refactor.md +6 -0
- package/src/core/agents/research.md +6 -0
- package/src/core/agents/security.md +6 -0
- package/src/core/agents/testing.md +10 -0
- package/src/core/agents/ui.md +6 -0
- package/src/core/commands/adr.md +114 -0
- package/src/core/commands/agent.md +120 -0
- package/src/core/commands/assign.md +145 -0
- package/src/core/commands/audit.md +401 -0
- package/src/core/commands/babysit.md +32 -5
- package/src/core/commands/board.md +1 -0
- package/src/core/commands/changelog.md +118 -0
- package/src/core/commands/configure.md +42 -6
- package/src/core/commands/diagnose.md +114 -0
- package/src/core/commands/epic.md +205 -1
- package/src/core/commands/handoff.md +128 -0
- package/src/core/commands/help.md +76 -0
- package/src/core/commands/metrics.md +1 -0
- package/src/core/commands/pr.md +96 -0
- package/src/core/commands/research/analyze.md +1 -0
- package/src/core/commands/research/ask.md +2 -0
- package/src/core/commands/research/import.md +1 -0
- package/src/core/commands/research/list.md +2 -0
- package/src/core/commands/research/synthesize.md +584 -0
- package/src/core/commands/research/view.md +2 -0
- package/src/core/commands/roadmap/analyze.md +400 -0
- package/src/core/commands/session/new.md +113 -6
- package/src/core/commands/session/spawn.md +197 -0
- package/src/core/commands/sprint.md +22 -0
- package/src/core/commands/status.md +200 -1
- package/src/core/commands/story/list.md +9 -9
- package/src/core/commands/story/view.md +1 -0
- package/src/core/commands/story.md +143 -4
- package/src/core/experts/codebase-query/expertise.yaml +190 -0
- package/src/core/experts/codebase-query/question.md +73 -0
- package/src/core/experts/codebase-query/self-improve.md +105 -0
- package/src/core/templates/agileflow-metadata.json +55 -2
- package/src/core/templates/plan-template.md +125 -0
- package/src/core/templates/story-lifecycle.md +213 -0
- package/src/core/templates/story-template.md +4 -0
- package/src/core/templates/tdd-test-template.js +241 -0
- package/tools/cli/commands/setup.js +86 -0
- package/tools/cli/installers/core/installer.js +94 -0
- package/tools/cli/installers/ide/_base-ide.js +20 -11
- package/tools/cli/installers/ide/codex.js +29 -47
- package/tools/cli/lib/config-manager.js +17 -2
- package/tools/cli/lib/content-transformer.js +271 -0
- package/tools/cli/lib/error-handler.js +14 -22
- package/tools/cli/lib/ide-error-factory.js +421 -0
- package/tools/cli/lib/ide-health-monitor.js +364 -0
- package/tools/cli/lib/ide-registry.js +114 -1
- package/tools/cli/lib/ui.js +14 -25
|
@@ -277,3 +277,117 @@ fi
|
|
|
277
277
|
- Display file sizes and story counts
|
|
278
278
|
- Provide actionable recommendations for issues
|
|
279
279
|
- Exit with code 0 if healthy, code 1 if issues found
|
|
280
|
+
|
|
281
|
+
---
|
|
282
|
+
|
|
283
|
+
## Expected Output
|
|
284
|
+
|
|
285
|
+
### Healthy System
|
|
286
|
+
|
|
287
|
+
```
|
|
288
|
+
🔍 AgileFlow System Diagnostics
|
|
289
|
+
================================
|
|
290
|
+
|
|
291
|
+
📋 JSON File Validation
|
|
292
|
+
----------------------
|
|
293
|
+
✅ docs/00-meta/agileflow-metadata.json (2KB)
|
|
294
|
+
✅ docs/09-agents/status.json (45KB)
|
|
295
|
+
ℹ️ docs/09-agents/status-archive.json - not found (optional)
|
|
296
|
+
✅ .claude/settings.json (8KB)
|
|
297
|
+
|
|
298
|
+
📦 Auto-Archival System
|
|
299
|
+
----------------------
|
|
300
|
+
✅ Archive script exists and is executable
|
|
301
|
+
✅ Auto-archival hook configured
|
|
302
|
+
✅ Archival threshold: 7 days
|
|
303
|
+
|
|
304
|
+
🪝 Hooks System
|
|
305
|
+
---------------
|
|
306
|
+
✅ .claude/settings.json is valid JSON
|
|
307
|
+
ℹ️ SessionStart hooks: 3
|
|
308
|
+
ℹ️ UserPromptSubmit hooks: 1
|
|
309
|
+
ℹ️ Stop hooks: 0
|
|
310
|
+
|
|
311
|
+
📏 File Size Analysis
|
|
312
|
+
---------------------
|
|
313
|
+
status.json: 45KB (127 stories)
|
|
314
|
+
✅ status.json size is healthy
|
|
315
|
+
|
|
316
|
+
📊 Diagnostic Summary
|
|
317
|
+
=====================
|
|
318
|
+
✅ All checks passed! System is healthy.
|
|
319
|
+
```
|
|
320
|
+
|
|
321
|
+
### System with Issues
|
|
322
|
+
|
|
323
|
+
```
|
|
324
|
+
🔍 AgileFlow System Diagnostics
|
|
325
|
+
================================
|
|
326
|
+
|
|
327
|
+
📋 JSON File Validation
|
|
328
|
+
----------------------
|
|
329
|
+
✅ docs/00-meta/agileflow-metadata.json (2KB)
|
|
330
|
+
✅ docs/09-agents/status.json (156KB)
|
|
331
|
+
⚠️ WARNING: status.json is large (156KB). Consider running archival.
|
|
332
|
+
ℹ️ docs/09-agents/status-archive.json - not found (optional)
|
|
333
|
+
❌ .claude/settings.json - INVALID JSON
|
|
334
|
+
Error details:
|
|
335
|
+
parse error: Invalid numeric literal at line 42, column 15
|
|
336
|
+
|
|
337
|
+
📦 Auto-Archival System
|
|
338
|
+
----------------------
|
|
339
|
+
⚠️ Archive script exists but is NOT executable
|
|
340
|
+
Fix: chmod +x scripts/archive-completed-stories.sh
|
|
341
|
+
|
|
342
|
+
🪝 Hooks System
|
|
343
|
+
---------------
|
|
344
|
+
❌ .claude/settings.json is INVALID JSON
|
|
345
|
+
|
|
346
|
+
📏 File Size Analysis
|
|
347
|
+
---------------------
|
|
348
|
+
status.json: 156KB (423 stories)
|
|
349
|
+
⚠️ WARNING: status.json exceeds 100KB
|
|
350
|
+
Recommendation: Run archival to reduce file size
|
|
351
|
+
Command: bash .agileflow/scripts/archive-completed-stories.sh 7
|
|
352
|
+
|
|
353
|
+
📊 Diagnostic Summary
|
|
354
|
+
=====================
|
|
355
|
+
⚠️ Found 4 issue(s) that need attention.
|
|
356
|
+
|
|
357
|
+
Next steps:
|
|
358
|
+
1. Fix JSON validation errors using: jq empty <file> to check, then repair manually
|
|
359
|
+
2. Make archive script executable: chmod +x scripts/archive-completed-stories.sh
|
|
360
|
+
3. Run archival: bash .agileflow/scripts/archive-completed-stories.sh
|
|
361
|
+
4. Re-run diagnostics: /agileflow:diagnose
|
|
362
|
+
```
|
|
363
|
+
|
|
364
|
+
### Missing Critical Files
|
|
365
|
+
|
|
366
|
+
```
|
|
367
|
+
🔍 AgileFlow System Diagnostics
|
|
368
|
+
================================
|
|
369
|
+
|
|
370
|
+
📋 JSON File Validation
|
|
371
|
+
----------------------
|
|
372
|
+
❌ docs/00-meta/agileflow-metadata.json - NOT FOUND (CRITICAL)
|
|
373
|
+
❌ docs/09-agents/status.json - NOT FOUND (CRITICAL)
|
|
374
|
+
ℹ️ docs/09-agents/status-archive.json - not found (optional)
|
|
375
|
+
ℹ️ .claude/settings.json - not found (optional)
|
|
376
|
+
|
|
377
|
+
📦 Auto-Archival System
|
|
378
|
+
----------------------
|
|
379
|
+
❌ Archive script NOT found (scripts/archive-completed-stories.sh)
|
|
380
|
+
|
|
381
|
+
🪝 Hooks System
|
|
382
|
+
---------------
|
|
383
|
+
⚠️ Hooks system not configured
|
|
384
|
+
|
|
385
|
+
📊 Diagnostic Summary
|
|
386
|
+
=====================
|
|
387
|
+
⚠️ Found 4 issue(s) that need attention.
|
|
388
|
+
|
|
389
|
+
Next steps:
|
|
390
|
+
1. Run AgileFlow setup: npx agileflow setup
|
|
391
|
+
2. Verify installation completed successfully
|
|
392
|
+
3. Re-run diagnostics: /agileflow:diagnose
|
|
393
|
+
```
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: Create a new epic with stories
|
|
3
|
-
argument-hint: EPIC=<EP-ID> TITLE=<text> OWNER=<id> GOAL=<text> [STORIES=<list>]
|
|
3
|
+
argument-hint: EPIC=<EP-ID> TITLE=<text> OWNER=<id> GOAL=<text> [STORIES=<list>] [RESEARCH=<file>]
|
|
4
4
|
compact_context:
|
|
5
5
|
priority: high
|
|
6
6
|
preserve_rules:
|
|
@@ -11,11 +11,13 @@ compact_context:
|
|
|
11
11
|
- "MUST validate JSON after every modification"
|
|
12
12
|
- "MUST use AskUserQuestion for user confirmation (YES/NO/CANCEL format)"
|
|
13
13
|
- "STORIES format: 'US-ID|title|owner,US-ID2|title2|owner2' (comma-separated triplets)"
|
|
14
|
+
- "RESEARCH-FIRST: Validate research exists before creating epic; warn if missing for complex features"
|
|
14
15
|
state_fields:
|
|
15
16
|
- epic_id
|
|
16
17
|
- owner
|
|
17
18
|
- story_count
|
|
18
19
|
- creation_timestamp
|
|
20
|
+
- research_validated
|
|
19
21
|
---
|
|
20
22
|
|
|
21
23
|
# epic-new
|
|
@@ -105,6 +107,8 @@ OWNER=<id> # Agent or person name (required)
|
|
|
105
107
|
GOAL=<outcome> # Epic goal/metric (required)
|
|
106
108
|
STORIES=<list> # Comma-separated triplets (optional)
|
|
107
109
|
Format: "US-0001|Story One|owner,US-0002|Story Two|owner2"
|
|
110
|
+
RESEARCH=<file> # Research note filename (optional)
|
|
111
|
+
Format: "20260119-feature-research.md" (in docs/10-research/)
|
|
108
112
|
```
|
|
109
113
|
|
|
110
114
|
**Output Files Created**:
|
|
@@ -182,6 +186,7 @@ STORIES=<list> # Comma-separated triplets (optional)
|
|
|
182
186
|
- ALWAYS validate JSON after merge (prevents corruption)
|
|
183
187
|
- Use TodoWrite for step tracking (6 steps)
|
|
184
188
|
- Files: epic file, N story files, status.json, bus/log.jsonl
|
|
189
|
+
- **RESEARCH-FIRST**: For complex epics (3+ stories), validate research exists; suggest /agileflow:research:ask if missing
|
|
185
190
|
|
|
186
191
|
<!-- COMPACT_SUMMARY_END -->
|
|
187
192
|
|
|
@@ -263,6 +268,92 @@ After successfully creating the epic, offer next steps:
|
|
|
263
268
|
|
|
264
269
|
---
|
|
265
270
|
|
|
271
|
+
## Research-First Validation (GSD Integration)
|
|
272
|
+
|
|
273
|
+
Before creating an epic or starting work, validate that research exists for complex features.
|
|
274
|
+
|
|
275
|
+
### Research Validation Flow
|
|
276
|
+
|
|
277
|
+
**Step 1: Check for Research Field**
|
|
278
|
+
|
|
279
|
+
When epic has a `research` field in status.json:
|
|
280
|
+
```javascript
|
|
281
|
+
const epic = status.epics["EP-0022"];
|
|
282
|
+
if (epic.research) {
|
|
283
|
+
// Verify research file exists
|
|
284
|
+
const researchPath = `docs/10-research/${epic.research}`;
|
|
285
|
+
if (!fs.existsSync(researchPath)) {
|
|
286
|
+
console.warn(`⚠️ Research file not found: ${researchPath}`);
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
**Step 2: Warn if No Research for Complex Epic**
|
|
292
|
+
|
|
293
|
+
If epic has 3+ stories and no research field, suggest research first:
|
|
294
|
+
|
|
295
|
+
```xml
|
|
296
|
+
<invoke name="AskUserQuestion">
|
|
297
|
+
<parameter name="questions">[{
|
|
298
|
+
"question": "This epic has no linked research. Complex features benefit from research-first planning. What would you like to do?",
|
|
299
|
+
"header": "Research Check",
|
|
300
|
+
"multiSelect": false,
|
|
301
|
+
"options": [
|
|
302
|
+
{"label": "Create research first (Recommended)", "description": "Run /agileflow:research:ask to gather context"},
|
|
303
|
+
{"label": "Continue without research", "description": "Proceed with epic creation"},
|
|
304
|
+
{"label": "Link existing research", "description": "Specify research file to link"}
|
|
305
|
+
]
|
|
306
|
+
}]</parameter>
|
|
307
|
+
</invoke>
|
|
308
|
+
```
|
|
309
|
+
|
|
310
|
+
**If "Create research first"**:
|
|
311
|
+
- Suggest: `/agileflow:research:ask <topic>`
|
|
312
|
+
- After research created, re-run epic creation with RESEARCH parameter
|
|
313
|
+
|
|
314
|
+
**If "Link existing research"**:
|
|
315
|
+
- Show list of recent research files in docs/10-research/
|
|
316
|
+
- Let user select one
|
|
317
|
+
- Add to epic: `research: "selected-file.md"`
|
|
318
|
+
|
|
319
|
+
### Epic Schema with Research
|
|
320
|
+
|
|
321
|
+
```json
|
|
322
|
+
{
|
|
323
|
+
"EP-0022": {
|
|
324
|
+
"title": "GSD Integration",
|
|
325
|
+
"status": "in_progress",
|
|
326
|
+
"owner": "AG-DEVOPS",
|
|
327
|
+
"goal": "Adopt GSD workflow patterns",
|
|
328
|
+
"research": "20260119-gsd-agileflow-integration-analysis.md",
|
|
329
|
+
"research_required": false,
|
|
330
|
+
"stories": ["US-0129", "US-0130", "US-0131", "US-0132"]
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
```
|
|
334
|
+
|
|
335
|
+
**Fields**:
|
|
336
|
+
- `research` (optional): Filename of research note in docs/10-research/
|
|
337
|
+
- `research_required` (optional): If true, blocks implementation until research exists
|
|
338
|
+
|
|
339
|
+
### When Starting Work Without Research
|
|
340
|
+
|
|
341
|
+
If user tries to start a story in an epic that has `research_required: true` but no valid research file:
|
|
342
|
+
|
|
343
|
+
```
|
|
344
|
+
⚠️ Research Required
|
|
345
|
+
|
|
346
|
+
Epic EP-0022 requires research before implementation.
|
|
347
|
+
Research file not found: 20260119-missing-research.md
|
|
348
|
+
|
|
349
|
+
Suggested actions:
|
|
350
|
+
1. Run /agileflow:research:ask "GSD workflow integration"
|
|
351
|
+
2. Link existing research with /agileflow:epic RESEARCH=<file>
|
|
352
|
+
3. Remove research_required flag if research is optional
|
|
353
|
+
```
|
|
354
|
+
|
|
355
|
+
---
|
|
356
|
+
|
|
266
357
|
## Related Commands
|
|
267
358
|
|
|
268
359
|
- `/agileflow:epic:list` - View all epics with progress
|
|
@@ -271,3 +362,116 @@ After successfully creating the epic, offer next steps:
|
|
|
271
362
|
- `/agileflow:story:list` - View all stories
|
|
272
363
|
- `/agileflow:sprint` - Plan sprint with epic stories
|
|
273
364
|
- `/agileflow:board` - Visual kanban board
|
|
365
|
+
|
|
366
|
+
---
|
|
367
|
+
|
|
368
|
+
## Expected Output
|
|
369
|
+
|
|
370
|
+
### Successful Epic Creation
|
|
371
|
+
|
|
372
|
+
```
|
|
373
|
+
📦 Creating Epic: EP-0010
|
|
374
|
+
|
|
375
|
+
Title: User Authentication System
|
|
376
|
+
Owner: AG-API
|
|
377
|
+
Goal: Enable secure user login with OAuth support
|
|
378
|
+
|
|
379
|
+
Files to create:
|
|
380
|
+
───────────────────────────
|
|
381
|
+
1. docs/05-epics/EP-0010.md
|
|
382
|
+
- Epic definition with goal and stories
|
|
383
|
+
|
|
384
|
+
2. docs/06-stories/EP-0010/US-0042-login-form.md
|
|
385
|
+
- Story: Login Form (AG-UI)
|
|
386
|
+
|
|
387
|
+
3. docs/06-stories/EP-0010/US-0043-oauth-integration.md
|
|
388
|
+
- Story: OAuth Integration (AG-API)
|
|
389
|
+
|
|
390
|
+
4. docs/06-stories/EP-0010/US-0044-session-management.md
|
|
391
|
+
- Story: Session Management (AG-API)
|
|
392
|
+
|
|
393
|
+
5. docs/09-agents/status.json (merge)
|
|
394
|
+
+ "EP-0010": {
|
|
395
|
+
+ "id": "EP-0010",
|
|
396
|
+
+ "owner": "AG-API",
|
|
397
|
+
+ "status": "active",
|
|
398
|
+
+ "stories": ["US-0042", "US-0043", "US-0044"]
|
|
399
|
+
+ }
|
|
400
|
+
+ "US-0042": { "epic": "EP-0010", "owner": "AG-UI", "status": "ready" }
|
|
401
|
+
+ "US-0043": { "epic": "EP-0010", "owner": "AG-API", "status": "ready" }
|
|
402
|
+
+ "US-0044": { "epic": "EP-0010", "owner": "AG-API", "status": "ready" }
|
|
403
|
+
|
|
404
|
+
6. docs/09-agents/bus/log.jsonl (append)
|
|
405
|
+
+ {"type":"assign","to":"AG-API","epic":"EP-0010","text":"Epic created"}
|
|
406
|
+
+ {"type":"assign","to":"AG-UI","story":"US-0042","text":"Story created"}
|
|
407
|
+
+ {"type":"assign","to":"AG-API","story":"US-0043","text":"Story created"}
|
|
408
|
+
+ {"type":"assign","to":"AG-API","story":"US-0044","text":"Story created"}
|
|
409
|
+
|
|
410
|
+
[AskUserQuestion: "Create epic EP-0010 with 3 stories?"]
|
|
411
|
+
|
|
412
|
+
✅ Epic EP-0010 created successfully!
|
|
413
|
+
✅ Created 3 stories: US-0042, US-0043, US-0044
|
|
414
|
+
✅ Bus messages sent to assigned owners
|
|
415
|
+
|
|
416
|
+
[AskUserQuestion: "What would you like to do next?"]
|
|
417
|
+
```
|
|
418
|
+
|
|
419
|
+
### Research Validation Warning
|
|
420
|
+
|
|
421
|
+
```
|
|
422
|
+
📦 Creating Epic: EP-0010 (5 stories)
|
|
423
|
+
|
|
424
|
+
⚠️ Research Check
|
|
425
|
+
|
|
426
|
+
This epic has no linked research.
|
|
427
|
+
Complex features (3+ stories) benefit from research-first planning.
|
|
428
|
+
|
|
429
|
+
[AskUserQuestion: "What would you like to do?"]
|
|
430
|
+
- Create research first (Recommended)
|
|
431
|
+
- Continue without research
|
|
432
|
+
- Link existing research
|
|
433
|
+
```
|
|
434
|
+
|
|
435
|
+
### With Linked Research
|
|
436
|
+
|
|
437
|
+
```
|
|
438
|
+
📦 Creating Epic: EP-0010
|
|
439
|
+
|
|
440
|
+
Research linked: 20260121-auth-system-analysis.md
|
|
441
|
+
|
|
442
|
+
✅ Research file validated
|
|
443
|
+
✅ Key findings extracted:
|
|
444
|
+
• OAuth 2.0 recommended over custom auth
|
|
445
|
+
• JWT for session tokens
|
|
446
|
+
• 3 integration points identified
|
|
447
|
+
|
|
448
|
+
[Proceeding with epic creation...]
|
|
449
|
+
```
|
|
450
|
+
|
|
451
|
+
### Validation Error
|
|
452
|
+
|
|
453
|
+
```
|
|
454
|
+
❌ Invalid STORIES format
|
|
455
|
+
|
|
456
|
+
Received: US-0042,US-0043
|
|
457
|
+
Expected: US-0042|title|owner,US-0043|title|owner
|
|
458
|
+
|
|
459
|
+
Format: "US-ID|title|owner,US-ID2|title2|owner2"
|
|
460
|
+
|
|
461
|
+
Example:
|
|
462
|
+
STORIES="US-0042|Login Form|AG-UI,US-0043|OAuth|AG-API"
|
|
463
|
+
```
|
|
464
|
+
|
|
465
|
+
### Epic Already Exists
|
|
466
|
+
|
|
467
|
+
```
|
|
468
|
+
❌ Epic EP-0010 already exists
|
|
469
|
+
|
|
470
|
+
Existing epic:
|
|
471
|
+
Title: User Authentication System
|
|
472
|
+
Status: in_progress
|
|
473
|
+
Stories: 3 (1 done, 2 in progress)
|
|
474
|
+
|
|
475
|
+
To add stories, use:
|
|
476
|
+
/agileflow:story EPIC=EP-0010 STORY=US-00XX TITLE="..." OWNER=...
|
|
477
|
+
```
|
|
@@ -246,3 +246,131 @@ ACTIONS
|
|
|
246
246
|
2) Append bus line type="handoff".
|
|
247
247
|
|
|
248
248
|
Diff-first; YES/NO.
|
|
249
|
+
|
|
250
|
+
---
|
|
251
|
+
|
|
252
|
+
## Expected Output
|
|
253
|
+
|
|
254
|
+
### Successful Handoff
|
|
255
|
+
|
|
256
|
+
```
|
|
257
|
+
📋 Creating Handoff: US-0042
|
|
258
|
+
|
|
259
|
+
From: AG-API
|
|
260
|
+
To: AG-UI
|
|
261
|
+
Summary: Completed auth endpoints, tests passing
|
|
262
|
+
|
|
263
|
+
Files to create:
|
|
264
|
+
───────────────────────────────────────────────
|
|
265
|
+
1. docs/09-agents/comms/US-0042-20260121-handoff.md
|
|
266
|
+
|
|
267
|
+
Preview:
|
|
268
|
+
─────────────────────────────────────────────
|
|
269
|
+
# Handoff: US-0042
|
|
270
|
+
|
|
271
|
+
**From**: AG-API
|
|
272
|
+
**To**: AG-UI
|
|
273
|
+
**Date**: 2026-01-21
|
|
274
|
+
|
|
275
|
+
## Summary
|
|
276
|
+
Completed all authentication API endpoints including login, logout, and token refresh.
|
|
277
|
+
Unit and integration tests passing (14 tests).
|
|
278
|
+
|
|
279
|
+
## Work Completed
|
|
280
|
+
- POST /api/auth/login endpoint
|
|
281
|
+
- POST /api/auth/logout endpoint
|
|
282
|
+
- POST /api/auth/refresh endpoint
|
|
283
|
+
- JWT token generation with 1h expiry
|
|
284
|
+
- Integration tests with mocked database
|
|
285
|
+
|
|
286
|
+
## Blockers
|
|
287
|
+
- None - API is ready for UI integration
|
|
288
|
+
|
|
289
|
+
## Notes for Next Agent
|
|
290
|
+
- Use the `useAuth` hook for token management
|
|
291
|
+
- Login endpoint returns { token, user } on success
|
|
292
|
+
- Error responses use standard { error, code } format
|
|
293
|
+
- See docs/04-architecture/auth-api.md for full spec
|
|
294
|
+
|
|
295
|
+
## Files Modified
|
|
296
|
+
- src/api/auth/login.ts
|
|
297
|
+
- src/api/auth/logout.ts
|
|
298
|
+
- src/api/auth/refresh.ts
|
|
299
|
+
- tests/api/auth/*.test.ts
|
|
300
|
+
─────────────────────────────────────────────
|
|
301
|
+
|
|
302
|
+
2. docs/09-agents/bus/log.jsonl (append)
|
|
303
|
+
+ {"ts":"2026-01-21T14:30:00Z","type":"handoff","story":"US-0042","from":"AG-API","to":"AG-UI","summary":"Completed auth endpoints"}
|
|
304
|
+
|
|
305
|
+
[AskUserQuestion: "Create this handoff?"]
|
|
306
|
+
|
|
307
|
+
✅ Handoff created successfully!
|
|
308
|
+
Note: docs/09-agents/comms/US-0042-20260121-handoff.md
|
|
309
|
+
Bus log updated: handoff event appended
|
|
310
|
+
```
|
|
311
|
+
|
|
312
|
+
### Missing Required Inputs
|
|
313
|
+
|
|
314
|
+
```
|
|
315
|
+
❌ Missing required inputs
|
|
316
|
+
|
|
317
|
+
Please provide:
|
|
318
|
+
• STORY - Story ID (e.g., US-0042)
|
|
319
|
+
• FROM - Source agent (e.g., AG-API)
|
|
320
|
+
• TO - Target agent (e.g., AG-UI)
|
|
321
|
+
• SUMMARY - What was done
|
|
322
|
+
|
|
323
|
+
Usage:
|
|
324
|
+
/agileflow:handoff STORY=US-0042 FROM=AG-API TO=AG-UI SUMMARY="Completed auth endpoints"
|
|
325
|
+
|
|
326
|
+
Optional:
|
|
327
|
+
• BLOCKERS - Issues for next agent (e.g., "Need DBA review")
|
|
328
|
+
```
|
|
329
|
+
|
|
330
|
+
### Handoff with Blockers
|
|
331
|
+
|
|
332
|
+
```
|
|
333
|
+
📋 Creating Handoff: US-0042
|
|
334
|
+
|
|
335
|
+
From: AG-API
|
|
336
|
+
To: AG-UI
|
|
337
|
+
Summary: Completed auth endpoints
|
|
338
|
+
Blockers: 2 identified
|
|
339
|
+
|
|
340
|
+
Files to create:
|
|
341
|
+
───────────────────────────────────────────────
|
|
342
|
+
1. docs/09-agents/comms/US-0042-20260121-handoff.md
|
|
343
|
+
|
|
344
|
+
## Blockers
|
|
345
|
+
|
|
346
|
+
⚠️ The following blockers need attention:
|
|
347
|
+
|
|
348
|
+
1. **Database migration pending**
|
|
349
|
+
Schema changes need DBA review before deployment.
|
|
350
|
+
Related: ADR-0015 (database upgrade strategy)
|
|
351
|
+
|
|
352
|
+
2. **Rate limiting not configured**
|
|
353
|
+
Need to decide on rate limits for login endpoint.
|
|
354
|
+
Suggest: /agileflow:adr for rate limiting decision
|
|
355
|
+
|
|
356
|
+
[AskUserQuestion: "Create handoff with blockers?"]
|
|
357
|
+
```
|
|
358
|
+
|
|
359
|
+
### Invalid Agent ID
|
|
360
|
+
|
|
361
|
+
```
|
|
362
|
+
❌ Invalid agent ID: AG-UNKNOWN
|
|
363
|
+
|
|
364
|
+
Valid agent IDs:
|
|
365
|
+
• AG-UI - UI/frontend specialist
|
|
366
|
+
• AG-API - API/backend specialist
|
|
367
|
+
• AG-DATABASE - Database specialist
|
|
368
|
+
• AG-CI - CI/CD specialist
|
|
369
|
+
• AG-TESTING - Testing specialist
|
|
370
|
+
• AG-DEVOPS - DevOps specialist
|
|
371
|
+
|
|
372
|
+
Check the FROM and TO parameters.
|
|
373
|
+
|
|
374
|
+
Usage:
|
|
375
|
+
/agileflow:handoff STORY=US-0042 FROM=AG-API TO=AG-UI SUMMARY="..."
|
|
376
|
+
```
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: Display AgileFlow system overview and commands
|
|
3
3
|
argument-hint: (no arguments)
|
|
4
|
+
type: output-only # Display command - generates output, not an ongoing task
|
|
4
5
|
compact_context:
|
|
5
6
|
priority: medium
|
|
6
7
|
preserve_rules:
|
|
@@ -91,3 +92,78 @@ Print a concise, one-screen overview:
|
|
|
91
92
|
<!-- {{COMMAND_LIST}} -->
|
|
92
93
|
|
|
93
94
|
OUTPUT: plain markdown only (no file writes)
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
## Expected Output
|
|
99
|
+
|
|
100
|
+
```markdown
|
|
101
|
+
# AgileFlow System Overview
|
|
102
|
+
|
|
103
|
+
## Folder Structure
|
|
104
|
+
|
|
105
|
+
```
|
|
106
|
+
docs/
|
|
107
|
+
├── 00-meta/ # Metadata and configuration
|
|
108
|
+
├── 01-brainstorming/ # Ideas and proposals
|
|
109
|
+
├── 02-practices/ # Development guidelines
|
|
110
|
+
├── 03-decisions/ # Architecture Decision Records (ADRs)
|
|
111
|
+
├── 04-architecture/ # System design documentation
|
|
112
|
+
├── 05-epics/ # Epic definitions (EP-XXXX.md)
|
|
113
|
+
├── 06-stories/ # User stories by epic (US-XXXX-<slug>.md)
|
|
114
|
+
├── 07-testing/ # Test plans and coverage
|
|
115
|
+
├── 08-project/ # Project overview, roadmaps, reviews
|
|
116
|
+
├── 09-agents/ # Agent communication
|
|
117
|
+
│ ├── status.json # Story/epic status tracking
|
|
118
|
+
│ └── bus/log.jsonl # Inter-agent message bus
|
|
119
|
+
└── 10-research/ # Research notes and findings
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
## Key Concepts
|
|
123
|
+
|
|
124
|
+
**Epics** (EP-XXXX): Large features broken into stories
|
|
125
|
+
**Stories** (US-XXXX): Work items with acceptance criteria
|
|
126
|
+
**ADRs**: Architecture Decision Records for technical choices
|
|
127
|
+
**status.json**: Central source of truth for story/epic status
|
|
128
|
+
**bus/log.jsonl**: Async message bus for agent coordination
|
|
129
|
+
|
|
130
|
+
## Daily Workflow
|
|
131
|
+
|
|
132
|
+
1. Pick a ready story from status.json
|
|
133
|
+
2. Mark as `in-progress`
|
|
134
|
+
3. Implement to acceptance criteria
|
|
135
|
+
4. Write/update tests
|
|
136
|
+
5. Create PR
|
|
137
|
+
6. Mark as `in-review`
|
|
138
|
+
7. After merge: Mark as `done`
|
|
139
|
+
|
|
140
|
+
## WIP Limits
|
|
141
|
+
|
|
142
|
+
- **Max 2 stories per agent** in progress or review
|
|
143
|
+
- Complete or unblock before starting new work
|
|
144
|
+
|
|
145
|
+
## Available Commands
|
|
146
|
+
|
|
147
|
+
### Project Management
|
|
148
|
+
- `/agileflow:epic` - Create a new epic
|
|
149
|
+
- `/agileflow:story` - Create a user story
|
|
150
|
+
- `/agileflow:status` - Update story status
|
|
151
|
+
- `/agileflow:board` - Visual kanban board
|
|
152
|
+
- `/agileflow:sprint` - Plan sprint stories
|
|
153
|
+
|
|
154
|
+
### Development
|
|
155
|
+
- `/agileflow:babysit` - Guided implementation mentor
|
|
156
|
+
- `/agileflow:review` - AI code review
|
|
157
|
+
- `/agileflow:pr` - Generate PR description
|
|
158
|
+
- `/agileflow:tests` - Generate test cases
|
|
159
|
+
|
|
160
|
+
### Documentation
|
|
161
|
+
- `/agileflow:adr` - Create architecture decision
|
|
162
|
+
- `/agileflow:docs` - Generate documentation
|
|
163
|
+
- `/agileflow:changelog` - Generate changelog entry
|
|
164
|
+
|
|
165
|
+
### Utilities
|
|
166
|
+
- `/agileflow:help` - This overview
|
|
167
|
+
- `/agileflow:diagnose` - System health check
|
|
168
|
+
- `/agileflow:configure` - Setup AgileFlow
|
|
169
|
+
```
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
description: Analytics dashboard with cycle time and throughput
|
|
3
3
|
argument-hint: "[TIMEFRAME=7d|30d|90d|all] [EPIC=<id>] [OWNER=<id>] [FORMAT=ascii|json|csv] [METRIC=cycle-time|lead-time|throughput|all]"
|
|
4
4
|
model: haiku
|
|
5
|
+
type: output-only # Analytics display - read-only, not an ongoing task
|
|
5
6
|
compact_context:
|
|
6
7
|
priority: medium
|
|
7
8
|
preserve_rules:
|
package/src/core/commands/pr.md
CHANGED
|
@@ -227,3 +227,99 @@ ACTIONS
|
|
|
227
227
|
3) Suggest a Conventional Commit subject for squash.
|
|
228
228
|
|
|
229
229
|
No file writes.
|
|
230
|
+
|
|
231
|
+
---
|
|
232
|
+
|
|
233
|
+
## Expected Output
|
|
234
|
+
|
|
235
|
+
### Successful PR Description
|
|
236
|
+
|
|
237
|
+
```
|
|
238
|
+
📝 Generating PR description for US-0042...
|
|
239
|
+
|
|
240
|
+
Reading story file: docs/06-stories/EP-0010/US-0042-login-form.md
|
|
241
|
+
✅ Found epic: EP-0010 (User Authentication)
|
|
242
|
+
✅ Found 3 acceptance criteria
|
|
243
|
+
✅ Found 1 dependency: US-0041
|
|
244
|
+
|
|
245
|
+
───────────────────────────────────────────────────────────
|
|
246
|
+
PASTE-READY PR BODY (Copy everything below this line)
|
|
247
|
+
───────────────────────────────────────────────────────────
|
|
248
|
+
|
|
249
|
+
## US-0042: Implement Login Form with Validation
|
|
250
|
+
|
|
251
|
+
### Summary
|
|
252
|
+
|
|
253
|
+
Implements the user login form with email/password validation as part of the
|
|
254
|
+
User Authentication epic (EP-0010). This PR adds client-side validation,
|
|
255
|
+
error handling, and integration with the authentication API.
|
|
256
|
+
|
|
257
|
+
### Linked Issues
|
|
258
|
+
|
|
259
|
+
- Closes #US-0042
|
|
260
|
+
- Depends on #US-0041 (Authentication API)
|
|
261
|
+
|
|
262
|
+
### Acceptance Criteria
|
|
263
|
+
|
|
264
|
+
- [x] User can enter email and password
|
|
265
|
+
- [x] Form validates email format
|
|
266
|
+
- [ ] Form shows error messages for invalid input
|
|
267
|
+
- [x] Submit button disabled while validating
|
|
268
|
+
|
|
269
|
+
### Test Evidence
|
|
270
|
+
|
|
271
|
+
- `npm test src/components/LoginForm.test.tsx` - 12 tests passing
|
|
272
|
+
- Manual testing: Verified on Chrome, Firefox, Safari
|
|
273
|
+
- Screenshot: login-form-validation.png
|
|
274
|
+
|
|
275
|
+
### Screenshots
|
|
276
|
+
|
|
277
|
+

|
|
278
|
+
|
|
279
|
+
### Risk Assessment
|
|
280
|
+
|
|
281
|
+
- **Low risk**: UI-only changes, no backend modifications
|
|
282
|
+
- **Rollback**: Revert this PR if issues detected
|
|
283
|
+
|
|
284
|
+
### Code Owners
|
|
285
|
+
|
|
286
|
+
@frontend-team
|
|
287
|
+
|
|
288
|
+
───────────────────────────────────────────────────────────
|
|
289
|
+
|
|
290
|
+
**Suggested commit message:**
|
|
291
|
+
```
|
|
292
|
+
feat(auth): implement login form with validation
|
|
293
|
+
|
|
294
|
+
Closes US-0042
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
[AskUserQuestion: "Use this PR description?"]
|
|
298
|
+
```
|
|
299
|
+
|
|
300
|
+
### Missing Story ID
|
|
301
|
+
|
|
302
|
+
```
|
|
303
|
+
❌ Missing required input: STORY
|
|
304
|
+
|
|
305
|
+
Usage:
|
|
306
|
+
/agileflow:pr STORY=US-0042 TITLE="Login Form"
|
|
307
|
+
|
|
308
|
+
Optional parameters:
|
|
309
|
+
- AC_CHECKED="1,2,4" - Mark AC items 1, 2, 4 as checked
|
|
310
|
+
- TEST_EVIDENCE="npm test passes, manual QA complete"
|
|
311
|
+
- NOTES="Additional context for reviewers"
|
|
312
|
+
```
|
|
313
|
+
|
|
314
|
+
### Story File Not Found
|
|
315
|
+
|
|
316
|
+
```
|
|
317
|
+
❌ Story file not found
|
|
318
|
+
|
|
319
|
+
Searched:
|
|
320
|
+
- docs/06-stories/US-0042.md
|
|
321
|
+
- docs/06-stories/EP-*/US-0042-*.md
|
|
322
|
+
|
|
323
|
+
Create the story first:
|
|
324
|
+
/agileflow:story EPIC=EP-0010 STORY=US-0042 TITLE="Login Form" OWNER=AG-UI
|
|
325
|
+
```
|
|
@@ -563,6 +563,7 @@ The implementation plan is now tracked and ready to execute.
|
|
|
563
563
|
## Related Commands
|
|
564
564
|
|
|
565
565
|
- `/agileflow:research:import` - Import new research (includes analysis option)
|
|
566
|
+
- `/agileflow:research:synthesize` - Synthesize insights across multiple research files
|
|
566
567
|
- `/agileflow:research:view` - Read-only view of research
|
|
567
568
|
- `/agileflow:research:list` - Show all research notes
|
|
568
569
|
- `/agileflow:research:ask` - Generate research prompt for web AI
|