@@ -38,11 +38,10 @@ Specify supports multiple AI agents by generating agent-specific command files a
3838| ** Qwen Code** | ` .qwen/commands/ ` | TOML | ` qwen ` | Alibaba's Qwen Code CLI |
3939| ** opencode** | ` .opencode/command/ ` | Markdown | ` opencode ` | opencode CLI |
4040| ** Windsurf** | ` .windsurf/workflows/ ` | Markdown | N/A (IDE-based) | Windsurf IDE workflows |
41- | ** Factory CLI** | ` .factory/commands/ ` | Markdown | ` droid ` | Factory CLI |
4241
4342### Step-by-Step Integration Guide
4443
45- Follow these steps to add a new agent (examples below reference Windsurf and Factory CLI ):
44+ Follow these steps to add a new agent (using Windsurf as an example ):
4645
4746#### 1. Update AI_CHOICES Constant
4847
@@ -51,7 +50,7 @@ Add the new agent to the `AI_CHOICES` dictionary in `src/specify_cli/__init__.py
5150``` python
5251AI_CHOICES = {
5352 " copilot" : " GitHub Copilot" ,
54- " claude" : " Claude Code" ,
53+ " claude" : " Claude Code" ,
5554 " gemini" : " Gemini CLI" ,
5655 " cursor" : " Cursor" ,
5756 " qwen" : " Qwen Code" ,
@@ -100,7 +99,7 @@ Modify `.github/workflows/scripts/create-release-packages.sh`:
10099
101100##### Add to ALL_AGENTS array:
102101``` bash
103- ALL_AGENTS=(claude gemini copilot cursor qwen opencode windsurf droid )
102+ ALL_AGENTS=(claude gemini copilot cursor qwen opencode windsurf)
104103```
105104
106105##### Add case statement for directory structure:
@@ -110,9 +109,6 @@ case $agent in
110109 windsurf)
111110 mkdir -p " $base_dir /.windsurf/workflows"
112111 generate_commands windsurf md " \$ ARGUMENTS" " $base_dir /.windsurf/workflows" " $script " ;;
113- droid)
114- mkdir -p " $base_dir /.factory/commands"
115- generate_commands droid md " \$ ARGUMENTS" " $base_dir /.factory/commands" " $script " ;;
116112esac
117113```
118114
@@ -125,8 +121,6 @@ gh release create "$VERSION" \
125121 # ... existing packages ...
126122 .genreleases/spec-kit-template-windsurf-sh-" $VERSION " .zip \
127123 .genreleases/spec-kit-template-windsurf-ps-" $VERSION " .zip \
128- .genreleases/spec-kit-template-droid-sh-" $VERSION " .zip \
129- .genreleases/spec-kit-template-droid-ps-" $VERSION " .zip \
130124 # Add new agent packages here
131125```
132126
@@ -137,19 +131,16 @@ gh release create "$VERSION" \
137131Add file variable:
138132``` bash
139133WINDSURF_FILE=" $REPO_ROOT /.windsurf/rules/specify-rules.md"
140- DROID_FILE=" $REPO_ROOT /.factory/rules/specify-rules.md"
141134```
142135
143136Add to case statement:
144137``` bash
145138case " $AGENT_TYPE " in
146139 # ... existing cases ...
147140 windsurf) update_agent_file " $WINDSURF_FILE " " Windsurf" ;;
148- droid) update_agent_file " $DROID_FILE " " Factory CLI" ;;
149- " " )
141+ " " )
150142 # ... existing checks ...
151143 [ -f " $WINDSURF_FILE " ] && update_agent_file " $WINDSURF_FILE " " Windsurf" ;
152- [ -f " $DROID_FILE " ] && update_agent_file " $DROID_FILE " " Factory CLI" ;
153144 # Update default creation condition
154145 ;;
155146esac
@@ -160,20 +151,17 @@ esac
160151Add file variable:
161152``` powershell
162153$windsurfFile = Join-Path $repoRoot '.windsurf/rules/specify-rules.md'
163- $droidFile = Join-Path $repoRoot '.factory/rules/specify-rules.md'
164154```
165155
166156Add to switch statement:
167157``` powershell
168158switch ($AgentType) {
169159 # ... existing cases ...
170160 'windsurf' { Update-AgentFile $windsurfFile 'Windsurf' }
171- 'droid' { Update-AgentFile $droidFile 'Factory CLI' }
172161 '' {
173162 foreach ($pair in @(
174163 # ... existing pairs ...
175164 @{file=$windsurfFile; name='Windsurf'}
176- @{file=$droidFile; name='Factory CLI'}
177165 )) {
178166 if (Test-Path $pair.file) { Update-AgentFile $pair.file $pair.name }
179167 }
@@ -190,18 +178,12 @@ For agents that require CLI tools, add checks in the `check()` command and agent
190178# In check() command
191179tracker.add(" windsurf" , " Windsurf IDE (optional)" )
192180windsurf_ok = check_tool_for_tracker(" windsurf" , " https://windsurf.com/" , tracker)
193- tracker.add(" droid" , " Factory CLI" )
194- droid_ok = check_tool_for_tracker(" droid" , " https://factory.ai" , tracker)
195181
196182# In init validation (only if CLI tool required)
197183elif selected_ai == " windsurf" :
198184 if not check_tool(" windsurf" , " Install from: https://windsurf.com/" ):
199185 console.print(" [red]Error:[/red] Windsurf CLI is required for Windsurf projects" )
200186 agent_tool_missing = True
201- elif selected_ai == " droid" :
202- if not check_tool(" droid" , " Install from: https://factory.ai" ):
203- console.print(" [red]Error:[/red] Factory CLI is required for Factory CLI projects" )
204- agent_tool_missing = True
205187```
206188
207189** Note** : Skip CLI checks for IDE-based agents (Copilot, Windsurf).
@@ -211,11 +193,10 @@ elif selected_ai == "droid":
211193### CLI-Based Agents
212194Require a command-line tool to be installed:
213195- ** Claude Code** : ` claude ` CLI
214- - ** Gemini CLI** : ` gemini ` CLI
196+ - ** Gemini CLI** : ` gemini ` CLI
215197- ** Cursor** : ` cursor-agent ` CLI
216198- ** Qwen Code** : ` qwen ` CLI
217199- ** opencode** : ` opencode ` CLI
218- - ** Factory CLI** : ` droid ` CLI
219200
220201### IDE-Based Agents
221202Work within integrated development environments:
@@ -225,7 +206,7 @@ Work within integrated development environments:
225206## Command File Formats
226207
227208### Markdown Format
228- Used by: Claude, Cursor, opencode, Windsurf, Factory CLI
209+ Used by: Claude, Cursor, opencode, Windsurf
229210
230211``` markdown
231212---
@@ -253,7 +234,6 @@ Command content with {SCRIPT} and {{args}} placeholders.
253234 - Copilot: ` .github/prompts/ `
254235 - Cursor: ` .cursor/commands/ `
255236 - Windsurf: ` .windsurf/workflows/ `
256- - Factory CLI: ` .factory/commands/ `
257237
258238## Argument Patterns
259239
@@ -289,4 +269,4 @@ When adding new agents:
289269
290270---
291271
292- * This documentation should be updated whenever new agents are added to maintain accuracy and completeness.*
272+ * This documentation should be updated whenever new agents are added to maintain accuracy and completeness.*
0 commit comments