Skip to content

Commit 78ec736

Browse files
committed
Merge branch 'main' into pavel/add-tabnine-cli-support
2 parents 9e6ea0e + 4b00078 commit 78ec736

File tree

11 files changed

+149
-41
lines changed

11 files changed

+149
-41
lines changed

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,8 @@ gh release create "$VERSION" \
5454
.genreleases/spec-kit-template-agy-ps-"$VERSION".zip \
5555
.genreleases/spec-kit-template-bob-sh-"$VERSION".zip \
5656
.genreleases/spec-kit-template-bob-ps-"$VERSION".zip \
57+
.genreleases/spec-kit-template-vibe-sh-"$VERSION".zip \
58+
.genreleases/spec-kit-template-vibe-ps-"$VERSION".zip \
5759
.genreleases/spec-kit-template-generic-sh-"$VERSION".zip \
5860
.genreleases/spec-kit-template-generic-ps-"$VERSION".zip \
5961
--title "Spec Kit Templates - $VERSION_NO_V" \

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

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -365,6 +365,10 @@ function Build-Variant {
365365
$cmdDir = Join-Path $baseDir ".speckit/commands"
366366
Generate-Commands -Agent 'generic' -Extension 'md' -ArgFormat '$ARGUMENTS' -OutputDir $cmdDir -ScriptVariant $Script
367367
}
368+
'vibe' {
369+
$cmdDir = Join-Path $baseDir ".vibe/prompts"
370+
Generate-Commands -Agent 'vibe' -Extension 'md' -ArgFormat '$ARGUMENTS' -OutputDir $cmdDir -ScriptVariant $Script
371+
}
368372
default {
369373
throw "Unsupported agent '$Agent'."
370374
}
@@ -377,7 +381,7 @@ function Build-Variant {
377381
}
378382

379383
# Define all agents and scripts
380-
$AllAgents = @('claude', 'gemini', 'copilot', 'cursor-agent', 'qwen', 'opencode', 'windsurf', 'codex', 'kilocode', 'auggie', 'roo', 'codebuddy', 'amp', 'kiro-cli', 'bob', 'qodercli', 'shai', 'tabnine', 'agy', 'generic')
384+
$AllAgents = @('claude', 'gemini', 'copilot', 'cursor-agent', 'qwen', 'opencode', 'windsurf', 'codex', 'kilocode', 'auggie', 'roo', 'codebuddy', 'amp', 'kiro-cli', 'bob', 'qodercli', 'shai', 'tabnine', 'agy', 'vibe', 'generic')
381385
$AllScripts = @('sh', 'ps')
382386

383387
function Normalize-List {

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

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -225,6 +225,9 @@ build_variant() {
225225
bob)
226226
mkdir -p "$base_dir/.bob/commands"
227227
generate_commands bob md "\$ARGUMENTS" "$base_dir/.bob/commands" "$script" ;;
228+
vibe)
229+
mkdir -p "$base_dir/.vibe/prompts"
230+
generate_commands vibe md "\$ARGUMENTS" "$base_dir/.vibe/prompts" "$script" ;;
228231
generic)
229232
mkdir -p "$base_dir/.speckit/commands"
230233
generate_commands generic md "\$ARGUMENTS" "$base_dir/.speckit/commands" "$script" ;;
@@ -234,7 +237,7 @@ build_variant() {
234237
}
235238

236239
# Determine agent list
237-
ALL_AGENTS=(claude gemini copilot cursor-agent qwen opencode windsurf codex kilocode auggie roo codebuddy amp shai tabnine kiro-cli agy bob qodercli generic)
240+
ALL_AGENTS=(claude gemini copilot cursor-agent qwen opencode windsurf codex kilocode auggie roo codebuddy amp shai tabnine kiro-cli agy bob vibe qodercli generic)
238241
ALL_SCRIPTS=(sh ps)
239242

