Skip to content

Commit 7542528

Browse files
Merge branch 'main' into pavel/add-tabnine-cli-support
2 parents 6988ddd + 855ac83 commit 7542528

File tree

10 files changed

+106
-39
lines changed

10 files changed

+106
-39
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: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,7 @@ See Spec-Driven Development in action across different scenarios with these comm
172172
| [Roo Code](https://roocode.com/) || |
173173
| [SHAI (OVHcloud)](https://github.com/ovh/shai) || |
174174
| [Tabnine CLI](https://docs.tabnine.com/main/getting-started/tabnine-cli) || |
175+
| [Mistral Vibe](https://github.com/mistralai/mistral-vibe) || |
175176
| [Windsurf](https://windsurf.com/) || |
176177
| [Antigravity (agy)](https://antigravity.google/) || |
177178
| Generic || Bring your own agent — use `--ai generic --ai-commands-dir <path>` for unsupported agents |
@@ -185,14 +186,14 @@ The `specify` command supports the following options:
185186
| Command | Description |
186187
| ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
187188
| `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`) |
189+
| `check` | Check for installed tools (`git`, `claude`, `gemini`, `code`/`code-insiders`, `cursor-agent`, `windsurf`, `qwen`, `opencode`, `codex`, `kiro-cli`, `shai`, `qodercli`, `vibe`) |
189190

190191
### `specify init` Arguments & Options
191192

192193
| Argument/Option | Type | Description |
193194
| ---------------------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
194195
| `<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`) |
196+
| `--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`, `vibe`, or `generic` (requires `--ai-commands-dir`) |
196197
| `--ai-commands-dir` | Option | Directory for agent command files (required with `--ai generic`, e.g. `.myagent/commands/`) |
197198
| `--script` | Option | Script variant to use: `sh` (bash/zsh) or `ps` (PowerShell) |
198199
| `--ignore-agent-tools` | Flag | Skip checks for AI agent tools like Claude Code |
@@ -231,6 +232,9 @@ specify init my-project --ai amp
231232
# Initialize with SHAI support
232233
specify init my-project --ai shai
233234

235+
# Initialize with Mistral Vibe support
236+
specify init my-project --ai vibe
237+
234238
# Initialize with IBM Bob support
235239
specify init my-project --ai bob
236240

extensions/README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,8 +74,10 @@ 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) |
7879
| 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) |
80+
| 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) |
7981
| 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) |
8082
| 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) |
8183
| 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: 53 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-06T00: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",
@@ -114,6 +140,32 @@
114140
"created_at": "2026-02-24T00:00:00Z",
115141
"updated_at": "2026-02-24T00:00:00Z"
116142
},
143+
"review": {
144+
"name": "Review Extension",
145+
"id": "review",
146+
"description": "Post-implementation comprehensive code review with specialized agents for code quality, comments, tests, error handling, type design, and simplification.",
147+
"author": "ismaelJimenez",
148+
"version": "1.0.0",
149+
"download_url": "https://github.com/ismaelJimenez/spec-kit-review/archive/refs/tags/v1.0.0.zip",
150+
"repository": "https://github.com/ismaelJimenez/spec-kit-review",
151+
"homepage": "https://github.com/ismaelJimenez/spec-kit-review",
152+
"documentation": "https://github.com/ismaelJimenez/spec-kit-review/blob/main/README.md",
153+
"changelog": "https://github.com/ismaelJimenez/spec-kit-review/blob/main/CHANGELOG.md",
154+
"license": "MIT",
155+
"requires": {
156+
"speckit_version": ">=0.1.0"
157+
},
158+
"provides": {
159+
"commands": 7,
160+
"hooks": 1
161+
},
162+
"tags": ["code-review", "quality", "review", "testing", "error-handling", "type-design", "simplification"],
163+
"verified": false,
164+
"downloads": 0,
165+
"stars": 0,
166+
"created_at": "2026-03-06T00:00:00Z",
167+
"updated_at": "2026-03-06T00:00:00Z"
168+
},
117169
"sync": {
118170
"name": "Spec Sync",
119171
"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
#==============================================================================

scripts/powershell/update-agent-context.ps1

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ Mirrors the behavior of scripts/bash/update-agent-context.sh:
99
2. Plan Data Extraction
1010
3. Agent File Management (create from template or update existing)
1111
4. Content Generation (technology stack, recent changes, timestamp)
12-
5. Multi-Agent Support (claude, gemini, copilot, cursor-agent, qwen, opencode, codex, windsurf, kilocode, auggie, roo, codebuddy, amp, shai, tabnine, kiro-cli, agy, bob, qodercli)
12+
5. Multi-Agent Support (claude, gemini, copilot, cursor-agent, qwen, opencode, codex, windsurf, kilocode, auggie, roo, codebuddy, amp, shai, tabnine, kiro-cli, agy, bob, qodercli, vibe)
1313
1414
.PARAMETER AgentType
1515
Optional agent key to update a single agent. If omitted, updates all existing agent files (creating a default Claude file if none exist).
@@ -25,7 +25,7 @@ Relies on common helper functions in common.ps1
2525
#>
2626
param(
2727
[Parameter(Position=0)]
28-
[ValidateSet('claude','gemini','copilot','cursor-agent','qwen','opencode','codex','windsurf','kilocode','auggie','roo','codebuddy','amp','shai','tabnine','kiro-cli','agy','bob','qodercli','generic')]
28+
[ValidateSet('claude','gemini','copilot','cursor-agent','qwen','opencode','codex','windsurf','kilocode','auggie','roo','codebuddy','amp','shai','tabnine','kiro-cli','agy','bob','qodercli','vibe','generic')]
2929
[string]$AgentType
3030
)
3131

@@ -62,6 +62,7 @@ $TABNINE_FILE = Join-Path $REPO_ROOT 'TABNINE.md'
6262
$KIRO_FILE = Join-Path $REPO_ROOT 'AGENTS.md'
6363
$AGY_FILE = Join-Path $REPO_ROOT '.agent/rules/specify-rules.md'
6464
$BOB_FILE = Join-Path $REPO_ROOT 'AGENTS.md'
65+
$VIBE_FILE = Join-Path $REPO_ROOT '.vibe/agents/specify-agents.md'
6566

6667
$TEMPLATE_FILE = Join-Path $REPO_ROOT '.specify/templates/agent-file-template.md'
6768

@@ -404,8 +405,9 @@ function Update-SpecificAgent {
404405
'kiro-cli' { Update-AgentFile -TargetFile $KIRO_FILE -AgentName 'Kiro CLI' }
405406
'agy' { Update-AgentFile -TargetFile $AGY_FILE -AgentName 'Antigravity' }
406407
'bob' { Update-AgentFile -TargetFile $BOB_FILE -AgentName 'IBM Bob' }
408+
'vibe' { Update-AgentFile -TargetFile $VIBE_FILE -AgentName 'Mistral Vibe' }
407409
'generic' { Write-Info 'Generic agent: no predefined context file. Use the agent-specific update script for your agent.' }
408-
default { Write-Err "Unknown agent type '$Type'"; Write-Err 'Expected: claude|gemini|copilot|cursor-agent|qwen|opencode|codex|windsurf|kilocode|auggie|roo|codebuddy|amp|shai|tabnine|kiro-cli|agy|bob|qodercli|generic'; return $false }
410+
default { Write-Err "Unknown agent type '$Type'"; Write-Err 'Expected: claude|gemini|copilot|cursor-agent|qwen|opencode|codex|windsurf|kilocode|auggie|roo|codebuddy|amp|shai|tabnine|kiro-cli|agy|bob|qodercli|vibe|generic'; return $false }
409411
}
410412
}
411413

