Skip to content

Commit 5a44067

Browse files
feat(init): support extension install during initialization
Add repeatable --extension support to specify init for bundled extension IDs, local extension directories, and archive URLs. Persist requested extensions in init options and install them before the default git-extension auto-install so explicit git opt-in does not double-install. Warn when legacy --ai and --no-git flags are used, and show a visible notice when the git extension is still auto-enabled by default ahead of the v1.0.0 opt-in change. Update README init option docs and add CLI regression coverage for init-time extension installation and deprecation messaging.
1 parent cdbea09 commit 5a44067

File tree

3 files changed

+461
-56
lines changed

3 files changed

+461
-56
lines changed

README.md

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -298,6 +298,7 @@ Community projects that extend, visualize, or build on Spec Kit:
298298
- **[SpecKit Companion](https://marketplace.visualstudio.com/items?itemName=alfredoperez.speckit-companion)** — A VS Code extension that brings a visual GUI to Spec Kit. Browse specs in a rich markdown viewer with clickable file references, create specifications with image attachments, comment and refine each step inline (GitHub-style review), track your progress through the SDD workflow with a visual phase stepper, and manage steering documents like constitutions and templates.
299299

300300
## 🤖 Supported AI Agents
301+
301302
| Agent | Support | Notes |
302303
| ------------------------------------------------------------------------------------ | ------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
303304
| [Qoder CLI](https://qoder.com/cli) || |
@@ -333,7 +334,7 @@ Community projects that extend, visualize, or build on Spec Kit:
333334

334335
After running `specify init`, your AI coding agent will have access to these slash commands for structured development. If you pass `--ai <agent> --ai-skills`, Spec Kit installs agent skills instead of slash-command prompt files; `--ai-skills` requires `--ai`.
335336

336-
#### Core Commands
337+
### Core Commands
337338

338339
Essential commands for the Spec-Driven Development workflow:
339340

@@ -346,7 +347,7 @@ Essential commands for the Spec-Driven Development workflow:
346347
| `/speckit.taskstoissues` | `speckit-taskstoissues`| Convert generated task lists into GitHub issues for tracking and execution |
347348
| `/speckit.implement` | `speckit-implement` | Execute all tasks to build the feature according to the plan |
348349

349-
#### Optional Commands
350+
### Optional Commands
350351

351352
Additional commands for enhanced quality and validation:
352353

@@ -386,17 +387,21 @@ specify init [PROJECT_NAME] <OPTIONS>
386387
| Argument/Option | Type | Description |
387388
| ---------------------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
388389
| `<PROJECT_NAME>` | Argument | Name for your new project directory (optional if using `--here`, or use `.` for current directory) |
389-
| `--ai` | Option | AI assistant to use (see `AGENT_CONFIG` for the full, up-to-date list). Common options include: `claude`, `gemini`, `copilot`, `cursor-agent`, `qwen`, `opencode`, `codex`, `windsurf`, `junie`, `kilocode`, `auggie`, `roo`, `codebuddy`, `amp`, `shai`, `kiro-cli` (`kiro` alias), `agy`, `bob`, `qodercli`, `vibe`, `kimi`, `iflow`, `pi`, `forge`, or `generic` (requires `--ai-commands-dir`) |
390-
| `--ai-commands-dir` | Option | Directory for agent command files (required with `--ai generic`, e.g. `.myagent/commands/`) |
390+
| `--integration` | Option | Integration to use. Common options include: `claude`, `gemini`, `copilot`, `cursor-agent`, `qwen`, `opencode`, `codex`, `windsurf`, `junie`, `kilocode`, `auggie`, `roo`, `codebuddy`, `amp`, `shai`, `kiro-cli`, `agy`, `bob`, `qodercli`, `vibe`, `kimi`, `iflow`, `pi`, `forge`, or `generic` |
391+
| `--integration-options`| Option | Options passed to the selected integration, such as `--integration-options="--commands-dir .myagent/commands/"` for `generic` |
392+
| `--ai` | Option | Deprecated legacy alias for `--integration` |
393+
| `--ai-commands-dir` | Option | Deprecated legacy option for generic command directories. Use `--integration generic --integration-options="--commands-dir <dir>"` instead |
391394
| `--script` | Option | Script variant to use: `sh` (bash/zsh) or `ps` (PowerShell) |
392395
| `--ignore-agent-tools` | Flag | Skip checks for AI agent tools like Claude Code |
393-
| `--no-git` | Flag | Skip git repository initialization |
396+
| `--no-git` | Flag | Deprecated. Skip git repository initialization and default git-extension installation |
394397
| `--here` | Flag | Initialize project in the current directory instead of creating a new one |
395398
| `--force` | Flag | Force merge/overwrite when initializing in current directory (skip confirmation) |
396399
| `--skip-tls` | Flag | Skip SSL/TLS verification (not recommended) |
397400
| `--debug` | Flag | Enable detailed debug output for troubleshooting |
398401
| `--github-token` | Option | GitHub token for API requests (or set GH_TOKEN/GITHUB_TOKEN env variable) |
399-
| `--ai-skills` | Flag | Install Prompt.MD templates as agent skills in agent-specific `skills/` directory (requires `--ai`). Extension commands are also auto-registered as skills when extensions are added later. |
402+
| `--ai-skills` | Flag | Deprecated legacy option for integrations that support skills. Skills are now selected by the integration. |
403+
| `--extension` | Option | Install an extension during initialization. Repeatable; accepts bundled IDs, local paths, or archive URLs. |
404+
| `--preset` | Option | Install a preset during initialization |
400405
| `--branch-numbering` | Option | Branch numbering strategy: `sequential` (default — `001`, `002`, `003`, …, `1000`, … — expands beyond 3 digits automatically) or `timestamp` (`YYYYMMDD-HHMMSS`). Timestamp mode is useful for distributed teams to avoid numbering conflicts |
401406

402407
### Examples
@@ -406,10 +411,13 @@ specify init [PROJECT_NAME] <OPTIONS>
406411
specify init my-project
407412

408413
# Initialize with specific AI assistant
409-
specify init my-project --ai claude
414+
specify init my-project --integration claude
415+
416+
# Install a bundled extension during initialization
417+
specify init my-project --integration copilot --extension git
410418

411419
# Initialize with Cursor support
412-
specify init my-project --ai cursor-agent
420+
specify init my-project --integration cursor-agent
413421

414422
# Initialize with Qoder support
415423
specify init my-project --ai qodercli

0 commit comments

Comments
 (0)