agileflow 2.80.0 → 2.82.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/README.md +6 -6
- package/package.json +1 -1
- package/scripts/agent-loop.js +765 -0
- package/scripts/agileflow-configure.js +3 -1
- package/scripts/agileflow-welcome.js +65 -0
- package/scripts/damage-control-bash.js +22 -115
- package/scripts/damage-control-edit.js +19 -156
- package/scripts/damage-control-write.js +19 -156
- package/scripts/lib/damage-control-utils.js +251 -0
- package/scripts/obtain-context.js +57 -2
- package/scripts/ralph-loop.js +516 -32
- package/scripts/session-manager.js +434 -20
- package/src/core/agents/configuration-visual-e2e.md +300 -0
- package/src/core/agents/orchestrator.md +301 -6
- package/src/core/commands/babysit.md +193 -15
- package/src/core/commands/batch.md +362 -0
- package/src/core/commands/choose.md +337 -0
- package/src/core/commands/configure.md +372 -100
- package/src/core/commands/session/end.md +332 -103
- package/src/core/commands/workflow.md +344 -0
- package/src/core/commands/setup/visual-e2e.md +0 -462
|
@@ -1,17 +1,15 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: Configure
|
|
3
|
-
argument-hint: [--profile
|
|
2
|
+
description: Configure AgileFlow features, hooks, and project infrastructure (Visual E2E, CI, git)
|
|
3
|
+
argument-hint: [--profile=<name>] [--save-profile=<name>] [--list-profiles] [--export-profile=<name>] [--import-profile=<file>] [--enable/--disable=features]
|
|
4
4
|
compact_context:
|
|
5
5
|
priority: critical
|
|
6
6
|
preserve_rules:
|
|
7
7
|
- "ACTIVE COMMAND: /agileflow:configure - Configuration manager for AgileFlow features"
|
|
8
|
-
- "CRITICAL:
|
|
9
|
-
- "CRITICAL:
|
|
10
|
-
- "
|
|
11
|
-
- "
|
|
12
|
-
- "MUST show RED RESTART banner after ANY changes
|
|
13
|
-
- "Features: sessionstart, precompact, ralphloop, selfimprove, archival, statusline, autoupdate, askuserquestion"
|
|
14
|
-
- "Stop hooks (ralphloop, selfimprove) run when Claude completes or pauses"
|
|
8
|
+
- "CRITICAL: Max 4 options per AskUserQuestion - use hierarchical menus"
|
|
9
|
+
- "CRITICAL: Run --detect FIRST, handle issues, then show Main Menu"
|
|
10
|
+
- "Main Menu (4 categories): Profiles | Features | Infrastructure | Maintenance"
|
|
11
|
+
- "Each category has its own sub-menu with max 4 options"
|
|
12
|
+
- "MUST show RED RESTART banner after ANY changes"
|
|
15
13
|
state_fields:
|
|
16
14
|
- detection_status
|
|
17
15
|
- has_format_issues
|
|
@@ -23,45 +21,43 @@ compact_context:
|
|
|
23
21
|
|
|
24
22
|
## Compact Summary
|
|
25
23
|
|
|
26
|
-
Configuration management with **
|
|
24
|
+
Configuration management with **hierarchical menus** (4 options max per question).
|
|
27
25
|
|
|
28
26
|
### Workflow (MUST FOLLOW)
|
|
29
27
|
|
|
30
28
|
1. **Run detection**: `node .agileflow/scripts/agileflow-configure.js --detect`
|
|
31
|
-
2. **If ⚠️ INVALID FORMAT
|
|
32
|
-
3. **
|
|
33
|
-
4. **
|
|
29
|
+
2. **Handle issues**: If ⚠️ INVALID FORMAT → migrate. If 🔄 OUTDATED → upgrade.
|
|
30
|
+
3. **Main menu** (4 categories): Profiles | Features | Infrastructure | Maintenance
|
|
31
|
+
4. **Sub-menu**: Based on selection, show category-specific options
|
|
34
32
|
|
|
35
|
-
###
|
|
33
|
+
### Menu Flow
|
|
36
34
|
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
node .agileflow/scripts/agileflow-configure.js --version # Version info
|
|
47
|
-
node .agileflow/scripts/agileflow-configure.js --repair # Fix missing scripts
|
|
48
|
-
node .agileflow/scripts/agileflow-configure.js --repair=statusline # Fix specific feature
|
|
35
|
+
```
|
|
36
|
+
Main Menu → "What would you like to configure?"
|
|
37
|
+
├─ Profiles → Apply preset | Apply custom | Save current | Manage
|
|
38
|
+
│ ├─ Presets: Full | Basic | Minimal | None
|
|
39
|
+
│ └─ Custom: Save, Export, Import, Delete
|
|
40
|
+
├─ Features → Enable | Disable | View status
|
|
41
|
+
│ └─ Hooks (4) + Other Features (4)
|
|
42
|
+
├─ Infrastructure → Visual E2E | Damage Control | CI/CD
|
|
43
|
+
└─ Maintenance → Fix format | Upgrade | Repair | Check status
|
|
49
44
|
```
|
|
50
45
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
### Features
|
|
54
|
-
|
|
55
|
-
`sessionstart`, `precompact`, `ralphloop`, `selfimprove`, `archival`, `statusline`, `autoupdate`, `askuserquestion`
|
|
46
|
+
### Quick Commands
|
|
56
47
|
|
|
57
|
-
|
|
48
|
+
```bash
|
|
49
|
+
node .agileflow/scripts/agileflow-configure.js --detect # Check status
|
|
50
|
+
node .agileflow/scripts/agileflow-configure.js --profile=full # Enable all
|
|
51
|
+
node .agileflow/scripts/agileflow-configure.js --migrate # Fix format
|
|
52
|
+
node .agileflow/scripts/agileflow-configure.js --upgrade # Update scripts
|
|
53
|
+
node .agileflow/scripts/agileflow-configure.js --repair # Restore missing
|
|
54
|
+
```
|
|
58
55
|
|
|
59
56
|
### Critical Rules
|
|
60
57
|
|
|
61
|
-
- **
|
|
62
|
-
- **
|
|
63
|
-
- **
|
|
64
|
-
- **Restart required** - always show red banner after changes
|
|
58
|
+
- **Max 4 options per AskUserQuestion** - use hierarchical menus
|
|
59
|
+
- **Run detection FIRST** - show current state before changes
|
|
60
|
+
- **Restart required** - show red banner after any changes
|
|
65
61
|
|
|
66
62
|
<!-- COMPACT_SUMMARY_END -->
|
|
67
63
|
|
|
@@ -123,125 +119,401 @@ If user says yes:
|
|
|
123
119
|
node .agileflow/scripts/agileflow-configure.js --upgrade
|
|
124
120
|
```
|
|
125
121
|
|
|
126
|
-
## STEP 3:
|
|
122
|
+
## STEP 3: Main Menu
|
|
127
123
|
|
|
128
|
-
After
|
|
124
|
+
After handling issues (or if none), present the main category menu:
|
|
129
125
|
|
|
130
126
|
```xml
|
|
131
127
|
<invoke name="AskUserQuestion">
|
|
132
128
|
<parameter name="questions">[{
|
|
133
|
-
"question": "What would you like to
|
|
129
|
+
"question": "What would you like to configure?",
|
|
134
130
|
"header": "Configure",
|
|
135
131
|
"multiSelect": false,
|
|
136
132
|
"options": [
|
|
137
|
-
{"label": "
|
|
138
|
-
{"label": "
|
|
139
|
-
{"label": "
|
|
140
|
-
{"label": "
|
|
141
|
-
{"label": "Check current status only", "description": "Already done - no changes needed"}
|
|
133
|
+
{"label": "Profiles", "description": "Quick setup with preset configurations (full, basic, minimal)"},
|
|
134
|
+
{"label": "Features", "description": "Enable or disable individual hooks and features"},
|
|
135
|
+
{"label": "Infrastructure", "description": "Set up Visual E2E, Damage Control, or CI/CD"},
|
|
136
|
+
{"label": "Maintenance", "description": "Fix issues, repair scripts, or check status"}
|
|
142
137
|
]
|
|
143
138
|
}]</parameter>
|
|
144
139
|
</invoke>
|
|
145
140
|
```
|
|
146
141
|
|
|
147
|
-
|
|
142
|
+
---
|
|
148
143
|
|
|
149
|
-
|
|
144
|
+
## STEP 4: Sub-menus
|
|
150
145
|
|
|
151
|
-
|
|
152
|
-
# Full - all features
|
|
153
|
-
node .agileflow/scripts/agileflow-configure.js --profile=full
|
|
146
|
+
### If "Profiles" selected
|
|
154
147
|
|
|
155
|
-
|
|
156
|
-
|
|
148
|
+
```xml
|
|
149
|
+
<invoke name="AskUserQuestion">
|
|
150
|
+
<parameter name="questions">[{
|
|
151
|
+
"question": "What would you like to do with profiles?",
|
|
152
|
+
"header": "Profiles",
|
|
153
|
+
"multiSelect": false,
|
|
154
|
+
"options": [
|
|
155
|
+
{"label": "Apply preset profile", "description": "Full, Basic, Minimal, or None"},
|
|
156
|
+
{"label": "Apply custom profile", "description": "Use one of your saved profiles"},
|
|
157
|
+
{"label": "Save current as profile", "description": "Save current feature settings as reusable profile"},
|
|
158
|
+
{"label": "Manage profiles", "description": "View, export, import, or delete profiles"}
|
|
159
|
+
]
|
|
160
|
+
}]</parameter>
|
|
161
|
+
</invoke>
|
|
162
|
+
```
|
|
157
163
|
|
|
158
|
-
|
|
159
|
-
node .agileflow/scripts/agileflow-configure.js --profile=minimal
|
|
164
|
+
#### If "Apply preset profile" selected
|
|
160
165
|
|
|
161
|
-
|
|
162
|
-
|
|
166
|
+
```xml
|
|
167
|
+
<invoke name="AskUserQuestion">
|
|
168
|
+
<parameter name="questions">[{
|
|
169
|
+
"question": "Which preset?",
|
|
170
|
+
"header": "Preset",
|
|
171
|
+
"multiSelect": false,
|
|
172
|
+
"options": [
|
|
173
|
+
{"label": "Full (Recommended)", "description": "All features: hooks, archival, status line, AskUserQuestion"},
|
|
174
|
+
{"label": "Basic", "description": "SessionStart + PreCompact + Archival + AskUserQuestion"},
|
|
175
|
+
{"label": "Minimal", "description": "SessionStart + Archival only"},
|
|
176
|
+
{"label": "None", "description": "Disable all AgileFlow features"}
|
|
177
|
+
]
|
|
178
|
+
}]</parameter>
|
|
179
|
+
</invoke>
|
|
163
180
|
```
|
|
164
181
|
|
|
165
|
-
|
|
182
|
+
Then run:
|
|
183
|
+
- "Full" → `node .agileflow/scripts/agileflow-configure.js --profile=full`
|
|
184
|
+
- "Basic" → `node .agileflow/scripts/agileflow-configure.js --profile=basic`
|
|
185
|
+
- "Minimal" → `node .agileflow/scripts/agileflow-configure.js --profile=minimal`
|
|
186
|
+
- "None" → `node .agileflow/scripts/agileflow-configure.js --profile=none`
|
|
166
187
|
|
|
167
|
-
|
|
168
|
-
# Enable features
|
|
169
|
-
node .agileflow/scripts/agileflow-configure.js --enable=sessionstart,precompact
|
|
188
|
+
#### If "Apply custom profile" selected
|
|
170
189
|
|
|
171
|
-
|
|
172
|
-
|
|
190
|
+
First, check if custom profiles exist:
|
|
191
|
+
```bash
|
|
192
|
+
node .agileflow/scripts/agileflow-configure.js --list-profiles
|
|
193
|
+
```
|
|
173
194
|
|
|
174
|
-
|
|
175
|
-
node .agileflow/scripts/agileflow-configure.js --enable=statusline --disable=archival
|
|
195
|
+
If no profiles: "No custom profiles saved yet. Create one with 'Save current as profile'."
|
|
176
196
|
|
|
177
|
-
|
|
178
|
-
|
|
197
|
+
If profiles exist, list them (max 4 at a time):
|
|
198
|
+
```xml
|
|
199
|
+
<invoke name="AskUserQuestion">
|
|
200
|
+
<parameter name="questions">[{
|
|
201
|
+
"question": "Which custom profile?",
|
|
202
|
+
"header": "Custom",
|
|
203
|
+
"multiSelect": false,
|
|
204
|
+
"options": [
|
|
205
|
+
{"label": "my-backend-setup", "description": "Backend dev - no UI features"},
|
|
206
|
+
{"label": "ui-heavy", "description": "UI development with visual verification"},
|
|
207
|
+
{"label": "ci-mode", "description": "Minimal for CI/CD pipelines"}
|
|
208
|
+
]
|
|
209
|
+
}]</parameter>
|
|
210
|
+
</invoke>
|
|
179
211
|
```
|
|
180
212
|
|
|
181
|
-
|
|
213
|
+
Then run: `node .agileflow/scripts/agileflow-configure.js --profile=<selected-name>`
|
|
182
214
|
|
|
183
|
-
|
|
184
|
-
|---------|-------------|------------|-----------|-------------|----------|------------|-----------------|
|
|
185
|
-
| `full` | ✅ | ✅ | ✅ | ✅ | ✅ 30 days | ✅ | ✅ |
|
|
186
|
-
| `basic` | ✅ | ✅ | ❌ | ❌ | ✅ 30 days | ❌ | ✅ |
|
|
187
|
-
| `minimal` | ✅ | ❌ | ❌ | ❌ | ✅ 30 days | ❌ | ❌ |
|
|
188
|
-
| `none` | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
|
|
215
|
+
#### If "Save current as profile" selected
|
|
189
216
|
|
|
190
|
-
|
|
217
|
+
Ask for profile name and description:
|
|
218
|
+
```xml
|
|
219
|
+
<invoke name="AskUserQuestion">
|
|
220
|
+
<parameter name="questions">[{
|
|
221
|
+
"question": "What should we name this profile?",
|
|
222
|
+
"header": "Name",
|
|
223
|
+
"multiSelect": false,
|
|
224
|
+
"options": [
|
|
225
|
+
{"label": "my-setup", "description": "Generic name for personal setup"},
|
|
226
|
+
{"label": "backend-dev", "description": "For backend development work"},
|
|
227
|
+
{"label": "ui-dev", "description": "For UI/frontend development"},
|
|
228
|
+
{"label": "ci-mode", "description": "Minimal config for CI pipelines"}
|
|
229
|
+
]
|
|
230
|
+
}]</parameter>
|
|
231
|
+
</invoke>
|
|
232
|
+
```
|
|
191
233
|
|
|
192
|
-
|
|
234
|
+
User can select or type custom name via "Other".
|
|
235
|
+
|
|
236
|
+
Then run:
|
|
237
|
+
```bash
|
|
238
|
+
node .agileflow/scripts/agileflow-configure.js --save-profile=<name> --description="<description>"
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
#### If "Manage profiles" selected
|
|
193
242
|
|
|
194
243
|
```xml
|
|
195
244
|
<invoke name="AskUserQuestion">
|
|
196
245
|
<parameter name="questions">[{
|
|
197
246
|
"question": "What would you like to do?",
|
|
198
|
-
"header": "
|
|
247
|
+
"header": "Manage",
|
|
248
|
+
"multiSelect": false,
|
|
249
|
+
"options": [
|
|
250
|
+
{"label": "View all profiles", "description": "See details of all saved profiles"},
|
|
251
|
+
{"label": "Export profile", "description": "Export a profile to share with others"},
|
|
252
|
+
{"label": "Import profile", "description": "Import a profile from file"},
|
|
253
|
+
{"label": "Delete profile", "description": "Remove a saved custom profile"}
|
|
254
|
+
]
|
|
255
|
+
}]</parameter>
|
|
256
|
+
</invoke>
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
Commands:
|
|
260
|
+
- View: `node .agileflow/scripts/agileflow-configure.js --list-profiles --verbose`
|
|
261
|
+
- Export: `node .agileflow/scripts/agileflow-configure.js --export-profile=<name> --output=profile.json`
|
|
262
|
+
- Import: `node .agileflow/scripts/agileflow-configure.js --import-profile=profile.json`
|
|
263
|
+
- Delete: `node .agileflow/scripts/agileflow-configure.js --delete-profile=<name>`
|
|
264
|
+
|
|
265
|
+
---
|
|
266
|
+
|
|
267
|
+
### If "Features" selected
|
|
268
|
+
|
|
269
|
+
```xml
|
|
270
|
+
<invoke name="AskUserQuestion">
|
|
271
|
+
<parameter name="questions">[{
|
|
272
|
+
"question": "What do you want to do?",
|
|
273
|
+
"header": "Features",
|
|
199
274
|
"multiSelect": false,
|
|
200
275
|
"options": [
|
|
201
|
-
{"label": "
|
|
202
|
-
{"label": "
|
|
203
|
-
{"label": "
|
|
204
|
-
{"label": "Enable specific features", "description": "Choose which features to enable"},
|
|
205
|
-
{"label": "Disable specific features", "description": "Choose which features to disable"},
|
|
206
|
-
{"label": "Check current status", "description": "See what's currently configured"}
|
|
276
|
+
{"label": "Enable features", "description": "Turn on specific hooks and features"},
|
|
277
|
+
{"label": "Disable features", "description": "Turn off specific hooks and features"},
|
|
278
|
+
{"label": "View current status", "description": "See what's currently enabled/disabled"}
|
|
207
279
|
]
|
|
208
280
|
}]</parameter>
|
|
209
281
|
</invoke>
|
|
210
282
|
```
|
|
211
283
|
|
|
212
|
-
|
|
284
|
+
#### If "Enable features" or "Disable features" selected
|
|
285
|
+
|
|
286
|
+
First, ask about hooks:
|
|
287
|
+
|
|
288
|
+
```xml
|
|
289
|
+
<invoke name="AskUserQuestion">
|
|
290
|
+
<parameter name="questions">[{
|
|
291
|
+
"question": "Which hooks?",
|
|
292
|
+
"header": "Hooks",
|
|
293
|
+
"multiSelect": true,
|
|
294
|
+
"options": [
|
|
295
|
+
{"label": "SessionStart", "description": "Welcome display with project status on session start"},
|
|
296
|
+
{"label": "PreCompact", "description": "Context preservation when conversation compacts"},
|
|
297
|
+
{"label": "RalphLoop", "description": "Stop hook: autonomous story loop with tests"},
|
|
298
|
+
{"label": "SelfImprove", "description": "Stop hook: auto-update agent expertise from work"}
|
|
299
|
+
]
|
|
300
|
+
}]</parameter>
|
|
301
|
+
</invoke>
|
|
302
|
+
```
|
|
213
303
|
|
|
214
|
-
|
|
304
|
+
Then ask about other features:
|
|
215
305
|
|
|
216
306
|
```xml
|
|
217
307
|
<invoke name="AskUserQuestion">
|
|
218
308
|
<parameter name="questions">[{
|
|
219
|
-
"question": "Which features?",
|
|
309
|
+
"question": "Which other features?",
|
|
220
310
|
"header": "Features",
|
|
221
311
|
"multiSelect": true,
|
|
222
312
|
"options": [
|
|
223
|
-
{"label": "
|
|
224
|
-
{"label": "
|
|
225
|
-
{"label": "RalphLoop (Stop Hook)", "description": "Autonomous story loop - runs tests, advances stories"},
|
|
226
|
-
{"label": "SelfImprove (Stop Hook)", "description": "Auto-update agent expertise from work"},
|
|
227
|
-
{"label": "Archival", "description": "Auto-archive old completed stories"},
|
|
228
|
-
{"label": "Status Line", "description": "Custom status bar"},
|
|
313
|
+
{"label": "Archival", "description": "Auto-archive completed stories older than threshold"},
|
|
314
|
+
{"label": "Status Line", "description": "Custom status bar showing story/epic info"},
|
|
229
315
|
{"label": "Auto-Update", "description": "Automatically update AgileFlow on session start"},
|
|
230
|
-
{"label": "AskUserQuestion Mode", "description": "End
|
|
316
|
+
{"label": "AskUserQuestion Mode", "description": "End responses with guided options"}
|
|
317
|
+
]
|
|
318
|
+
}]</parameter>
|
|
319
|
+
</invoke>
|
|
320
|
+
```
|
|
321
|
+
|
|
322
|
+
Map selections to commands:
|
|
323
|
+
- SessionStart → `sessionstart`
|
|
324
|
+
- PreCompact → `precompact`
|
|
325
|
+
- RalphLoop → `ralphloop`
|
|
326
|
+
- SelfImprove → `selfimprove`
|
|
327
|
+
- Archival → `archival`
|
|
328
|
+
- Status Line → `statusline`
|
|
329
|
+
- Auto-Update → `autoupdate`
|
|
330
|
+
- AskUserQuestion Mode → `askuserquestion`
|
|
331
|
+
|
|
332
|
+
Then run:
|
|
333
|
+
```bash
|
|
334
|
+
node .agileflow/scripts/agileflow-configure.js --enable=feature1,feature2
|
|
335
|
+
# or
|
|
336
|
+
node .agileflow/scripts/agileflow-configure.js --disable=feature1,feature2
|
|
337
|
+
```
|
|
338
|
+
|
|
339
|
+
---
|
|
340
|
+
|
|
341
|
+
### If "Infrastructure" selected
|
|
342
|
+
|
|
343
|
+
```xml
|
|
344
|
+
<invoke name="AskUserQuestion">
|
|
345
|
+
<parameter name="questions">[{
|
|
346
|
+
"question": "What infrastructure to set up?",
|
|
347
|
+
"header": "Setup",
|
|
348
|
+
"multiSelect": false,
|
|
349
|
+
"options": [
|
|
350
|
+
{"label": "Visual E2E Testing", "description": "Playwright + screenshot verification workflow"},
|
|
351
|
+
{"label": "Damage Control", "description": "Block destructive commands, protect sensitive paths"},
|
|
352
|
+
{"label": "CI/CD Workflow", "description": "GitHub Actions for automated testing"}
|
|
353
|
+
]
|
|
354
|
+
}]</parameter>
|
|
355
|
+
</invoke>
|
|
356
|
+
```
|
|
357
|
+
|
|
358
|
+
Spawn the appropriate configuration agent:
|
|
359
|
+
|
|
360
|
+
```javascript
|
|
361
|
+
// Visual E2E
|
|
362
|
+
Task({ subagent_type: "configuration-visual-e2e", description: "Configure Visual E2E", prompt: "..." })
|
|
363
|
+
|
|
364
|
+
// Damage Control
|
|
365
|
+
Task({ subagent_type: "configuration-damage-control", description: "Configure Damage Control", prompt: "..." })
|
|
366
|
+
|
|
367
|
+
// CI/CD
|
|
368
|
+
Task({ subagent_type: "configuration-ci", description: "Configure CI/CD", prompt: "..." })
|
|
369
|
+
```
|
|
370
|
+
|
|
371
|
+
---
|
|
372
|
+
|
|
373
|
+
### If "Maintenance" selected
|
|
374
|
+
|
|
375
|
+
```xml
|
|
376
|
+
<invoke name="AskUserQuestion">
|
|
377
|
+
<parameter name="questions">[{
|
|
378
|
+
"question": "What maintenance task?",
|
|
379
|
+
"header": "Maintenance",
|
|
380
|
+
"multiSelect": false,
|
|
381
|
+
"options": [
|
|
382
|
+
{"label": "Fix format issues", "description": "Migrate invalid settings to correct format"},
|
|
383
|
+
{"label": "Upgrade scripts", "description": "Update features to latest AgileFlow version"},
|
|
384
|
+
{"label": "Repair missing scripts", "description": "Restore accidentally deleted scripts"},
|
|
385
|
+
{"label": "Check status", "description": "View current configuration (already shown above)"}
|
|
231
386
|
]
|
|
232
387
|
}]</parameter>
|
|
233
388
|
</invoke>
|
|
234
389
|
```
|
|
235
390
|
|
|
236
|
-
|
|
237
|
-
- "
|
|
238
|
-
- "
|
|
239
|
-
- "
|
|
240
|
-
- "
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
391
|
+
Then run:
|
|
392
|
+
- "Fix format issues" → `node .agileflow/scripts/agileflow-configure.js --migrate`
|
|
393
|
+
- "Upgrade scripts" → `node .agileflow/scripts/agileflow-configure.js --upgrade`
|
|
394
|
+
- "Repair missing scripts" → `node .agileflow/scripts/agileflow-configure.js --repair`
|
|
395
|
+
- "Check status" → Already shown in Step 1, no action needed
|
|
396
|
+
|
|
397
|
+
---
|
|
398
|
+
|
|
399
|
+
## Profile Details
|
|
400
|
+
|
|
401
|
+
| Profile | SessionStart | PreCompact | RalphLoop | SelfImprove | Archival | StatusLine | AskUserQuestion |
|
|
402
|
+
|---------|-------------|------------|-----------|-------------|----------|------------|-----------------|
|
|
403
|
+
| `full` | ✅ | ✅ | ✅ | ✅ | ✅ 30 days | ✅ | ✅ |
|
|
404
|
+
| `basic` | ✅ | ✅ | ❌ | ❌ | ✅ 30 days | ❌ | ✅ |
|
|
405
|
+
| `minimal` | ✅ | ❌ | ❌ | ❌ | ✅ 30 days | ❌ | ❌ |
|
|
406
|
+
| `none` | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
|
|
407
|
+
|
|
408
|
+
## CLI Commands Reference
|
|
409
|
+
|
|
410
|
+
```bash
|
|
411
|
+
# Preset Profiles
|
|
412
|
+
node .agileflow/scripts/agileflow-configure.js --profile=full
|
|
413
|
+
node .agileflow/scripts/agileflow-configure.js --profile=basic
|
|
414
|
+
node .agileflow/scripts/agileflow-configure.js --profile=minimal
|
|
415
|
+
node .agileflow/scripts/agileflow-configure.js --profile=none
|
|
416
|
+
|
|
417
|
+
# Custom Profiles
|
|
418
|
+
node .agileflow/scripts/agileflow-configure.js --profile=my-custom-profile # Apply custom
|
|
419
|
+
node .agileflow/scripts/agileflow-configure.js --save-profile=my-setup # Save current
|
|
420
|
+
node .agileflow/scripts/agileflow-configure.js --list-profiles # List all
|
|
421
|
+
node .agileflow/scripts/agileflow-configure.js --list-profiles --verbose # With details
|
|
422
|
+
node .agileflow/scripts/agileflow-configure.js --delete-profile=my-setup # Delete
|
|
423
|
+
|
|
424
|
+
# Export/Import Profiles (for sharing)
|
|
425
|
+
node .agileflow/scripts/agileflow-configure.js --export-profile=my-setup --output=my-setup.json
|
|
426
|
+
node .agileflow/scripts/agileflow-configure.js --import-profile=my-setup.json
|
|
427
|
+
|
|
428
|
+
# Enable/disable features
|
|
429
|
+
node .agileflow/scripts/agileflow-configure.js --enable=sessionstart,precompact
|
|
430
|
+
node .agileflow/scripts/agileflow-configure.js --disable=statusline
|
|
431
|
+
node .agileflow/scripts/agileflow-configure.js --enable=archival --archival-days=14
|
|
432
|
+
|
|
433
|
+
# Maintenance
|
|
434
|
+
node .agileflow/scripts/agileflow-configure.js --detect
|
|
435
|
+
node .agileflow/scripts/agileflow-configure.js --migrate
|
|
436
|
+
node .agileflow/scripts/agileflow-configure.js --upgrade
|
|
437
|
+
node .agileflow/scripts/agileflow-configure.js --repair
|
|
438
|
+
node .agileflow/scripts/agileflow-configure.js --list-scripts
|
|
439
|
+
node .agileflow/scripts/agileflow-configure.js --version
|
|
440
|
+
```
|
|
441
|
+
|
|
442
|
+
## Custom Profiles
|
|
443
|
+
|
|
444
|
+
Custom profiles let you save and reuse your preferred feature combinations.
|
|
445
|
+
|
|
446
|
+
### Data Model
|
|
447
|
+
|
|
448
|
+
Profiles are stored in `docs/00-meta/agileflow-metadata.json`:
|
|
449
|
+
|
|
450
|
+
```json
|
|
451
|
+
{
|
|
452
|
+
"version": "2.78.0",
|
|
453
|
+
"profiles": {
|
|
454
|
+
"my-backend-setup": {
|
|
455
|
+
"description": "Backend development - no UI features",
|
|
456
|
+
"created": "2026-01-09T10:00:00.000Z",
|
|
457
|
+
"features": {
|
|
458
|
+
"sessionstart": true,
|
|
459
|
+
"precompact": true,
|
|
460
|
+
"ralphloop": true,
|
|
461
|
+
"selfimprove": false,
|
|
462
|
+
"archival": true,
|
|
463
|
+
"statusline": false,
|
|
464
|
+
"autoupdate": true,
|
|
465
|
+
"askuserquestion": false
|
|
466
|
+
}
|
|
467
|
+
},
|
|
468
|
+
"ui-heavy": {
|
|
469
|
+
"description": "UI development with visual verification",
|
|
470
|
+
"created": "2026-01-09T10:00:00.000Z",
|
|
471
|
+
"features": {
|
|
472
|
+
"sessionstart": true,
|
|
473
|
+
"precompact": true,
|
|
474
|
+
"ralphloop": true,
|
|
475
|
+
"selfimprove": false,
|
|
476
|
+
"archival": true,
|
|
477
|
+
"statusline": true,
|
|
478
|
+
"autoupdate": false,
|
|
479
|
+
"askuserquestion": true
|
|
480
|
+
}
|
|
481
|
+
}
|
|
482
|
+
},
|
|
483
|
+
"features": { ... }
|
|
484
|
+
}
|
|
485
|
+
```
|
|
486
|
+
|
|
487
|
+
### Export Format
|
|
488
|
+
|
|
489
|
+
Exported profiles use this format (for sharing):
|
|
490
|
+
|
|
491
|
+
```json
|
|
492
|
+
{
|
|
493
|
+
"name": "my-backend-setup",
|
|
494
|
+
"description": "Backend development - no UI features",
|
|
495
|
+
"agileflow_version": "2.78.0",
|
|
496
|
+
"exported": "2026-01-09T10:00:00.000Z",
|
|
497
|
+
"features": {
|
|
498
|
+
"sessionstart": true,
|
|
499
|
+
"precompact": true,
|
|
500
|
+
"ralphloop": true,
|
|
501
|
+
"selfimprove": false,
|
|
502
|
+
"archival": true,
|
|
503
|
+
"statusline": false,
|
|
504
|
+
"autoupdate": true,
|
|
505
|
+
"askuserquestion": false
|
|
506
|
+
}
|
|
507
|
+
}
|
|
508
|
+
```
|
|
509
|
+
|
|
510
|
+
### Sharing Profiles
|
|
511
|
+
|
|
512
|
+
1. **Export**: `--export-profile=my-setup --output=my-setup.json`
|
|
513
|
+
2. **Share**: Send the JSON file to teammate
|
|
514
|
+
3. **Import**: `--import-profile=my-setup.json`
|
|
515
|
+
|
|
516
|
+
Imported profiles are added to the local metadata with the same name.
|
|
245
517
|
|
|
246
518
|
## Auto-Update Configuration
|
|
247
519
|
|