mirror of
https://github.com/google-gemini/gemini-cli.git
synced 2026-03-20 02:51:55 -07:00
feat(sdd): update commands to use colon separator format (/spec:<action>)
This commit is contained in:
@@ -374,7 +374,7 @@ features and complex tasks through persistent artifacts. It organizes work into
|
||||
tracks and stores them in your project's `.gemini/specs/` directory.
|
||||
|
||||
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
|
||||
[`enter_plan_mode`](../tools/planning.md#1-enter_plan_mode-enterplanmode).
|
||||
|
||||
@@ -144,15 +144,16 @@ they appear in the UI.
|
||||
|
||||
### Experimental
|
||||
|
||||
| UI Label | Setting | Description | Default |
|
||||
| -------------------------- | ---------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- |
|
||||
| Enable Tool Output Masking | `experimental.toolOutputMasking.enabled` | Enables tool output masking to save tokens. | `true` |
|
||||
| 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` |
|
||||
| Plan | `experimental.plan` | Enable Plan Mode. | `true` |
|
||||
| Model Steering | `experimental.modelSteering` | Enable model steering (user hints) to guide the model during tool execution. | `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` |
|
||||
| UI Label | Setting | Description | Default |
|
||||
| ----------------------------- | ---------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- |
|
||||
| Enable Tool Output Masking | `experimental.toolOutputMasking.enabled` | Enables tool output masking to save tokens. | `true` |
|
||||
| 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` |
|
||||
| Plan | `experimental.plan` | Enable Plan Mode. | `true` |
|
||||
| Spec-Driven Development (SDD) | `experimental.sdd` | Enable built-in Spec-Driven Development (SDD) workflow. | `false` |
|
||||
| Model Steering | `experimental.modelSteering` | Enable model steering (user hints) to guide the model during tool execution. | `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` |
|
||||
|
||||
### Skills
|
||||
|
||||
|
||||
@@ -65,7 +65,7 @@ consumption in the current session by running `/stats model`.
|
||||
|
||||
### 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
|
||||
features by you or anyone on your team.
|
||||
|
||||
@@ -87,12 +87,12 @@ features by you or anyone on your team.
|
||||
- `.gemini/specs/tracks.md`
|
||||
|
||||
```bash
|
||||
/spec setup
|
||||
/spec:setup
|
||||
```
|
||||
|
||||
### 2. Start a New Track (Feature or Bug)
|
||||
|
||||
When you’re ready to take on a new feature or bug fix, run `/spec create`. This
|
||||
When you’re 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
|
||||
critical artifacts:
|
||||
|
||||
@@ -107,14 +107,14 @@ critical artifacts:
|
||||
- `.gemini/specs/tracks/<track_id>/metadata.json`
|
||||
|
||||
```bash
|
||||
/spec create
|
||||
/spec:create
|
||||
# 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
|
||||
|
||||
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.
|
||||
|
||||
**Updated Artifacts:**
|
||||
@@ -124,7 +124,7 @@ through the `plan.md` file, checking off tasks as it completes them.
|
||||
- Project context files (Synchronized on completion)
|
||||
|
||||
```bash
|
||||
/spec implement
|
||||
/spec:implement
|
||||
```
|
||||
|
||||
SDD will:
|
||||
@@ -140,28 +140,28 @@ During implementation, you can also:
|
||||
|
||||
- **Check status**: Get a high-level overview of your project's progress.
|
||||
```bash
|
||||
/spec status
|
||||
/spec:status
|
||||
```
|
||||
- **Revert work**: Undo a feature or a specific task if needed.
|
||||
|
||||
```bash
|
||||
/spec revert
|
||||
/spec:revert
|
||||
```
|
||||
|
||||
- **Review work**: Review completed work against guidelines and the plan.
|
||||
```bash
|
||||
/spec review
|
||||
/spec:review
|
||||
```
|
||||
|
||||
## Commands Reference
|
||||
|
||||
| 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 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 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 review` | Reviews completed work against guidelines and the plan. | Reads `plan.md`, `product-guidelines.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: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: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` |
|
||||
|
||||
[Conductor]: https://github.com/gemini-cli-extensions/conductor
|
||||
|
||||
@@ -1393,6 +1393,11 @@ their corresponding top-level category object in your `settings.json` file.
|
||||
- **Default:** `true`
|
||||
- **Requires restart:** Yes
|
||||
|
||||
- **`experimental.sdd`** (boolean):
|
||||
- **Description:** Enable built-in Spec-Driven Development (SDD) workflow.
|
||||
- **Default:** `false`
|
||||
- **Requires restart:** Yes
|
||||
|
||||
- **`experimental.taskTracker`** (boolean):
|
||||
- **Description:** Enable task tracker tools.
|
||||
- **Default:** `false`
|
||||
|
||||
@@ -791,7 +791,7 @@ describe('ExtensionManager', () => {
|
||||
);
|
||||
expect(emitSpy).toHaveBeenCalledWith(
|
||||
'warning',
|
||||
expect.stringContaining('/spec setup'),
|
||||
expect.stringContaining('/spec:setup'),
|
||||
);
|
||||
});
|
||||
|
||||
|
||||
@@ -692,7 +692,7 @@ Would you like to attempt to install via "git clone" instead?`,
|
||||
(e) => e.name === 'conductor',
|
||||
);
|
||||
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);
|
||||
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:**
|
||||
- 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.
|
||||
|
||||
---
|
||||
@@ -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.
|
||||
- **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:
|
||||
> "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**
|
||||
- **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
|
||||
**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:**
|
||||
- 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:**
|
||||
* **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":**
|
||||
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>`.
|
||||
|
||||
@@ -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.
|
||||
|
||||
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.
|
||||
|
||||
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 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:**
|
||||
- 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.
|
||||
|
||||
---
|
||||
|
||||
@@ -41,7 +41,7 @@ PLAN MODE PROTOCOL: This setup process runs entirely within Plan Mode. While in
|
||||
|
||||
| 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)." |
|
||||
| `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." |
|
||||
@@ -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/`).
|
||||
- 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`.
|
||||
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:**
|
||||
- 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.
|
||||
|
||||
---
|
||||
|
||||
@@ -2382,6 +2382,13 @@
|
||||
"default": true,
|
||||
"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": {
|
||||
"title": "Task Tracker",
|
||||
"description": "Enable task tracker tools.",
|
||||
|
||||
Reference in New Issue
Block a user