specify-cli 0.0.22__tar.gz → 1.0.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {specify_cli-0.0.22 → specify_cli-1.0.0}/.github/workflows/scripts/create-github-release.sh +4 -0
- {specify_cli-0.0.22 → specify_cli-1.0.0}/.github/workflows/scripts/create-release-packages.ps1 +11 -3
- {specify_cli-0.0.22 → specify_cli-1.0.0}/.github/workflows/scripts/create-release-packages.sh +8 -2
- {specify_cli-0.0.22 → specify_cli-1.0.0}/AGENTS.md +24 -20
- {specify_cli-0.0.22 → specify_cli-1.0.0}/CODE_OF_CONDUCT.md +1 -1
- {specify_cli-0.0.22 → specify_cli-1.0.0}/CONTRIBUTING.md +5 -5
- {specify_cli-0.0.22 → specify_cli-1.0.0}/PKG-INFO +1 -1
- {specify_cli-0.0.22 → specify_cli-1.0.0}/README.md +79 -62
- specify_cli-1.0.0/docs/quickstart.md +164 -0
- {specify_cli-0.0.22 → specify_cli-1.0.0}/docs/upgrade.md +10 -2
- {specify_cli-0.0.22 → specify_cli-1.0.0}/pyproject.toml +1 -1
- {specify_cli-0.0.22 → specify_cli-1.0.0}/scripts/bash/create-new-feature.sh +17 -25
- {specify_cli-0.0.22 → specify_cli-1.0.0}/scripts/bash/update-agent-context.sh +22 -4
- {specify_cli-0.0.22 → specify_cli-1.0.0}/scripts/powershell/create-new-feature.ps1 +12 -56
- {specify_cli-0.0.22 → specify_cli-1.0.0}/scripts/powershell/update-agent-context.ps1 +10 -4
- {specify_cli-0.0.22 → specify_cli-1.0.0}/spec-driven.md +9 -0
- {specify_cli-0.0.22 → specify_cli-1.0.0}/src/specify_cli/__init__.py +13 -1
- {specify_cli-0.0.22 → specify_cli-1.0.0}/templates/commands/specify.md +6 -5
- {specify_cli-0.0.22 → specify_cli-1.0.0}/templates/commands/tasks.md +1 -1
- {specify_cli-0.0.22 → specify_cli-1.0.0}/templates/commands/taskstoissues.md +4 -2
- specify_cli-0.0.22/docs/quickstart.md +0 -123
- {specify_cli-0.0.22 → specify_cli-1.0.0}/.devcontainer/devcontainer.json +0 -0
- {specify_cli-0.0.22 → specify_cli-1.0.0}/.devcontainer/post-create.sh +0 -0
- {specify_cli-0.0.22 → specify_cli-1.0.0}/.gitattributes +0 -0
- {specify_cli-0.0.22 → specify_cli-1.0.0}/.github/CODEOWNERS +0 -0
- {specify_cli-0.0.22 → specify_cli-1.0.0}/.github/workflows/docs.yml +0 -0
- {specify_cli-0.0.22 → specify_cli-1.0.0}/.github/workflows/lint.yml +0 -0
- {specify_cli-0.0.22 → specify_cli-1.0.0}/.github/workflows/pypi.yml +0 -0
- {specify_cli-0.0.22 → specify_cli-1.0.0}/.github/workflows/release.yml +0 -0
- {specify_cli-0.0.22 → specify_cli-1.0.0}/.github/workflows/scripts/check-release-exists.sh +0 -0
- {specify_cli-0.0.22 → specify_cli-1.0.0}/.github/workflows/scripts/generate-release-notes.sh +0 -0
- {specify_cli-0.0.22 → specify_cli-1.0.0}/.github/workflows/scripts/get-next-version.sh +0 -0
- {specify_cli-0.0.22 → specify_cli-1.0.0}/.github/workflows/scripts/update-version.sh +0 -0
- {specify_cli-0.0.22 → specify_cli-1.0.0}/.gitignore +0 -0
- {specify_cli-0.0.22 → specify_cli-1.0.0}/.markdownlint-cli2.jsonc +0 -0
- {specify_cli-0.0.22 → specify_cli-1.0.0}/CHANGELOG.md +0 -0
- {specify_cli-0.0.22 → specify_cli-1.0.0}/LICENSE +0 -0
- {specify_cli-0.0.22 → specify_cli-1.0.0}/SECURITY.md +0 -0
- {specify_cli-0.0.22 → specify_cli-1.0.0}/SUPPORT.md +0 -0
- {specify_cli-0.0.22 → specify_cli-1.0.0}/docs/.gitignore +0 -0
- {specify_cli-0.0.22 → specify_cli-1.0.0}/docs/README.md +0 -0
- {specify_cli-0.0.22 → specify_cli-1.0.0}/docs/docfx.json +0 -0
- {specify_cli-0.0.22 → specify_cli-1.0.0}/docs/index.md +0 -0
- {specify_cli-0.0.22 → specify_cli-1.0.0}/docs/installation.md +0 -0
- {specify_cli-0.0.22 → specify_cli-1.0.0}/docs/local-development.md +0 -0
- {specify_cli-0.0.22 → specify_cli-1.0.0}/docs/toc.yml +0 -0
- {specify_cli-0.0.22 → specify_cli-1.0.0}/media/bootstrap-claude-code.gif +0 -0
- {specify_cli-0.0.22 → specify_cli-1.0.0}/media/logo_large.webp +0 -0
- {specify_cli-0.0.22 → specify_cli-1.0.0}/media/logo_small.webp +0 -0
- {specify_cli-0.0.22 → specify_cli-1.0.0}/media/spec-kit-video-header.jpg +0 -0
- {specify_cli-0.0.22 → specify_cli-1.0.0}/media/specify_cli.gif +0 -0
- {specify_cli-0.0.22 → specify_cli-1.0.0}/memory/constitution.md +0 -0
- {specify_cli-0.0.22 → specify_cli-1.0.0}/scripts/bash/check-prerequisites.sh +0 -0
- {specify_cli-0.0.22 → specify_cli-1.0.0}/scripts/bash/common.sh +0 -0
- {specify_cli-0.0.22 → specify_cli-1.0.0}/scripts/bash/setup-plan.sh +0 -0
- {specify_cli-0.0.22 → specify_cli-1.0.0}/scripts/powershell/check-prerequisites.ps1 +0 -0
- {specify_cli-0.0.22 → specify_cli-1.0.0}/scripts/powershell/common.ps1 +0 -0
- {specify_cli-0.0.22 → specify_cli-1.0.0}/scripts/powershell/setup-plan.ps1 +0 -0
- {specify_cli-0.0.22 → specify_cli-1.0.0}/templates/agent-file-template.md +0 -0
- {specify_cli-0.0.22 → specify_cli-1.0.0}/templates/checklist-template.md +0 -0
- {specify_cli-0.0.22 → specify_cli-1.0.0}/templates/commands/analyze.md +0 -0
- {specify_cli-0.0.22 → specify_cli-1.0.0}/templates/commands/checklist.md +0 -0
- {specify_cli-0.0.22 → specify_cli-1.0.0}/templates/commands/clarify.md +0 -0
- {specify_cli-0.0.22 → specify_cli-1.0.0}/templates/commands/constitution.md +0 -0
- {specify_cli-0.0.22 → specify_cli-1.0.0}/templates/commands/implement.md +0 -0
- {specify_cli-0.0.22 → specify_cli-1.0.0}/templates/commands/plan.md +0 -0
- {specify_cli-0.0.22 → specify_cli-1.0.0}/templates/plan-template.md +0 -0
- {specify_cli-0.0.22 → specify_cli-1.0.0}/templates/spec-template.md +0 -0
- {specify_cli-0.0.22 → specify_cli-1.0.0}/templates/tasks-template.md +0 -0
- {specify_cli-0.0.22 → specify_cli-1.0.0}/templates/vscode-settings.json +0 -0
|
@@ -40,11 +40,15 @@ gh release create "$VERSION" \
|
|
|
40
40
|
.genreleases/spec-kit-template-roo-ps-"$VERSION".zip \
|
|
41
41
|
.genreleases/spec-kit-template-codebuddy-sh-"$VERSION".zip \
|
|
42
42
|
.genreleases/spec-kit-template-codebuddy-ps-"$VERSION".zip \
|
|
43
|
+
.genreleases/spec-kit-template-qoder-sh-"$VERSION".zip \
|
|
44
|
+
.genreleases/spec-kit-template-qoder-ps-"$VERSION".zip \
|
|
43
45
|
.genreleases/spec-kit-template-amp-sh-"$VERSION".zip \
|
|
44
46
|
.genreleases/spec-kit-template-amp-ps-"$VERSION".zip \
|
|
45
47
|
.genreleases/spec-kit-template-shai-sh-"$VERSION".zip \
|
|
46
48
|
.genreleases/spec-kit-template-shai-ps-"$VERSION".zip \
|
|
47
49
|
.genreleases/spec-kit-template-q-sh-"$VERSION".zip \
|
|
48
50
|
.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 \
|
|
49
53
|
--title "Spec Kit Templates - $VERSION_NO_V" \
|
|
50
54
|
--notes-file release_notes.md
|
{specify_cli-0.0.22 → specify_cli-1.0.0}/.github/workflows/scripts/create-release-packages.ps1
RENAMED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
|
|
15
15
|
.PARAMETER Agents
|
|
16
16
|
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, qoder
|
|
18
18
|
|
|
19
19
|
.PARAMETER Scripts
|
|
20
20
|
Comma or space separated subset of script types to build (default: both)
|
|
@@ -339,6 +339,14 @@ function Build-Variant {
|
|
|
339
339
|
$cmdDir = Join-Path $baseDir ".amazonq/prompts"
|
|
340
340
|
Generate-Commands -Agent 'q' -Extension 'md' -ArgFormat '$ARGUMENTS' -OutputDir $cmdDir -ScriptVariant $Script
|
|
341
341
|
}
|
|
342
|
+
'bob' {
|
|
343
|
+
$cmdDir = Join-Path $baseDir ".bob/commands"
|
|
344
|
+
Generate-Commands -Agent 'bob' -Extension 'md' -ArgFormat '$ARGUMENTS' -OutputDir $cmdDir -ScriptVariant $Script
|
|
345
|
+
}
|
|
346
|
+
'qoder' {
|
|
347
|
+
$cmdDir = Join-Path $baseDir ".qoder/commands"
|
|
348
|
+
Generate-Commands -Agent 'qoder' -Extension 'md' -ArgFormat '$ARGUMENTS' -OutputDir $cmdDir -ScriptVariant $Script
|
|
349
|
+
}
|
|
342
350
|
}
|
|
343
351
|
|
|
344
352
|
# Create zip archive
|
|
@@ -348,7 +356,7 @@ function Build-Variant {
|
|
|
348
356
|
}
|
|
349
357
|
|
|
350
358
|
# Define all agents and scripts
|
|
351
|
-
$AllAgents = @('claude', 'gemini', 'copilot', 'cursor-agent', 'qwen', 'opencode', 'windsurf', 'codex', 'kilocode', 'auggie', 'roo', 'codebuddy', 'amp', 'q')
|
|
359
|
+
$AllAgents = @('claude', 'gemini', 'copilot', 'cursor-agent', 'qwen', 'opencode', 'windsurf', 'codex', 'kilocode', 'auggie', 'roo', 'codebuddy', 'amp', 'q', 'bob', 'qoder')
|
|
352
360
|
$AllScripts = @('sh', 'ps')
|
|
353
361
|
|
|
354
362
|
function Normalize-List {
|
|
@@ -413,4 +421,4 @@ foreach ($agent in $AgentList) {
|
|
|
413
421
|
Write-Host "`nArchives in ${GenReleasesDir}:"
|
|
414
422
|
Get-ChildItem -Path $GenReleasesDir -Filter "spec-kit-template-*-${Version}.zip" | ForEach-Object {
|
|
415
423
|
Write-Host " $($_.Name)"
|
|
416
|
-
}
|
|
424
|
+
}
|
{specify_cli-0.0.22 → specify_cli-1.0.0}/.github/workflows/scripts/create-release-packages.sh
RENAMED
|
@@ -6,7 +6,7 @@ set -euo pipefail
|
|
|
6
6
|
# Usage: .github/workflows/scripts/create-release-packages.sh <version>
|
|
7
7
|
# Version argument should include leading 'v'.
|
|
8
8
|
# 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)
|
|
10
10
|
# SCRIPTS : space or comma separated subset of: sh ps (default: both)
|
|
11
11
|
# Examples:
|
|
12
12
|
# AGENTS=claude SCRIPTS=sh $0 v0.2.0
|
|
@@ -202,6 +202,9 @@ build_variant() {
|
|
|
202
202
|
codebuddy)
|
|
203
203
|
mkdir -p "$base_dir/.codebuddy/commands"
|
|
204
204
|
generate_commands codebuddy md "\$ARGUMENTS" "$base_dir/.codebuddy/commands" "$script" ;;
|
|
205
|
+
qoder)
|
|
206
|
+
mkdir -p "$base_dir/.qoder/commands"
|
|
207
|
+
generate_commands qoder md "\$ARGUMENTS" "$base_dir/.qoder/commands" "$script" ;;
|
|
205
208
|
amp)
|
|
206
209
|
mkdir -p "$base_dir/.agents/commands"
|
|
207
210
|
generate_commands amp md "\$ARGUMENTS" "$base_dir/.agents/commands" "$script" ;;
|
|
@@ -211,13 +214,16 @@ build_variant() {
|
|
|
211
214
|
q)
|
|
212
215
|
mkdir -p "$base_dir/.amazonq/prompts"
|
|
213
216
|
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" ;;
|
|
214
220
|
esac
|
|
215
221
|
( cd "$base_dir" && zip -r "../spec-kit-template-${agent}-${script}-${NEW_VERSION}.zip" . )
|
|
216
222
|
echo "Created $GENRELEASES_DIR/spec-kit-template-${agent}-${script}-${NEW_VERSION}.zip"
|
|
217
223
|
}
|
|
218
224
|
|
|
219
225
|
# Determine agent list
|
|
220
|
-
ALL_AGENTS=(claude gemini copilot cursor-agent qwen opencode windsurf codex kilocode auggie roo codebuddy amp shai q)
|
|
226
|
+
ALL_AGENTS=(claude gemini copilot cursor-agent qwen opencode windsurf codex kilocode auggie roo codebuddy amp shai q bob qoder)
|
|
221
227
|
ALL_SCRIPTS=(sh ps)
|
|
222
228
|
|
|
223
229
|
norm_list() {
|
|
@@ -29,23 +29,25 @@ Specify supports multiple AI agents by generating agent-specific command files a
|
|
|
29
29
|
|
|
30
30
|
### Current Supported Agents
|
|
31
31
|
|
|
32
|
-
| Agent
|
|
33
|
-
|
|
34
|
-
| **Claude Code**
|
|
35
|
-
| **Gemini CLI**
|
|
36
|
-
| **GitHub Copilot**
|
|
37
|
-
| **Cursor**
|
|
38
|
-
| **Qwen Code**
|
|
39
|
-
| **opencode**
|
|
40
|
-
| **Codex CLI**
|
|
41
|
-
| **Windsurf**
|
|
42
|
-
| **Kilo Code**
|
|
43
|
-
| **Auggie CLI**
|
|
44
|
-
| **Roo Code**
|
|
45
|
-
| **CodeBuddy CLI**
|
|
46
|
-
| **
|
|
47
|
-
| **
|
|
48
|
-
| **
|
|
32
|
+
| Agent | Directory | Format | CLI Tool | Description |
|
|
33
|
+
| -------------------------- | ---------------------- | -------- | --------------- | --------------------------- |
|
|
34
|
+
| **Claude Code** | `.claude/commands/` | Markdown | `claude` | Anthropic's Claude Code CLI |
|
|
35
|
+
| **Gemini CLI** | `.gemini/commands/` | TOML | `gemini` | Google's Gemini CLI |
|
|
36
|
+
| **GitHub Copilot** | `.github/agents/` | Markdown | N/A (IDE-based) | GitHub Copilot in VS Code |
|
|
37
|
+
| **Cursor** | `.cursor/commands/` | Markdown | `cursor-agent` | Cursor CLI |
|
|
38
|
+
| **Qwen Code** | `.qwen/commands/` | TOML | `qwen` | Alibaba's Qwen Code CLI |
|
|
39
|
+
| **opencode** | `.opencode/command/` | Markdown | `opencode` | opencode CLI |
|
|
40
|
+
| **Codex CLI** | `.codex/commands/` | Markdown | `codex` | Codex CLI |
|
|
41
|
+
| **Windsurf** | `.windsurf/workflows/` | Markdown | N/A (IDE-based) | Windsurf IDE workflows |
|
|
42
|
+
| **Kilo Code** | `.kilocode/rules/` | Markdown | N/A (IDE-based) | Kilo Code IDE |
|
|
43
|
+
| **Auggie CLI** | `.augment/rules/` | Markdown | `auggie` | Auggie CLI |
|
|
44
|
+
| **Roo Code** | `.roo/rules/` | Markdown | N/A (IDE-based) | Roo Code IDE |
|
|
45
|
+
| **CodeBuddy CLI** | `.codebuddy/commands/` | Markdown | `codebuddy` | CodeBuddy CLI |
|
|
46
|
+
| **Qoder CLI** | `.qoder/commands/` | Markdown | `qoder` | Qoder CLI |
|
|
47
|
+
| **Amazon Q Developer CLI** | `.amazonq/prompts/` | Markdown | `q` | Amazon Q Developer CLI |
|
|
48
|
+
| **Amp** | `.agents/commands/` | Markdown | `amp` | Amp CLI |
|
|
49
|
+
| **SHAI** | `.shai/commands/` | Markdown | `shai` | SHAI CLI |
|
|
50
|
+
| **IBM Bob** | `.bob/commands/` | Markdown | N/A (IDE-based) | IBM Bob IDE |
|
|
49
51
|
|
|
50
52
|
### Step-by-Step Integration Guide
|
|
51
53
|
|
|
@@ -151,7 +153,7 @@ Add to case statement:
|
|
|
151
153
|
case "$AGENT_TYPE" in
|
|
152
154
|
# ... existing cases ...
|
|
153
155
|
windsurf) update_agent_file "$WINDSURF_FILE" "Windsurf" ;;
|
|
154
|
-
"")
|
|
156
|
+
"")
|
|
155
157
|
# ... existing checks ...
|
|
156
158
|
[ -f "$WINDSURF_FILE" ] && update_agent_file "$WINDSURF_FILE" "Windsurf";
|
|
157
159
|
# Update default creation condition
|
|
@@ -305,12 +307,13 @@ echo "✅ Done"
|
|
|
305
307
|
Require a command-line tool to be installed:
|
|
306
308
|
|
|
307
309
|
- **Claude Code**: `claude` CLI
|
|
308
|
-
- **Gemini CLI**: `gemini` CLI
|
|
310
|
+
- **Gemini CLI**: `gemini` CLI
|
|
309
311
|
- **Cursor**: `cursor-agent` CLI
|
|
310
312
|
- **Qwen Code**: `qwen` CLI
|
|
311
313
|
- **opencode**: `opencode` CLI
|
|
312
314
|
- **Amazon Q Developer CLI**: `q` CLI
|
|
313
315
|
- **CodeBuddy CLI**: `codebuddy` CLI
|
|
316
|
+
- **Qoder CLI**: `qoder` CLI
|
|
314
317
|
- **Amp**: `amp` CLI
|
|
315
318
|
- **SHAI**: `shai` CLI
|
|
316
319
|
|
|
@@ -320,12 +323,13 @@ Work within integrated development environments:
|
|
|
320
323
|
|
|
321
324
|
- **GitHub Copilot**: Built into VS Code/compatible editors
|
|
322
325
|
- **Windsurf**: Built into Windsurf IDE
|
|
326
|
+
- **IBM Bob**: Built into IBM Bob IDE
|
|
323
327
|
|
|
324
328
|
## Command File Formats
|
|
325
329
|
|
|
326
330
|
### Markdown Format
|
|
327
331
|
|
|
328
|
-
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
|
|
329
333
|
|
|
330
334
|
**Standard format:**
|
|
331
335
|
|
|
@@ -23,7 +23,7 @@ include:
|
|
|
23
23
|
Examples of unacceptable behavior by participants include:
|
|
24
24
|
|
|
25
25
|
- The use of sexualized language or imagery and unwelcome sexual attention or
|
|
26
|
-
advances
|
|
26
|
+
advances
|
|
27
27
|
- Trolling, insulting/derogatory comments, and personal or political attacks
|
|
28
28
|
- Public or private harassment
|
|
29
29
|
- Publishing others' private information, such as a physical or electronic
|
|
@@ -32,8 +32,8 @@ On [GitHub Codespaces](https://github.com/features/codespaces) it's even simpler
|
|
|
32
32
|
|
|
33
33
|
## Submitting a pull request
|
|
34
34
|
|
|
35
|
-
>[!NOTE]
|
|
36
|
-
>If your pull request introduces a large change that materially impacts the work of the CLI or the rest of the repository (e.g., you're introducing new templates, arguments, or otherwise major changes), make sure that it was **discussed and agreed upon** by the project maintainers. Pull requests with large changes that did not have a prior conversation and agreement will be closed.
|
|
35
|
+
> [!NOTE]
|
|
36
|
+
> If your pull request introduces a large change that materially impacts the work of the CLI or the rest of the repository (e.g., you're introducing new templates, arguments, or otherwise major changes), make sure that it was **discussed and agreed upon** by the project maintainers. Pull requests with large changes that did not have a prior conversation and agreement will be closed.
|
|
37
37
|
|
|
38
38
|
1. Fork and clone the repository
|
|
39
39
|
1. Configure and install the dependencies: `uv sync`
|
|
@@ -71,13 +71,13 @@ To test your templates, commands, and other changes locally, follow these steps:
|
|
|
71
71
|
|
|
72
72
|
Run the following command to generate the local packages:
|
|
73
73
|
|
|
74
|
-
```
|
|
74
|
+
```bash
|
|
75
75
|
./.github/workflows/scripts/create-release-packages.sh v1.0.0
|
|
76
76
|
```
|
|
77
77
|
|
|
78
78
|
2. **Copy the relevant package to your test project**
|
|
79
79
|
|
|
80
|
-
```
|
|
80
|
+
```bash
|
|
81
81
|
cp -r .genreleases/sdd-copilot-package-sh/. <path-to-test-project>/
|
|
82
82
|
```
|
|
83
83
|
|
|
@@ -122,7 +122,7 @@ When submitting AI-assisted contributions, please ensure they include:
|
|
|
122
122
|
|
|
123
123
|
- **Clear disclosure of AI use** - You are transparent about AI use and degree to which you're using it for the contribution
|
|
124
124
|
- **Human understanding and testing** - You've personally tested the changes and understand what they do
|
|
125
|
-
- **Clear rationale** - You can explain why the change is needed and how it fits within Spec Kit's goals
|
|
125
|
+
- **Clear rationale** - You can explain why the change is needed and how it fits within Spec Kit's goals
|
|
126
126
|
- **Concrete evidence** - Include test cases, scenarios, or examples that demonstrate the improvement
|
|
127
127
|
- **Your own analysis** - Share your thoughts on the end-to-end developer experience
|
|
128
128
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<div align="center">
|
|
2
|
-
<img src="./media/
|
|
2
|
+
<img src="./media/logo_large.webp" alt="Spec Kit Logo" width="200" height="200"/>
|
|
3
3
|
<h1>🌱 Spec Kit</h1>
|
|
4
4
|
<h3><em>Build high-quality software faster.</em></h3>
|
|
5
5
|
</div>
|
|
@@ -57,7 +57,15 @@ uv tool install specify-cli --from git+https://github.com/github/spec-kit.git
|
|
|
57
57
|
Then use the tool directly:
|
|
58
58
|
|
|
59
59
|
```bash
|
|
60
|
+
# Create new project
|
|
60
61
|
specify init <PROJECT_NAME>
|
|
62
|
+
|
|
63
|
+
# Or initialize in existing project
|
|
64
|
+
specify init . --ai claude
|
|
65
|
+
# or
|
|
66
|
+
specify init --here --ai claude
|
|
67
|
+
|
|
68
|
+
# Check installed tools
|
|
61
69
|
specify check
|
|
62
70
|
```
|
|
63
71
|
|
|
@@ -134,23 +142,26 @@ Want to see Spec Kit in action? Watch our [video overview](https://www.youtube.c
|
|
|
134
142
|
|
|
135
143
|
## 🤖 Supported AI Agents
|
|
136
144
|
|
|
137
|
-
| Agent
|
|
138
|
-
|
|
139
|
-
| [
|
|
140
|
-
| [
|
|
141
|
-
| [
|
|
142
|
-
| [
|
|
143
|
-
| [
|
|
144
|
-
| [
|
|
145
|
-
| [
|
|
146
|
-
| [
|
|
147
|
-
| [
|
|
148
|
-
| [
|
|
149
|
-
| [
|
|
150
|
-
| [
|
|
151
|
-
| [
|
|
152
|
-
| [
|
|
153
|
-
| [
|
|
145
|
+
| Agent | Support | Notes |
|
|
146
|
+
| ------------------------------------------------------------------------------------ | ------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
|
|
147
|
+
| [Qoder CLI](https://qoder.com/cli) | ✅ | |
|
|
148
|
+
| [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. |
|
|
149
|
+
| [Amp](https://ampcode.com/) | ✅ | |
|
|
150
|
+
| [Auggie CLI](https://docs.augmentcode.com/cli/overview) | ✅ | |
|
|
151
|
+
| [Claude Code](https://www.anthropic.com/claude-code) | ✅ | |
|
|
152
|
+
| [CodeBuddy CLI](https://www.codebuddy.ai/cli) | ✅ | |
|
|
153
|
+
| [Codex CLI](https://github.com/openai/codex) | ✅ | |
|
|
154
|
+
| [Cursor](https://cursor.sh/) | ✅ | |
|
|
155
|
+
| [Gemini CLI](https://github.com/google-gemini/gemini-cli) | ✅ | |
|
|
156
|
+
| [GitHub Copilot](https://code.visualstudio.com/) | ✅ | |
|
|
157
|
+
| [IBM Bob](https://www.ibm.com/products/bob) | ✅ | IDE-based agent with slash command support |
|
|
158
|
+
| [Jules](https://jules.google.com/) | ✅ | |
|
|
159
|
+
| [Kilo Code](https://github.com/Kilo-Org/kilocode) | ✅ | |
|
|
160
|
+
| [opencode](https://opencode.ai/) | ✅ | |
|
|
161
|
+
| [Qwen Code](https://github.com/QwenLM/qwen-code) | ✅ | |
|
|
162
|
+
| [Roo Code](https://roocode.com/) | ✅ | |
|
|
163
|
+
| [SHAI (OVHcloud)](https://github.com/ovh/shai) | ✅ | |
|
|
164
|
+
| [Windsurf](https://windsurf.com/) | ✅ | |
|
|
154
165
|
|
|
155
166
|
## 🔧 Specify CLI Reference
|
|
156
167
|
|
|
@@ -158,25 +169,25 @@ The `specify` command supports the following options:
|
|
|
158
169
|
|
|
159
170
|
### Commands
|
|
160
171
|
|
|
161
|
-
| Command
|
|
162
|
-
|
|
163
|
-
| `init`
|
|
164
|
-
| `check`
|
|
172
|
+
| Command | Description |
|
|
173
|
+
| ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
174
|
+
| `init` | Initialize a new Specify project from the latest template |
|
|
175
|
+
| `check` | Check for installed tools (`git`, `claude`, `gemini`, `code`/`code-insiders`, `cursor-agent`, `windsurf`, `qwen`, `opencode`, `codex`, `shai`, `qoder`) |
|
|
165
176
|
|
|
166
177
|
### `specify init` Arguments & Options
|
|
167
178
|
|
|
168
|
-
| Argument/Option | Type | Description
|
|
169
|
-
|
|
170
|
-
| `<project-name>` | Argument | Name for your new project directory (optional if using `--here`, or use `.` for current directory)
|
|
171
|
-
| `--ai` | Option | AI assistant to use: `claude`, `gemini`, `copilot`, `cursor-agent`, `qwen`, `opencode`, `codex`, `windsurf`, `kilocode`, `auggie`, `roo`, `codebuddy`, `amp`, `shai`, or `
|
|
172
|
-
| `--script` | Option | Script variant to use: `sh` (bash/zsh) or `ps` (PowerShell)
|
|
173
|
-
| `--ignore-agent-tools` | Flag | Skip checks for AI agent tools like Claude Code
|
|
174
|
-
| `--no-git` | Flag | Skip git repository initialization
|
|
175
|
-
| `--here` | Flag | Initialize project in the current directory instead of creating a new one
|
|
176
|
-
| `--force` | Flag | Force merge/overwrite when initializing in current directory (skip confirmation)
|
|
177
|
-
| `--skip-tls` | Flag | Skip SSL/TLS verification (not recommended)
|
|
178
|
-
| `--debug` | Flag | Enable detailed debug output for troubleshooting
|
|
179
|
-
| `--github-token` | Option | GitHub token for API requests (or set GH_TOKEN/GITHUB_TOKEN env variable)
|
|
179
|
+
| Argument/Option | Type | Description |
|
|
180
|
+
| ---------------------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
181
|
+
| `<project-name>` | Argument | Name for your new project directory (optional if using `--here`, or use `.` for current directory) |
|
|
182
|
+
| `--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` |
|
|
183
|
+
| `--script` | Option | Script variant to use: `sh` (bash/zsh) or `ps` (PowerShell) |
|
|
184
|
+
| `--ignore-agent-tools` | Flag | Skip checks for AI agent tools like Claude Code |
|
|
185
|
+
| `--no-git` | Flag | Skip git repository initialization |
|
|
186
|
+
| `--here` | Flag | Initialize project in the current directory instead of creating a new one |
|
|
187
|
+
| `--force` | Flag | Force merge/overwrite when initializing in current directory (skip confirmation) |
|
|
188
|
+
| `--skip-tls` | Flag | Skip SSL/TLS verification (not recommended) |
|
|
189
|
+
| `--debug` | Flag | Enable detailed debug output for troubleshooting |
|
|
190
|
+
| `--github-token` | Option | GitHub token for API requests (or set GH_TOKEN/GITHUB_TOKEN env variable) |
|
|
180
191
|
|
|
181
192
|
### Examples
|
|
182
193
|
|
|
@@ -190,6 +201,9 @@ specify init my-project --ai claude
|
|
|
190
201
|
# Initialize with Cursor support
|
|
191
202
|
specify init my-project --ai cursor-agent
|
|
192
203
|
|
|
204
|
+
# Initialize with Qoder support
|
|
205
|
+
specify init my-project --ai qoder
|
|
206
|
+
|
|
193
207
|
# Initialize with Windsurf support
|
|
194
208
|
specify init my-project --ai windsurf
|
|
195
209
|
|
|
@@ -199,6 +213,9 @@ specify init my-project --ai amp
|
|
|
199
213
|
# Initialize with SHAI support
|
|
200
214
|
specify init my-project --ai shai
|
|
201
215
|
|
|
216
|
+
# Initialize with IBM Bob support
|
|
217
|
+
specify init my-project --ai bob
|
|
218
|
+
|
|
202
219
|
# Initialize with PowerShell scripts (Windows/cross-platform)
|
|
203
220
|
specify init my-project --ai copilot --script ps
|
|
204
221
|
|
|
@@ -233,29 +250,29 @@ After running `specify init`, your AI coding agent will have access to these sla
|
|
|
233
250
|
|
|
234
251
|
Essential commands for the Spec-Driven Development workflow:
|
|
235
252
|
|
|
236
|
-
| Command
|
|
237
|
-
|
|
238
|
-
| `/speckit.constitution`
|
|
239
|
-
| `/speckit.specify`
|
|
240
|
-
| `/speckit.plan`
|
|
241
|
-
| `/speckit.tasks`
|
|
242
|
-
| `/speckit.implement`
|
|
253
|
+
| Command | Description |
|
|
254
|
+
| ----------------------- | ------------------------------------------------------------------------ |
|
|
255
|
+
| `/speckit.constitution` | Create or update project governing principles and development guidelines |
|
|
256
|
+
| `/speckit.specify` | Define what you want to build (requirements and user stories) |
|
|
257
|
+
| `/speckit.plan` | Create technical implementation plans with your chosen tech stack |
|
|
258
|
+
| `/speckit.tasks` | Generate actionable task lists for implementation |
|
|
259
|
+
| `/speckit.implement` | Execute all tasks to build the feature according to the plan |
|
|
243
260
|
|
|
244
261
|
#### Optional Commands
|
|
245
262
|
|
|
246
263
|
Additional commands for enhanced quality and validation:
|
|
247
264
|
|
|
248
|
-
| Command | Description
|
|
249
|
-
|
|
250
|
-
| `/speckit.clarify` | Clarify underspecified areas (recommended before `/speckit.plan`; formerly `/quizme`)
|
|
251
|
-
| `/speckit.analyze` | Cross-artifact consistency & coverage analysis (run after `/speckit.tasks`, before `/speckit.implement`)
|
|
265
|
+
| Command | Description |
|
|
266
|
+
| -------------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
|
|
267
|
+
| `/speckit.clarify` | Clarify underspecified areas (recommended before `/speckit.plan`; formerly `/quizme`) |
|
|
268
|
+
| `/speckit.analyze` | Cross-artifact consistency & coverage analysis (run after `/speckit.tasks`, before `/speckit.implement`) |
|
|
252
269
|
| `/speckit.checklist` | Generate custom quality checklists that validate requirements completeness, clarity, and consistency (like "unit tests for English") |
|
|
253
270
|
|
|
254
271
|
### Environment Variables
|
|
255
272
|
|
|
256
|
-
| Variable
|
|
257
|
-
|
|
258
|
-
| `SPECIFY_FEATURE` | Override feature detection for non-Git repositories. Set to the feature directory name (e.g., `001-photo-albums`) to work on a specific feature when not using Git branches.<br
|
|
273
|
+
| Variable | Description |
|
|
274
|
+
| ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
275
|
+
| `SPECIFY_FEATURE` | Override feature detection for non-Git repositories. Set to the feature directory name (e.g., `001-photo-albums`) to work on a specific feature when not using Git branches.<br/>\*\*Must be set in the context of the agent you're working with prior to using `/speckit.plan` or follow-up commands. |
|
|
259
276
|
|
|
260
277
|
## 📚 Core Philosophy
|
|
261
278
|
|
|
@@ -268,11 +285,11 @@ Spec-Driven Development is a structured process that emphasizes:
|
|
|
268
285
|
|
|
269
286
|
## 🌟 Development Phases
|
|
270
287
|
|
|
271
|
-
| Phase
|
|
272
|
-
|
|
273
|
-
| **0-to-1 Development** ("Greenfield")
|
|
274
|
-
| **Creative Exploration**
|
|
275
|
-
| **Iterative Enhancement** ("Brownfield") | Brownfield modernization | <ul><li>Add features iteratively</li><li>Modernize legacy systems</li><li>Adapt processes</li></ul>
|
|
288
|
+
| Phase | Focus | Key Activities |
|
|
289
|
+
| ---------------------------------------- | ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
290
|
+
| **0-to-1 Development** ("Greenfield") | Generate from scratch | <ul><li>Start with high-level requirements</li><li>Generate specifications</li><li>Plan implementation steps</li><li>Build production-ready applications</li></ul> |
|
|
291
|
+
| **Creative Exploration** | Parallel implementations | <ul><li>Explore diverse solutions</li><li>Support multiple technology stacks & architectures</li><li>Experiment with UX patterns</li></ul> |
|
|
292
|
+
| **Iterative Enhancement** ("Brownfield") | Brownfield modernization | <ul><li>Add features iteratively</li><li>Modernize legacy systems</li><li>Adapt processes</li></ul> |
|
|
276
293
|
|
|
277
294
|
## 🎯 Experimental Goals
|
|
278
295
|
|
|
@@ -364,7 +381,7 @@ specify init . --force --ai claude
|
|
|
364
381
|
specify init --here --force --ai claude
|
|
365
382
|
```
|
|
366
383
|
|
|
367
|
-
The CLI will check if you have Claude Code, Gemini CLI, Cursor CLI, Qwen CLI, opencode, Codex CLI, or Amazon Q Developer CLI installed. If you do not, or you prefer to get the templates without checking for the right tools, use `--ignore-agent-tools` with your command:
|
|
384
|
+
The CLI will check if you have Claude Code, Gemini CLI, Cursor CLI, Qwen CLI, opencode, Codex CLI, Qoder CLI, or Amazon Q Developer CLI installed. If you do not, or you prefer to get the templates without checking for the right tools, use `--ignore-agent-tools` with your command:
|
|
368
385
|
|
|
369
386
|
```bash
|
|
370
387
|
specify init <project_name> --ai claude --ignore-agent-tools
|
|
@@ -390,8 +407,8 @@ This step creates or updates the `.specify/memory/constitution.md` file with you
|
|
|
390
407
|
|
|
391
408
|
With your project principles established, you can now create the functional specifications. Use the `/speckit.specify` command and then provide the concrete requirements for the project you want to develop.
|
|
392
409
|
|
|
393
|
-
>[!IMPORTANT]
|
|
394
|
-
>Be as explicit as possible about *what* you are trying to build and *why*. **Do not focus on the tech stack at this point**.
|
|
410
|
+
> [!IMPORTANT]
|
|
411
|
+
> Be as explicit as possible about *what* you are trying to build and *why*. **Do not focus on the tech stack at this point**.
|
|
395
412
|
|
|
396
413
|
An example prompt:
|
|
397
414
|
|
|
@@ -534,8 +551,8 @@ researching .NET Aspire in general and I don't think that's gonna do much for us
|
|
|
534
551
|
That's way too untargeted research. The research needs to help you solve a specific targeted question.
|
|
535
552
|
```
|
|
536
553
|
|
|
537
|
-
>[!NOTE]
|
|
538
|
-
>Claude Code might be over-eager and add components that you did not ask for. Ask it to clarify the rationale and the source of the change.
|
|
554
|
+
> [!NOTE]
|
|
555
|
+
> Claude Code might be over-eager and add components that you did not ask for. Ask it to clarify the rationale and the source of the change.
|
|
539
556
|
|
|
540
557
|
### **STEP 5:** Have Claude Code validate the plan
|
|
541
558
|
|
|
@@ -553,8 +570,8 @@ This helps refine the implementation plan and helps you avoid potential blind sp
|
|
|
553
570
|
|
|
554
571
|
You can also ask Claude Code (if you have the [GitHub CLI](https://docs.github.com/en/github-cli/github-cli) installed) to go ahead and create a pull request from your current branch to `main` with a detailed description, to make sure that the effort is properly tracked.
|
|
555
572
|
|
|
556
|
-
>[!NOTE]
|
|
557
|
-
>Before you have the agent implement it, it's also worth prompting Claude Code to cross-check the details to see if there are any over-engineered pieces (remember - it can be over-eager). If over-engineered components or decisions exist, you can ask Claude Code to resolve them. Ensure that Claude Code follows the [constitution](base/memory/constitution.md) as the foundational piece that it must adhere to when establishing the plan.
|
|
573
|
+
> [!NOTE]
|
|
574
|
+
> Before you have the agent implement it, it's also worth prompting Claude Code to cross-check the details to see if there are any over-engineered pieces (remember - it can be over-eager). If over-engineered components or decisions exist, you can ask Claude Code to resolve them. Ensure that Claude Code follows the [constitution](base/memory/constitution.md) as the foundational piece that it must adhere to when establishing the plan.
|
|
558
575
|
|
|
559
576
|
### **STEP 6:** Generate task breakdown with /speckit.tasks
|
|
560
577
|
|
|
@@ -591,8 +608,8 @@ The `/speckit.implement` command will:
|
|
|
591
608
|
- Follow the TDD approach defined in your task plan
|
|
592
609
|
- Provide progress updates and handle errors appropriately
|
|
593
610
|
|
|
594
|
-
>[!IMPORTANT]
|
|
595
|
-
>The AI agent will execute local CLI commands (such as `dotnet`, `npm`, etc.) - make sure you have the required tools installed on your machine.
|
|
611
|
+
> [!IMPORTANT]
|
|
612
|
+
> The AI agent will execute local CLI commands (such as `dotnet`, `npm`, etc.) - make sure you have the required tools installed on your machine.
|
|
596
613
|
|
|
597
614
|
Once the implementation is complete, test the application and resolve any runtime errors that may not be visible in CLI logs (e.g., browser console errors). You can copy and paste such errors back to your AI agent for resolution.
|
|
598
615
|
|