agileflow 2.94.0 → 2.95.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 +20 -0
- package/README.md +6 -6
- 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 +186 -7
- 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 +677 -11
- package/src/core/agents/council-advocate.md +202 -0
- package/src/core/agents/council-analyst.md +248 -0
- package/src/core/agents/council-optimist.md +166 -0
- 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 +591 -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/help.md +189 -3
- package/src/core/commands/ideate.md +219 -20
- 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 +229 -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/council/sessions/.gitkeep +0 -0
- package/src/core/council/shared_reasoning.template.md +106 -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
|