agileflow 2.83.0 β 2.84.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 +10 -0
- package/README.md +1 -1
- package/package.json +1 -1
- package/scripts/agileflow-configure.js +2 -4
- package/scripts/agileflow-statusline.sh +50 -3
- package/scripts/agileflow-welcome.js +103 -19
- package/scripts/check-update.js +12 -63
- package/scripts/lib/file-tracking.js +733 -0
- package/scripts/lib/story-claiming.js +558 -0
- package/scripts/obtain-context.js +117 -1
- package/scripts/session-manager.js +519 -1
- package/src/core/agents/configuration-visual-e2e.md +29 -1
- package/src/core/agents/ui.md +50 -0
- package/src/core/commands/babysit.md +118 -0
- package/src/core/commands/session/end.md +44 -2
|
@@ -184,6 +184,47 @@ When `VISUAL=true` is specified, the loop adds screenshot verification:
|
|
|
184
184
|
**Setup requirement:**
|
|
185
185
|
Run `/agileflow:configure` and select "Set up Visual E2E testing" to install Playwright and create e2e tests.
|
|
186
186
|
|
|
187
|
+
### Visual Mode Auto-Detection (IMPORTANT)
|
|
188
|
+
|
|
189
|
+
**Check the context output** from `obtain-context.js` for Visual E2E status.
|
|
190
|
+
|
|
191
|
+
**If "πΈ VISUAL E2E TESTING: ENABLED" appears:**
|
|
192
|
+
|
|
193
|
+
When presenting task options for UI-focused work, **proactively suggest VISUAL mode**:
|
|
194
|
+
|
|
195
|
+
```
|
|
196
|
+
This epic involves UI work. Visual E2E is configured.
|
|
197
|
+
|
|
198
|
+
Suggested command:
|
|
199
|
+
/agileflow:babysit EPIC=EP-0042 MODE=loop VISUAL=true
|
|
200
|
+
|
|
201
|
+
Visual Mode ensures:
|
|
202
|
+
- Screenshots are captured and verified
|
|
203
|
+
- Minimum 2 iterations (prevents premature completion)
|
|
204
|
+
- Both tests AND visual verification must pass
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
**Detection criteria for suggesting VISUAL=true:**
|
|
208
|
+
| Indicator | Suggest VISUAL? |
|
|
209
|
+
|-----------|-----------------|
|
|
210
|
+
| Epic mentions "UI", "component", "styling" | Yes |
|
|
211
|
+
| Stories have owner: AG-UI | Yes |
|
|
212
|
+
| Files involve src/components/, *.css, *.tsx | Yes |
|
|
213
|
+
| Work is API/backend only | No |
|
|
214
|
+
| Work is CLI/scripts only | No |
|
|
215
|
+
|
|
216
|
+
**If "VISUAL E2E TESTING: NOT CONFIGURED" appears:**
|
|
217
|
+
|
|
218
|
+
For UI work, suggest setup:
|
|
219
|
+
```
|
|
220
|
+
This is UI work. Visual E2E not configured.
|
|
221
|
+
|
|
222
|
+
To enable screenshot verification:
|
|
223
|
+
/agileflow:configure β Visual E2E testing
|
|
224
|
+
|
|
225
|
+
This helps catch visual issues that tests miss (wrong colors, broken layouts).
|
|
226
|
+
```
|
|
227
|
+
|
|
187
228
|
### Loop Control Commands
|
|
188
229
|
|
|
189
230
|
```bash
|
|
@@ -662,6 +703,7 @@ Based on your project state:
|
|
|
662
703
|
- Delegate complex work to experts
|
|
663
704
|
- If stuck 2+ times β research prompt
|
|
664
705
|
- Use state narration markers (πππβ οΈβ
) for visibility
|
|
706
|
+
- **STORY CLAIMING**: Claim stories before working, skip π claimed stories in suggestions
|
|
665
707
|
|
|
666
708
|
<!-- COMPACT_SUMMARY_END -->
|
|
667
709
|
|
|
@@ -1096,6 +1138,82 @@ After loading context, analyze and present ranked options:
|
|
|
1096
1138
|
|
|
1097
1139
|
---
|
|
1098
1140
|
|
|
1141
|
+
## STORY CLAIMING (Multi-Session Coordination)
|
|
1142
|
+
|
|
1143
|
+
When multiple Claude Code sessions work in the same repo, story claiming prevents conflicts.
|
|
1144
|
+
|
|
1145
|
+
### How It Works
|
|
1146
|
+
|
|
1147
|
+
1. **Claim on Selection**: When user selects a story to work on, claim it:
|
|
1148
|
+
```bash
|
|
1149
|
+
node .agileflow/scripts/lib/story-claiming.js claim US-0042
|
|
1150
|
+
```
|
|
1151
|
+
|
|
1152
|
+
2. **Check Before Suggesting**: Filter out claimed stories from suggestions:
|
|
1153
|
+
- Stories with π badge are claimed by OTHER sessions
|
|
1154
|
+
- Stories with β badge are claimed by THIS session (can continue)
|
|
1155
|
+
- Stories without badge are available
|
|
1156
|
+
|
|
1157
|
+
3. **Release on Completion**: When story is marked "done", release claim:
|
|
1158
|
+
```bash
|
|
1159
|
+
node .agileflow/scripts/lib/story-claiming.js release US-0042
|
|
1160
|
+
```
|
|
1161
|
+
|
|
1162
|
+
### Story Badges in AskUserQuestion
|
|
1163
|
+
|
|
1164
|
+
| Badge | Meaning | Action |
|
|
1165
|
+
|-------|---------|--------|
|
|
1166
|
+
| β | Ready, available | Can select |
|
|
1167
|
+
| π | Claimed by other session | **DO NOT suggest** (or show as disabled) |
|
|
1168
|
+
| β | Claimed by this session | Continue working |
|
|
1169
|
+
|
|
1170
|
+
### Claiming Flow
|
|
1171
|
+
|
|
1172
|
+
```
|
|
1173
|
+
User: "Work on US-0042"
|
|
1174
|
+
β
|
|
1175
|
+
Check: Is US-0042 claimed?
|
|
1176
|
+
β
|
|
1177
|
+
ββββββββββββββββ ββββββββββββββββββββ
|
|
1178
|
+
β Not claimed β β Claimed by other β
|
|
1179
|
+
ββββββββββββββββ ββββββββββββββββββββ
|
|
1180
|
+
β β
|
|
1181
|
+
Claim it, proceed Show warning:
|
|
1182
|
+
"US-0042 is being worked on
|
|
1183
|
+
by Session 2 (../project-auth).
|
|
1184
|
+
|
|
1185
|
+
Pick a different story to
|
|
1186
|
+
avoid merge conflicts."
|
|
1187
|
+
```
|
|
1188
|
+
|
|
1189
|
+
### Commands
|
|
1190
|
+
|
|
1191
|
+
```bash
|
|
1192
|
+
# Claim a story
|
|
1193
|
+
node .agileflow/scripts/lib/story-claiming.js claim US-0042
|
|
1194
|
+
|
|
1195
|
+
# Release a story
|
|
1196
|
+
node .agileflow/scripts/lib/story-claiming.js release US-0042
|
|
1197
|
+
|
|
1198
|
+
# Check if claimed
|
|
1199
|
+
node .agileflow/scripts/lib/story-claiming.js check US-0042
|
|
1200
|
+
|
|
1201
|
+
# List stories claimed by others
|
|
1202
|
+
node .agileflow/scripts/lib/story-claiming.js others
|
|
1203
|
+
|
|
1204
|
+
# Clean stale claims (dead PIDs)
|
|
1205
|
+
node .agileflow/scripts/lib/story-claiming.js cleanup
|
|
1206
|
+
```
|
|
1207
|
+
|
|
1208
|
+
### Important Rules
|
|
1209
|
+
|
|
1210
|
+
- **Always claim before working**: Prevents conflicts
|
|
1211
|
+
- **Stale claims auto-expire**: If session PID dies or 4 hours pass
|
|
1212
|
+
- **Force claim available**: `--force` flag overrides (use sparingly)
|
|
1213
|
+
- **Release on completion**: Or let auto-expiry handle it
|
|
1214
|
+
|
|
1215
|
+
---
|
|
1216
|
+
|
|
1099
1217
|
## KNOWLEDGE INDEX
|
|
1100
1218
|
|
|
1101
1219
|
**Context script provides:**
|
|
@@ -190,7 +190,7 @@ If `hasConflicts: true`:
|
|
|
190
190
|
```
|
|
191
191
|
β οΈ Merge conflicts detected!
|
|
192
192
|
|
|
193
|
-
This branch has conflicts with {mainBranch}
|
|
193
|
+
This branch has conflicts with {mainBranch}. Smart merge can attempt automatic resolution.
|
|
194
194
|
```
|
|
195
195
|
|
|
196
196
|
Then show conflict options:
|
|
@@ -201,6 +201,8 @@ AskUserQuestion:
|
|
|
201
201
|
header: "Merge conflicts"
|
|
202
202
|
multiSelect: false
|
|
203
203
|
options:
|
|
204
|
+
- label: "Auto-resolve conflicts (Recommended)"
|
|
205
|
+
description: "Smart merge will resolve based on file types automatically"
|
|
204
206
|
- label: "Resolve manually"
|
|
205
207
|
description: "Keep session active and resolve conflicts yourself"
|
|
206
208
|
- label: "End session without merging"
|
|
@@ -209,6 +211,40 @@ AskUserQuestion:
|
|
|
209
211
|
description: "Keep session as-is"
|
|
210
212
|
```
|
|
211
213
|
|
|
214
|
+
If "Auto-resolve conflicts" selected:
|
|
215
|
+
```bash
|
|
216
|
+
node .agileflow/scripts/session-manager.js smart-merge {session_id} --strategy={squash|merge}
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
The smart merge will:
|
|
220
|
+
1. Categorize conflicting files by type (docs, tests, schema, config, source)
|
|
221
|
+
2. Apply appropriate resolution strategy per file type
|
|
222
|
+
3. Log all auto-resolutions for audit
|
|
223
|
+
|
|
224
|
+
Display result:
|
|
225
|
+
```
|
|
226
|
+
β Conflicts auto-resolved!
|
|
227
|
+
|
|
228
|
+
Files resolved:
|
|
229
|
+
π docs/README.md β accept_both (Documentation kept from both)
|
|
230
|
+
π§ͺ tests/api.test.ts β accept_both (Tests kept from both)
|
|
231
|
+
βοΈ package.json β merge_keys (Config merged)
|
|
232
|
+
π src/api.ts β intelligent_merge (Source merged)
|
|
233
|
+
|
|
234
|
+
Merge log saved to: .agileflow/sessions/merge-log.json
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
If auto-resolution fails:
|
|
238
|
+
```
|
|
239
|
+
β οΈ Some conflicts could not be auto-resolved:
|
|
240
|
+
|
|
241
|
+
β src/complex.ts β Changes overlap in same code block
|
|
242
|
+
|
|
243
|
+
Options:
|
|
244
|
+
β’ Resolve manually (see instructions below)
|
|
245
|
+
β’ End session without merging
|
|
246
|
+
```
|
|
247
|
+
|
|
212
248
|
If "Resolve manually" selected, show instructions:
|
|
213
249
|
```
|
|
214
250
|
To resolve conflicts manually:
|
|
@@ -409,7 +445,13 @@ node .agileflow/scripts/session-manager.js merge-preview {session_id}
|
|
|
409
445
|
Display commits and files to be merged.
|
|
410
446
|
|
|
411
447
|
**Step 3: Check conflicts**
|
|
412
|
-
If `hasConflicts: true` β Show conflict options
|
|
448
|
+
If `hasConflicts: true` β Show conflict options (auto-resolve/manual/end/cancel)
|
|
449
|
+
|
|
450
|
+
**Step 3a: If auto-resolve selected**
|
|
451
|
+
```bash
|
|
452
|
+
node .agileflow/scripts/session-manager.js smart-merge {session_id} --strategy={squash|merge}
|
|
453
|
+
```
|
|
454
|
+
Smart merge auto-resolves by file type: docsβaccept_both, testsβaccept_both, configβmerge_keys, sourceβtheirs
|
|
413
455
|
|
|
414
456
|
**Step 4: Choose strategy**
|
|
415
457
|
```xml
|