agileflow 2.94.1 → 2.95.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +20 -0
- package/README.md +3 -3
- package/lib/colors.generated.js +117 -0
- package/lib/colors.js +59 -109
- package/lib/generator-factory.js +333 -0
- package/lib/path-utils.js +49 -0
- package/lib/session-registry.js +25 -15
- package/lib/smart-json-file.js +40 -32
- package/lib/state-machine.js +286 -0
- package/package.json +1 -1
- package/scripts/agileflow-configure.js +7 -6
- package/scripts/archive-completed-stories.sh +86 -11
- package/scripts/babysit-context-restore.js +89 -0
- package/scripts/claude-tmux.sh +111 -5
- package/scripts/damage-control/bash-tool-damage-control.js +11 -247
- package/scripts/damage-control/edit-tool-damage-control.js +9 -249
- package/scripts/damage-control/write-tool-damage-control.js +9 -244
- package/scripts/generate-colors.js +314 -0
- package/scripts/lib/colors.generated.sh +82 -0
- package/scripts/lib/colors.sh +10 -70
- package/scripts/lib/configure-features.js +401 -0
- package/scripts/lib/context-loader.js +181 -52
- package/scripts/precompact-context.sh +54 -17
- package/scripts/session-coordinator.sh +2 -2
- package/scripts/session-manager.js +653 -10
- package/src/core/commands/audit.md +93 -0
- package/src/core/commands/auto.md +73 -0
- package/src/core/commands/babysit.md +169 -13
- package/src/core/commands/baseline.md +73 -0
- package/src/core/commands/batch.md +64 -0
- package/src/core/commands/blockers.md +60 -0
- package/src/core/commands/board.md +66 -0
- package/src/core/commands/choose.md +77 -0
- package/src/core/commands/ci.md +77 -0
- package/src/core/commands/compress.md +27 -1
- package/src/core/commands/configure.md +126 -10
- package/src/core/commands/council.md +74 -0
- package/src/core/commands/debt.md +72 -0
- package/src/core/commands/deploy.md +73 -0
- package/src/core/commands/deps.md +68 -0
- package/src/core/commands/docs.md +60 -0
- package/src/core/commands/feedback.md +68 -0
- package/src/core/commands/ideate.md +74 -0
- package/src/core/commands/impact.md +74 -0
- package/src/core/commands/install.md +529 -0
- package/src/core/commands/maintain.md +558 -0
- package/src/core/commands/metrics.md +75 -0
- package/src/core/commands/multi-expert.md +74 -0
- package/src/core/commands/packages.md +69 -0
- package/src/core/commands/readme-sync.md +64 -0
- package/src/core/commands/research/analyze.md +285 -121
- package/src/core/commands/research/import.md +281 -109
- package/src/core/commands/retro.md +76 -0
- package/src/core/commands/review.md +72 -0
- package/src/core/commands/rlm.md +83 -0
- package/src/core/commands/rpi.md +90 -0
- package/src/core/commands/session/cleanup.md +214 -12
- package/src/core/commands/session/end.md +155 -17
- package/src/core/commands/sprint.md +72 -0
- package/src/core/commands/story-validate.md +68 -0
- package/src/core/commands/template.md +69 -0
- package/src/core/commands/tests.md +83 -0
- package/src/core/commands/update.md +59 -0
- package/src/core/commands/validate-expertise.md +76 -0
- package/src/core/commands/velocity.md +74 -0
- package/src/core/commands/verify.md +91 -0
- package/src/core/commands/whats-new.md +69 -0
- package/src/core/commands/workflow.md +88 -0
- package/src/core/templates/command-documentation.md +187 -0
- package/tools/cli/commands/session.js +1171 -0
- package/tools/cli/commands/setup.js +2 -81
- package/tools/cli/installers/core/installer.js +0 -5
- package/tools/cli/installers/ide/claude-code.js +6 -0
- package/tools/cli/lib/config-manager.js +42 -5
|
@@ -343,6 +343,83 @@ Use `/agileflow:choose` for decisions that:
|
|
|
343
343
|
|
|
344
344
|
---
|
|
345
345
|
|
|
346
|
+
## Expected Output
|
|
347
|
+
|
|
348
|
+
### Success - Decision Analysis
|
|
349
|
+
|
|
350
|
+
```
|
|
351
|
+
🤔 Decision Analysis: Database Selection
|
|
352
|
+
══════════════════════════════════════════════════════════════
|
|
353
|
+
|
|
354
|
+
Context: New microservice needs persistent storage for user data
|
|
355
|
+
|
|
356
|
+
📊 Options Evaluated:
|
|
357
|
+
|
|
358
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
359
|
+
│ Option A: PostgreSQL │
|
|
360
|
+
├─────────────────────────────────────────────────────────────┤
|
|
361
|
+
│ ✅ Pros: │
|
|
362
|
+
│ - ACID compliance │
|
|
363
|
+
│ - Rich query capabilities │
|
|
364
|
+
│ - Team expertise exists │
|
|
365
|
+
│ ❌ Cons: │
|
|
366
|
+
│ - Scaling complexity │
|
|
367
|
+
│ - Higher operational overhead │
|
|
368
|
+
│ Score: 8/10 │
|
|
369
|
+
└─────────────────────────────────────────────────────────────┘
|
|
370
|
+
|
|
371
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
372
|
+
│ Option B: MongoDB │
|
|
373
|
+
├─────────────────────────────────────────────────────────────┤
|
|
374
|
+
│ ✅ Pros: │
|
|
375
|
+
│ - Flexible schema │
|
|
376
|
+
│ - Horizontal scaling │
|
|
377
|
+
│ ❌ Cons: │
|
|
378
|
+
│ - No ACID by default │
|
|
379
|
+
│ - Learning curve │
|
|
380
|
+
│ Score: 6/10 │
|
|
381
|
+
└─────────────────────────────────────────────────────────────┘
|
|
382
|
+
|
|
383
|
+
🎯 Recommendation: PostgreSQL
|
|
384
|
+
|
|
385
|
+
Rationale: Given team expertise and ACID requirements,
|
|
386
|
+
PostgreSQL provides better fit despite scaling concerns.
|
|
387
|
+
|
|
388
|
+
Document this decision?
|
|
389
|
+
→ /agileflow:adr TITLE="Database Selection for User Service"
|
|
390
|
+
```
|
|
391
|
+
|
|
392
|
+
### Success - Quick Choice
|
|
393
|
+
|
|
394
|
+
```
|
|
395
|
+
🤔 Quick Choice: Testing Framework
|
|
396
|
+
|
|
397
|
+
Options: Jest vs Vitest vs Mocha
|
|
398
|
+
|
|
399
|
+
✅ Recommended: Jest
|
|
400
|
+
- Industry standard
|
|
401
|
+
- Great TypeScript support
|
|
402
|
+
- Existing config in project
|
|
403
|
+
|
|
404
|
+
Accept recommendation? [Y/n]
|
|
405
|
+
```
|
|
406
|
+
|
|
407
|
+
### Error - Insufficient Context
|
|
408
|
+
|
|
409
|
+
```
|
|
410
|
+
❌ Error: Cannot make recommendation without context
|
|
411
|
+
|
|
412
|
+
Please provide:
|
|
413
|
+
- QUESTION: What decision needs to be made?
|
|
414
|
+
- OPTIONS: At least 2 alternatives
|
|
415
|
+
- CONTEXT: Relevant constraints and requirements
|
|
416
|
+
|
|
417
|
+
Example:
|
|
418
|
+
/agileflow:choose QUESTION="Which CI provider?" OPTIONS="GitHub Actions, CircleCI, Jenkins"
|
|
419
|
+
```
|
|
420
|
+
|
|
421
|
+
---
|
|
422
|
+
|
|
346
423
|
## Related Commands
|
|
347
424
|
|
|
348
425
|
- `/agileflow:adr` - Create Architecture Decision Records
|
package/src/core/commands/ci.md
CHANGED
|
@@ -243,6 +243,83 @@ Diff-first; YES/NO.
|
|
|
243
243
|
|
|
244
244
|
---
|
|
245
245
|
|
|
246
|
+
## Expected Output
|
|
247
|
+
|
|
248
|
+
### Success - CI Workflow Created
|
|
249
|
+
|
|
250
|
+
```
|
|
251
|
+
🔧 CI/CD Setup
|
|
252
|
+
══════════════════════════════════════════════════════════════
|
|
253
|
+
|
|
254
|
+
Creating workflow configuration...
|
|
255
|
+
|
|
256
|
+
✓ Created .github/workflows/ci.yml
|
|
257
|
+
- lint: ESLint + Prettier check
|
|
258
|
+
- typecheck: TypeScript compilation
|
|
259
|
+
- test: Jest with coverage
|
|
260
|
+
- Concurrency: cancel-in-progress enabled
|
|
261
|
+
|
|
262
|
+
✓ Created CODEOWNERS
|
|
263
|
+
/src/ @team-lead @senior-dev
|
|
264
|
+
/docs/03-decisions/ @tech-lead
|
|
265
|
+
|
|
266
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
267
|
+
✅ CI/CD Setup Complete
|
|
268
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
269
|
+
|
|
270
|
+
Next steps:
|
|
271
|
+
1. Push workflow: git add . && git push
|
|
272
|
+
2. Enable branch protection in GitHub settings
|
|
273
|
+
3. Set required checks: lint, typecheck, test
|
|
274
|
+
|
|
275
|
+
View workflow: .github/workflows/ci.yml
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
### Success - Workflow Updated
|
|
279
|
+
|
|
280
|
+
```
|
|
281
|
+
🔧 CI/CD Update
|
|
282
|
+
══════════════════════════════════════════════════════════════
|
|
283
|
+
|
|
284
|
+
Existing workflow detected. Updating...
|
|
285
|
+
|
|
286
|
+
Changes:
|
|
287
|
+
+ Added code coverage threshold (80%)
|
|
288
|
+
+ Added security audit job
|
|
289
|
+
~ Updated Node.js version to 20
|
|
290
|
+
|
|
291
|
+
✓ Updated .github/workflows/ci.yml
|
|
292
|
+
|
|
293
|
+
Review changes before committing:
|
|
294
|
+
git diff .github/workflows/ci.yml
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
### Error - Missing OWNERS
|
|
298
|
+
|
|
299
|
+
```
|
|
300
|
+
❌ Error: OWNERS parameter required
|
|
301
|
+
|
|
302
|
+
Specify code owners for CODEOWNERS file:
|
|
303
|
+
|
|
304
|
+
/agileflow:ci OWNERS="@username1, @username2"
|
|
305
|
+
|
|
306
|
+
These users will be required reviewers for PR changes.
|
|
307
|
+
```
|
|
308
|
+
|
|
309
|
+
### Error - Invalid Workflow
|
|
310
|
+
|
|
311
|
+
```
|
|
312
|
+
❌ Error: Invalid workflow configuration
|
|
313
|
+
|
|
314
|
+
.github/workflows/ci.yml has syntax errors:
|
|
315
|
+
Line 15: Invalid job name 'test!'
|
|
316
|
+
Line 23: Missing 'runs-on' field
|
|
317
|
+
|
|
318
|
+
Fix errors or run with FORCE=true to overwrite.
|
|
319
|
+
```
|
|
320
|
+
|
|
321
|
+
---
|
|
322
|
+
|
|
246
323
|
## Related Commands
|
|
247
324
|
|
|
248
325
|
- `/agileflow:configure` - Manage AgileFlow features and hooks
|
|
@@ -251,7 +251,9 @@ bash .agileflow/scripts/compress-status.sh
|
|
|
251
251
|
- `/agileflow:status` - View current story statuses
|
|
252
252
|
- `/agileflow:validate` - Validate AgileFlow system health
|
|
253
253
|
|
|
254
|
-
##
|
|
254
|
+
## Expected Output
|
|
255
|
+
|
|
256
|
+
### Success - Compression Complete
|
|
255
257
|
|
|
256
258
|
```
|
|
257
259
|
🗜️ AgileFlow Status Compression
|
|
@@ -298,6 +300,30 @@ bash .agileflow/scripts/compress-status.sh
|
|
|
298
300
|
💾 To restore original: cp docs/09-agents/status.json.backup docs/09-agents/status.json
|
|
299
301
|
```
|
|
300
302
|
|
|
303
|
+
### Error - File Not Found
|
|
304
|
+
|
|
305
|
+
```
|
|
306
|
+
❌ Error: status.json not found
|
|
307
|
+
|
|
308
|
+
Expected location: docs/09-agents/status.json
|
|
309
|
+
|
|
310
|
+
Run /agileflow:setup to initialize AgileFlow structure.
|
|
311
|
+
```
|
|
312
|
+
|
|
313
|
+
### Error - Invalid JSON
|
|
314
|
+
|
|
315
|
+
```
|
|
316
|
+
❌ Error: Invalid JSON in status.json
|
|
317
|
+
|
|
318
|
+
Parse error at line 42: Unexpected token
|
|
319
|
+
|
|
320
|
+
Fix the JSON syntax error and try again.
|
|
321
|
+
Backup your current file first:
|
|
322
|
+
cp docs/09-agents/status.json docs/09-agents/status.json.broken
|
|
323
|
+
```
|
|
324
|
+
|
|
325
|
+
---
|
|
326
|
+
|
|
301
327
|
## Technical Notes
|
|
302
328
|
|
|
303
329
|
**Token Estimation**:
|
|
@@ -177,18 +177,43 @@ After handling issues (or if none), present the main category menu:
|
|
|
177
177
|
{"label": "Full (Recommended)", "description": "All features: hooks, archival, status line, AskUserQuestion, TmuxAutoSpawn"},
|
|
178
178
|
{"label": "Basic", "description": "SessionStart + PreCompact + Archival + AskUserQuestion + TmuxAutoSpawn"},
|
|
179
179
|
{"label": "Minimal", "description": "SessionStart + Archival only"},
|
|
180
|
-
{"label": "
|
|
180
|
+
{"label": "Experimental ⚠️", "description": "All features + full file injection during compact (CONTEXT HEAVY)"}
|
|
181
181
|
]
|
|
182
182
|
}]</parameter>
|
|
183
183
|
</invoke>
|
|
184
184
|
```
|
|
185
185
|
|
|
186
|
+
**Note:** If user needs "None" (disable all), show as second page or via "Other" option.
|
|
187
|
+
|
|
186
188
|
Then run:
|
|
187
189
|
- "Full" → `node .agileflow/scripts/agileflow-configure.js --profile=full`
|
|
188
190
|
- "Basic" → `node .agileflow/scripts/agileflow-configure.js --profile=basic`
|
|
189
191
|
- "Minimal" → `node .agileflow/scripts/agileflow-configure.js --profile=minimal`
|
|
192
|
+
- "Experimental" → `node .agileflow/scripts/agileflow-configure.js --profile=experimental`
|
|
190
193
|
- "None" → `node .agileflow/scripts/agileflow-configure.js --profile=none`
|
|
191
194
|
|
|
195
|
+
### Experimental Profile Details
|
|
196
|
+
|
|
197
|
+
The **Experimental** profile enables all features like "Full", but changes how context is preserved during conversation compaction:
|
|
198
|
+
|
|
199
|
+
| Aspect | Full Profile | Experimental Profile |
|
|
200
|
+
|--------|--------------|---------------------|
|
|
201
|
+
| Features | All enabled | All enabled |
|
|
202
|
+
| PreCompact behavior | Extracts `COMPACT_SUMMARY` sections | Injects **entire command files** |
|
|
203
|
+
| Context usage | ~200-500 tokens per command | ~2000-5000 tokens per command |
|
|
204
|
+
| Reliability | Good for most cases | May improve instruction adherence |
|
|
205
|
+
|
|
206
|
+
**When to use Experimental:**
|
|
207
|
+
- Commands aren't being followed well after compaction
|
|
208
|
+
- You have plenty of context budget
|
|
209
|
+
- Working on long sessions with complex commands (babysit, mentor)
|
|
210
|
+
|
|
211
|
+
**Trade-offs:**
|
|
212
|
+
- ⚠️ Uses significantly more context tokens
|
|
213
|
+
- ⚠️ May hit context limits faster
|
|
214
|
+
- ✅ Full command instructions preserved
|
|
215
|
+
- ✅ No loss of nuance from summarization
|
|
216
|
+
|
|
192
217
|
#### If "Apply custom profile" selected
|
|
193
218
|
|
|
194
219
|
First, check if custom profiles exist:
|
|
@@ -305,20 +330,37 @@ First, ask about hooks:
|
|
|
305
330
|
</invoke>
|
|
306
331
|
```
|
|
307
332
|
|
|
308
|
-
Then ask about other features:
|
|
333
|
+
Then ask about other features (page 1):
|
|
309
334
|
|
|
310
335
|
```xml
|
|
311
336
|
<invoke name="AskUserQuestion">
|
|
312
337
|
<parameter name="questions">[{
|
|
313
|
-
"question": "Which other features?",
|
|
338
|
+
"question": "Which other features? (Page 1/2)",
|
|
314
339
|
"header": "Features",
|
|
315
340
|
"multiSelect": true,
|
|
316
341
|
"options": [
|
|
317
342
|
{"label": "Archival", "description": "Auto-archive completed stories older than threshold"},
|
|
318
343
|
{"label": "Status Line", "description": "Custom status bar showing story/epic info"},
|
|
319
344
|
{"label": "Auto-Update", "description": "Automatically update AgileFlow on session start"},
|
|
345
|
+
{"label": "More options...", "description": "View additional features"}
|
|
346
|
+
]
|
|
347
|
+
}]</parameter>
|
|
348
|
+
</invoke>
|
|
349
|
+
```
|
|
350
|
+
|
|
351
|
+
If "More options..." selected, show page 2:
|
|
352
|
+
|
|
353
|
+
```xml
|
|
354
|
+
<invoke name="AskUserQuestion">
|
|
355
|
+
<parameter name="questions">[{
|
|
356
|
+
"question": "Which other features? (Page 2/2)",
|
|
357
|
+
"header": "Features",
|
|
358
|
+
"multiSelect": true,
|
|
359
|
+
"options": [
|
|
320
360
|
{"label": "AskUserQuestion Mode", "description": "End responses with guided options"},
|
|
321
|
-
{"label": "Tmux Auto-Spawn", "description": "Auto-start Claude in tmux session when using af/agileflow
|
|
361
|
+
{"label": "Tmux Auto-Spawn", "description": "Auto-start Claude in tmux session when using af/agileflow"},
|
|
362
|
+
{"label": "Shell Aliases", "description": "Add af/agileflow commands to ~/.bashrc and ~/.zshrc"},
|
|
363
|
+
{"label": "CLAUDE.md Rules", "description": "Add /babysit context preservation rules to CLAUDE.md"}
|
|
322
364
|
]
|
|
323
365
|
}]</parameter>
|
|
324
366
|
</invoke>
|
|
@@ -334,6 +376,8 @@ Map selections to commands:
|
|
|
334
376
|
- Auto-Update → `autoupdate`
|
|
335
377
|
- AskUserQuestion Mode → `askuserquestion`
|
|
336
378
|
- Tmux Auto-Spawn → `tmuxautospawn`
|
|
379
|
+
- Shell Aliases → `shellaliases`
|
|
380
|
+
- CLAUDE.md Rules → `claudemdreinforcement`
|
|
337
381
|
|
|
338
382
|
Then run:
|
|
339
383
|
```bash
|
|
@@ -490,12 +534,20 @@ If no new options: "✅ All configuration options are up to date!"
|
|
|
490
534
|
|
|
491
535
|
## Profile Details
|
|
492
536
|
|
|
493
|
-
| Profile | SessionStart | PreCompact | RalphLoop | SelfImprove | Archival | StatusLine | AskUserQuestion |
|
|
494
|
-
|
|
495
|
-
| `full` | ✅ | ✅ | ✅ | ✅ | ✅ 30 days | ✅ | ✅ |
|
|
496
|
-
| `basic` | ✅ | ✅ | ❌ | ❌ | ✅ 30 days | ❌ | ✅ |
|
|
497
|
-
| `minimal` | ✅ | ❌ | ❌ | ❌ | ✅ 30 days | ❌ | ❌ |
|
|
498
|
-
| `
|
|
537
|
+
| Profile | SessionStart | PreCompact | RalphLoop | SelfImprove | Archival | StatusLine | AskUserQuestion | Full File Injection |
|
|
538
|
+
|---------|-------------|------------|-----------|-------------|----------|------------|-----------------|---------------------|
|
|
539
|
+
| `full` | ✅ | ✅ | ✅ | ✅ | ✅ 30 days | ✅ | ✅ | ❌ |
|
|
540
|
+
| `basic` | ✅ | ✅ | ❌ | ❌ | ✅ 30 days | ❌ | ✅ | ❌ |
|
|
541
|
+
| `minimal` | ✅ | ❌ | ❌ | ❌ | ✅ 30 days | ❌ | ❌ | ❌ |
|
|
542
|
+
| `experimental` | ✅ | ✅ | ✅ | ✅ | ✅ 30 days | ✅ | ✅ | ⚠️ **YES** |
|
|
543
|
+
| `none` | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
|
|
544
|
+
|
|
545
|
+
**⚠️ Experimental Profile Warning:**
|
|
546
|
+
The `experimental` profile enables **Full File Injection** during context compaction. Instead of injecting compact summaries (~200-500 tokens), it injects the **entire command file** (~2000-5000+ tokens per command). This is very context-heavy but may improve instruction adherence for complex commands like `/babysit`.
|
|
547
|
+
|
|
548
|
+
**Note:** Shell Aliases and CLAUDE.md Rules are **not** included in any profile. These are per-user preferences that must be explicitly enabled:
|
|
549
|
+
- `--enable=shellaliases` - Adds `af` and `agileflow` commands to ~/.bashrc and ~/.zshrc
|
|
550
|
+
- `--enable=claudemdreinforcement` - Adds /babysit context preservation rules to CLAUDE.md
|
|
499
551
|
|
|
500
552
|
## CLI Commands Reference
|
|
501
553
|
|
|
@@ -504,6 +556,7 @@ If no new options: "✅ All configuration options are up to date!"
|
|
|
504
556
|
node .agileflow/scripts/agileflow-configure.js --profile=full
|
|
505
557
|
node .agileflow/scripts/agileflow-configure.js --profile=basic
|
|
506
558
|
node .agileflow/scripts/agileflow-configure.js --profile=minimal
|
|
559
|
+
node .agileflow/scripts/agileflow-configure.js --profile=experimental
|
|
507
560
|
node .agileflow/scripts/agileflow-configure.js --profile=none
|
|
508
561
|
|
|
509
562
|
# Custom Profiles
|
|
@@ -521,6 +574,8 @@ node .agileflow/scripts/agileflow-configure.js --import-profile=my-setup.json
|
|
|
521
574
|
node .agileflow/scripts/agileflow-configure.js --enable=sessionstart,precompact
|
|
522
575
|
node .agileflow/scripts/agileflow-configure.js --disable=statusline
|
|
523
576
|
node .agileflow/scripts/agileflow-configure.js --enable=archival --archival-days=14
|
|
577
|
+
node .agileflow/scripts/agileflow-configure.js --enable=shellaliases
|
|
578
|
+
node .agileflow/scripts/agileflow-configure.js --enable=claudemdreinforcement
|
|
524
579
|
|
|
525
580
|
# Maintenance
|
|
526
581
|
node .agileflow/scripts/agileflow-configure.js --detect
|
|
@@ -897,6 +952,67 @@ Repaired: 1, Errors: 0, Skipped: 18
|
|
|
897
952
|
|
|
898
953
|
---
|
|
899
954
|
|
|
955
|
+
## Expected Output
|
|
956
|
+
|
|
957
|
+
### Success - Feature Enabled
|
|
958
|
+
|
|
959
|
+
```
|
|
960
|
+
🔧 AgileFlow Configuration
|
|
961
|
+
══════════════════════════════════════════════════════════════
|
|
962
|
+
|
|
963
|
+
Enabling feature: damage-control
|
|
964
|
+
|
|
965
|
+
✓ Created .claude/hooks/PreToolUse/damage-control-bash.js
|
|
966
|
+
✓ Created .claude/hooks/PreToolUse/damage-control-edit.js
|
|
967
|
+
✓ Created .claude/hooks/patterns.yaml
|
|
968
|
+
✓ Updated settings.json
|
|
969
|
+
|
|
970
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
971
|
+
✅ damage-control enabled
|
|
972
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
973
|
+
|
|
974
|
+
31 protection patterns active.
|
|
975
|
+
Test: Try running a blocked command to verify.
|
|
976
|
+
```
|
|
977
|
+
|
|
978
|
+
### Success - List Features
|
|
979
|
+
|
|
980
|
+
```
|
|
981
|
+
🔧 AgileFlow Configuration
|
|
982
|
+
══════════════════════════════════════════════════════════════
|
|
983
|
+
|
|
984
|
+
Installed Features:
|
|
985
|
+
✅ damage-control (v2.94.1) - 31 patterns
|
|
986
|
+
✅ precompact (v2.94.1) - context preservation
|
|
987
|
+
✅ status-line (v2.94.1) - story tracking
|
|
988
|
+
⚪ visual-e2e (not installed)
|
|
989
|
+
⚪ hooks (not installed)
|
|
990
|
+
|
|
991
|
+
Scripts:
|
|
992
|
+
✅ obtain-context.js (v2.94.1)
|
|
993
|
+
✅ archive-completed-stories.sh (v2.94.1)
|
|
994
|
+
|
|
995
|
+
Run /agileflow:configure FEATURE=<name> to install features.
|
|
996
|
+
```
|
|
997
|
+
|
|
998
|
+
### Error - Unknown Feature
|
|
999
|
+
|
|
1000
|
+
```
|
|
1001
|
+
❌ Error: Unknown feature: super-ai
|
|
1002
|
+
|
|
1003
|
+
Available features:
|
|
1004
|
+
- damage-control: Protect against destructive commands
|
|
1005
|
+
- precompact: Context preservation during compaction
|
|
1006
|
+
- status-line: Story status in Claude Code UI
|
|
1007
|
+
- visual-e2e: Screenshot-based testing
|
|
1008
|
+
- hooks: Event-driven automation
|
|
1009
|
+
- ci: CI/CD workflow setup
|
|
1010
|
+
|
|
1011
|
+
Usage: /agileflow:configure FEATURE=damage-control
|
|
1012
|
+
```
|
|
1013
|
+
|
|
1014
|
+
---
|
|
1015
|
+
|
|
900
1016
|
## Related Commands
|
|
901
1017
|
|
|
902
1018
|
- `/agileflow:ci` - Bootstrap CI/CD workflow
|
|
@@ -515,3 +515,77 @@ Final: Synthesized recommendation with confidence
|
|
|
515
515
|
```
|
|
516
516
|
|
|
517
517
|
The council evaluates from three angles to provide balanced guidance.
|
|
518
|
+
|
|
519
|
+
---
|
|
520
|
+
|
|
521
|
+
## Expected Output
|
|
522
|
+
|
|
523
|
+
### Success - Council Decision
|
|
524
|
+
|
|
525
|
+
```
|
|
526
|
+
🏛️ AI Council Convened
|
|
527
|
+
══════════════════════════════════════════════════════════════
|
|
528
|
+
Question: Should we migrate to microservices?
|
|
529
|
+
Mode: standard (3 perspectives)
|
|
530
|
+
|
|
531
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
532
|
+
|
|
533
|
+
🌟 OPTIMIST PERSPECTIVE
|
|
534
|
+
Microservices offer significant benefits:
|
|
535
|
+
- Independent scaling per service
|
|
536
|
+
- Technology flexibility
|
|
537
|
+
- Team autonomy and faster releases
|
|
538
|
+
Recommendation: Proceed with migration
|
|
539
|
+
|
|
540
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
541
|
+
|
|
542
|
+
😈 ADVOCATE PERSPECTIVE
|
|
543
|
+
Critical concerns to address:
|
|
544
|
+
- Distributed systems complexity
|
|
545
|
+
- Network latency overhead
|
|
546
|
+
- Operational burden (monitoring, debugging)
|
|
547
|
+
- Team may lack experience
|
|
548
|
+
Recommendation: Caution - validate team readiness
|
|
549
|
+
|
|
550
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
551
|
+
|
|
552
|
+
⚖️ ANALYST SYNTHESIS
|
|
553
|
+
Balanced assessment:
|
|
554
|
+
- Current monolith pain points are real
|
|
555
|
+
- Full migration is high-risk
|
|
556
|
+
- Incremental approach reduces risk
|
|
557
|
+
|
|
558
|
+
Recommendation: Start with one bounded context
|
|
559
|
+
Confidence: 75%
|
|
560
|
+
|
|
561
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
562
|
+
🎯 COUNCIL VERDICT: Proceed with caution
|
|
563
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
564
|
+
|
|
565
|
+
Document decision? /agileflow:adr TITLE="Microservices Migration"
|
|
566
|
+
```
|
|
567
|
+
|
|
568
|
+
### Success - Debate Mode
|
|
569
|
+
|
|
570
|
+
```
|
|
571
|
+
🏛️ AI Council Debate (Round 2 of 2)
|
|
572
|
+
══════════════════════════════════════════════════════════════
|
|
573
|
+
|
|
574
|
+
[Optimist responds to Advocate's concerns...]
|
|
575
|
+
[Advocate counters with specific risks...]
|
|
576
|
+
[Analyst synthesizes final position...]
|
|
577
|
+
|
|
578
|
+
Final Verdict: GraphQL for internal APIs, REST for public
|
|
579
|
+
Confidence: 85%
|
|
580
|
+
```
|
|
581
|
+
|
|
582
|
+
### Error - Question Too Vague
|
|
583
|
+
|
|
584
|
+
```
|
|
585
|
+
❌ Error: Question too vague for meaningful analysis
|
|
586
|
+
|
|
587
|
+
"Should we do it?" - What is "it"?
|
|
588
|
+
|
|
589
|
+
Please provide specific context:
|
|
590
|
+
/agileflow:council "Should we use Redis or Memcached for session caching given our 10k DAU scale?"
|
|
591
|
+
```
|
|
@@ -400,6 +400,78 @@ OUTPUT
|
|
|
400
400
|
|
|
401
401
|
---
|
|
402
402
|
|
|
403
|
+
## Expected Output
|
|
404
|
+
|
|
405
|
+
### Success - Debt Report
|
|
406
|
+
|
|
407
|
+
```
|
|
408
|
+
📊 Technical Debt Analysis
|
|
409
|
+
══════════════════════════════════════════════════════════════
|
|
410
|
+
Scan date: 2026-01-29
|
|
411
|
+
Files analyzed: 127
|
|
412
|
+
|
|
413
|
+
🔴 HIGH PRIORITY (3)
|
|
414
|
+
┌──────────────────────────────────────────────────────────────┐
|
|
415
|
+
│ 1. Legacy auth module (src/auth/legacy.js) │
|
|
416
|
+
│ Impact: Security risk, blocks OAuth work │
|
|
417
|
+
│ Effort: 3 days │
|
|
418
|
+
│ ROI: High (unblocks US-0053, US-0054) │
|
|
419
|
+
├──────────────────────────────────────────────────────────────┤
|
|
420
|
+
│ 2. Untyped API responses │
|
|
421
|
+
│ Impact: Runtime errors, poor DX │
|
|
422
|
+
│ Effort: 2 days │
|
|
423
|
+
│ ROI: High (prevents bugs) │
|
|
424
|
+
├──────────────────────────────────────────────────────────────┤
|
|
425
|
+
│ 3. Test coverage gap in /api/orders │
|
|
426
|
+
│ Impact: 23% coverage vs 80% target │
|
|
427
|
+
│ Effort: 1 day │
|
|
428
|
+
│ ROI: Medium (risk reduction) │
|
|
429
|
+
└──────────────────────────────────────────────────────────────┘
|
|
430
|
+
|
|
431
|
+
🟡 MEDIUM PRIORITY (5)
|
|
432
|
+
- Deprecated dependencies (lodash 3.x)
|
|
433
|
+
- Console.log statements in production
|
|
434
|
+
- Missing error boundaries
|
|
435
|
+
- Hardcoded configuration
|
|
436
|
+
- Duplicate validation logic
|
|
437
|
+
|
|
438
|
+
📈 Trend: +2 items since last scan (2026-01-22)
|
|
439
|
+
|
|
440
|
+
Create stories for high-priority items? [Y/n]
|
|
441
|
+
```
|
|
442
|
+
|
|
443
|
+
### Success - Debt Reduced
|
|
444
|
+
|
|
445
|
+
```
|
|
446
|
+
📊 Technical Debt Update
|
|
447
|
+
══════════════════════════════════════════════════════════════
|
|
448
|
+
|
|
449
|
+
✓ Resolved: Legacy auth module
|
|
450
|
+
✓ Resolved: Test coverage gap
|
|
451
|
+
|
|
452
|
+
Debt Score: 15 → 9 (-40%)
|
|
453
|
+
Sprint Impact: Unblocked 2 stories
|
|
454
|
+
|
|
455
|
+
🎉 Great progress on debt reduction!
|
|
456
|
+
```
|
|
457
|
+
|
|
458
|
+
### Error - No Analysis Available
|
|
459
|
+
|
|
460
|
+
```
|
|
461
|
+
⚠️ No technical debt analysis found
|
|
462
|
+
|
|
463
|
+
Run initial scan first:
|
|
464
|
+
/agileflow:debt SCAN=true
|
|
465
|
+
|
|
466
|
+
This will analyze:
|
|
467
|
+
- Code complexity
|
|
468
|
+
- Test coverage
|
|
469
|
+
- Dependency freshness
|
|
470
|
+
- Security vulnerabilities
|
|
471
|
+
```
|
|
472
|
+
|
|
473
|
+
---
|
|
474
|
+
|
|
403
475
|
## Related Commands
|
|
404
476
|
|
|
405
477
|
- `/agileflow:diagnose` - System health diagnostics
|
|
@@ -781,6 +781,79 @@ OUTPUT
|
|
|
781
781
|
|
|
782
782
|
---
|
|
783
783
|
|
|
784
|
+
## Expected Output
|
|
785
|
+
|
|
786
|
+
### Success - Deployment Configured
|
|
787
|
+
|
|
788
|
+
```
|
|
789
|
+
🚀 Deployment Setup
|
|
790
|
+
══════════════════════════════════════════════════════════════
|
|
791
|
+
|
|
792
|
+
Analyzing project...
|
|
793
|
+
✓ Detected: Next.js application
|
|
794
|
+
✓ Package manager: npm
|
|
795
|
+
✓ Build command: npm run build
|
|
796
|
+
✓ Output: .next/
|
|
797
|
+
|
|
798
|
+
Platform Recommendation: Vercel (optimal for Next.js)
|
|
799
|
+
|
|
800
|
+
Creating configuration...
|
|
801
|
+
✓ Created vercel.json
|
|
802
|
+
✓ Created .github/workflows/deploy.yml
|
|
803
|
+
✓ Updated package.json scripts
|
|
804
|
+
|
|
805
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
806
|
+
✅ Deployment Setup Complete
|
|
807
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
808
|
+
|
|
809
|
+
Next steps:
|
|
810
|
+
1. Connect GitHub repo to Vercel dashboard
|
|
811
|
+
2. Set environment variables in Vercel
|
|
812
|
+
3. Push to trigger first deployment
|
|
813
|
+
|
|
814
|
+
Environments:
|
|
815
|
+
- Preview: Automatic on PR
|
|
816
|
+
- Production: On merge to main
|
|
817
|
+
|
|
818
|
+
Rollback: vercel rollback <deployment-id>
|
|
819
|
+
```
|
|
820
|
+
|
|
821
|
+
### Success - Multi-Environment
|
|
822
|
+
|
|
823
|
+
```
|
|
824
|
+
🚀 Deployment Setup (Multi-Environment)
|
|
825
|
+
══════════════════════════════════════════════════════════════
|
|
826
|
+
|
|
827
|
+
Environments configured:
|
|
828
|
+
┌─────────────┬─────────────────────┬──────────────────┐
|
|
829
|
+
│ Environment │ URL │ Trigger │
|
|
830
|
+
├─────────────┼─────────────────────┼──────────────────┤
|
|
831
|
+
│ Development │ dev.example.com │ Push to dev/* │
|
|
832
|
+
│ Staging │ staging.example.com │ Push to staging │
|
|
833
|
+
│ Production │ example.com │ Push to main │
|
|
834
|
+
└─────────────┴─────────────────────┴──────────────────┘
|
|
835
|
+
|
|
836
|
+
✓ All environments configured
|
|
837
|
+
```
|
|
838
|
+
|
|
839
|
+
### Error - Unsupported Project
|
|
840
|
+
|
|
841
|
+
```
|
|
842
|
+
❌ Error: Could not detect project type
|
|
843
|
+
|
|
844
|
+
No supported framework found. Supported:
|
|
845
|
+
- Next.js
|
|
846
|
+
- Remix
|
|
847
|
+
- Vite
|
|
848
|
+
- Create React App
|
|
849
|
+
- Node.js API
|
|
850
|
+
|
|
851
|
+
Specify manually:
|
|
852
|
+
/agileflow:deploy TYPE=nodejs PLATFORM=railway
|
|
853
|
+
```
|
|
854
|
+
|
|
855
|
+
---
|
|
856
|
+
|
|
784
857
|
## Related Commands
|
|
785
858
|
|
|
786
859
|
- `/agileflow:configure` - Manage AgileFlow features and hooks
|