240243
norm_list() {

README.md

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,13 @@ uv tool install specify-cli --force --from git+https://github.com/github/spec-ki
8080
Run directly without installing:
8181

8282
```bash
83+
# Create new project
8384
uvx --from git+https://github.com/github/spec-kit.git specify init <PROJECT_NAME>
85+
86+
# Or initialize in existing project
87+
uvx --from git+https://github.com/github/spec-kit.git specify init . --ai claude
88+
# or
89+
uvx --from git+https://github.com/github/spec-kit.git specify init --here --ai claude
8490
```
8591

8692
**Benefits of persistent installation:**
@@ -172,6 +178,7 @@ See Spec-Driven Development in action across different scenarios with these comm
172178
| [Roo Code](https://roocode.com/) || |
173179
| [SHAI (OVHcloud)](https://github.com/ovh/shai) || |
174180
| [Tabnine CLI](https://docs.tabnine.com/main/getting-started/tabnine-cli) || |
181+
| [Mistral Vibe](https://github.com/mistralai/mistral-vibe) || |
175182
| [Windsurf](https://windsurf.com/) || |
176183
| [Antigravity (agy)](https://antigravity.google/) || |
177184
| Generic || Bring your own agent — use `--ai generic --ai-commands-dir <path>` for unsupported agents |
@@ -185,14 +192,14 @@ The `specify` command supports the following options:
185192
| Command | Description |
186193
| ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
187194
| `init` | Initialize a new Specify project from the latest template |
188-
| `check` | Check for installed tools (`git`, `claude`, `gemini`, `code`/`code-insiders`, `cursor-agent`, `windsurf`, `qwen`, `opencode`, `codex`, `kiro-cli`, `shai`, `qodercli`) |
195+
| `check` | Check for installed tools (`git`, `claude`, `gemini`, `code`/`code-insiders`, `cursor-agent`, `windsurf`, `qwen`, `opencode`, `codex`, `kiro-cli`, `tabnine`, `shai`, `qodercli`, `vibe`) |
189196

190197
### `specify init` Arguments & Options
191198

192199
| Argument/Option | Type | Description |
193200
| ---------------------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
194201
| `<project-name>` | Argument | Name for your new project directory (optional if using `--here`, or use `.` for current directory) |
195-
| `--ai` | Option | AI assistant to use: `claude`, `gemini`, `copilot`, `cursor-agent`, `qwen`, `opencode`, `codex`, `windsurf`, `kilocode`, `auggie`, `roo`, `codebuddy`, `amp`, `shai`, `kiro-cli` (`kiro` alias), `agy`, `bob`, `qodercli`, or `generic` (requires `--ai-commands-dir`) |
202+
| `--ai` | Option | AI assistant to use: `claude`, `gemini`, `copilot`, `cursor-agent`, `qwen`, `opencode`, `codex`, `windsurf`, `kilocode`, `auggie`, `roo`, `codebuddy`, `amp`, `shai`, `kiro-cli` (`kiro` alias), `tabnine`, `agy`, `bob`, `qodercli`, `vibe`, or `generic` (requires `--ai-commands-dir`) |
196203
| `--ai-commands-dir` | Option | Directory for agent command files (required with `--ai generic`, e.g. `.myagent/commands/`) |
197204
| `--script` | Option | Script variant to use: `sh` (bash/zsh) or `ps` (PowerShell) |
198205
| `--ignore-agent-tools` | Flag | Skip checks for AI agent tools like Claude Code |
@@ -231,6 +238,9 @@ specify init my-project --ai amp
231238
# Initialize with SHAI support
232239
specify init my-project --ai shai
233240

241+
# Initialize with Mistral Vibe support
242+
specify init my-project --ai vibe
243+
234244
# Initialize with IBM Bob support
235245
specify init my-project --ai bob
236246

extensions/README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,8 +74,11 @@ The following community-contributed extensions are available in [`catalog.commun
7474
|-----------|---------|-----|
7575
| Azure DevOps Integration | Sync user stories and tasks to Azure DevOps work items using OAuth authentication | [spec-kit-azure-devops](https://github.com/pragya247/spec-kit-azure-devops) |
7676
| Cleanup Extension | Post-implementation quality gate that reviews changes, fixes small issues (scout rule), creates tasks for medium issues, and generates analysis for large issues | [spec-kit-cleanup](https://github.com/dsrednicki/spec-kit-cleanup) |
77+
| Fleet Orchestrator | Orchestrate a full feature lifecycle with human-in-the-loop gates across all SpecKit phases | [spec-kit-fleet](https://github.com/sharathsatish/spec-kit-fleet) |
7778
| Jira Integration | Create Jira Epics, Stories, and Issues from spec-kit specifications and task breakdowns with configurable hierarchy and custom field support | [spec-kit-jira](https://github.com/mbachorik/spec-kit-jira) |
79+
| Ralph Loop | Autonomous implementation loop using AI agent CLI | [spec-kit-ralph](https://github.com/Rubiss/spec-kit-ralph) |
7880
| Retrospective Extension | Post-implementation retrospective with spec adherence scoring, drift analysis, and human-gated spec updates | [spec-kit-retrospective](https://github.com/emi-dm/spec-kit-retrospective) |
81+
| Review Extension | Post-implementation comprehensive code review with specialized agents for code quality, comments, tests, error handling, type design, and simplification | [spec-kit-review](https://github.com/ismaelJimenez/spec-kit-review) |
7982
| Spec Sync | Detect and resolve drift between specs and implementation. AI-assisted resolution with human approval | [spec-kit-sync](https://github.com/bgervin/spec-kit-sync) |
8083
| V-Model Extension Pack | Enforces V-Model paired generation of development specs and test specs with full traceability | [spec-kit-v-model](https://github.com/leocamello/spec-kit-v-model) |
8184
| Verify Extension | Post-implementation quality gate that validates implemented code against specification artifacts | [spec-kit-verify](https://github.com/ismaelJimenez/spec-kit-verify) |

extensions/catalog.community.json

Lines changed: 89 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"schema_version": "1.0",
3-
"updated_at": "2026-03-05T00:00:00Z",
3+
"updated_at": "2026-03-09T00:00:00Z",
44
"catalog_url": "https://raw.githubusercontent.com/github/spec-kit/main/extensions/catalog.community.json",
55
"extensions": {
66
"azure-devops": {
@@ -62,6 +62,32 @@
6262
"created_at": "2026-02-22T00:00:00Z",
6363
"updated_at": "2026-02-22T00:00:00Z"
6464
},
65+
"fleet": {
66+
"name": "Fleet Orchestrator",
67+
"id": "fleet",
68+
"description": "Orchestrate a full feature lifecycle with human-in-the-loop gates across all SpecKit phases.",
69+
"author": "sharathsatish",
70+
"version": "1.0.0",
71+
"download_url": "https://github.com/sharathsatish/spec-kit-fleet/archive/refs/tags/v1.0.0.zip",
72+
"repository": "https://github.com/sharathsatish/spec-kit-fleet",
73+
"homepage": "https://github.com/sharathsatish/spec-kit-fleet",
74+
"documentation": "https://github.com/sharathsatish/spec-kit-fleet/blob/main/README.md",
75+
"changelog": "https://github.com/sharathsatish/spec-kit-fleet/blob/main/CHANGELOG.md",
76+
"license": "MIT",
77+
"requires": {
78+
"speckit_version": ">=0.1.0"
79+
},
80+
"provides": {
81+
"commands": 2,
82+
"hooks": 1
83+
},
84+
"tags": ["orchestration", "workflow", "human-in-the-loop", "parallel"],
85+
"verified": false,
86+
"downloads": 0,
87+
"stars": 0,
88+
"created_at": "2026-03-06T00:00:00Z",
89+
"updated_at": "2026-03-06T00:00:00Z"
90+
},
6591
"jira": {
6692
"name": "Jira Integration",
6793
"id": "jira",
@@ -88,6 +114,42 @@
88114
"created_at": "2026-03-05T00:00:00Z",
89115
"updated_at": "2026-03-05T00:00:00Z"
90116
},
117+
"ralph": {
118+
"name": "Ralph Loop",
119+
"id": "ralph",
120+
"description": "Autonomous implementation loop using AI agent CLI.",
121+
"author": "Rubiss",
122+
"version": "1.0.0",
123+
"download_url": "https://github.com/Rubiss/spec-kit-ralph/archive/refs/tags/v1.0.0.zip",
124+
"repository": "https://github.com/Rubiss/spec-kit-ralph",
125+
"homepage": "https://github.com/Rubiss/spec-kit-ralph",
126+
"documentation": "https://github.com/Rubiss/spec-kit-ralph/blob/main/README.md",
127+
"changelog": "https://github.com/Rubiss/spec-kit-ralph/blob/main/CHANGELOG.md",
128+
"license": "MIT",
129+
"requires": {
130+
"speckit_version": ">=0.1.0",
131+
"tools": [
132+
{
133+
"name": "copilot",
134+
"required": true
135+
},
136+
{
137+
"name": "git",
138+
"required": true
139+
}
140+
]
141+
},
142+
"provides": {
143+
"commands": 2,
144+
"hooks": 1
145+
},
146+
"tags": ["implementation", "automation", "loop", "copilot"],
147+
"verified": false,
148+
"downloads": 0,
149+
"stars": 0,
150+
"created_at": "2026-03-09T00:00:00Z",
151+
"updated_at": "2026-03-09T00:00:00Z"
152+
},
91153
"retrospective": {
92154
"name": "Retrospective Extension",
93155
"id": "retrospective",
@@ -114,6 +176,32 @@
114176
"created_at": "2026-02-24T00:00:00Z",
115177
"updated_at": "2026-02-24T00:00:00Z"
116178
},
179+
"review": {
180+
"name": "Review Extension",
181+
"id": "review",
182+
"description": "Post-implementation comprehensive code review with specialized agents for code quality, comments, tests, error handling, type design, and simplification.",
183+
"author": "ismaelJimenez",
184+
"version": "1.0.0",
185+
"download_url": "https://github.com/ismaelJimenez/spec-kit-review/archive/refs/tags/v1.0.0.zip",
186+
"repository": "https://github.com/ismaelJimenez/spec-kit-review",
187+
"homepage": "https://github.com/ismaelJimenez/spec-kit-review",
188+
"documentation": "https://github.com/ismaelJimenez/spec-kit-review/blob/main/README.md",
189+
"changelog": "https://github.com/ismaelJimenez/spec-kit-review/blob/main/CHANGELOG.md",
190+
"license": "MIT",
191+
"requires": {
192+
"speckit_version": ">=0.1.0"
193+
},
194+
"provides": {
195+
"commands": 7,
196+
"hooks": 1
197+
},
198+
"tags": ["code-review", "quality", "review", "testing", "error-handling", "type-design", "simplification"],
199+
"verified": false,
200+
"downloads": 0,
201+
"stars": 0,
202+
"created_at": "2026-03-06T00:00:00Z",
203+
"updated_at": "2026-03-06T00:00:00Z"
204+
},
117205
"sync": {
118206
"name": "Spec Sync",
119207
"id": "sync",

scripts/bash/update-agent-context.sh

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
#
3131
# 5. Multi-Agent Support
3232
# - Handles agent-specific file paths and naming conventions
33-
# - Supports: Claude, Gemini, Copilot, Cursor, Qwen, opencode, Codex, Windsurf, Kilo Code, Auggie CLI, Roo Code, CodeBuddy CLI, Qoder CLI, Amp, SHAI, Tabnine CLI, Kiro CLI, or Antigravity
33+
# - Supports: Claude, Gemini, Copilot, Cursor, Qwen, opencode, Codex, Windsurf, Kilo Code, Auggie CLI, Roo Code, CodeBuddy CLI, Qoder CLI, Amp, SHAI, Tabnine CLI, Kiro CLI, Mistral Vibe or Antigravity
3434
# - Can update single agents or all existing agent files
3535
# - Creates default Claude file if no agent files exist
3636
#
@@ -77,6 +77,7 @@ TABNINE_FILE="$REPO_ROOT/TABNINE.md"
7777
KIRO_FILE="$REPO_ROOT/AGENTS.md"
7878
AGY_FILE="$REPO_ROOT/.agent/rules/specify-rules.md"
7979
BOB_FILE="$REPO_ROOT/AGENTS.md"
80+
VIBE_FILE="$REPO_ROOT/.vibe/agents/specify-agents.md"
8081

8182
# Template file
8283
TEMPLATE_FILE="$REPO_ROOT/.specify/templates/agent-file-template.md"
@@ -661,12 +662,15 @@ update_specific_agent() {
661662
bob)
662663
update_agent_file "$BOB_FILE" "IBM Bob"
663664
;;
665+
vibe)
666+
update_agent_file "$VIBE_FILE" "Mistral Vibe"
667+
;;
664668
generic)
665669
log_info "Generic agent: no predefined context file. Use the agent-specific update script for your agent."
666670
;;
667671
*)
668672
log_error "Unknown agent type '$agent_type'"
669-
log_error "Expected: claude|gemini|copilot|cursor-agent|qwen|opencode|codex|windsurf|kilocode|auggie|roo|codebuddy|amp|shai|tabnine|kiro-cli|agy|bob|qodercli|generic"
673+
log_error "Expected: claude|gemini|copilot|cursor-agent|qwen|opencode|codex|windsurf|kilocode|auggie|roo|codebuddy|amp|shai|tabnine|kiro-cli|agy|bob|vibe|qodercli|generic"
670674
exit 1
671675
;;
672676
esac
@@ -759,6 +763,11 @@ update_all_existing_agents() {
759763
update_agent_file "$BOB_FILE" "IBM Bob"
760764
found_agent=true
761765
fi
766+
767+
if [[ -f "$VIBE_FILE" ]]; then
768+
update_agent_file "$VIBE_FILE" "Mistral Vibe"
769+
found_agent=true
770+
fi
762771

763772
# If no agent files exist, create a default Claude file
764773
if [[ "$found_agent" == false ]]; then
@@ -783,8 +792,7 @@ print_summary() {
783792
fi
784793

785794
echo
786-
787-
log_info "Usage: $0 [claude|gemini|copilot|cursor-agent|qwen|opencode|codex|windsurf|kilocode|auggie|roo|codebuddy|amp|shai|tabnine|kiro-cli|agy|bob|qodercli]"
795+
log_info "Usage: $0 [claude|gemini|copilot|cursor-agent|qwen|opencode|codex|windsurf|kilocode|auggie|roo|codebuddy|amp|shai|tabnine|kiro-cli|agy|bob|qodercli|vibe]"
788796
}
789797

790798
#==============================================================================

0 commit comments

Comments
 (0)