diff --git a/extensions/README.md b/extensions/README.md index 346f4b570f..e8f1617e98 100644 --- a/extensions/README.md +++ b/extensions/README.md @@ -74,9 +74,13 @@ The following community-contributed extensions are available in [`catalog.commun |-----------|---------|-----| | 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) | | 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) | +| 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) | | 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) | +| Ralph Loop | Autonomous implementation loop using AI agent CLI | [spec-kit-ralph](https://github.com/Rubiss/spec-kit-ralph) | | 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) | +| 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) | | 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) | +| Understanding | Automated requirements quality analysis — 31 deterministic metrics against IEEE/ISO standards with experimental energy-based ambiguity detection | [understanding](https://github.com/Testimonial/understanding) | | 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) | | Verify Extension | Post-implementation quality gate that validates implemented code against specification artifacts | [spec-kit-verify](https://github.com/ismaelJimenez/spec-kit-verify) | diff --git a/extensions/catalog.community.json b/extensions/catalog.community.json index 71a3913c6a..759bd10d81 100644 --- a/extensions/catalog.community.json +++ b/extensions/catalog.community.json @@ -1,6 +1,6 @@ { "schema_version": "1.0", - "updated_at": "2026-03-05T00:00:00Z", + "updated_at": "2026-03-09T00:00:00Z", "catalog_url": "https://raw.githubusercontent.com/github/spec-kit/main/extensions/catalog.community.json", "extensions": { "azure-devops": { @@ -29,7 +29,13 @@ "commands": 1, "hooks": 1 }, - "tags": ["azure", "devops", "project-management", "work-items", "issue-tracking"], + "tags": [ + "azure", + "devops", + "project-management", + "work-items", + "issue-tracking" + ], "verified": false, "downloads": 0, "stars": 0, @@ -55,13 +61,45 @@ "commands": 1, "hooks": 1 }, - "tags": ["quality", "tech-debt", "review", "cleanup", "scout-rule"], + "tags": [ + "quality", + "tech-debt", + "review", + "cleanup", + "scout-rule" + ], "verified": false, "downloads": 0, "stars": 0, "created_at": "2026-02-22T00:00:00Z", "updated_at": "2026-02-22T00:00:00Z" }, + "fleet": { + "name": "Fleet Orchestrator", + "id": "fleet", + "description": "Orchestrate a full feature lifecycle with human-in-the-loop gates across all SpecKit phases.", + "author": "sharathsatish", + "version": "1.0.0", + "download_url": "https://github.com/sharathsatish/spec-kit-fleet/archive/refs/tags/v1.0.0.zip", + "repository": "https://github.com/sharathsatish/spec-kit-fleet", + "homepage": "https://github.com/sharathsatish/spec-kit-fleet", + "documentation": "https://github.com/sharathsatish/spec-kit-fleet/blob/main/README.md", + "changelog": "https://github.com/sharathsatish/spec-kit-fleet/blob/main/CHANGELOG.md", + "license": "MIT", + "requires": { + "speckit_version": ">=0.1.0" + }, + "provides": { + "commands": 2, + "hooks": 1 + }, + "tags": ["orchestration", "workflow", "human-in-the-loop", "parallel"], + "verified": false, + "downloads": 0, + "stars": 0, + "created_at": "2026-03-06T00:00:00Z", + "updated_at": "2026-03-06T00:00:00Z" + }, "jira": { "name": "Jira Integration", "id": "jira", @@ -81,13 +119,54 @@ "commands": 3, "hooks": 1 }, - "tags": ["issue-tracking", "jira", "atlassian", "project-management"], + "tags": [ + "issue-tracking", + "jira", + "atlassian", + "project-management" + ], "verified": false, "downloads": 0, "stars": 0, "created_at": "2026-03-05T00:00:00Z", "updated_at": "2026-03-05T00:00:00Z" }, + "ralph": { + "name": "Ralph Loop", + "id": "ralph", + "description": "Autonomous implementation loop using AI agent CLI.", + "author": "Rubiss", + "version": "1.0.0", + "download_url": "https://github.com/Rubiss/spec-kit-ralph/archive/refs/tags/v1.0.0.zip", + "repository": "https://github.com/Rubiss/spec-kit-ralph", + "homepage": "https://github.com/Rubiss/spec-kit-ralph", + "documentation": "https://github.com/Rubiss/spec-kit-ralph/blob/main/README.md", + "changelog": "https://github.com/Rubiss/spec-kit-ralph/blob/main/CHANGELOG.md", + "license": "MIT", + "requires": { + "speckit_version": ">=0.1.0", + "tools": [ + { + "name": "copilot", + "required": true + }, + { + "name": "git", + "required": true + } + ] + }, + "provides": { + "commands": 2, + "hooks": 1 + }, + "tags": ["implementation", "automation", "loop", "copilot"], + "verified": false, + "downloads": 0, + "stars": 0, + "created_at": "2026-03-09T00:00:00Z", + "updated_at": "2026-03-09T00:00:00Z" + }, "retrospective": { "name": "Retrospective Extension", "id": "retrospective", @@ -107,13 +186,45 @@ "commands": 1, "hooks": 1 }, - "tags": ["retrospective", "spec-drift", "quality", "analysis", "governance"], + "tags": [ + "retrospective", + "spec-drift", + "quality", + "analysis", + "governance" + ], "verified": false, "downloads": 0, "stars": 0, "created_at": "2026-02-24T00:00:00Z", "updated_at": "2026-02-24T00:00:00Z" }, + "review": { + "name": "Review Extension", + "id": "review", + "description": "Post-implementation comprehensive code review with specialized agents for code quality, comments, tests, error handling, type design, and simplification.", + "author": "ismaelJimenez", + "version": "1.0.0", + "download_url": "https://github.com/ismaelJimenez/spec-kit-review/archive/refs/tags/v1.0.0.zip", + "repository": "https://github.com/ismaelJimenez/spec-kit-review", + "homepage": "https://github.com/ismaelJimenez/spec-kit-review", + "documentation": "https://github.com/ismaelJimenez/spec-kit-review/blob/main/README.md", + "changelog": "https://github.com/ismaelJimenez/spec-kit-review/blob/main/CHANGELOG.md", + "license": "MIT", + "requires": { + "speckit_version": ">=0.1.0" + }, + "provides": { + "commands": 7, + "hooks": 1 + }, + "tags": ["code-review", "quality", "review", "testing", "error-handling", "type-design", "simplification"], + "verified": false, + "downloads": 0, + "stars": 0, + "created_at": "2026-03-06T00:00:00Z", + "updated_at": "2026-03-06T00:00:00Z" + }, "sync": { "name": "Spec Sync", "id": "sync", @@ -133,13 +244,60 @@ "commands": 5, "hooks": 1 }, - "tags": ["sync", "drift", "validation", "bidirectional", "backfill"], + "tags": [ + "sync", + "drift", + "validation", + "bidirectional", + "backfill" + ], "verified": false, "downloads": 0, "stars": 0, "created_at": "2026-03-02T00:00:00Z", "updated_at": "2026-03-02T00:00:00Z" }, + "understanding": { + "name": "Understanding", + "id": "understanding", + "description": "Automated requirements quality analysis — validates specs against IEEE/ISO standards using 31 deterministic metrics. Catches ambiguity, missing testability, and structural issues before they reach implementation. Includes experimental energy-based ambiguity detection using local LM token perplexity.", + "author": "Ladislav Bihari", + "version": "3.4.0", + "download_url": "https://github.com/Testimonial/understanding/archive/refs/tags/v3.4.0.zip", + "repository": "https://github.com/Testimonial/understanding", + "homepage": "https://github.com/Testimonial/understanding", + "documentation": "https://github.com/Testimonial/understanding/blob/main/extension/README.md", + "changelog": "https://github.com/Testimonial/understanding/blob/main/extension/CHANGELOG.md", + "license": "MIT", + "requires": { + "speckit_version": ">=0.1.0", + "tools": [ + { + "name": "understanding", + "version": ">=3.4.0", + "required": true + } + ] + }, + "provides": { + "commands": 3, + "hooks": 1 + }, + "tags": [ + "quality", + "metrics", + "requirements", + "validation", + "readability", + "IEEE-830", + "ISO-29148" + ], + "verified": false, + "downloads": 0, + "stars": 0, + "created_at": "2026-03-07T00:00:00Z", + "updated_at": "2026-03-07T00:00:00Z" + }, "v-model": { "name": "V-Model Extension Pack", "id": "v-model", @@ -159,7 +317,13 @@ "commands": 9, "hooks": 1 }, - "tags": ["v-model", "traceability", "testing", "compliance", "safety-critical"], + "tags": [ + "v-model", + "traceability", + "testing", + "compliance", + "safety-critical" + ], "verified": false, "downloads": 0, "stars": 0, @@ -185,7 +349,13 @@ "commands": 1, "hooks": 1 }, - "tags": ["verification", "quality-gate", "implementation", "spec-adherence", "compliance"], + "tags": [ + "verification", + "quality-gate", + "implementation", + "spec-adherence", + "compliance" + ], "verified": false, "downloads": 0, "stars": 0, diff --git a/scripts/bash/update-agent-context.sh b/scripts/bash/update-agent-context.sh index fdebac65f7..d254baf03a 100644 --- a/scripts/bash/update-agent-context.sh +++ b/scripts/bash/update-agent-context.sh @@ -30,7 +30,7 @@ # # 5. Multi-Agent Support # - Handles agent-specific file paths and naming conventions -# - Supports: Claude, Gemini, Copilot, Cursor, Qwen, opencode, Codex, Windsurf, Kilo Code, Auggie CLI, Roo Code, CodeBuddy CLI, Qoder CLI, Amp, SHAI, Kiro CLI, or Antigravity +# - Supports: Claude, Gemini, Copilot, Cursor, Qwen, opencode, Codex, Windsurf, Kilo Code, Auggie CLI, Roo Code, CodeBuddy CLI, Qoder CLI, Amp, SHAI, Kiro CLI, Mistral Vibe or Antigravity # - Can update single agents or all existing agent files # - Creates default Claude file if no agent files exist # @@ -76,6 +76,7 @@ SHAI_FILE="$REPO_ROOT/SHAI.md" KIRO_FILE="$REPO_ROOT/AGENTS.md" AGY_FILE="$REPO_ROOT/.agent/rules/specify-rules.md" BOB_FILE="$REPO_ROOT/AGENTS.md" +VIBE_FILE="$REPO_ROOT/.vibe/agents/specify-agents.md" # Template file TEMPLATE_FILE="$REPO_ROOT/.specify/templates/agent-file-template.md" @@ -657,12 +658,15 @@ update_specific_agent() { bob) update_agent_file "$BOB_FILE" "IBM Bob" ;; + vibe) + update_agent_file "$VIBE_FILE" "Mistral Vibe" + ;; generic) log_info "Generic agent: no predefined context file. Use the agent-specific update script for your agent." ;; *) log_error "Unknown agent type '$agent_type'" - log_error "Expected: claude|gemini|copilot|cursor-agent|qwen|opencode|codex|windsurf|kilocode|auggie|roo|codebuddy|amp|shai|kiro-cli|agy|bob|qodercli|generic" + log_error "Expected: claude|gemini|copilot|cursor-agent|qwen|opencode|codex|windsurf|kilocode|auggie|roo|codebuddy|amp|shai|kiro-cli|agy|bob|vibe|qodercli|generic" exit 1 ;; esac @@ -750,6 +754,11 @@ update_all_existing_agents() { update_agent_file "$BOB_FILE" "IBM Bob" found_agent=true fi + + if [[ -f "$VIBE_FILE" ]]; then + update_agent_file "$VIBE_FILE" "Mistral Vibe" + found_agent=true + fi # If no agent files exist, create a default Claude file if [[ "$found_agent" == false ]]; then @@ -774,8 +783,7 @@ print_summary() { fi echo - - log_info "Usage: $0 [claude|gemini|copilot|cursor-agent|qwen|opencode|codex|windsurf|kilocode|auggie|roo|codebuddy|amp|shai|kiro-cli|agy|bob|qodercli]" + log_info "Usage: $0 [claude|gemini|copilot|cursor-agent|qwen|opencode|codex|windsurf|kilocode|auggie|roo|codebuddy|amp|shai|kiro-cli|agy|bob|qodercli|vibe]" } #============================================================================== diff --git a/scripts/powershell/update-agent-context.ps1 b/scripts/powershell/update-agent-context.ps1 index 02ce102057..fee7ba6c1f 100644 --- a/scripts/powershell/update-agent-context.ps1 +++ b/scripts/powershell/update-agent-context.ps1 @@ -9,7 +9,7 @@ Mirrors the behavior of scripts/bash/update-agent-context.sh: 2. Plan Data Extraction 3. Agent File Management (create from template or update existing) 4. Content Generation (technology stack, recent changes, timestamp) - 5. Multi-Agent Support (claude, gemini, copilot, cursor-agent, qwen, opencode, codex, windsurf, kilocode, auggie, roo, codebuddy, amp, shai, kiro-cli, agy, bob, qodercli) + 5. Multi-Agent Support (claude, gemini, copilot, cursor-agent, qwen, opencode, codex, windsurf, kilocode, auggie, roo, codebuddy, amp, shai, kiro-cli, agy, bob, qodercli, vibe) .PARAMETER AgentType 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 #> param( [Parameter(Position=0)] - [ValidateSet('claude','gemini','copilot','cursor-agent','qwen','opencode','codex','windsurf','kilocode','auggie','roo','codebuddy','amp','shai','kiro-cli','agy','bob','qodercli','generic')] + [ValidateSet('claude','gemini','copilot','cursor-agent','qwen','opencode','codex','windsurf','kilocode','auggie','roo','codebuddy','amp','shai','kiro-cli','agy','bob','qodercli','vibe','generic')] [string]$AgentType ) @@ -61,6 +61,7 @@ $SHAI_FILE = Join-Path $REPO_ROOT 'SHAI.md' $KIRO_FILE = Join-Path $REPO_ROOT 'AGENTS.md' $AGY_FILE = Join-Path $REPO_ROOT '.agent/rules/specify-rules.md' $BOB_FILE = Join-Path $REPO_ROOT 'AGENTS.md' +$VIBE_FILE = Join-Path $REPO_ROOT '.vibe/agents/specify-agents.md' $TEMPLATE_FILE = Join-Path $REPO_ROOT '.specify/templates/agent-file-template.md' @@ -402,8 +403,9 @@ function Update-SpecificAgent { 'kiro-cli' { Update-AgentFile -TargetFile $KIRO_FILE -AgentName 'Kiro CLI' } 'agy' { Update-AgentFile -TargetFile $AGY_FILE -AgentName 'Antigravity' } 'bob' { Update-AgentFile -TargetFile $BOB_FILE -AgentName 'IBM Bob' } + 'vibe' { Update-AgentFile -TargetFile $VIBE_FILE -AgentName 'Mistral Vibe' } 'generic' { Write-Info 'Generic agent: no predefined context file. Use the agent-specific update script for your agent.' } - 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|kiro-cli|agy|bob|qodercli|generic'; return $false } + 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|kiro-cli|agy|bob|qodercli|vibe|generic'; return $false } } } @@ -426,6 +428,7 @@ function Update-AllExistingAgents { if (Test-Path $KIRO_FILE) { if (-not (Update-AgentFile -TargetFile $KIRO_FILE -AgentName 'Kiro CLI')) { $ok = $false }; $found = $true } if (Test-Path $AGY_FILE) { if (-not (Update-AgentFile -TargetFile $AGY_FILE -AgentName 'Antigravity')) { $ok = $false }; $found = $true } if (Test-Path $BOB_FILE) { if (-not (Update-AgentFile -TargetFile $BOB_FILE -AgentName 'IBM Bob')) { $ok = $false }; $found = $true } + if (Test-Path $VIBE_FILE) { if (-not (Update-AgentFile -TargetFile $VIBE_FILE -AgentName 'Mistral Vibe')) { $ok = $false }; $found = $true } if (-not $found) { Write-Info 'No existing agent files found, creating default Claude file...' if (-not (Update-AgentFile -TargetFile $CLAUDE_FILE -AgentName 'Claude Code')) { $ok = $false } @@ -440,7 +443,7 @@ function Print-Summary { if ($NEW_FRAMEWORK) { Write-Host " - Added framework: $NEW_FRAMEWORK" } if ($NEW_DB -and $NEW_DB -ne 'N/A') { Write-Host " - Added database: $NEW_DB" } Write-Host '' - Write-Info 'Usage: ./update-agent-context.ps1 [-AgentType claude|gemini|copilot|cursor-agent|qwen|opencode|codex|windsurf|kilocode|auggie|roo|codebuddy|amp|shai|kiro-cli|agy|bob|qodercli|generic]' + Write-Info 'Usage: ./update-agent-context.ps1 [-AgentType claude|gemini|copilot|cursor-agent|qwen|opencode|codex|windsurf|kilocode|auggie|roo|codebuddy|amp|shai|kiro-cli|agy|bob|qodercli|vibe|generic]' } function Main { diff --git a/src/specify_cli/__init__.py b/src/specify_cli/__init__.py index e38e77fece..28d8360fa7 100644 --- a/src/specify_cli/__init__.py +++ b/src/specify_cli/__init__.py @@ -266,6 +266,13 @@ def _format_rate_limit_error(status_code: int, headers: httpx.Headers, url: str) "install_url": None, # IDE-based "requires_cli": False, }, + "vibe": { + "name": "Mistral Vibe", + "folder": ".vibe/", + "commands_subdir": "prompts", + "install_url": "https://github.com/mistralai/mistral-vibe", + "requires_cli": True, + }, "generic": { "name": "Generic Agent", "folder": "", @@ -2851,6 +2858,7 @@ def init( specify init --here --ai claude # Alternative syntax for current directory specify init --here --ai codex specify init --here --ai codebuddy + specify init --here --ai vibe # Initialize with Mistral Vibe support specify init --here specify init --here --force # Skip confirmation when current directory not empty specify init my-project --team-ai-directives ~/workspace/team-ai-directives