agileflow 3.1.0 → 3.2.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 +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/browser-qa-evidence.js +409 -0
- package/scripts/lib/browser-qa-status.js +192 -0
- 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/browser-qa.md +328 -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/browser-qa.md +240 -0
- 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/browser-qa-spec.yaml +94 -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
|
@@ -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
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
# IDE Capability Profiles
|
|
2
|
+
|
|
3
|
+
IDE-agnostic capability declarations for AgileFlow's multi-IDE support strategy.
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
This directory contains one YAML profile per supported IDE. Each profile declares:
|
|
8
|
+
- Supported capabilities (plan mode, hooks, task tracking, MCP, etc.)
|
|
9
|
+
- Config directory structure and paths
|
|
10
|
+
- Tool name mappings (how each IDE names equivalent functions)
|
|
11
|
+
- Frontmatter formats for commands/agents
|
|
12
|
+
- Limitations and workarounds
|
|
13
|
+
|
|
14
|
+
## Design Philosophy
|
|
15
|
+
|
|
16
|
+
**Capability profiles separate declarations from implementation.** Instead of baking IDE differences into generators, prompts, or installers, we declaratively describe what each IDE supports. This enables:
|
|
17
|
+
|
|
18
|
+
1. **Build-time generation** - Generators read profiles and produce IDE-native output
|
|
19
|
+
2. **Feature detection** - Commands can check IDE capabilities at install time
|
|
20
|
+
3. **Graceful fallbacks** - Prompts suggest alternatives when features unavailable
|
|
21
|
+
4. **Extensibility** - Adding new IDEs requires only a new YAML file, not code changes
|
|
22
|
+
|
|
23
|
+
## Files
|
|
24
|
+
|
|
25
|
+
### claude-code.yaml
|
|
26
|
+
**Primary target.** Anthropic's CLI-based environment with full support for:
|
|
27
|
+
- Structured interactive input (AskUserQuestion)
|
|
28
|
+
- True sub-agent spawning with nesting (Task tool)
|
|
29
|
+
- Plan mode with programmatic control
|
|
30
|
+
- Persistent task tracking (TaskCreate/Update)
|
|
31
|
+
- Comprehensive hooks (SessionStart, PreToolUse, PostToolUse)
|
|
32
|
+
- Unlimited MCP tools
|
|
33
|
+
|
|
34
|
+
**Key paths:**
|
|
35
|
+
- Commands: `.claude/commands/agileflow/`
|
|
36
|
+
- Agents: `.claude/agents/agileflow/`
|
|
37
|
+
- Instructions: `CLAUDE.md`
|
|
38
|
+
|
|
39
|
+
### cursor.yaml
|
|
40
|
+
**Closest competitor to Claude Code.** v2.5 (Feb 2026) now supports:
|
|
41
|
+
- Async subagents with nesting (no Task tool needed)
|
|
42
|
+
- Plan mode with native interface
|
|
43
|
+
- 6 lifecycle hooks (beta)
|
|
44
|
+
- 40-tool MCP limit (binding constraint)
|
|
45
|
+
- Native browser tool
|
|
46
|
+
|
|
47
|
+
**Gaps:**
|
|
48
|
+
- No structured menus (conversational only)
|
|
49
|
+
- No persistent task tracking
|
|
50
|
+
- No background sub-agent execution
|
|
51
|
+
|
|
52
|
+
**Key paths:**
|
|
53
|
+
- Commands: `.cursor/commands/`
|
|
54
|
+
- Agents: `.cursor/agents/`
|
|
55
|
+
- Rules: `.cursor/rules/` (MDC format)
|
|
56
|
+
- MCP config: `.cursor/mcp.json`
|
|
57
|
+
|
|
58
|
+
### windsurf.yaml
|
|
59
|
+
**Most comprehensive hooks (11 events).** Wave 13+ with:
|
|
60
|
+
- Native worktrees (up to 20 per workspace)
|
|
61
|
+
- 11 lifecycle hook events
|
|
62
|
+
- 100-tool MCP limit
|
|
63
|
+
- Native browser preview (in-IDE)
|
|
64
|
+
|
|
65
|
+
**Gaps:**
|
|
66
|
+
- No true sub-agent spawning (use workflow chaining or cascades)
|
|
67
|
+
- 12,000 character limit per workflow file
|
|
68
|
+
- Global-only MCP config (`~/.codeium/windsurf/mcp_config.json`)
|
|
69
|
+
- No persistent task tracking
|
|
70
|
+
- Conversational input only
|
|
71
|
+
|
|
72
|
+
**Key paths:**
|
|
73
|
+
- Workflows: `.windsurf/workflows/`
|
|
74
|
+
- Skills: `.windsurf/skills/*/SKILL.md` (agentskills.io spec)
|
|
75
|
+
- Rules: `.windsurf/rules/`
|
|
76
|
+
- MCP config: `~/.codeium/windsurf/mcp_config.json` (global-only)
|
|
77
|
+
|
|
78
|
+
### codex.yaml
|
|
79
|
+
**Most restrictive.** OpenAI's CLI with:
|
|
80
|
+
- Skills (no direct file tools)
|
|
81
|
+
- Sandbox modes (read-only, auto, full-access)
|
|
82
|
+
- Text-only user input (no structured menus)
|
|
83
|
+
|
|
84
|
+
**Gaps:**
|
|
85
|
+
- No plan mode
|
|
86
|
+
- No hooks
|
|
87
|
+
- No sub-agent delegation
|
|
88
|
+
- No task tracking
|
|
89
|
+
- No MCP
|
|
90
|
+
|
|
91
|
+
## Usage
|
|
92
|
+
|
|
93
|
+
### For Installers
|
|
94
|
+
```javascript
|
|
95
|
+
const profile = require('./profiles/claude-code.yaml');
|
|
96
|
+
if (profile.capabilities.core.planMode) {
|
|
97
|
+
installPlanModePrompts();
|
|
98
|
+
}
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
### For Generators
|
|
102
|
+
```javascript
|
|
103
|
+
// Read profile to generate IDE-native commands
|
|
104
|
+
const generator = new CommandGenerator(profile);
|
|
105
|
+
const ideSpecificMarkdown = generator.transform(canonicalCommand);
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### For Feature Detection
|
|
109
|
+
```javascript
|
|
110
|
+
// Check if IDE supports a feature
|
|
111
|
+
if (!profile.capabilities.collaboration.taskTracking) {
|
|
112
|
+
console.warn('Task tracking not available in this IDE');
|
|
113
|
+
suggestFileBasedAlternative();
|
|
114
|
+
}
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
## Capability Categories
|
|
118
|
+
|
|
119
|
+
### Core Capabilities
|
|
120
|
+
- **fileOperations** - Read, write, edit files
|
|
121
|
+
- **shell** - Execute shell commands
|
|
122
|
+
- **fileSearch** - Glob and grep
|
|
123
|
+
- **interactiveInput** - Structured user menus (structured vs conversational)
|
|
124
|
+
- **subAgents** - Spawn sub-agents/skills
|
|
125
|
+
- **nestedSubAgents** - Sub-agents can spawn other sub-agents
|
|
126
|
+
|
|
127
|
+
### Planning
|
|
128
|
+
- **planMode** - Explicit planning phase
|
|
129
|
+
- **planModeEditable** - Plans can be edited during execution
|
|
130
|
+
|
|
131
|
+
### Lifecycle
|
|
132
|
+
- **hooks** - Pre/post execution hooks
|
|
133
|
+
- **hookEvents** - List of specific hook events supported
|
|
134
|
+
|
|
135
|
+
### External Integration
|
|
136
|
+
- **webSearch** - Internet search capability
|
|
137
|
+
- **webFetch** - Fetch URLs
|
|
138
|
+
- **mcp** - Model Context Protocol support
|
|
139
|
+
- **mcpToolLimit** - Max tools per MCP (0 = unlimited)
|
|
140
|
+
- **browser** - Screenshot/browser automation
|
|
141
|
+
|
|
142
|
+
### Collaboration
|
|
143
|
+
- **taskTracking** - Persistent task tracking
|
|
144
|
+
- **persistentTasks** - Tasks survive across sessions
|
|
145
|
+
- **worktrees** - Git worktree support
|
|
146
|
+
|
|
147
|
+
## MCP Tool Limits
|
|
148
|
+
|
|
149
|
+
| IDE | Tool Cap | Notes |
|
|
150
|
+
|---|---|---|
|
|
151
|
+
| Claude Code | Unlimited (0) | Can install entire ecosystem |
|
|
152
|
+
| Cursor | 40 | Hard limit; binding constraint for multi-IDE |
|
|
153
|
+
| Windsurf | 100 | Good balance |
|
|
154
|
+
| Codex | Unlimited (0) | Via MCP extension |
|
|
155
|
+
|
|
156
|
+
**Design decision**: Cap multi-IDE MCP installations at 40 tools (Cursor's limit) to ensure compatibility across all platforms.
|
|
157
|
+
|
|
158
|
+
## Implementation Priority
|
|
159
|
+
|
|
160
|
+
| Tier | Capabilities | IDEs | Status |
|
|
161
|
+
|---|---|---|---|
|
|
162
|
+
| 1 | File ops, shell, search, web | All | Ready |
|
|
163
|
+
| 2 | Hooks, plan mode | Claude Code, Cursor, Windsurf | Profiles complete |
|
|
164
|
+
| 3 | Sub-agents, task tracking | Claude Code, Cursor | Profiles complete |
|
|
165
|
+
| 4 | Worktrees, MCP | All | Profiles complete |
|
|
166
|
+
|
|
167
|
+
## Next Steps
|
|
168
|
+
|
|
169
|
+
1. **Validators** - Build validators to check profile format/completeness
|
|
170
|
+
2. **Loaders** - Create load functions (YAML → JS objects) with caching
|
|
171
|
+
3. **Generators** - Build content transformers that read profiles and output IDE-native prompts
|
|
172
|
+
4. **Tests** - Snapshot tests per IDE profile
|
|
173
|
+
5. **Documentation** - ADR-0011 documenting the capability profile strategy
|
|
174
|
+
|
|
175
|
+
## References
|
|
176
|
+
|
|
177
|
+
- Cross-IDE Compatibility Findings: `docs/10-research/20260220-ide-cross-compatibility-findings.md`
|
|
178
|
+
- ADR-0011 (TBD): Capability Profile Strategy
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
# Claude Code IDE Capability Profile
|
|
2
|
+
# Anthropic CLI - Primary target, fully supported
|
|
3
|
+
# Reference: Cross-IDE Compatibility Findings (20260220)
|
|
4
|
+
|
|
5
|
+
ide:
|
|
6
|
+
id: claude-code
|
|
7
|
+
name: Claude Code
|
|
8
|
+
displayName: Claude Code
|
|
9
|
+
description: Anthropic's native CLI-based development environment
|
|
10
|
+
configDir: .claude
|
|
11
|
+
instructionsFile: CLAUDE.md
|
|
12
|
+
fileFormat: markdown
|
|
13
|
+
commandPrefix: "/agileflow:"
|
|
14
|
+
agentPrefix: "agileflow-"
|
|
15
|
+
|
|
16
|
+
paths:
|
|
17
|
+
commands: .claude/commands/agileflow/
|
|
18
|
+
agents: .claude/agents/agileflow/
|
|
19
|
+
skills: .claude/skills/
|
|
20
|
+
hooks: .claude/settings.json
|
|
21
|
+
mcp: .claude/settings.json
|
|
22
|
+
|
|
23
|
+
capabilities:
|
|
24
|
+
core:
|
|
25
|
+
fileOperations: true # Read, Write, Edit tools
|
|
26
|
+
shell: true # Bash tool with full execution
|
|
27
|
+
fileSearch: true # Glob and Grep tools
|
|
28
|
+
interactiveInput: true # AskUserQuestion with structured options
|
|
29
|
+
subAgents: true # Task tool for spawning subagents
|
|
30
|
+
nestedSubAgents: true # Sub-agents can spawn sub-sub-agents
|
|
31
|
+
planning:
|
|
32
|
+
planMode: true # EnterPlanMode/ExitPlanMode
|
|
33
|
+
planModeEditable: true # User can edit plans mid-execution
|
|
34
|
+
lifecycle:
|
|
35
|
+
hooks: true # PreToolUse, PostToolUse, SessionStart
|
|
36
|
+
hookEvents:
|
|
37
|
+
- SessionStart
|
|
38
|
+
- PreToolUse
|
|
39
|
+
- PostToolUse
|
|
40
|
+
- Notification
|
|
41
|
+
- Stop
|
|
42
|
+
external:
|
|
43
|
+
webSearch: true # WebSearch tool
|
|
44
|
+
webFetch: true # WebFetch tool
|
|
45
|
+
mcp: true # Model Context Protocol
|
|
46
|
+
mcpToolLimit: 0 # 0 = unlimited
|
|
47
|
+
browser: true # Playwright MCP for screenshots
|
|
48
|
+
collaboration:
|
|
49
|
+
taskTracking: true # TaskCreate, TaskUpdate, TaskList
|
|
50
|
+
persistentTasks: true # Tasks survive across sessions
|
|
51
|
+
worktrees: true # EnterWorktree for parallel branches
|
|
52
|
+
|
|
53
|
+
toolNames:
|
|
54
|
+
# Interactive
|
|
55
|
+
askUser: AskUserQuestion
|
|
56
|
+
# Delegation
|
|
57
|
+
spawnAgent: Task
|
|
58
|
+
createTask: TaskCreate
|
|
59
|
+
updateTask: TaskUpdate
|
|
60
|
+
listTasks: TaskList
|
|
61
|
+
# Planning
|
|
62
|
+
planModeEnter: EnterPlanMode
|
|
63
|
+
planModeExit: ExitPlanMode
|
|
64
|
+
# Execution
|
|
65
|
+
bash: Bash
|
|
66
|
+
# Files
|
|
67
|
+
read: Read
|
|
68
|
+
write: Write
|
|
69
|
+
edit: Edit
|
|
70
|
+
# Search
|
|
71
|
+
glob: Glob
|
|
72
|
+
grep: Grep
|
|
73
|
+
# Web
|
|
74
|
+
webSearch: WebSearch
|
|
75
|
+
webFetch: WebFetch
|
|
76
|
+
# Branching
|
|
77
|
+
worktree: EnterWorktree
|
|
78
|
+
|
|
79
|
+
frontmatter:
|
|
80
|
+
agents:
|
|
81
|
+
format: yaml
|
|
82
|
+
fields:
|
|
83
|
+
- name
|
|
84
|
+
- description
|
|
85
|
+
- tools
|
|
86
|
+
- model
|
|
87
|
+
commands:
|
|
88
|
+
format: yaml
|
|
89
|
+
fields:
|
|
90
|
+
- description
|
|
91
|
+
- argument-hint
|
|
92
|
+
|
|
93
|
+
limits:
|
|
94
|
+
maxFileSize: 0 # 0 = unlimited
|
|
95
|
+
maxCommandLength: 0 # 0 = unlimited
|
|
96
|
+
maxToolsPerMCP: 0 # 0 = unlimited
|
|
97
|
+
|
|
98
|
+
installation:
|
|
99
|
+
supportsFileOps: true
|
|
100
|
+
supportsHooks: true
|
|
101
|
+
supportsMCP: true
|
|
102
|
+
commandsRequireApproval: false
|
|
103
|
+
agentFilesCanBeNestedDirs: true
|
|
104
|
+
|
|
105
|
+
notes:
|
|
106
|
+
- "Primary target for AgileFlow development"
|
|
107
|
+
- "All new capabilities are validated against Claude Code first"
|
|
108
|
+
- "AskUserQuestion provides structured menu presentation with JSON options"
|
|
109
|
+
- "Task tool supports full async delegation with result callbacks"
|
|
110
|
+
- "Plan mode integrated via native EnterPlanMode/ExitPlanMode"
|
|
111
|
+
- "No tool count limits - can install entire MCP ecosystem"
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
# OpenAI Codex CLI Capability Profile
|
|
2
|
+
# Reference: Cross-IDE Compatibility Findings (20260220)
|
|
3
|
+
|
|
4
|
+
ide:
|
|
5
|
+
id: codex
|
|
6
|
+
name: OpenAI Codex CLI
|
|
7
|
+
displayName: Codex
|
|
8
|
+
description: OpenAI's CLI-based development assistant
|
|
9
|
+
configDir: .codex
|
|
10
|
+
configDirUser: ~/.codex
|
|
11
|
+
instructionsFile: AGENTS.md
|
|
12
|
+
fileFormat: markdown
|
|
13
|
+
commandPrefix: "$agileflow-"
|
|
14
|
+
agentPrefix: "agileflow-"
|
|
15
|
+
|
|
16
|
+
paths:
|
|
17
|
+
commands: null # Not directly supported
|
|
18
|
+
agents: null # Not directly supported
|
|
19
|
+
skills: .codex/skills/agileflow-*/SKILL.md
|
|
20
|
+
skillsUser: ~/.codex/prompts/agileflow-*.md
|
|
21
|
+
hooks: null # Not supported
|
|
22
|
+
mcp: null # Not supported
|
|
23
|
+
|
|
24
|
+
capabilities:
|
|
25
|
+
core:
|
|
26
|
+
fileOperations: true # Via skills (no direct tools)
|
|
27
|
+
shell: true # Via sandbox
|
|
28
|
+
fileSearch: true # Via sandbox search
|
|
29
|
+
interactiveInput: true # ask_user_question (text-only, no structured menus)
|
|
30
|
+
subAgents: false # Experimental multi-agent support (disabled by default)
|
|
31
|
+
nestedSubAgents: false # No nested delegation; experimental agents are flat
|
|
32
|
+
planning:
|
|
33
|
+
planMode: true # On by default since v0.96
|
|
34
|
+
planModeEditable: true # Plans are editable
|
|
35
|
+
lifecycle:
|
|
36
|
+
hooks: false # No lifecycle hooks
|
|
37
|
+
approvalPolicies: true # Approval gates only
|
|
38
|
+
external:
|
|
39
|
+
webSearch: false # Not built-in
|
|
40
|
+
webFetch: false # Not built-in
|
|
41
|
+
mcp: true # Via MCP extension
|
|
42
|
+
mcpToolLimit: 0 # 0 = unlimited
|
|
43
|
+
browser: false # Not available
|
|
44
|
+
collaboration:
|
|
45
|
+
taskTracking: false # No task tracking
|
|
46
|
+
persistentTasks: false
|
|
47
|
+
worktrees: false # Manual git operations
|
|
48
|
+
|
|
49
|
+
sandboxModes:
|
|
50
|
+
- id: read-only
|
|
51
|
+
description: "No file modifications, workspace read access"
|
|
52
|
+
- id: auto
|
|
53
|
+
description: "Auto-approved operations within workspace"
|
|
54
|
+
- id: full-access
|
|
55
|
+
description: "Full system access with approval"
|
|
56
|
+
|
|
57
|
+
toolNames:
|
|
58
|
+
# Interactive
|
|
59
|
+
askUser: ask_user_question # Text-only, not structured
|
|
60
|
+
# File operations (via skill)
|
|
61
|
+
read: null # Use skill instead
|
|
62
|
+
write: null # Use skill instead
|
|
63
|
+
edit: null # Use skill instead
|
|
64
|
+
# Execution (via skill)
|
|
65
|
+
bash: null # Use sandbox instead
|
|
66
|
+
# Search (via skill)
|
|
67
|
+
glob: null # Use sandbox instead
|
|
68
|
+
grep: null # Use sandbox instead
|
|
69
|
+
# Web (not available)
|
|
70
|
+
webSearch: null
|
|
71
|
+
webFetch: null
|
|
72
|
+
|
|
73
|
+
frontmatter:
|
|
74
|
+
skills:
|
|
75
|
+
format: yaml
|
|
76
|
+
fields:
|
|
77
|
+
- name
|
|
78
|
+
- description
|
|
79
|
+
- model
|
|
80
|
+
- requiredPermissions
|
|
81
|
+
|
|
82
|
+
limitations:
|
|
83
|
+
noSubAgents: "Cannot spawn other skills; use numbered prompts for sequential work"
|
|
84
|
+
noInteractiveMenus: "ask_user_question is text-only; convert to numbered options"
|
|
85
|
+
noPlanning: "No plan mode; use sequential skill instructions instead"
|
|
86
|
+
noHooks: "No lifecycle hooks; use approval policies"
|
|
87
|
+
noTaskTracking: "No persistent task tracking; use external tools"
|
|
88
|
+
skillScope: "Skills are repository-scoped, user prompts are global"
|
|
89
|
+
|
|
90
|
+
installation:
|
|
91
|
+
supportsFileOps: false # Via skills, not native tools
|
|
92
|
+
supportsHooks: false
|
|
93
|
+
supportsMCP: true # Via MCP extension
|
|
94
|
+
commandsRequireApproval: true
|
|
95
|
+
skillsCanBeNestedDirs: false
|
|
96
|
+
|
|
97
|
+
notes:
|
|
98
|
+
- "Skills are the primary extension mechanism"
|
|
99
|
+
- "Per-repo skills in .codex/skills/, global prompts in ~/.codex/prompts/"
|
|
100
|
+
- "Plan mode available (on by default since v0.96); no hooks or true sub-agent delegation"
|
|
101
|
+
- "AgileFlow /babysit features must fallback to conversational prompts"
|
|
102
|
+
- "Best used for simple linear workflows"
|
|
103
|
+
- "ask_user_question produces text output, not structured menus"
|