@@ -429,6 +431,7 @@ function Update-AllExistingAgents {
429431
if (Test-Path $KIRO_FILE) { if (-not (Update-AgentFile -TargetFile $KIRO_FILE -AgentName 'Kiro CLI')) { $ok = $false }; $found = $true }
430432
if (Test-Path $AGY_FILE) { if (-not (Update-AgentFile -TargetFile $AGY_FILE -AgentName 'Antigravity')) { $ok = $false }; $found = $true }
431433
if (Test-Path $BOB_FILE) { if (-not (Update-AgentFile -TargetFile $BOB_FILE -AgentName 'IBM Bob')) { $ok = $false }; $found = $true }
434+
if (Test-Path $VIBE_FILE) { if (-not (Update-AgentFile -TargetFile $VIBE_FILE -AgentName 'Mistral Vibe')) { $ok = $false }; $found = $true }
432435
if (-not $found) {
433436
Write-Info 'No existing agent files found, creating default Claude file...'
434437
if (-not (Update-AgentFile -TargetFile $CLAUDE_FILE -AgentName 'Claude Code')) { $ok = $false }
@@ -443,7 +446,7 @@ function Print-Summary {
443446
if ($NEW_FRAMEWORK) { Write-Host " - Added framework: $NEW_FRAMEWORK" }
444447
if ($NEW_DB -and $NEW_DB -ne 'N/A') { Write-Host " - Added database: $NEW_DB" }
445448
Write-Host ''
446-
Write-Info 'Usage: ./update-agent-context.ps1 [-AgentType claude|gemini|copilot|cursor-agent|qwen|opencode|codex|windsurf|kilocode|auggie|roo|codebuddy|amp|shai|tabnine|kiro-cli|agy|bob|qodercli|generic]'
449+
Write-Info 'Usage: ./update-agent-context.ps1 [-AgentType claude|gemini|copilot|cursor-agent|qwen|opencode|codex|windsurf|kilocode|auggie|roo|codebuddy|amp|shai|tabnine|kiro-cli|agy|bob|qodercli|vibe|generic]'
447450
}
448451

449452
function Main {

0 commit comments

Comments
 (0)