Skip to content

Commit ad3bb1a

Browse files
author
pengjiahan.pjh
committed
resolve confilct and add qoder agent
2 parents 798015b + a998d13 commit ad3bb1a

9 files changed

Lines changed: 147 additions & 73 deletions

File tree

.github/workflows/scripts/create-github-release.sh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,5 +48,7 @@ gh release create "$VERSION" \
4848
.genreleases/spec-kit-template-shai-ps-"$VERSION".zip \
4949
.genreleases/spec-kit-template-q-sh-"$VERSION".zip \
5050
.genreleases/spec-kit-template-q-ps-"$VERSION".zip \
51+
.genreleases/spec-kit-template-bob-sh-"$VERSION".zip \
52+
.genreleases/spec-kit-template-bob-ps-"$VERSION".zip \
5153
--title "Spec Kit Templates - $VERSION_NO_V" \
5254
--notes-file release_notes.md

.github/workflows/scripts/create-release-packages.ps1

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
1515
.PARAMETER Agents
1616
Comma or space separated subset of agents to build (default: all)
17-
Valid agents: claude, gemini, copilot, cursor-agent, qwen, opencode, windsurf, codex, kilocode, auggie, roo, codebuddy, amp, q
17+
Valid agents: claude, gemini, copilot, cursor-agent, qwen, opencode, windsurf, codex, kilocode, auggie, roo, codebuddy, amp, q, bob
1818
1919
.PARAMETER Scripts
2020
Comma or space separated subset of script types to build (default: both)
@@ -339,6 +339,10 @@ function Build-Variant {
339339
$cmdDir = Join-Path $baseDir ".amazonq/prompts"
340340
Generate-Commands -Agent 'q' -Extension 'md' -ArgFormat '$ARGUMENTS' -OutputDir $cmdDir -ScriptVariant $Script
341341
}
342+
'bob' {
343+
$cmdDir = Join-Path $baseDir ".bob/commands"
344+
Generate-Commands -Agent 'bob' -Extension 'md' -ArgFormat '$ARGUMENTS' -OutputDir $cmdDir -ScriptVariant $Script
345+
}
342346
}
343347

344348
# Create zip archive
@@ -348,7 +352,7 @@ function Build-Variant {
348352
}
349353

350354
# Define all agents and scripts
351-
$AllAgents = @('claude', 'gemini', 'copilot', 'cursor-agent', 'qwen', 'opencode', 'windsurf', 'codex', 'kilocode', 'auggie', 'roo', 'codebuddy', 'amp', 'q')
355+
$AllAgents = @('claude', 'gemini', 'copilot', 'cursor-agent', 'qwen', 'opencode', 'windsurf', 'codex', 'kilocode', 'auggie', 'roo', 'codebuddy', 'amp', 'q', 'bob')
352356
$AllScripts = @('sh', 'ps')
353357

354358
function Normalize-List {

.github/workflows/scripts/create-release-packages.sh

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ set -euo pipefail
66
# Usage: .github/workflows/scripts/create-release-packages.sh <version>
77
# Version argument should include leading 'v'.
88
# Optionally set AGENTS and/or SCRIPTS env vars to limit what gets built.
9-
# AGENTS : space or comma separated subset of: claude gemini copilot cursor-agent qwen opencode windsurf codex amp shai (default: all)
9+
# AGENTS : space or comma separated subset of: claude gemini copilot cursor-agent qwen opencode windsurf codex amp shai bob (default: all)
1010
# SCRIPTS : space or comma separated subset of: sh ps (default: both)
1111
# Examples:
1212
# AGENTS=claude SCRIPTS=sh $0 v0.2.0
@@ -214,13 +214,16 @@ build_variant() {
214214
q)
215215
mkdir -p "$base_dir/.amazonq/prompts"
216216
generate_commands q md "\$ARGUMENTS" "$base_dir/.amazonq/prompts" "$script" ;;
217+
bob)
218+
mkdir -p "$base_dir/.bob/commands"
219+
generate_commands bob md "\$ARGUMENTS" "$base_dir/.bob/commands" "$script" ;;
217220
esac
218221
( cd "$base_dir" && zip -r "../spec-kit-template-${agent}-${script}-${NEW_VERSION}.zip" . )
219222
echo "Created $GENRELEASES_DIR/spec-kit-template-${agent}-${script}-${NEW_VERSION}.zip"
220223
}
221224

