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.
Files changed (106) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/README.md +57 -85
  3. package/lib/dashboard-automations.js +130 -0
  4. package/lib/dashboard-git.js +254 -0
  5. package/lib/dashboard-inbox.js +64 -0
  6. package/lib/dashboard-protocol.js +1 -0
  7. package/lib/dashboard-server.js +114 -924
  8. package/lib/dashboard-session.js +136 -0
  9. package/lib/dashboard-status.js +72 -0
  10. package/lib/dashboard-terminal.js +354 -0
  11. package/lib/dashboard-websocket.js +88 -0
  12. package/lib/drivers/codex-driver.ts +4 -4
  13. package/lib/logger.js +106 -0
  14. package/package.json +4 -2
  15. package/scripts/agileflow-configure.js +2 -2
  16. package/scripts/agileflow-welcome.js +409 -434
  17. package/scripts/claude-tmux.sh +80 -2
  18. package/scripts/context-loader.js +4 -9
  19. package/scripts/lib/browser-qa-evidence.js +409 -0
  20. package/scripts/lib/browser-qa-status.js +192 -0
  21. package/scripts/lib/command-prereqs.js +280 -0
  22. package/scripts/lib/configure-detect.js +92 -2
  23. package/scripts/lib/configure-features.js +295 -1
  24. package/scripts/lib/context-formatter.js +468 -233
  25. package/scripts/lib/context-loader.js +27 -15
  26. package/scripts/lib/damage-control-utils.js +8 -1
  27. package/scripts/lib/feature-catalog.js +321 -0
  28. package/scripts/lib/portable-tasks-cli.js +274 -0
  29. package/scripts/lib/portable-tasks.js +479 -0
  30. package/scripts/lib/signal-detectors.js +1 -1
  31. package/scripts/lib/team-events.js +86 -1
  32. package/scripts/obtain-context.js +28 -4
  33. package/scripts/smart-detect.js +17 -0
  34. package/scripts/strip-ai-attribution.js +63 -0
  35. package/scripts/team-manager.js +7 -2
  36. package/scripts/welcome-deferred.js +437 -0
  37. package/src/core/agents/browser-qa.md +328 -0
  38. package/src/core/agents/perf-analyzer-assets.md +174 -0
  39. package/src/core/agents/perf-analyzer-bundle.md +165 -0
  40. package/src/core/agents/perf-analyzer-caching.md +160 -0
  41. package/src/core/agents/perf-analyzer-compute.md +165 -0
  42. package/src/core/agents/perf-analyzer-memory.md +182 -0
  43. package/src/core/agents/perf-analyzer-network.md +157 -0
  44. package/src/core/agents/perf-analyzer-queries.md +155 -0
  45. package/src/core/agents/perf-analyzer-rendering.md +156 -0
  46. package/src/core/agents/perf-consensus.md +280 -0
  47. package/src/core/agents/security-analyzer-api.md +199 -0
  48. package/src/core/agents/security-analyzer-auth.md +160 -0
  49. package/src/core/agents/security-analyzer-authz.md +168 -0
  50. package/src/core/agents/security-analyzer-deps.md +147 -0
  51. package/src/core/agents/security-analyzer-infra.md +176 -0
  52. package/src/core/agents/security-analyzer-injection.md +148 -0
  53. package/src/core/agents/security-analyzer-input.md +191 -0
  54. package/src/core/agents/security-analyzer-secrets.md +175 -0
  55. package/src/core/agents/security-consensus.md +276 -0
  56. package/src/core/agents/test-analyzer-assertions.md +181 -0
  57. package/src/core/agents/test-analyzer-coverage.md +183 -0
  58. package/src/core/agents/test-analyzer-fragility.md +185 -0
  59. package/src/core/agents/test-analyzer-integration.md +155 -0
  60. package/src/core/agents/test-analyzer-maintenance.md +173 -0
  61. package/src/core/agents/test-analyzer-mocking.md +178 -0
  62. package/src/core/agents/test-analyzer-patterns.md +189 -0
  63. package/src/core/agents/test-analyzer-structure.md +177 -0
  64. package/src/core/agents/test-consensus.md +294 -0
  65. package/src/core/commands/{legal/audit.md → audit/legal.md} +13 -13
  66. package/src/core/commands/{logic/audit.md → audit/logic.md} +12 -12
  67. package/src/core/commands/audit/performance.md +443 -0
  68. package/src/core/commands/audit/security.md +443 -0
  69. package/src/core/commands/audit/test.md +442 -0
  70. package/src/core/commands/babysit.md +505 -463
  71. package/src/core/commands/browser-qa.md +240 -0
  72. package/src/core/commands/configure.md +8 -8
  73. package/src/core/commands/research/ask.md +42 -9
  74. package/src/core/commands/research/import.md +14 -8
  75. package/src/core/commands/research/list.md +17 -16
  76. package/src/core/commands/research/synthesize.md +8 -8
  77. package/src/core/commands/research/view.md +28 -4
  78. package/src/core/commands/whats-new.md +2 -2
  79. package/src/core/experts/devops/expertise.yaml +13 -2
  80. package/src/core/experts/documentation/expertise.yaml +26 -4
  81. package/src/core/profiles/COMPARISON.md +170 -0
  82. package/src/core/profiles/README.md +178 -0
  83. package/src/core/profiles/claude-code.yaml +111 -0
  84. package/src/core/profiles/codex.yaml +103 -0
  85. package/src/core/profiles/cursor.yaml +134 -0
  86. package/src/core/profiles/examples.js +250 -0
  87. package/src/core/profiles/loader.js +235 -0
  88. package/src/core/profiles/windsurf.yaml +159 -0
  89. package/src/core/teams/logic-audit.json +6 -0
  90. package/src/core/teams/perf-audit.json +71 -0
  91. package/src/core/teams/security-audit.json +71 -0
  92. package/src/core/teams/test-audit.json +71 -0
  93. package/src/core/templates/browser-qa-spec.yaml +94 -0
  94. package/src/core/templates/command-prerequisites.yaml +169 -0
  95. package/src/core/templates/damage-control-patterns.yaml +9 -0
  96. package/tools/cli/installers/ide/_base-ide.js +33 -3
  97. package/tools/cli/installers/ide/claude-code.js +2 -69
  98. package/tools/cli/installers/ide/codex.js +9 -9
  99. package/tools/cli/installers/ide/cursor.js +165 -4
  100. package/tools/cli/installers/ide/windsurf.js +237 -6
  101. package/tools/cli/lib/content-transformer.js +234 -9
  102. package/tools/cli/lib/docs-setup.js +1 -1
  103. package/tools/cli/lib/ide-generator.js +357 -0
  104. package/tools/cli/lib/ide-registry.js +2 -2
  105. package/scripts/tmux-task-name.sh +0 -105
  106. package/scripts/tmux-task-watcher.sh +0 -344
@@ -1,6 +1,6 @@
1
1
  domain: documentation
2
- last_updated: 2026-02-03
3
- version: 1.3
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 CLI) 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), Codex CLI unique (per-repo skills, user-level prompts, AGENTS.md instructions)"
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 CLI dual installation model (per-repo skills, user-level prompts, AGENTS.md)"
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"