feat(sdd): update commands to use colon separator format (/spec:<action>)

This commit is contained in:
Jerop Kipruto
2026-03-17 14:34:08 -04:00
parent c94253e4a7
commit 50ec385843
13 changed files with 54 additions and 41 deletions
+1 -1
View File
@@ -372,7 +372,7 @@ features and complex tasks through persistent artifacts. It organizes work into
tracks and stores them in your project's `.gemini/specs/` directory. tracks and stores them in your project's `.gemini/specs/` directory.
SDD leverages Plan Mode internally to ensure architectural safety during the SDD leverages Plan Mode internally to ensure architectural safety during the
design phase. To get started with SDD, run `/spec setup`. design phase. To get started with SDD, run `/spec:setup`.
- **Automate transitions:** Switches to read-only mode via - **Automate transitions:** Switches to read-only mode via
[`enter_plan_mode`](../tools/planning.md#1-enter_plan_mode-enterplanmode). [`enter_plan_mode`](../tools/planning.md#1-enter_plan_mode-enterplanmode).
+12 -11
View File
@@ -148,17 +148,18 @@ they appear in the UI.
### Experimental ### Experimental
| UI Label | Setting | Description | Default | | UI Label | Setting | Description | Default |
| -------------------------- | ---------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | | ----------------------------- | ---------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- |
| Enable Tool Output Masking | `experimental.toolOutputMasking.enabled` | Enables tool output masking to save tokens. | `true` | | Enable Tool Output Masking | `experimental.toolOutputMasking.enabled` | Enables tool output masking to save tokens. | `true` |
| Enable Git Worktrees | `experimental.worktrees` | Enable automated Git worktree management for parallel work. | `false` | | Enable Git Worktrees | `experimental.worktrees` | Enable automated Git worktree management for parallel work. | `false` |
| Use OSC 52 Paste | `experimental.useOSC52Paste` | Use OSC 52 for pasting. This may be more robust than the default system when using remote terminal sessions (if your terminal is configured to allow it). | `false` | | Use OSC 52 Paste | `experimental.useOSC52Paste` | Use OSC 52 for pasting. This may be more robust than the default system when using remote terminal sessions (if your terminal is configured to allow it). | `false` |
| Use OSC 52 Copy | `experimental.useOSC52Copy` | Use OSC 52 for copying. This may be more robust than the default system when using remote terminal sessions (if your terminal is configured to allow it). | `false` | | Use OSC 52 Copy | `experimental.useOSC52Copy` | Use OSC 52 for copying. This may be more robust than the default system when using remote terminal sessions (if your terminal is configured to allow it). | `false` |
| Plan | `experimental.plan` | Enable Plan Mode. | `true` | | Plan | `experimental.plan` | Enable Plan Mode. | `true` |
| Model Steering | `experimental.modelSteering` | Enable model steering (user hints) to guide the model during tool execution. | `false` | | Spec-Driven Development (SDD) | `experimental.sdd` | Enable built-in Spec-Driven Development (SDD) workflow. | `false` |
| Direct Web Fetch | `experimental.directWebFetch` | Enable web fetch behavior that bypasses LLM summarization. | `false` | | Model Steering | `experimental.modelSteering` | Enable model steering (user hints) to guide the model during tool execution. | `false` |
| Memory Manager Agent | `experimental.memoryManager` | Replace the built-in save_memory tool with a memory manager subagent that supports adding, removing, de-duplicating, and organizing memories. | `false` | | Direct Web Fetch | `experimental.directWebFetch` | Enable web fetch behavior that bypasses LLM summarization. | `false` |
| Topic & Update Narration | `experimental.topicUpdateNarration` | Enable the experimental Topic & Update communication model for reduced chattiness and structured progress reporting. | `false` | | Memory Manager Agent | `experimental.memoryManager` | Replace the built-in save_memory tool with a memory manager subagent that supports adding, removing, de-duplicating, and organizing memories. | `false` |
| Topic & Update Narration | `experimental.topicUpdateNarration` | Enable the experimental Topic & Update communication model for reduced chattiness and structured progress reporting. | `false` |
### Skills ### Skills
+16 -16
View File
@@ -65,7 +65,7 @@ consumption in the current session by running `/stats model`.
### 1. Set Up the Project (Run Once) ### 1. Set Up the Project (Run Once)
When you run `/spec setup`, SDD helps you define the core components of your When you run `/spec:setup`, SDD helps you define the core components of your
project context. This context is then used for building new components or project context. This context is then used for building new components or
features by you or anyone on your team. features by you or anyone on your team.
@@ -87,12 +87,12 @@ features by you or anyone on your team.
- `.gemini/specs/tracks.md` - `.gemini/specs/tracks.md`
```bash ```bash
/spec setup /spec:setup
``` ```
### 2. Start a New Track (Feature or Bug) ### 2. Start a New Track (Feature or Bug)
When youre ready to take on a new feature or bug fix, run `/spec create`. This When youre ready to take on a new feature or bug fix, run `/spec:create`. This
initializes a **track** — a high-level unit of work. SDD helps you generate two initializes a **track** — a high-level unit of work. SDD helps you generate two
critical artifacts: critical artifacts:
@@ -107,14 +107,14 @@ critical artifacts:
- `.gemini/specs/tracks/<track_id>/metadata.json` - `.gemini/specs/tracks/<track_id>/metadata.json`
```bash ```bash
/spec create /spec:create
# OR with a description # OR with a description
/spec create "Add a dark mode toggle to the settings page" /spec:create "Add a dark mode toggle to the settings page"
``` ```
### 3. Implement the Track ### 3. Implement the Track
Once you approve the plan, run `/spec implement`. Your coding agent then works Once you approve the plan, run `/spec:implement`. Your coding agent then works
through the `plan.md` file, checking off tasks as it completes them. through the `plan.md` file, checking off tasks as it completes them.
**Updated Artifacts:** **Updated Artifacts:**
@@ -124,7 +124,7 @@ through the `plan.md` file, checking off tasks as it completes them.
- Project context files (Synchronized on completion) - Project context files (Synchronized on completion)
```bash ```bash
/spec implement /spec:implement
``` ```
SDD will: SDD will:
@@ -140,28 +140,28 @@ During implementation, you can also:
- **Check status**: Get a high-level overview of your project's progress. - **Check status**: Get a high-level overview of your project's progress.
```bash ```bash
/spec status /spec:status
``` ```
- **Revert work**: Undo a feature or a specific task if needed. - **Revert work**: Undo a feature or a specific task if needed.
```bash ```bash
/spec revert /spec:revert
``` ```
- **Review work**: Review completed work against guidelines and the plan. - **Review work**: Review completed work against guidelines and the plan.
```bash ```bash
/spec review /spec:review
``` ```
## Commands Reference ## Commands Reference
| Command | Description | Artifacts | | Command | Description | Artifacts |
| :---------------- | :-------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------- | | :---------------- | :-------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `/spec setup` | Scaffolds the project and sets up the SDD environment. Run this once per project. | `.gemini/specs/product.md`<br>`.gemini/specs/product-guidelines.md`<br>`.gemini/specs/tech-stack.md`<br>`.gemini/specs/workflow.md`<br>`.gemini/specs/tracks.md` | | `/spec:setup` | Scaffolds the project and sets up the SDD environment. Run this once per project. | `.gemini/specs/product.md`<br>`.gemini/specs/product-guidelines.md`<br>`.gemini/specs/tech-stack.md`<br>`.gemini/specs/workflow.md`<br>`.gemini/specs/tracks.md` |
| `/spec create` | Starts a new feature or bug track. Generates `spec.md` and `plan.md`. | `.gemini/specs/tracks/<id>/spec.md`<br>`.gemini/specs/tracks/<id>/plan.md`<br>`.gemini/specs/tracks.md` | | `/spec:create` | Starts a new feature or bug track. Generates `spec.md` and `plan.md`. | `.gemini/specs/tracks/<id>/spec.md`<br>`.gemini/specs/tracks/<id>/plan.md`<br>`.gemini/specs/tracks.md` |
| `/spec implement` | Executes the tasks defined in the current track's plan. | `.gemini/specs/tracks.md`<br>`.gemini/specs/tracks/<id>/plan.md` | | `/spec:implement` | Executes the tasks defined in the current track's plan. | `.gemini/specs/tracks.md`<br>`.gemini/specs/tracks/<id>/plan.md` |
| `/spec status` | Displays the current progress of the tracks file and active tracks. | Reads `.gemini/specs/tracks.md` | | `/spec:status` | Displays the current progress of the tracks file and active tracks. | Reads `.gemini/specs/tracks.md` |
| `/spec revert` | Reverts a track, phase, or task by analyzing git history. | Reverts git history | | `/spec:revert` | Reverts a track, phase, or task by analyzing git history. | Reverts git history |
| `/spec review` | Reviews completed work against guidelines and the plan. | Reads `plan.md`, `product-guidelines.md` | | `/spec:review` | Reviews completed work against guidelines and the plan. | Reads `plan.md`, `product-guidelines.md` |
[Conductor]: https://github.com/gemini-cli-extensions/conductor [Conductor]: https://github.com/gemini-cli-extensions/conductor
+5
View File
@@ -1580,6 +1580,11 @@ their corresponding top-level category object in your `settings.json` file.
- **Default:** `true` - **Default:** `true`
- **Requires restart:** Yes - **Requires restart:** Yes
- **`experimental.sdd`** (boolean):
- **Description:** Enable built-in Spec-Driven Development (SDD) workflow.
- **Default:** `false`
- **Requires restart:** Yes
- **`experimental.taskTracker`** (boolean): - **`experimental.taskTracker`** (boolean):
- **Description:** Enable task tracker tools. - **Description:** Enable task tracker tools.
- **Default:** `false` - **Default:** `false`
@@ -791,7 +791,7 @@ describe('ExtensionManager', () => {
); );
expect(emitSpy).toHaveBeenCalledWith( expect(emitSpy).toHaveBeenCalledWith(
'warning', 'warning',
expect.stringContaining('/spec setup'), expect.stringContaining('/spec:setup'),
); );
}); });
+1 -1
View File
@@ -692,7 +692,7 @@ Would you like to attempt to install via "git clone" instead?`,
(e) => e.name === 'conductor', (e) => e.name === 'conductor',
); );
if (conductorIdx !== -1) { if (conductorIdx !== -1) {
const message = `The "conductor" extension has been replaced by built-in Spec-Driven Development. Your project files in "/conductor" are preserved. Run "/spec setup" to get started.`; const message = `The "conductor" extension has been replaced by built-in Spec-Driven Development. Your project files in "/conductor" are preserved. Run "/spec:setup" to get started.`;
debugLogger.warn(message); debugLogger.warn(message);
coreEvents.emitFeedback('warning', message); coreEvents.emitFeedback('warning', message);
} }
@@ -19,7 +19,7 @@ PLAN MODE PROTOCOL: Parts of this process run within Plan Mode. While in Plan Mo
2. **Handle Failure:** 2. **Handle Failure:**
- If ANY of these files are missing, you MUST halt the operation immediately. - If ANY of these files are missing, you MUST halt the operation immediately.
- Announce: "SDD is not set up. Please run `/spec setup` to set up the environment." - Announce: "SDD is not set up. Please run `/spec:setup` to set up the environment."
- Do NOT proceed to New Track Initialization. - Do NOT proceed to New Track Initialization.
--- ---
@@ -179,6 +179,6 @@ PLAN MODE PROTOCOL: Parts of this process run within Plan Mode. While in Plan Mo
- **Announce:** Inform the user you are committing the **Tracks Registry** changes. - **Announce:** Inform the user you are committing the **Tracks Registry** changes.
- **Commit Changes:** Stage the **Tracks Registry** files and commit with the message `chore(conductor): Add new track '<track_description>'`. - **Commit Changes:** Stage the **Tracks Registry** files and commit with the message `chore(conductor): Add new track '<track_description>'`.
9. **Announce Completion:** Inform the user: 9. **Announce Completion:** Inform the user:
> "New track '<track_id>' has been created and added to the tracks file. You can now start implementation by running `/spec implement`." > "New track '<track_id>' has been created and added to the tracks file. You can now start implementation by running `/spec:implement`."
""" """
@@ -15,7 +15,7 @@ CRITICAL: You must validate the success of every tool call. If any tool call fai
- **Tech Stack** - **Tech Stack**
- **Workflow** - **Workflow**
2. **Handle Failure:** If ANY of these are missing (or their resolved paths do not exist), Announce: "SDD is not set up. Please run `/spec setup`." and HALT. 2. **Handle Failure:** If ANY of these are missing (or their resolved paths do not exist), Announce: "SDD is not set up. Please run `/spec:setup`." and HALT.
--- ---
@@ -23,7 +23,7 @@ CRITICAL: You must validate the success of every tool call. If any tool call fai
## 2.0 TRACK SELECTION ## 2.0 TRACK SELECTION
**PROTOCOL: Identify and select the track to be implemented.** **PROTOCOL: Identify and select the track to be implemented.**
1. **Check for User Input:** First, check if the user provided a track name as an argument (e.g., `/spec implement <track_description>`). 1. **Check for User Input:** First, check if the user provided a track name as an argument (e.g., `/spec:implement <track_description>`).
2. **Locate and Parse Tracks Registry:** 2. **Locate and Parse Tracks Registry:**
- Resolve the **Tracks Registry**. - Resolve the **Tracks Registry**.
@@ -192,7 +192,7 @@ CRITICAL: You must validate the success of every tool call. If any tool call fai
3. **Handle User Response:** 3. **Handle User Response:**
* **If user chooses "Review":** * **If user chooses "Review":**
* Announce: "Please run `/spec review` to verify your changes. You will be able to archive or delete the track after the review." * Announce: "Please run `/spec:review` to verify your changes. You will be able to archive or delete the track after the review."
* **If user chooses "Archive":** * **If user chooses "Archive":**
i. **Create Archive Directory:** Check for the existence of `.gemini/specs/archive/`. If it does not exist, create it. i. **Create Archive Directory:** Check for the existence of `.gemini/specs/archive/`. If it does not exist, create it.
ii. **Archive Track Folder:** Move the track's folder from its current location (resolved via the **Tracks Directory**) to `.gemini/specs/archive/<track_id>`. ii. **Archive Track Folder:** Move the track's folder from its current location (resolved via the **Tracks Directory**) to `.gemini/specs/archive/<track_id>`.
@@ -20,7 +20,7 @@ CRITICAL: You must validate the success of every tool call. If any tool call fai
2. **Verify Track Exists:** Check if the **Tracks Registry** is not empty. 2. **Verify Track Exists:** Check if the **Tracks Registry** is not empty.
3. **Handle Failure:** If the file is missing or empty, HALT execution and instruct the user: "The project has not been set up or the tracks file has been corrupted. Please run `/spec setup` to set up the plan, or restore the tracks file." 3. **Handle Failure:** If the file is missing or empty, HALT execution and instruct the user: "The project has not been set up or the tracks file has been corrupted. Please run `/spec:setup` to set up the plan, or restore the tracks file."
--- ---
@@ -29,7 +29,7 @@ CRITICAL: You must validate the success of every tool call. If any tool call fai
1. **Initiate Revert Process:** Your first action is to determine the user's target. 1. **Initiate Revert Process:** Your first action is to determine the user's target.
2. **Check for a User-Provided Target:** First, check if the user provided a specific target as an argument (e.g., `/spec revert track <track_id>`). 2. **Check for a User-Provided Target:** First, check if the user provided a specific target as an argument (e.g., `/spec:revert track <track_id>`).
* **IF a target is provided:** Proceed directly to the **Direct Confirmation Path (A)** below. * **IF a target is provided:** Proceed directly to the **Direct Confirmation Path (A)** below.
* **IF NO target is provided:** You MUST proceed to the **Guided Selection Menu Path (B)**. This is the default behavior. * **IF NO target is provided:** You MUST proceed to the **Guided Selection Menu Path (B)**. This is the default behavior.
@@ -26,7 +26,7 @@ CRITICAL: You must validate the success of every tool call. If any tool call fai
2. **Handle Failure:** 2. **Handle Failure:**
- If ANY of these files are missing, list the missing files, then you MUST halt the operation immediately. - If ANY of these files are missing, list the missing files, then you MUST halt the operation immediately.
- Announce: "SDD is not set up. Please run `/spec setup` to set up the environment." - Announce: "SDD is not set up. Please run `/spec:setup` to set up the environment."
- Do NOT proceed to Review Protocol. - Do NOT proceed to Review Protocol.
--- ---
@@ -41,7 +41,7 @@ PLAN MODE PROTOCOL: This setup process runs entirely within Plan Mode. While in
| Artifact Exists | Target Section | Announcement | | Artifact Exists | Target Section | Announcement |
| :--- | :--- | :--- | | :--- | :--- | :--- |
| All files in `tracks/<track_id>/` (`spec`, `plan`, `metadata`, `index`) | **HALT** | "The project is already initialized. Use `/spec create` or `/spec implement`." | | All files in `tracks/<track_id>/` (`spec`, `plan`, `metadata`, `index`) | **HALT** | "The project is already initialized. Use `/spec:create` or `/spec:implement`." |
| `index.md` (top-level) | **Section 3.0** | "Resuming setup: Scaffolding is complete. Next: generate the first track. (Note: If an incomplete track folder was detected, we will restart this step to ensure a clean, consistent state)." | | `index.md` (top-level) | **Section 3.0** | "Resuming setup: Scaffolding is complete. Next: generate the first track. (Note: If an incomplete track folder was detected, we will restart this step to ensure a clean, consistent state)." |
| `workflow.md` | **Section 2.6** | "Resuming setup: Workflow is defined. Next: generate project index." | | `workflow.md` | **Section 2.6** | "Resuming setup: Workflow is defined. Next: generate project index." |
| `code_styleguides/` | **Section 2.5** | "Resuming setup: Guides/Tech Stack configured. Next: define project workflow." | | `code_styleguides/` | **Section 2.5** | "Resuming setup: Guides/Tech Stack configured. Next: define project workflow." |
@@ -530,5 +530,5 @@ PLAN MODE PROTOCOL: This setup process runs entirely within Plan Mode. While in
- Check if it contains a rule that might ignore the `.gemini/specs/` directory (e.g., `.gemini/`). - Check if it contains a rule that might ignore the `.gemini/specs/` directory (e.g., `.gemini/`).
- To ensure these artifacts are always shared with the team, append `!.gemini/specs/` to the end of the `.gitignore` file if it is not already explicitly exempted. - To ensure these artifacts are always shared with the team, append `!.gemini/specs/` to the end of the `.gitignore` file if it is not already explicitly exempted.
2. **Save SDD Files:** Add and commit all files with the commit message `conductor(setup): Add conductor setup files`. 2. **Save SDD Files:** Add and commit all files with the commit message `conductor(setup): Add conductor setup files`.
3. **Next Steps:** Inform the user that they can now begin work by running `/spec implement`. 3. **Next Steps:** Inform the user that they can now begin work by running `/spec:implement`.
""" """
@@ -19,7 +19,7 @@ CRITICAL: You must validate the success of every tool call. If any tool call fai
2. **Handle Failure:** 2. **Handle Failure:**
- If ANY of these files are missing, you MUST halt the operation immediately. - If ANY of these files are missing, you MUST halt the operation immediately.
- Announce: "SDD is not set up. Please run `/spec setup` to set up the environment." - Announce: "SDD is not set up. Please run `/spec:setup` to set up the environment."
- Do NOT proceed to Status Overview Protocol. - Do NOT proceed to Status Overview Protocol.
--- ---
+7
View File
@@ -2733,6 +2733,13 @@
"default": true, "default": true,
"type": "boolean" "type": "boolean"
}, },
"sdd": {
"title": "Spec-Driven Development (SDD)",
"description": "Enable built-in Spec-Driven Development (SDD) workflow.",
"markdownDescription": "Enable built-in Spec-Driven Development (SDD) workflow.\n\n- Category: `Experimental`\n- Requires restart: `yes`\n- Default: `false`",
"default": false,
"type": "boolean"
},
"taskTracker": { "taskTracker": {
"title": "Task Tracker", "title": "Task Tracker",
"description": "Enable task tracker tools.", "description": "Enable task tracker tools.",