222225
# Determine agent list
223-
ALL_AGENTS=(claude gemini copilot cursor-agent qwen opencode windsurf codex kilocode auggie roo codebuddy amp shai qoder q)
226+
ALL_AGENTS=(claude gemini copilot cursor-agent qwen opencode windsurf codex kilocode auggie roo codebuddy amp shai q bob qoder)
224227
ALL_SCRIPTS=(sh ps)
225228

226229
norm_list() {

AGENTS.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ Specify supports multiple AI agents by generating agent-specific command files a
4747
| **Amazon Q Developer CLI** | `.amazonq/prompts/` | Markdown | `q` | Amazon Q Developer CLI |
4848
| **Amp** | `.agents/commands/` | Markdown | `amp` | Amp CLI |
4949
| **SHAI** | `.shai/commands/` | Markdown | `shai` | SHAI CLI |
50+
| **IBM Bob** | `.bob/commands/` | Markdown | N/A (IDE-based) | IBM Bob IDE |
5051

5152
### Step-by-Step Integration Guide
5253

@@ -322,12 +323,13 @@ Work within integrated development environments:
322323

323324
- **GitHub Copilot**: Built into VS Code/compatible editors
324325
- **Windsurf**: Built into Windsurf IDE
326+
- **IBM Bob**: Built into IBM Bob IDE
325327

326328
## Command File Formats
327329

328330
### Markdown Format
329331

330-
Used by: Claude, Cursor, opencode, Windsurf, Amazon Q Developer, Amp, SHAI
332+
Used by: Claude, Cursor, opencode, Windsurf, Amazon Q Developer, Amp, SHAI, IBM Bob
331333

332334
**Standard format:**
333335

README.md

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -136,22 +136,24 @@ Want to see Spec Kit in action? Watch our [video overview](https://www.youtube.c
136136

137137
| Agent | Support | Notes |
138138
|-----------------------------------------------------------|---------|---------------------------------------------------|
139-
| [Qoder CLI](https://qoder.com/cli) || |
139+
| [Qoder CLI](https://qoder.com/cli) ||
140+
| [Amazon Q Developer CLI](https://aws.amazon.com/developer/learning/q-developer-cli/) | ⚠️ | Amazon Q Developer CLI [does not support](https://github.com/aws/amazon-q-developer-cli/issues/3064) custom arguments for slash commands. |
141+
| [Amp](https://ampcode.com/) || |
142+
| [Auggie CLI](https://docs.augmentcode.com/cli/overview) ||
140143
| [Claude Code](https://www.anthropic.com/claude-code) || |
141-
| [GitHub Copilot](https://code.visualstudio.com/) || |
142-
| [Gemini CLI](https://github.com/google-gemini/gemini-cli) || |
144+
| [CodeBuddy CLI](https://www.codebuddy.ai/cli) || |
145+
| [Codex CLI](https://github.com/openai/codex) || |
143146
| [Cursor](https://cursor.sh/) || |
144-
| [Qwen Code](https://github.com/QwenLM/qwen-code) || |
145-
| [opencode](https://opencode.ai/) || |
146-
| [Windsurf](https://windsurf.com/) || |
147+
| [Gemini CLI](https://github.com/google-gemini/gemini-cli) || |
148+
| [GitHub Copilot](https://code.visualstudio.com/) || |
149+
| [IBM Bob](https://www.ibm.com/products/bob) || IDE-based agent with slash command support |
150+
| [Jules](https://jules.google.com/) || |
147151
| [Kilo Code](https://github.com/Kilo-Org/kilocode) || |
148-
| [Auggie CLI](https://docs.augmentcode.com/cli/overview) || |
149-
| [CodeBuddy CLI](https://www.codebuddy.ai/cli) || |
152+
| [opencode](https://opencode.ai/) || |
153+
| [Qwen Code](https://github.com/QwenLM/qwen-code) || |
150154
| [Roo Code](https://roocode.com/) || |
151-
| [Codex CLI](https://github.com/openai/codex) || |
152-
| [Amazon Q Developer CLI](https://aws.amazon.com/developer/learning/q-developer-cli/) | ⚠️ | Amazon Q Developer CLI [does not support](https://github.com/aws/amazon-q-developer-cli/issues/3064) custom arguments for slash commands. |
153-
| [Amp](https://ampcode.com/) || |
154-
| [SHAI (OVHcloud)](https://github.com/ovh/shai) || |
155+
| [SHAI (OVHcloud)](https://github.com/ovh/shai) || |
156+
| [Windsurf](https://windsurf.com/) || |
155157

156158
## 🔧 Specify CLI Reference
157159

@@ -169,7 +171,7 @@ The `specify` command supports the following options:
169171
| Argument/Option | Type | Description |
170172
|------------------------|----------|------------------------------------------------------------------------------|
171173
| `<project-name>` | Argument | Name for your new project directory (optional if using `--here`, or use `.` for current directory) |
172-
| `--ai` | Option | AI assistant to use: `claude`, `gemini`, `copilot`, `cursor-agent`, `qwen`, `opencode`, `codex`, `windsurf`, `kilocode`, `auggie`, `roo`, `codebuddy`, `qoder`, `shai`, `amp`, or `q` |
174+
| `--ai` | Option | AI assistant to use: `claude`, `gemini`, `copilot`, `cursor-agent`, `qwen`, `opencode`, `codex`, `windsurf`, `kilocode`, `auggie`, `roo`, `codebuddy`, `amp`, `shai`, `q`, `bob`, or `qoder` |
173175
| `--script` | Option | Script variant to use: `sh` (bash/zsh) or `ps` (PowerShell) |
174176
| `--ignore-agent-tools` | Flag | Skip checks for AI agent tools like Claude Code |
175177
| `--no-git` | Flag | Skip git repository initialization |
@@ -203,6 +205,9 @@ specify init my-project --ai amp
203205
# Initialize with SHAI support
204206
specify init my-project --ai shai
205207

208+
# Initialize with IBM Bob support
209+
specify init my-project --ai bob
210+
206211
# Initialize with PowerShell scripts (Windows/cross-platform)
207212
specify init my-project --ai copilot --script ps
208213

docs/quickstart.md

Lines changed: 88 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,24 @@
22

33
This guide will help you get started with Spec-Driven Development using Spec Kit.
44

5-
> NEW: All automation scripts now provide both Bash (`.sh`) and PowerShell (`.ps1`) variants. The `specify` CLI auto-selects based on OS unless you pass `--script sh|ps`.
5+
> [!NOTE]
6+
> All automation scripts now provide both Bash (`.sh`) and PowerShell (`.ps1`) variants. The `specify` CLI auto-selects based on OS unless you pass `--script sh|ps`.
67
7-
## The 4-Step Process
8+
## The 6-Step Process
89

9-
### 1. Install Specify
10+
> [!TIP]
11+
> **Context Awareness**: Spec Kit commands automatically detect the active feature based on your current Git branch (e.g., `001-feature-name`). To switch between different specifications, simply switch Git branches.
1012
11-
Initialize your project depending on the coding agent you're using:
13+
### Step 1: Install Specify
14+
15+
**In your terminal**, run the `specify` CLI command to initialize your project:
1216

1317
```bash
18+
# Create a new project directory
1419
uvx --from git+https://github.com/github/spec-kit.git specify init <PROJECT_NAME>
20+
21+
# OR initialize in the current directory
22+
uvx --from git+https://github.com/github/spec-kit.git specify init .
1523
```
1624

1725
Pick script type explicitly (optional):
@@ -21,31 +29,71 @@ uvx --from git+https://github.com/github/spec-kit.git specify init <PROJECT_NAME
2129
uvx --from git+https://github.com/github/spec-kit.git specify init <PROJECT_NAME> --script sh # Force POSIX shell
2230
```
2331

24-
### 2. Create the Spec
32+
### Step 2: Define Your Constitution
2533

26-
Use the `/speckit.specify` command to describe what you want to build. Focus on the **what** and **why**, not the tech stack.
34+
**In your AI Agent's chat interface**, use the `/speckit.constitution` slash command to establish the core rules and principles for your project. You should provide your project's specific principles as arguments.
2735

28-
```bash
36+
```markdown
37+
/speckit.constitution This project follows a "Library-First" approach. All features must be implemented as standalone libraries first. We use TDD strictly. We prefer functional programming patterns.
38+
```
39+
40+
### Step 3: Create the Spec
41+
42+
**In the chat**, use the `/speckit.specify` slash command to describe what you want to build. Focus on the **what** and **why**, not the tech stack.
43+
44+
```markdown
2945
/speckit.specify Build an application that can help me organize my photos in separate photo albums. Albums are grouped by date and can be re-organized by dragging and dropping on the main page. Albums are never in other nested albums. Within each album, photos are previewed in a tile-like interface.
3046
```
3147

32-
### 3. Create a Technical Implementation Plan
48+
### Step 4: Refine the Spec
3349

34-
Use the `/speckit.plan` command to provide your tech stack and architecture choices.
50+
**In the chat**, use the `/speckit.clarify` slash command to identify and resolve ambiguities in your specification. You can provide specific focus areas as arguments.
3551

3652
```bash
53+
/speckit.clarify Focus on security and performance requirements.
54+
```
55+
56+
### Step 5: Create a Technical Implementation Plan
57+
58+
**In the chat**, use the `/speckit.plan` slash command to provide your tech stack and architecture choices.
59+
60+
```markdown
3761
/speckit.plan The application uses Vite with minimal number of libraries. Use vanilla HTML, CSS, and JavaScript as much as possible. Images are not uploaded anywhere and metadata is stored in a local SQLite database.
3862
```
3963

40-
### 4. Break Down and Implement
64+
### Step 6: Break Down and Implement
65+
66+
**In the chat**, use the `/speckit.tasks` slash command to create an actionable task list.
67+
68+
```markdown
69+
/speckit.tasks
70+
```
71+
72+
Optionally, validate the plan with `/speckit.analyze`:
4173

42-
Use `/speckit.tasks` to create an actionable task list, then ask your agent to implement the feature.
74+
```markdown
75+
/speckit.analyze
76+
```
77+
78+
Then, use the `/speckit.implement` slash command to execute the plan.
79+
80+
```markdown
81+
/speckit.implement
82+
```
4383

4484
## Detailed Example: Building Taskify
4585

4686
Here's a complete example of building a team productivity platform:
4787

48-
### Step 1: Define Requirements with `/speckit.specify`
88+
### Step 1: Define Constitution
89+
90+
Initialize the project's constitution to set ground rules:
91+
92+
```markdown
93+
/speckit.constitution Taskify is a "Security-First" application. All user inputs must be validated. We use a microservices architecture. Code must be fully documented.
94+
```
95+
96+
### Step 2: Define Requirements with `/speckit.specify`
4997

5098
```text
5199
Develop Taskify, a team productivity platform. It should allow users to create projects, add team members,
@@ -54,58 +102,51 @@ let's call it "Create Taskify," let's have multiple users but the users will be
54102
I want five users in two different categories, one product manager and four engineers. Let's create three
55103
different sample projects. Let's have the standard Kanban columns for the status of each task, such as "To Do,"
56104
"In Progress," "In Review," and "Done." There will be no login for this application as this is just the very
57-
first testing thing to ensure that our basic features are set up. For each task in the UI for a task card,
58-
you should be able to change the current status of the task between the different columns in the Kanban work board.
59-
You should be able to leave an unlimited number of comments for a particular card. You should be able to, from that task
60-
card, assign one of the valid users. When you first launch Taskify, it's going to give you a list of the five users to pick
61-
from. There will be no password required. When you click on a user, you go into the main view, which displays the list of
62-
projects. When you click on a project, you open the Kanban board for that project. You're going to see the columns.
63-
You'll be able to drag and drop cards back and forth between different columns. You will see any cards that are
64-
assigned to you, the currently logged in user, in a different color from all the other ones, so you can quickly
65-
see yours. You can edit any comments that you make, but you can't edit comments that other people made. You can
66-
delete any comments that you made, but you can't delete comments anybody else made.
105+
first testing thing to ensure that our basic features are set up.
67106
```
68107

69-
### Step 2: Refine the Specification
108+
### Step 3: Refine the Specification
70109

71-
After the initial specification is created, clarify any missing requirements:
110+
Use the `/speckit.clarify` command to interactively resolve any ambiguities in your specification. You can also provide specific details you want to ensure are included.
72111

73-
```text
74-
For each sample project or project that you create there should be a variable number of tasks between 5 and 15
75-
tasks for each one randomly distributed into different states of completion. Make sure that there's at least
76-
one task in each stage of completion.
112+
```bash
113+
/speckit.clarify I want to clarify the task card details. For each task in the UI for a task card, you should be able to change the current status of the task between the different columns in the Kanban work board. You should be able to leave an unlimited number of comments for a particular card. You should be able to, from that task card, assign one of the valid users.
77114
```
78115
79-
Also validate the specification checklist:
116+
You can continue to refine the spec with more details using `/speckit.clarify`:
80117
81-
```text
82-
Read the review and acceptance checklist, and check off each item in the checklist if the feature spec meets the criteria. Leave it empty if it does not.
118+
```bash
119+
/speckit.clarify When you first launch Taskify, it's going to give you a list of the five users to pick from. There will be no password required. When you click on a user, you go into the main view, which displays the list of projects. When you click on a project, you open the Kanban board for that project. You're going to see the columns. You'll be able to drag and drop cards back and forth between different columns. You will see any cards that are assigned to you, the currently logged in user, in a different color from all the other ones, so you can quickly see yours. You can edit any comments that you make, but you can't edit comments that other people made. You can delete any comments that you made, but you can't delete comments anybody else made.
83120
```
84121
85-
### Step 3: Generate Technical Plan with `/speckit.plan`
122+
### Step 4: Validate the Spec
123+
124+
Validate the specification checklist using the `/speckit.checklist` command:
125+
126+
```bash
127+
/speckit.checklist
128+
```
129+
130+
### Step 5: Generate Technical Plan with `/speckit.plan`
86131
87132
Be specific about your tech stack and technical requirements:
88133
89-
```text
90-
We are going to generate this using .NET Aspire, using Postgres as the database. The frontend should use
91-
Blazor server with drag-and-drop task boards, real-time updates. There should be a REST API created with a projects API,
92-
tasks API, and a notifications API.
134+
```bash
135+
/speckit.plan We are going to generate this using .NET Aspire, using Postgres as the database. The frontend should use Blazor server with drag-and-drop task boards, real-time updates. There should be a REST API created with a projects API, tasks API, and a notifications API.
93136
```
94137
95-
### Step 4: Validate and Implement
138+
### Step 6: Validate and Implement
96139
97-
Have your AI agent audit the implementation plan:
140+
Have your AI agent audit the implementation plan using `/speckit.analyze`:
98141
99-
```text
100-
Now I want you to go and audit the implementation plan and the implementation detail files.
101-
Read through it with an eye on determining whether or not there is a sequence of tasks that you need
102-
to be doing that are obvious from reading this. Because I don't know if there's enough here.
142+
```bash
143+
/speckit.analyze
103144
```
104145
105146
Finally, implement the solution:
106147
107-
```text
108-
implement specs/002-create-taskify/plan.md
148+
```bash
149+
/speckit.implement
109150
```
110151
111152
## Key Principles
@@ -118,6 +159,6 @@ implement specs/002-create-taskify/plan.md
118159
119160
## Next Steps
120161
121-
- Read the complete methodology for in-depth guidance
122-
- Check out more examples in the repository
123-
- Explore the source code on GitHub
162+
- Read the [complete methodology](../spec-driven.md) for in-depth guidance
163+
- Check out [more examples](../templates) in the repository
164+
- Explore the [source code on GitHub](https://github.com/github/spec-kit)

0 commit comments

Comments
 (0)