feat(agents): add Goose AI agent support by furkankoykiran · Pull Request #2015 · github/spec-kit · GitHub
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
310b696
feat(integrations): add YamlIntegration base class for YAML recipe ag…
furkankoykiran Apr 9, 2026
61de74b
feat(integrations): add Goose integration subpackage with YAML recipe…
furkankoykiran Apr 9, 2026
826d7a3
feat(integrations): register GooseIntegration in the integration regi…
furkankoykiran Apr 9, 2026
46d2f03
feat(agents): add YAML format support to CommandRegistrar for extensi…
furkankoykiran Apr 9, 2026
d03b398
feat(scripts): add goose agent type to bash update-agent-context script
furkankoykiran Apr 9, 2026
25775e2
feat(scripts): add goose agent type to PowerShell update-agent-contex…
furkankoykiran Apr 9, 2026
2735684
docs(agents): add Goose to supported agents table and integration notes
furkankoykiran Apr 9, 2026
54beeae
docs(readme): add Goose to supported agents table
furkankoykiran Apr 9, 2026
a3ea86f
test(integrations): add YamlIntegrationTests base mixin for YAML agen…
furkankoykiran Apr 9, 2026
f3d27f5
test(integrations): add Goose integration tests
furkankoykiran Apr 9, 2026
9a26c7d
test(consistency): add Goose consistency checks for config, registrar…
furkankoykiran Apr 9, 2026
2c34720
docs(agents): move Goose to YAML Format section in Command File Formats
furkankoykiran Apr 9, 2026
d912b2d
refactor(agents): delegate render_yaml_command to YamlIntegration
furkankoykiran Apr 9, 2026
3353eae
fix(agents): guard alias output path against directory traversal
furkankoykiran Apr 9, 2026
db1e73a
docs(agents): add Goose to Multi-Agent Support comment list in update…
furkankoykiran Apr 9, 2026
7d89e3e
fix(agents): add goose to print_summary Usage line in bash context sc…
furkankoykiran Apr 10, 2026
db59396
fix(agents): add goose to Print-Summary Usage line in PowerShell cont…
furkankoykiran Apr 10, 2026
c2dec6c
fix(agents): normalize description and title types in YamlIntegration…
furkankoykiran Apr 10, 2026
ed71f00
fix(agents): validate shared script exists before exec in Goose bash …
furkankoykiran Apr 10, 2026
2d3672f
fix(agents): validate shared script exists before invoke in Goose Pow…
furkankoykiran Apr 10, 2026
d501188
fix(agents): normalize title and description types in render_yaml_com…
furkankoykiran Apr 10, 2026
625ca18
fix(agents): replace $ARGUMENTS with arg_placeholder in process_templ…
furkankoykiran Apr 10, 2026
44927cb
test(agents): assert $ARGUMENTS absent from generated YAML recipes
furkankoykiran Apr 10, 2026
b7392f1
test(agents): assert $ARGUMENTS absent from generated TOML commands
furkankoykiran Apr 10, 2026
880d0b1
fix(tests): rewrite docstring to avoid embedded triple-quote in TOML …
furkankoykiran Apr 10, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
69 changes: 68 additions & 1 deletion AGENTS.md
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -302,6 +302,7 @@ Community projects that extend, visualize, or build on Spec Kit:
| [Cursor](https://cursor.sh/) | ✅ | |
| [Forge](https://forgecode.dev/) | ✅ | CLI tool: `forge` |
| [Gemini CLI](https://github.com/google-gemini/gemini-cli) | ✅ | |
| [Goose](https://block.github.io/goose/) | ✅ | Uses YAML recipe format in `.goose/recipes/` with slash command support |
| [GitHub Copilot](https://code.visualstudio.com/) | ✅ | |
| [IBM Bob](https://www.ibm.com/products/bob) | ✅ | IDE-based agent with slash command support |
| [Jules](https://jules.google.com/) | ✅ | |
Expand Down Expand Up @@ -640,7 +641,7 @@ specify init . --force --ai claude
specify init --here --force --ai claude
```

The CLI will check if you have Claude Code, Gemini CLI, Cursor CLI, Qwen CLI, opencode, Codex CLI, Qoder CLI, Tabnine CLI, Kiro CLI, Pi, Forge, or Mistral Vibe 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:
The CLI will check if you have Claude Code, Gemini CLI, Cursor CLI, Qwen CLI, opencode, Codex CLI, Qoder CLI, Tabnine CLI, Kiro CLI, Pi, Forge, Goose, or Mistral Vibe 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:

```bash
specify init <project_name> --ai claude --ignore-agent-tools
Expand Down
15 changes: 9 additions & 6 deletions scripts/bash/update-agent-context.sh
Original file line number Diff line number Diff line change
Expand Up @@ -30,12 +30,12 @@
#
# 5. Multi-Agent Support
# - Handles agent-specific file paths and naming conventions
# - Supports: Claude, Gemini, Copilot, Cursor, Qwen, opencode, Codex, Windsurf, Junie, Kilo Code, Auggie CLI, Roo Code, CodeBuddy CLI, Qoder CLI, Amp, SHAI, Tabnine CLI, Kiro CLI, Mistral Vibe, Kimi Code, Pi Coding Agent, iFlow CLI, Forge, Antigravity or Generic
# - Supports: Claude, Gemini, Copilot, Cursor, Qwen, opencode, Codex, Windsurf, Junie, Kilo Code, Auggie CLI, Roo Code, CodeBuddy CLI, Qoder CLI, Amp, SHAI, Tabnine CLI, Kiro CLI, Mistral Vibe, Kimi Code, Pi Coding Agent, iFlow CLI, Forge, Goose, Antigravity or Generic
# - Can update single agents or all existing agent files
# - Creates default Claude file if no agent files exist
#
# Usage: ./update-agent-context.sh [agent_type]
# Agent types: claude|gemini|copilot|cursor-agent|qwen|opencode|codex|windsurf|junie|kilocode|auggie|roo|codebuddy|amp|shai|tabnine|kiro-cli|agy|bob|vibe|qodercli|kimi|trae|pi|iflow|forge|generic
# Agent types: claude|gemini|copilot|cursor-agent|qwen|opencode|codex|windsurf|junie|kilocode|auggie|roo|codebuddy|amp|shai|tabnine|kiro-cli|agy|bob|vibe|qodercli|kimi|trae|pi|iflow|forge|goose|generic
Comment thread
furkankoykiran marked this conversation as resolved.
# Leave empty to update all existing agent files
Comment thread
furkankoykiran marked this conversation as resolved.

set -e
Expand Down Expand Up @@ -74,7 +74,7 @@ AUGGIE_FILE="$REPO_ROOT/.augment/rules/specify-rules.md"
ROO_FILE="$REPO_ROOT/.roo/rules/specify-rules.md"
CODEBUDDY_FILE="$REPO_ROOT/CODEBUDDY.md"
QODER_FILE="$REPO_ROOT/QODER.md"
# Amp, Kiro CLI, IBM Bob, Pi, and Forge all share AGENTS.md — use AGENTS_FILE to avoid
# Amp, Kiro CLI, IBM Bob, Pi, Forge, and Goose all share AGENTS.md — use AGENTS_FILE to avoid
# updating the same file multiple times.
AMP_FILE="$AGENTS_FILE"
SHAI_FILE="$REPO_ROOT/SHAI.md"
Expand Down Expand Up @@ -710,12 +710,15 @@ update_specific_agent() {
forge)
update_agent_file "$AGENTS_FILE" "Forge" || return 1
;;
goose)
update_agent_file "$AGENTS_FILE" "Goose" || return 1
;;
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|junie|kilocode|auggie|roo|codebuddy|amp|shai|tabnine|kiro-cli|agy|bob|vibe|qodercli|kimi|trae|pi|iflow|forge|generic"
log_error "Expected: claude|gemini|copilot|cursor-agent|qwen|opencode|codex|windsurf|junie|kilocode|auggie|roo|codebuddy|amp|shai|tabnine|kiro-cli|agy|bob|vibe|qodercli|kimi|trae|pi|iflow|forge|goose|generic"
exit 1
;;
esac
Expand Down Expand Up @@ -759,7 +762,7 @@ update_all_existing_agents() {
_update_if_new "$COPILOT_FILE" "GitHub Copilot" || _all_ok=false
_update_if_new "$CURSOR_FILE" "Cursor IDE" || _all_ok=false
_update_if_new "$QWEN_FILE" "Qwen Code" || _all_ok=false
_update_if_new "$AGENTS_FILE" "Codex/opencode/Amp/Kiro/Bob/Pi/Forge" || _all_ok=false
_update_if_new "$AGENTS_FILE" "Codex/opencode/Amp/Kiro/Bob/Pi/Forge/Goose" || _all_ok=false
_update_if_new "$WINDSURF_FILE" "Windsurf" || _all_ok=false
_update_if_new "$JUNIE_FILE" "Junie" || _all_ok=false
_update_if_new "$KILOCODE_FILE" "Kilo Code" || _all_ok=false
Expand Down Expand Up @@ -800,7 +803,7 @@ print_summary() {
fi

echo
log_info "Usage: $0 [claude|gemini|copilot|cursor-agent|qwen|opencode|codex|windsurf|junie|kilocode|auggie|roo|codebuddy|amp|shai|tabnine|kiro-cli|agy|bob|vibe|qodercli|kimi|trae|pi|iflow|forge|generic]"
log_info "Usage: $0 [claude|gemini|copilot|cursor-agent|qwen|opencode|codex|windsurf|junie|kilocode|auggie|roo|codebuddy|amp|shai|tabnine|kiro-cli|agy|bob|vibe|qodercli|kimi|trae|pi|iflow|forge|goose|generic]"
}

#==============================================================================
Expand Down
12 changes: 7 additions & 5 deletions scripts/powershell/update-agent-context.ps1
Loading
Loading