agileflow 3.1.0 → 3.2.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 +5 -0
- package/README.md +57 -85
- package/lib/dashboard-automations.js +130 -0
- package/lib/dashboard-git.js +254 -0
- package/lib/dashboard-inbox.js +64 -0
- package/lib/dashboard-protocol.js +1 -0
- package/lib/dashboard-server.js +114 -924
- package/lib/dashboard-session.js +136 -0
- package/lib/dashboard-status.js +72 -0
- package/lib/dashboard-terminal.js +354 -0
- package/lib/dashboard-websocket.js +88 -0
- package/lib/drivers/codex-driver.ts +4 -4
- package/lib/logger.js +106 -0
- package/package.json +4 -2
- package/scripts/agileflow-configure.js +2 -2
- package/scripts/agileflow-welcome.js +409 -434
- package/scripts/claude-tmux.sh +80 -2
- package/scripts/context-loader.js +4 -9
- package/scripts/lib/command-prereqs.js +280 -0
- package/scripts/lib/configure-detect.js +92 -2
- package/scripts/lib/configure-features.js +295 -1
- package/scripts/lib/context-formatter.js +468 -233
- package/scripts/lib/context-loader.js +27 -15
- package/scripts/lib/damage-control-utils.js +8 -1
- package/scripts/lib/feature-catalog.js +321 -0
- package/scripts/lib/portable-tasks-cli.js +274 -0
- package/scripts/lib/portable-tasks.js +479 -0
- package/scripts/lib/signal-detectors.js +1 -1
- package/scripts/lib/team-events.js +86 -1
- package/scripts/obtain-context.js +28 -4
- package/scripts/smart-detect.js +17 -0
- package/scripts/strip-ai-attribution.js +63 -0
- package/scripts/team-manager.js +7 -2
- package/scripts/welcome-deferred.js +437 -0
- package/src/core/agents/perf-analyzer-assets.md +174 -0
- package/src/core/agents/perf-analyzer-bundle.md +165 -0
- package/src/core/agents/perf-analyzer-caching.md +160 -0
- package/src/core/agents/perf-analyzer-compute.md +165 -0
- package/src/core/agents/perf-analyzer-memory.md +182 -0
- package/src/core/agents/perf-analyzer-network.md +157 -0
- package/src/core/agents/perf-analyzer-queries.md +155 -0
- package/src/core/agents/perf-analyzer-rendering.md +156 -0
- package/src/core/agents/perf-consensus.md +280 -0
- package/src/core/agents/security-analyzer-api.md +199 -0
- package/src/core/agents/security-analyzer-auth.md +160 -0
- package/src/core/agents/security-analyzer-authz.md +168 -0
- package/src/core/agents/security-analyzer-deps.md +147 -0
- package/src/core/agents/security-analyzer-infra.md +176 -0
- package/src/core/agents/security-analyzer-injection.md +148 -0
- package/src/core/agents/security-analyzer-input.md +191 -0
- package/src/core/agents/security-analyzer-secrets.md +175 -0
- package/src/core/agents/security-consensus.md +276 -0
- package/src/core/agents/test-analyzer-assertions.md +181 -0
- package/src/core/agents/test-analyzer-coverage.md +183 -0
- package/src/core/agents/test-analyzer-fragility.md +185 -0
- package/src/core/agents/test-analyzer-integration.md +155 -0
- package/src/core/agents/test-analyzer-maintenance.md +173 -0
- package/src/core/agents/test-analyzer-mocking.md +178 -0
- package/src/core/agents/test-analyzer-patterns.md +189 -0
- package/src/core/agents/test-analyzer-structure.md +177 -0
- package/src/core/agents/test-consensus.md +294 -0
- package/src/core/commands/{legal/audit.md → audit/legal.md} +13 -13
- package/src/core/commands/{logic/audit.md → audit/logic.md} +12 -12
- package/src/core/commands/audit/performance.md +443 -0
- package/src/core/commands/audit/security.md +443 -0
- package/src/core/commands/audit/test.md +442 -0
- package/src/core/commands/babysit.md +505 -463
- package/src/core/commands/configure.md +8 -8
- package/src/core/commands/research/ask.md +42 -9
- package/src/core/commands/research/import.md +14 -8
- package/src/core/commands/research/list.md +17 -16
- package/src/core/commands/research/synthesize.md +8 -8
- package/src/core/commands/research/view.md +28 -4
- package/src/core/commands/whats-new.md +2 -2
- package/src/core/experts/devops/expertise.yaml +13 -2
- package/src/core/experts/documentation/expertise.yaml +26 -4
- package/src/core/profiles/COMPARISON.md +170 -0
- package/src/core/profiles/README.md +178 -0
- package/src/core/profiles/claude-code.yaml +111 -0
- package/src/core/profiles/codex.yaml +103 -0
- package/src/core/profiles/cursor.yaml +134 -0
- package/src/core/profiles/examples.js +250 -0
- package/src/core/profiles/loader.js +235 -0
- package/src/core/profiles/windsurf.yaml +159 -0
- package/src/core/teams/logic-audit.json +6 -0
- package/src/core/teams/perf-audit.json +71 -0
- package/src/core/teams/security-audit.json +71 -0
- package/src/core/teams/test-audit.json +71 -0
- package/src/core/templates/command-prerequisites.yaml +169 -0
- package/src/core/templates/damage-control-patterns.yaml +9 -0
- package/tools/cli/installers/ide/_base-ide.js +33 -3
- package/tools/cli/installers/ide/claude-code.js +2 -69
- package/tools/cli/installers/ide/codex.js +9 -9
- package/tools/cli/installers/ide/cursor.js +165 -4
- package/tools/cli/installers/ide/windsurf.js +237 -6
- package/tools/cli/lib/content-transformer.js +234 -9
- package/tools/cli/lib/docs-setup.js +1 -1
- package/tools/cli/lib/ide-generator.js +357 -0
- package/tools/cli/lib/ide-registry.js +2 -2
- package/scripts/tmux-task-name.sh +0 -105
- package/scripts/tmux-task-watcher.sh +0 -344
|
@@ -37,12 +37,12 @@ Main Menu → "What would you like to configure?"
|
|
|
37
37
|
├─ Profiles → Apply preset | Apply custom | Save current | Manage
|
|
38
38
|
│ ├─ Presets: Full | Basic | Minimal | None
|
|
39
39
|
│ └─ Custom: Save, Export, Import, Delete
|
|
40
|
-
├─ Features → Enable | Disable | View status
|
|
41
|
-
│ └─ Hooks (4) + Other Features (4)
|
|
40
|
+
├─ Features → Enable | Disable | Context Verbosity | View status
|
|
41
|
+
│ └─ Hooks (4) + Other Features (4) + Context Verbosity (full/lite/minimal)
|
|
42
42
|
├─ Sessions → Startup mode and Agent Teams configuration
|
|
43
43
|
│ ├─ Startup Mode: Normal | Skip permissions | Accept edits | No Claude
|
|
44
44
|
│ └─ Agent Teams: Enable/disable native multi-agent orchestration
|
|
45
|
-
├─ Infrastructure →
|
|
45
|
+
├─ Infrastructure → UI Testing | Damage Control | CI/CD | Quality Gates
|
|
46
46
|
└─ Maintenance → Fix format | Upgrade | Repair | Check status
|
|
47
47
|
```
|
|
48
48
|
|
|
@@ -137,7 +137,7 @@ After handling issues (or if none), present the main category menu:
|
|
|
137
137
|
{"label": "Profiles", "description": "Quick setup with preset configurations (full, basic, minimal)"},
|
|
138
138
|
{"label": "Features", "description": "Enable or disable individual hooks and features"},
|
|
139
139
|
{"label": "Sessions", "description": "Configure default startup mode for new sessions"},
|
|
140
|
-
{"label": "Infrastructure", "description": "Set up
|
|
140
|
+
{"label": "Infrastructure", "description": "Set up UI Testing, Damage Control, or CI/CD"},
|
|
141
141
|
{"label": "Maintenance", "description": "Fix issues, repair scripts, or check status"}
|
|
142
142
|
]
|
|
143
143
|
}]</parameter>
|
|
@@ -612,7 +612,7 @@ Then re-ask the enable/disable question.
|
|
|
612
612
|
"header": "Setup",
|
|
613
613
|
"multiSelect": false,
|
|
614
614
|
"options": [
|
|
615
|
-
{"label": "
|
|
615
|
+
{"label": "UI Testing (Bowser)", "description": "Agentic browser testing + visual verification with Playwright"},
|
|
616
616
|
{"label": "Damage Control", "description": "Block destructive commands, protect sensitive paths"},
|
|
617
617
|
{"label": "CI/CD Workflow", "description": "GitHub Actions for automated testing"},
|
|
618
618
|
{"label": "Quality Gates", "description": "Configure TeammateIdle and TaskCompleted gate thresholds"}
|
|
@@ -623,7 +623,7 @@ Then re-ask the enable/disable question.
|
|
|
623
623
|
|
|
624
624
|
Handle each selection directly:
|
|
625
625
|
|
|
626
|
-
- **
|
|
626
|
+
- **UI Testing (Bowser)**: `node .agileflow/scripts/agileflow-configure.js --enable=browserqa`
|
|
627
627
|
- **Damage Control**: `node .agileflow/scripts/agileflow-configure.js --enable=damagecontrol`
|
|
628
628
|
- **CI/CD**: `node .agileflow/scripts/agileflow-configure.js --enable=ci`
|
|
629
629
|
- **Quality Gates**: Update `docs/00-meta/agileflow-metadata.json` under the `quality_gates` key with enable/disable for tests, lint, types gates per hook and coverage thresholds
|
|
@@ -1120,7 +1120,7 @@ Installed Features:
|
|
|
1120
1120
|
✅ damage-control (v2.94.1) - 31 patterns
|
|
1121
1121
|
✅ precompact (v2.94.1) - context preservation
|
|
1122
1122
|
✅ status-line (v2.94.1) - story tracking
|
|
1123
|
-
⚪
|
|
1123
|
+
⚪ browserqa (not installed)
|
|
1124
1124
|
⚪ hooks (not installed)
|
|
1125
1125
|
|
|
1126
1126
|
Scripts:
|
|
@@ -1139,7 +1139,7 @@ Available features:
|
|
|
1139
1139
|
- damage-control: Protect against destructive commands
|
|
1140
1140
|
- precompact: Context preservation during compaction
|
|
1141
1141
|
- status-line: Story status in Claude Code UI
|
|
1142
|
-
-
|
|
1142
|
+
- browserqa: Agentic browser testing + visual verification
|
|
1143
1143
|
- hooks: Event-driven automation
|
|
1144
1144
|
- ci: CI/CD workflow setup
|
|
1145
1145
|
|
|
@@ -11,7 +11,7 @@ compact_context:
|
|
|
11
11
|
- "MUST include exact error messages verbatim if troubleshooting"
|
|
12
12
|
- "MUST list 2+ approaches already tried with detailed results"
|
|
13
13
|
- "MUST ask 3+ specific questions (not vague)"
|
|
14
|
-
- "
|
|
14
|
+
- "OUTPUT-ONLY by default - optional save to docs/10-research/prompts/"
|
|
15
15
|
- "Validation required before output: length, code snippets, error details, attempts, questions"
|
|
16
16
|
- "If validation fails: gather missing info and regenerate"
|
|
17
17
|
state_fields:
|
|
@@ -202,15 +202,21 @@ Every research prompt MUST have:
|
|
|
202
202
|
|
|
203
203
|
---
|
|
204
204
|
|
|
205
|
-
### 🚨 RULE #7:
|
|
205
|
+
### 🚨 RULE #7: OUTPUT-ONLY BY DEFAULT (OPTIONAL SAVE)
|
|
206
206
|
|
|
207
|
-
**This command
|
|
207
|
+
**This command generates a prompt for copy/paste. Optionally save to prompts directory after displaying.**
|
|
208
208
|
|
|
209
209
|
```
|
|
210
|
-
❌ WRONG:
|
|
211
|
-
✅ RIGHT: Output prompt in code block,
|
|
210
|
+
❌ WRONG: Save prompt WITHOUT also displaying for copy/paste
|
|
211
|
+
✅ RIGHT: Output prompt in code block, then offer to save to docs/10-research/prompts/
|
|
212
212
|
```
|
|
213
213
|
|
|
214
|
+
**Save flow (if user selects save):**
|
|
215
|
+
1. Create `docs/10-research/prompts/` directory if needed
|
|
216
|
+
2. Save as `docs/10-research/prompts/YYYYMMDD-prompt-<topic-slug>.md`
|
|
217
|
+
3. Update `docs/10-research/README.md` with 5-column entry (Type=Prompt)
|
|
218
|
+
4. Confirm save location
|
|
219
|
+
|
|
214
220
|
---
|
|
215
221
|
|
|
216
222
|
### VALIDATION CHECKLIST (BEFORE OUTPUT)
|
|
@@ -240,7 +246,7 @@ Every research prompt MUST have:
|
|
|
240
246
|
❌ List no or vague attempted solutions
|
|
241
247
|
❌ Ask generic questions without context
|
|
242
248
|
❌ Output prompt shorter than 200 lines
|
|
243
|
-
❌ Save prompt
|
|
249
|
+
❌ Save prompt WITHOUT also displaying for copy/paste
|
|
244
250
|
❌ Skip validation before outputting
|
|
245
251
|
|
|
246
252
|
### DO THESE INSTEAD
|
|
@@ -252,6 +258,7 @@ Every research prompt MUST have:
|
|
|
252
258
|
✅ Ask 3+ specific, contextualized questions
|
|
253
259
|
✅ Validate prompt quality before outputting
|
|
254
260
|
✅ Display prompt in code block for user copy/paste
|
|
261
|
+
✅ Offer to save prompt to docs/10-research/prompts/ after displaying
|
|
255
262
|
✅ Instruct user where to paste results back
|
|
256
263
|
|
|
257
264
|
---
|
|
@@ -287,6 +294,7 @@ Every research prompt MUST have:
|
|
|
287
294
|
18. Display prompt in code block
|
|
288
295
|
19. Instruct user: "Copy this prompt and paste into ChatGPT/Claude/Perplexity"
|
|
289
296
|
20. Provide post-answer instructions: "When you get results, use /agileflow:research:import to save"
|
|
297
|
+
21. Offer to save prompt to `docs/10-research/prompts/YYYYMMDD-prompt-<topic-slug>.md`
|
|
290
298
|
|
|
291
299
|
---
|
|
292
300
|
|
|
@@ -372,7 +380,7 @@ Actual: [What actually happens]
|
|
|
372
380
|
- MUST list 2+ attempts with detailed results
|
|
373
381
|
- MUST ask 3+ specific questions
|
|
374
382
|
- Validate all checks BEFORE outputting
|
|
375
|
-
-
|
|
383
|
+
- Output-only by default - optional save to docs/10-research/prompts/
|
|
376
384
|
- After user gets results, they use /agileflow:research:import to save
|
|
377
385
|
|
|
378
386
|
<!-- COMPACT_SUMMARY_END -->
|
|
@@ -607,6 +615,31 @@ Copy this prompt and paste it into ChatGPT, Claude web, Perplexity, or Gemini.
|
|
|
607
615
|
When you get the answer, paste the results here and I'll save them to your research folder using `/agileflow:research:import`.
|
|
608
616
|
```
|
|
609
617
|
|
|
618
|
+
### Step 8b: Save Prompt (if user selects save)
|
|
619
|
+
|
|
620
|
+
If the user selects "Save prompt to docs/10-research/prompts/":
|
|
621
|
+
|
|
622
|
+
1. **Create directories** if they don't exist:
|
|
623
|
+
- Ensure `docs/10-research/` exists (create if needed on fresh projects)
|
|
624
|
+
- Ensure `docs/10-research/prompts/` exists
|
|
625
|
+
|
|
626
|
+
2. **Generate filename**: `YYYYMMDD-prompt-<topic-slug>.md`
|
|
627
|
+
- Use today's date
|
|
628
|
+
- Slugify the TOPIC (lowercase, hyphens, no special chars)
|
|
629
|
+
|
|
630
|
+
3. **Save the prompt** to `docs/10-research/prompts/YYYYMMDD-prompt-<topic-slug>.md`
|
|
631
|
+
|
|
632
|
+
4. **Update README index** - Add entry to `docs/10-research/README.md`:
|
|
633
|
+
```markdown
|
|
634
|
+
| YYYY-MM-DD | [TOPIC] Research Prompt | Prompt | [prompts/YYYYMMDD-prompt-topic-slug.md](./prompts/YYYYMMDD-prompt-topic-slug.md) | Research prompt for [TOPIC]: [N] files referenced, [M] questions |
|
|
635
|
+
```
|
|
636
|
+
|
|
637
|
+
5. **Confirm save**:
|
|
638
|
+
```
|
|
639
|
+
Saved prompt to docs/10-research/prompts/YYYYMMDD-prompt-<topic-slug>.md
|
|
640
|
+
Updated research index (README.md)
|
|
641
|
+
```
|
|
642
|
+
|
|
610
643
|
---
|
|
611
644
|
|
|
612
645
|
## Anti-Pattern: Lazy Prompts
|
|
@@ -772,7 +805,7 @@ After clicking "Sign in with Google", immediately get unauthorized_client error.
|
|
|
772
805
|
|
|
773
806
|
## Rules
|
|
774
807
|
|
|
775
|
-
- **
|
|
808
|
+
- **Output-only by default** - Display prompt for copy/paste, optionally save to prompts/
|
|
776
809
|
- **MUST validate quality** before outputting
|
|
777
810
|
- **MUST include actual code** from the codebase
|
|
778
811
|
- **MUST be detailed** - 200+ lines minimum
|
|
@@ -792,8 +825,8 @@ After generating the research prompt, suggest contextual next steps:
|
|
|
792
825
|
"multiSelect": false,
|
|
793
826
|
"options": [
|
|
794
827
|
{"label": "Copy & paste to ChatGPT/Perplexity (Recommended)", "description": "Prompt covers [N] files and [M] specific questions - ready to paste"},
|
|
828
|
+
{"label": "Save prompt to docs/10-research/prompts/", "description": "Save as prompts/YYYYMMDD-prompt-[topic-slug].md and update README index"},
|
|
795
829
|
{"label": "Regenerate with more detail", "description": "Add [missing element: more code from X / error details / attempted solutions]"},
|
|
796
|
-
{"label": "Save prompt to docs/10-research/", "description": "Save as [YYYYMMDD]-prompt-[topic-slug].md for later use"},
|
|
797
830
|
{"label": "Done", "description": "Prompt generated, no further action needed"}
|
|
798
831
|
]
|
|
799
832
|
}]</parameter>
|
|
@@ -163,14 +163,20 @@ Phase 4: IMPLEMENTATION IDEATION (If Requested)
|
|
|
163
163
|
|
|
164
164
|
**After saving, ALWAYS update `docs/10-research/README.md` with new entry.**
|
|
165
165
|
|
|
166
|
-
Add entry to the top of the table:
|
|
166
|
+
Add entry to the top of the table (5-column format with Type):
|
|
167
167
|
```markdown
|
|
168
|
-
| Date | Topic |
|
|
169
|
-
|
|
170
|
-
| 2026-01-07 | New Research Title | 20260107-topic-slug.md | One-line summary |
|
|
168
|
+
| Date | Topic | Type | Path | Summary |
|
|
169
|
+
|------|-------|------|------|---------|
|
|
170
|
+
| 2026-01-07 | New Research Title | Research | [20260107-topic-slug.md](./20260107-topic-slug.md) | One-line summary |
|
|
171
171
|
| [older entries...] |
|
|
172
172
|
```
|
|
173
173
|
|
|
174
|
+
**Note**: If existing README.md uses 4-column format (no Type column), migrate first:
|
|
175
|
+
1. Insert `Type` as the 3rd column in the header row (between Topic and Path)
|
|
176
|
+
2. Add `------|` to the separator row in the same position
|
|
177
|
+
3. For existing entries, assign Type = `Research` (safe default)
|
|
178
|
+
4. Then insert the new 5-column entry
|
|
179
|
+
|
|
174
180
|
**Never skip this step.** Index is how users discover research.
|
|
175
181
|
|
|
176
182
|
---
|
|
@@ -647,12 +653,12 @@ If YES:
|
|
|
647
653
|
|
|
648
654
|
### Step 8: Update Index
|
|
649
655
|
|
|
650
|
-
Add entry to `docs/10-research/README.md
|
|
656
|
+
Add entry to `docs/10-research/README.md` (5-column format):
|
|
651
657
|
|
|
652
658
|
```markdown
|
|
653
|
-
| Date | Topic |
|
|
654
|
-
|
|
655
|
-
| YYYY-MM-DD | [Topic] | [filename.md] | [One-line summary] |
|
|
659
|
+
| Date | Topic | Type | Path | Summary |
|
|
660
|
+
|------|-------|------|------|---------|
|
|
661
|
+
| YYYY-MM-DD | [Topic] | Research | [filename.md](./filename.md) | [One-line summary] |
|
|
656
662
|
```
|
|
657
663
|
|
|
658
664
|
Insert newest entries at the top of the table.
|
|
@@ -65,18 +65,19 @@ node .agileflow/scripts/obtain-context.js research:list
|
|
|
65
65
|
|
|
66
66
|
### 🚨 RULE #2: READ INDEX FROM docs/10-research/README.md
|
|
67
67
|
|
|
68
|
-
**Primary source: `docs/10-research/README.md` should contain a table:**
|
|
68
|
+
**Primary source: `docs/10-research/README.md` should contain a 5-column table:**
|
|
69
69
|
|
|
70
70
|
```markdown
|
|
71
71
|
## Research Notes
|
|
72
72
|
|
|
73
|
-
| Date | Topic |
|
|
74
|
-
|
|
75
|
-
| 2026-01-07 | OAuth Integration | 20260107-oauth.md | Setup Google OAuth |
|
|
76
|
-
| 2026-01-06 | Performance Tips | 20260106-perf.md | Caching strategies |
|
|
73
|
+
| Date | Topic | Type | Path | Summary |
|
|
74
|
+
|------|-------|------|------|---------|
|
|
75
|
+
| 2026-01-07 | OAuth Integration | Research | 20260107-oauth.md | Setup Google OAuth |
|
|
76
|
+
| 2026-01-06 | Performance Tips | Research | 20260106-perf.md | Caching strategies |
|
|
77
77
|
```
|
|
78
78
|
|
|
79
|
-
**If README doesn't exist:** List files from
|
|
79
|
+
**If README doesn't exist:** List files from `docs/10-research/` directory and from `docs/10-research/prompts/` (if it exists), merging results sorted by date.
|
|
80
|
+
**If README uses old 4-column format (no Type):** Handle gracefully - display without Type column and note the format is outdated.
|
|
80
81
|
|
|
81
82
|
---
|
|
82
83
|
|
|
@@ -102,11 +103,11 @@ Quick start:
|
|
|
102
103
|
Research Notes
|
|
103
104
|
==============
|
|
104
105
|
|
|
105
|
-
| Date | Topic | File |
|
|
106
|
-
|
|
107
|
-
| 2026-01-07 | OAuth Integration | 20260107-oauth.md |
|
|
108
|
-
| 2026-01-06 | Performance Tips | 20260106-perf.md |
|
|
109
|
-
| 2026-01-05 |
|
|
106
|
+
| Date | Topic | Type | File |
|
|
107
|
+
|------------|------------------------|----------|-----------------------------|
|
|
108
|
+
| 2026-01-07 | OAuth Integration | Research | 20260107-oauth.md |
|
|
109
|
+
| 2026-01-06 | Performance Tips | Research | 20260106-perf.md |
|
|
110
|
+
| 2026-01-05 | DB Migration Guide | Prompt | prompts/20260105-prompt-db-migrations.md |
|
|
110
111
|
|
|
111
112
|
Total: 3 research notes
|
|
112
113
|
```
|
|
@@ -231,11 +232,11 @@ Format output:
|
|
|
231
232
|
```
|
|
232
233
|
## Research Notes
|
|
233
234
|
|
|
234
|
-
| Date | Topic | File |
|
|
235
|
-
|
|
236
|
-
| 2024-12-31 | OAuth 2.0 Setup | 20241231-oauth-setup.md |
|
|
237
|
-
| 2024-12-30 | Session Tracking | 20241230-session-tracking.md |
|
|
238
|
-
| 2024-12-28 | Mermaid Diagrams | 20241228-mermaid-diagrams.md |
|
|
235
|
+
| Date | Topic | Type | File |
|
|
236
|
+
|------|-------|------|------|
|
|
237
|
+
| 2024-12-31 | OAuth 2.0 Setup | Research | 20241231-oauth-setup.md |
|
|
238
|
+
| 2024-12-30 | Session Tracking | Research | 20241230-session-tracking.md |
|
|
239
|
+
| 2024-12-28 | Mermaid Diagrams | Research | 20241228-mermaid-diagrams.md |
|
|
239
240
|
|
|
240
241
|
Total: 3 research notes
|
|
241
242
|
|
|
@@ -88,13 +88,13 @@ If neither provided, ask user:
|
|
|
88
88
|
### 🚨 RULE #2: SEARCH OR SELECT RESEARCH FILES
|
|
89
89
|
|
|
90
90
|
**If TOPIC provided:**
|
|
91
|
-
1. Search `docs/10-research/*.md` for files containing keyword
|
|
91
|
+
1. Search `docs/10-research/*.md` AND `docs/10-research/prompts/*.md` for files containing keyword
|
|
92
92
|
2. Check filename, title (# header), key findings, summary
|
|
93
93
|
3. Present matching files to user for confirmation
|
|
94
94
|
|
|
95
95
|
**If FILES provided:**
|
|
96
|
-
1. Validate each file exists in `docs/10-research/`
|
|
97
|
-
2. Warn if any file not found
|
|
96
|
+
1. Validate each file exists in `docs/10-research/` or `docs/10-research/prompts/`
|
|
97
|
+
2. Warn if any file not found in either location
|
|
98
98
|
3. Proceed with valid files
|
|
99
99
|
|
|
100
100
|
**Auto-select if <5 matches. Ask user to confirm if 5+ matches.**
|
|
@@ -470,7 +470,7 @@ Upon invocation, execute these steps:
|
|
|
470
470
|
### Step 3: Search/Select Research Files
|
|
471
471
|
|
|
472
472
|
**If TOPIC search:**
|
|
473
|
-
1. List all files in `docs/10-research/`
|
|
473
|
+
1. List all files in `docs/10-research/` and `docs/10-research/prompts/` (if exists)
|
|
474
474
|
2. For each file, check if topic keyword appears in:
|
|
475
475
|
- Filename
|
|
476
476
|
- First `# ` header (title)
|
|
@@ -888,11 +888,11 @@ If user chooses to save:
|
|
|
888
888
|
|
|
889
889
|
**Filename format**: `YYYYMMDD-synthesis-[topic-slug].md`
|
|
890
890
|
|
|
891
|
-
**Add to docs/10-research/README.md index:**
|
|
891
|
+
**Add to docs/10-research/README.md index (5-column format):**
|
|
892
892
|
```markdown
|
|
893
|
-
| Date | Topic |
|
|
894
|
-
|
|
895
|
-
| 2026-01-17 | Synthesis: Authentication | 20260117-synthesis-authentication.md | Cross-research synthesis of N files... |
|
|
893
|
+
| Date | Topic | Type | Path | Summary |
|
|
894
|
+
|------|-------|------|------|---------|
|
|
895
|
+
| 2026-01-17 | Synthesis: Authentication | Synthesis | [20260117-synthesis-authentication.md](./20260117-synthesis-authentication.md) | Cross-research synthesis of N files... |
|
|
896
896
|
```
|
|
897
897
|
|
|
898
898
|
**Mark as synthesis type** in file header:
|
|
@@ -233,10 +233,16 @@ If FILE not provided, show available files:
|
|
|
233
233
|
|
|
234
234
|
Read `docs/10-research/[FILE]`.
|
|
235
235
|
|
|
236
|
-
If file doesn't exist
|
|
236
|
+
If file doesn't exist, check `docs/10-research/prompts/[FILE]` as a fallback (prompts are stored in a subdirectory).
|
|
237
|
+
|
|
238
|
+
If file doesn't exist in either location:
|
|
237
239
|
```
|
|
238
240
|
Research note not found: [FILE]
|
|
239
241
|
|
|
242
|
+
Checked:
|
|
243
|
+
- docs/10-research/[FILE]
|
|
244
|
+
- docs/10-research/prompts/[FILE]
|
|
245
|
+
|
|
240
246
|
Use /agileflow:research:list to see available notes.
|
|
241
247
|
```
|
|
242
248
|
|
|
@@ -246,8 +252,9 @@ Output the full content of the research note.
|
|
|
246
252
|
|
|
247
253
|
### Step 4: Suggest Actions
|
|
248
254
|
|
|
249
|
-
After displaying,
|
|
255
|
+
After displaying, count action items (lines starting with `- [ ]` in the file) and build contextual options:
|
|
250
256
|
|
|
257
|
+
**If N > 0 action items found:**
|
|
251
258
|
```xml
|
|
252
259
|
<invoke name="AskUserQuestion">
|
|
253
260
|
<parameter name="questions">[{
|
|
@@ -256,15 +263,32 @@ After displaying, offer contextual actions based on the research content:
|
|
|
256
263
|
"multiSelect": false,
|
|
257
264
|
"options": [
|
|
258
265
|
{"label": "Analyze for implementation in [current epic/project] (Recommended)", "description": "Deploy multi-expert analysis to map research to your codebase"},
|
|
259
|
-
{"label": "Synthesize with related notes on [detected topic]", "description": "Cross-reference with [count] other notes on similar topics"},
|
|
260
266
|
{"label": "Create story from [N] action items", "description": "Turn research action items into trackable stories"},
|
|
267
|
+
{"label": "Synthesize with related notes on [detected topic]", "description": "Cross-reference with [count] other notes on similar topics"},
|
|
268
|
+
{"label": "View another note", "description": "Browse other research notes"}
|
|
269
|
+
]
|
|
270
|
+
}]</parameter>
|
|
271
|
+
</invoke>
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
**If N = 0 (no action items - informational research):**
|
|
275
|
+
```xml
|
|
276
|
+
<invoke name="AskUserQuestion">
|
|
277
|
+
<parameter name="questions">[{
|
|
278
|
+
"question": "Viewed '[TOPIC]' research (reference material). What next?",
|
|
279
|
+
"header": "Actions",
|
|
280
|
+
"multiSelect": false,
|
|
281
|
+
"options": [
|
|
282
|
+
{"label": "Analyze for implementation in [current epic/project] (Recommended)", "description": "Deploy multi-expert analysis to map research to your codebase"},
|
|
283
|
+
{"label": "Import additional research on [detected topic]", "description": "Gather more detailed research to build on this note"},
|
|
284
|
+
{"label": "Synthesize with related notes on [detected topic]", "description": "Cross-reference with [count] other notes on similar topics"},
|
|
261
285
|
{"label": "View another note", "description": "Browse other research notes"}
|
|
262
286
|
]
|
|
263
287
|
}]</parameter>
|
|
264
288
|
</invoke>
|
|
265
289
|
```
|
|
266
290
|
|
|
267
|
-
**Key**: Always
|
|
291
|
+
**Key**: Always populate placeholders - `[TOPIC]` from file title, `[N]` from action item count, `[detected topic]` from content keywords, `[current epic/project]` from status.json (or "your project" if none active), `[count]` from related file count.
|
|
268
292
|
|
|
269
293
|
If "Analyze for implementation" selected, invoke:
|
|
270
294
|
```
|
|
@@ -83,7 +83,7 @@ Parse the CHANGELOG.md and display:
|
|
|
83
83
|
## v2.56.0 (2025-12-27)
|
|
84
84
|
|
|
85
85
|
### Added
|
|
86
|
-
• Dynamic IDE discovery - Codex
|
|
86
|
+
• Dynamic IDE discovery - OpenAI Codex now in setup
|
|
87
87
|
|
|
88
88
|
### Changed
|
|
89
89
|
• Replaced hardcoded IDE list with dynamic loading
|
|
@@ -147,7 +147,7 @@ If a newer version exists, show:
|
|
|
147
147
|
## v2.56.0 (2025-12-27)
|
|
148
148
|
|
|
149
149
|
### Added
|
|
150
|
-
• Dynamic IDE discovery - Codex
|
|
150
|
+
• Dynamic IDE discovery - OpenAI Codex now in setup
|
|
151
151
|
|
|
152
152
|
### Changed
|
|
153
153
|
• Replaced hardcoded IDE list with dynamic loading
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
domain: devops
|
|
2
|
-
last_updated:
|
|
3
|
-
|
|
2
|
+
last_updated: 2026-02-15
|
|
3
|
+
last_audit_date: 2026-02-15
|
|
4
|
+
version: 1.2
|
|
4
5
|
|
|
5
6
|
# AgileFlow-specific file structure (learned from actual codebase)
|
|
6
7
|
files:
|
|
@@ -103,3 +104,13 @@ learnings:
|
|
|
103
104
|
context: "Analyzed session hooks"
|
|
104
105
|
insight: "get-env.js outputs project info on session start; archive-completed-stories.sh runs automatically"
|
|
105
106
|
source: "CLAUDE.md, .claude/settings.json"
|
|
107
|
+
|
|
108
|
+
- date: 2026-02-15
|
|
109
|
+
context: "Analyzed Claude Code Feb 2026 planning/hooks/MCP research"
|
|
110
|
+
insight: "plansDirectory, PostToolUse ExitPlanMode, --init/--maintenance flags, MCP tool search align well with AgileFlow architecture. Ready for Phase 1 implementation: 2 weeks, 28-40 hours"
|
|
111
|
+
source: "docs/10-research/20260215-claude-code-planning-hooks-mcp-updates.md"
|
|
112
|
+
|
|
113
|
+
- date: 2026-02-15
|
|
114
|
+
context: "Planned Claude Code feature integration"
|
|
115
|
+
insight: "5 features categorized: Phase 1 (plansDirectory, PostToolUse, MCP search - high priority), Phase 2 (--init/--maintenance, PreToolUse context - medium priority). Effort estimate: 13-18 days, 56-76 hours total"
|
|
116
|
+
source: "docs/10-research/20260215-devops-analysis-claude-code-features.md"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
domain: documentation
|
|
2
|
-
last_updated: 2026-02-
|
|
3
|
-
version: 1.
|
|
2
|
+
last_updated: 2026-02-14
|
|
3
|
+
version: 1.4
|
|
4
4
|
|
|
5
5
|
# AgileFlow-specific documentation structure (learned from actual codebase)
|
|
6
6
|
files:
|
|
@@ -153,7 +153,7 @@ learnings:
|
|
|
153
153
|
|
|
154
154
|
- date: 2026-01-09
|
|
155
155
|
context: "Created IDE Integrations documentation for AgileFlow"
|
|
156
|
-
insight: "IDE handler system supports 4 IDEs (Claude Code, Cursor, Windsurf, Codex
|
|
156
|
+
insight: "IDE handler system supports 4 IDEs (Claude Code, Cursor, Windsurf, OpenAI Codex) through plugin architecture. Each IDE has custom config directory (.claude/, .cursor/, .windsurf/, .codex/) and different installation models. Claude Code most advanced (damage control, spawnable agents), OpenAI Codex unique (per-repo skills, user-level prompts, AGENTS.md instructions)"
|
|
157
157
|
created_files:
|
|
158
158
|
- "apps/docs/content/docs/features/ide-integrations.mdx (700+ lines)"
|
|
159
159
|
- "apps/docs/content/docs/features/index.mdx (updated with IDE section)"
|
|
@@ -168,7 +168,7 @@ learnings:
|
|
|
168
168
|
- "Claude Code subagent spawning, damage control hooks"
|
|
169
169
|
- "Cursor unique features, differences from Claude Code"
|
|
170
170
|
- "Windsurf workflow management, VSCode integration"
|
|
171
|
-
- "Codex
|
|
171
|
+
- "OpenAI Codex dual installation model (per-repo skills, user-level prompts, AGENTS.md)"
|
|
172
172
|
- "Dynamic IDE handler system, extensibility guide"
|
|
173
173
|
- "Content injection system explanation"
|
|
174
174
|
- "Troubleshooting guide for common issues"
|
|
@@ -235,3 +235,25 @@ learnings:
|
|
|
235
235
|
- "Formatting consistent (tables, code blocks, bullets) ✓"
|
|
236
236
|
source: "packages/cli/src/core/commands/*.md vs apps/docs/content/docs/commands/*.mdx"
|
|
237
237
|
notes: "Used systematic comparison approach: extracted descriptions, parameters, and features from 50 source commands against documentation. Prioritized commands with most feature additions: babysit (Smart Detection, Story Claiming, Logic Audit), configure (profiles, hierarchical menus). All changes preserve source accuracy while making docs more discoverable and comprehensive."
|
|
238
|
+
|
|
239
|
+
- date: 2026-02-14
|
|
240
|
+
context: "Audited README files for v3.0.2 - IDE config locations and badge accuracy"
|
|
241
|
+
insight: "Found and fixed 2 discrepancies between root and npm README files: (1) Cursor IDE config was .cursor/rules/ instead of .cursor/commands/ (verified against cursor.js installer), (2) OpenAI Codex location was incomplete - missing ~/.codex/prompts/ directory for user-level prompts. Both files now synchronized and identical."
|
|
242
|
+
fixed_issues:
|
|
243
|
+
- "packages/cli/README.md line 42: Updated Cursor from .cursor/rules/agileflow/ to .cursor/commands/agileflow/"
|
|
244
|
+
- "packages/cli/README.md line 44: Updated Codex from .codex/skills/ to .codex/skills/ and ~/.codex/prompts/"
|
|
245
|
+
verified:
|
|
246
|
+
- "Badge counts: 93 commands (correct), 45 agents (correct), dynamic skills (correct)"
|
|
247
|
+
- "All 11 referenced documentation files exist"
|
|
248
|
+
- "All 6 example commands/agents exist in source"
|
|
249
|
+
- "External links functional: npm (HTTP 200), GitHub (HTTP 200), docs site (HTTP 200)"
|
|
250
|
+
- "README files now identical (diff shows no differences)"
|
|
251
|
+
quality_gates:
|
|
252
|
+
- "Documentation current with v3.0.2 code ✓"
|
|
253
|
+
- "Counts verified against actual source files ✓"
|
|
254
|
+
- "IDE config verified against installers ✓"
|
|
255
|
+
- "All example commands/agents exist ✓"
|
|
256
|
+
- "No deprecated information remains ✓"
|
|
257
|
+
- "Two README files synchronized ✓"
|
|
258
|
+
source: "README.md, packages/cli/README.md, packages/cli/tools/cli/installers/ide/*.js"
|
|
259
|
+
notes: "Learned that IDE config locations can drift from documentation. Always verify against actual installer code (cursor.js, codex.js, etc.) not assumptions. OpenAI Codex has dual installation model (per-repo .codex/skills/ + user-level ~/.codex/prompts/) - this must be documented completely."
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
# IDE Capability Comparison Matrix
|
|
2
|
+
|
|
3
|
+
Complete comparison of all supported IDEs. Profiles at `/packages/cli/src/core/profiles/`.
|
|
4
|
+
|
|
5
|
+
## Core Capabilities
|
|
6
|
+
|
|
7
|
+
| Capability | Claude Code | Cursor | Windsurf | Codex |
|
|
8
|
+
|---|---|---|---|---|
|
|
9
|
+
| **File Operations** | ✅ Native tools | ✅ read_file, edit_file | ✅ Native | ⚠️ Via skills |
|
|
10
|
+
| **Shell Execution** | ✅ Bash tool | ✅ run_terminal_cmd | ✅ run_command | ⚠️ Via sandbox |
|
|
11
|
+
| **File Search** | ✅ Glob, Grep | ✅ codebase_search, grep_search | ✅ search_files, search_codebase | ⚠️ Via sandbox |
|
|
12
|
+
| **Interactive Input** | ✅ Structured (AskUserQuestion) | ⚠️ Conversational | ⚠️ Conversational | ⚠️ Text-only |
|
|
13
|
+
| **Sub-Agents** | ✅ Task tool | ✅ Async native agents | ⚠️ Cascades + chaining | ❌ Cannot nest |
|
|
14
|
+
| **Nested Sub-Agents** | ✅ Full nesting | ✅ Full nesting | ❌ Parallel only | ❌ None |
|
|
15
|
+
|
|
16
|
+
## Planning & Execution
|
|
17
|
+
|
|
18
|
+
| Capability | Claude Code | Cursor | Windsurf | Codex |
|
|
19
|
+
|---|---|---|---|---|
|
|
20
|
+
| **Plan Mode** | ✅ EnterPlanMode/ExitPlanMode | ✅ Native | ✅ Native + "megaplan" | ❌ None |
|
|
21
|
+
| **Plan Editing** | ✅ User can edit | ✅ User can edit | ✅ User can edit | N/A |
|
|
22
|
+
| **Persistent Plans** | ✅ Yes | ✅ Yes | ✅ ~/.windsurf/plans/ | N/A |
|
|
23
|
+
|
|
24
|
+
## Lifecycle & Hooks
|
|
25
|
+
|
|
26
|
+
| Hook Event | Claude Code | Cursor | Windsurf | Codex |
|
|
27
|
+
|---|---|---|---|---|
|
|
28
|
+
| **SessionStart** | ✅ | ❌ | ❌ | ❌ |
|
|
29
|
+
| **PreToolUse** | ✅ | ❌ | ❌ | ❌ |
|
|
30
|
+
| **PostToolUse** | ✅ | ❌ | ❌ | ❌ |
|
|
31
|
+
| **beforeSubmitPrompt** | ❌ | ✅ | ❌ | ❌ |
|
|
32
|
+
| **beforeShellExecution** | ❌ | ✅ | ❌ | ❌ |
|
|
33
|
+
| **beforeMCPExecution** | ❌ | ✅ | ❌ | ❌ |
|
|
34
|
+
| **beforeReadFile** | ❌ | ✅ | ❌ | ❌ |
|
|
35
|
+
| **afterFileEdit** | ❌ | ✅ | ❌ | ❌ |
|
|
36
|
+
| **pre_read_code** | ❌ | ❌ | ✅ | ❌ |
|
|
37
|
+
| **post_read_code** | ❌ | ❌ | ✅ | ❌ |
|
|
38
|
+
| **pre_write_code** | ❌ | ❌ | ✅ | ❌ |
|
|
39
|
+
| **post_write_code** | ❌ | ❌ | ✅ | ❌ |
|
|
40
|
+
| **pre_run_command** | ❌ | ❌ | ✅ | ❌ |
|
|
41
|
+
| **post_run_command** | ❌ | ❌ | ✅ | ❌ |
|
|
42
|
+
| **pre_mcp_tool_use** | ❌ | ❌ | ✅ | ❌ |
|
|
43
|
+
| **post_mcp_tool_use** | ❌ | ❌ | ✅ | ❌ |
|
|
44
|
+
| **pre_user_prompt** | ❌ | ❌ | ✅ | ❌ |
|
|
45
|
+
| **post_cascade_response** | ❌ | ❌ | ✅ | ❌ |
|
|
46
|
+
| **post_setup_worktree** | ❌ | ❌ | ✅ | ❌ |
|
|
47
|
+
| **Total Hook Events** | 5 | 6 | 11 | 0 |
|
|
48
|
+
|
|
49
|
+
**Status**: SessionStart, PreToolUse, PostToolUse (Claude Code); beforeSubmitPrompt, beforeShellExecution, beforeMCPExecution, beforeReadFile, afterFileEdit (Cursor); stop hook (all IDEs)
|
|
50
|
+
|
|
51
|
+
## External Integration
|
|
52
|
+
|
|
53
|
+
| Capability | Claude Code | Cursor | Windsurf | Codex |
|
|
54
|
+
|---|---|---|---|---|
|
|
55
|
+
| **Web Search** | ✅ WebSearch | ✅ web_search + @web | ✅ web_search | ❌ |
|
|
56
|
+
| **Web Fetch** | ✅ WebFetch | ✅ @web + MCP | ✅ url_read, view_chunk | ❌ |
|
|
57
|
+
| **MCP Support** | ✅ Full | ✅ Full | ✅ Full | ✅ Extension |
|
|
58
|
+
| **MCP Tool Cap** | **0 (unlimited)** | **40** | **100** | **0 (unlimited)** |
|
|
59
|
+
| **Browser** | ✅ Playwright MCP | ✅ Native browser (v2.0+) | ✅ Browser Preview | ⚠️ Limited |
|
|
60
|
+
|
|
61
|
+
## Collaboration & Tracking
|
|
62
|
+
|
|
63
|
+
| Capability | Claude Code | Cursor | Windsurf | Codex |
|
|
64
|
+
|---|---|---|---|---|
|
|
65
|
+
| **Task Tracking** | ✅ TaskCreate/Update/List | ❌ Plan checklists only | ❌ Conversation-embedded | ❌ None |
|
|
66
|
+
| **Persistent Tasks** | ✅ Yes | ❌ | ❌ | ❌ |
|
|
67
|
+
| **Git Worktrees** | ✅ EnterWorktree | ⚠️ Background agents use branches | ✅ Native (up to 20) | ⚠️ Manual |
|
|
68
|
+
| **Parallel Execution** | ⚠️ Sequential Tasks | ✅ Async subagents | ✅ @cascade worktrees | ❌ |
|
|
69
|
+
|
|
70
|
+
## Configuration Paths
|
|
71
|
+
|
|
72
|
+
| Item | Claude Code | Cursor | Windsurf | Codex |
|
|
73
|
+
|---|---|---|---|---|
|
|
74
|
+
| **Config Dir** | `.claude/` | `.cursor/` | `.windsurf/` | `.codex/` |
|
|
75
|
+
| **Commands** | `.claude/commands/agileflow/` | `.cursor/commands/` | `.windsurf/workflows/` | N/A |
|
|
76
|
+
| **Agents** | `.claude/agents/agileflow/` | `.cursor/agents/` | N/A (use workflows) | N/A |
|
|
77
|
+
| **Skills** | `.claude/skills/` | N/A (use agents) | `.windsurf/skills/*/` | `.codex/skills/agileflow-*/` |
|
|
78
|
+
| **Rules** | N/A | `.cursor/rules/` (MDC) | `.windsurf/rules/` | N/A |
|
|
79
|
+
| **Hooks Config** | `.claude/settings.json` | `.cursor/hooks.json` | `.windsurf/hooks.json` | N/A |
|
|
80
|
+
| **MCP Config** | `.claude/settings.json` | `.cursor/mcp.json` | `~/.codeium/windsurf/mcp_config.json` | N/A |
|
|
81
|
+
| **Instructions** | `CLAUDE.md` | `CURSOR.md` | `WINDSURF.md` | `AGENTS.md` |
|
|
82
|
+
|
|
83
|
+
## Limits & Constraints
|
|
84
|
+
|
|
85
|
+
| Constraint | Claude Code | Cursor | Windsurf | Codex |
|
|
86
|
+
|---|---|---|---|---|
|
|
87
|
+
| **Max File Size** | Unlimited | Unlimited | Unlimited | Unlimited |
|
|
88
|
+
| **Max Command Length** | Unlimited | Unlimited | Unlimited | Unlimited |
|
|
89
|
+
| **Workflow Size** | N/A | N/A | **12,000 chars** | N/A |
|
|
90
|
+
| **MCP Tools** | 0 (unlimited) | **40** | 100 | 0 (unlimited) |
|
|
91
|
+
| **Git Worktrees** | Via tool | Via branches | Up to 20 | Manual |
|
|
92
|
+
| **Parallel Agents** | Sequential | Unlimited | Via @cascade | No nesting |
|
|
93
|
+
|
|
94
|
+
**Key constraint**: Cursor's 40-tool MCP limit is the binding constraint for multi-IDE installations.
|
|
95
|
+
|
|
96
|
+
## AgileFlow Feature Support
|
|
97
|
+
|
|
98
|
+
| Feature | Claude Code | Cursor | Windsurf | Codex |
|
|
99
|
+
|---|---|---|---|---|
|
|
100
|
+
| **/agileflow:babysit** | ✅ Full | ⚠️ Conversational input | ⚠️ Conversational input | ❌ Limited |
|
|
101
|
+
| **AskUserQuestion** | ✅ Structured menus | ❌ Fallback to text | ❌ Fallback to text | ✅ Text-only |
|
|
102
|
+
| **Task delegation** | ✅ Task tool | ✅ Async agents | ⚠️ Workflow chaining | ❌ Skill suggestions |
|
|
103
|
+
| **Plan mode hooks** | ✅ Full integration | ✅ Native mode | ✅ Native mode | ❌ None |
|
|
104
|
+
| **Sub-agent nesting** | ✅ Full support | ✅ Full support | ⚠️ Parallel only | ❌ None |
|
|
105
|
+
| **Persistent task list** | ✅ Yes | ❌ | ❌ | ❌ |
|
|
106
|
+
| **Async execution** | ❌ Sequential | ✅ Native | ⚠️ @cascade | ❌ |
|
|
107
|
+
|
|
108
|
+
## Implementation Notes
|
|
109
|
+
|
|
110
|
+
### Claude Code
|
|
111
|
+
- **Recommended target** for new AgileFlow features
|
|
112
|
+
- All capabilities validated here first
|
|
113
|
+
- Full support for structured user interaction
|
|
114
|
+
- No tool limits for multi-IDE deployments
|
|
115
|
+
|
|
116
|
+
### Cursor
|
|
117
|
+
- **Fast-follower to Claude Code** (v2.5 Feb 2026)
|
|
118
|
+
- Async native agents eliminate need for Task tool
|
|
119
|
+
- 40-tool MCP cap is **binding constraint** for all IDEs
|
|
120
|
+
- No AskUserQuestion - replace with numbered text prompts
|
|
121
|
+
- Plan mode fully native (no enter/exit needed)
|
|
122
|
+
|
|
123
|
+
### Windsurf
|
|
124
|
+
- **Most hook events** (11 total) but most restrictive
|
|
125
|
+
- **No true sub-agent spawning** - use workflow chaining or @cascade
|
|
126
|
+
- **12,000 char limit per workflow** - must split large commands
|
|
127
|
+
- **Global MCP config only** - no project-level customization
|
|
128
|
+
- Native worktrees (up to 20)
|
|
129
|
+
- Browser preview built-in to IDE
|
|
130
|
+
|
|
131
|
+
### Codex
|
|
132
|
+
- **Most restrictive** - use as minimum baseline
|
|
133
|
+
- Skills cannot spawn other skills (no delegation)
|
|
134
|
+
- No plan mode, hooks, or task tracking
|
|
135
|
+
- Text-only user input
|
|
136
|
+
- Best for linear workflows only
|
|
137
|
+
|
|
138
|
+
## Multi-IDE Deployment Strategy
|
|
139
|
+
|
|
140
|
+
**Canonical source**: Claude Code format
|
|
141
|
+
**Generation**: Read IDE profile → Transform to IDE-native format
|
|
142
|
+
**MCP constraint**: Cap at 40 tools (Cursor's limit) for consistency
|
|
143
|
+
|
|
144
|
+
**Fallback order when feature unavailable**:
|
|
145
|
+
1. Use native IDE equivalent (if exists)
|
|
146
|
+
2. Replace with text-based alternative
|
|
147
|
+
3. Document limitation in profile
|
|
148
|
+
|
|
149
|
+
**Example - AskUserQuestion replacement**:
|
|
150
|
+
```
|
|
151
|
+
Claude Code:
|
|
152
|
+
AskUserQuestion(options=[{label: "Yes"}, {label: "No"}])
|
|
153
|
+
|
|
154
|
+
Cursor/Windsurf:
|
|
155
|
+
Would you like to continue? (Type "Yes" or "No")
|
|
156
|
+
|
|
157
|
+
Codex:
|
|
158
|
+
Please choose:
|
|
159
|
+
1. Yes
|
|
160
|
+
2. No
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
## Version Support
|
|
164
|
+
|
|
165
|
+
- **Claude Code**: Latest (no version pinning)
|
|
166
|
+
- **Cursor**: v2.5+ (Feb 2026)
|
|
167
|
+
- **Windsurf**: Wave 13+ (native worktrees, 11 hooks)
|
|
168
|
+
- **Codex**: Latest (limited feature set)
|
|
169
|
+
|
|
170
|
+
Last updated: 2026-02-20 | Source: Cross-IDE Compatibility Findings
|