Skip to content

Commit 442f5a6

Browse files
committed
chore: merge upstream 7 commits (workflow engine, --integration flag, community catalog)
- a00e679 Add workflow engine with catalog system (github#2158) - 3467d26 chore: release 0.7.0 (github#2217) - 39c7b04 chore: deprecate --ai flag in favor of --integration (github#2218) - f0886bd feat: register architect-preview in community catalog (github#2214) - 33a28ec fix: unofficial PyPI warning + legacy extension command name auto-correction (github#2027) - 2f5417f Add agent-assign extension to community catalog (github#2030) - b78a3cd docs: merge TESTING.md into CONTRIBUTING.md (github#2228)
2 parents 3bb512c + 3467d26 commit 442f5a6

308 files changed

Lines changed: 59557 additions & 15 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.devcontainer/devcontainer.json

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
// For format details, see https://aka.ms/devcontainer.json. For config options, see the
2+
// README at: https://github.com/devcontainers/templates/tree/main/src/python
3+
{
4+
"name": "SpecKitDevContainer",
5+
// Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile
6+
"image": "mcr.microsoft.com/devcontainers/python:3.13-trixie", // based on Debian "Trixie" (13)
7+
"features": {
8+
"ghcr.io/devcontainers/features/common-utils:2": {
9+
"installZsh": true,
10+
"installOhMyZsh": true,
11+
"installOhMyZshConfig": true,
12+
"upgradePackages": true,
13+
"username": "devcontainer",
14+
"userUid": "automatic",
15+
"userGid": "automatic"
16+
},
17+
"ghcr.io/devcontainers/features/dotnet:2": {
18+
"version": "lts"
19+
},
20+
"ghcr.io/devcontainers/features/git:1": {
21+
"ppa": true,
22+
"version": "latest"
23+
},
24+
"ghcr.io/devcontainers/features/node": {
25+
"version": "lts"
26+
}
27+
},
28+
29+
// Use 'forwardPorts' to make a list of ports inside the container available locally.
30+
"forwardPorts": [
31+
8080 // for Spec-Kit documentation site
32+
],
33+
"containerUser": "devcontainer",
34+
"updateRemoteUserUID": true,
35+
"postCreateCommand": "chmod +x ./.devcontainer/post-create.sh && ./.devcontainer/post-create.sh",
36+
"postStartCommand": "git config --global --add safe.directory ${containerWorkspaceFolder}",
37+
"customizations": {
38+
"vscode": {
39+
"extensions": [
40+
"mhutchie.git-graph",
41+
"eamodio.gitlens",
42+
"anweber.reveal-button",
43+
"chrisdias.promptboost",
44+
// Github Copilot
45+
"GitHub.copilot",
46+
"GitHub.copilot-chat",
47+
// Codex
48+
"openai.chatgpt",
49+
// Kilo Code
50+
"kilocode.Kilo-Code",
51+
// Roo Code
52+
"RooVeterinaryInc.roo-cline",
53+
// Claude Code
54+
"anthropic.claude-code"
55+
],
56+
"settings": {
57+
"debug.javascript.autoAttachFilter": "disabled", // fix running commands in integrated terminal
58+
59+
// Specify settings for Github Copilot
60+
"git.autofetch": true,
61+
"chat.promptFilesRecommendations": {
62+
"speckit.constitution": true,
63+
"speckit.specify": true,
64+
"speckit.plan": true,
65+
"speckit.tasks": true,
66+
"speckit.implement": true
67+
},
68+
"chat.tools.terminal.autoApprove": {
69+
".specify/scripts/bash/": true,
70+
".specify/scripts/powershell/": true
71+
}
72+
}
73+
}
74+
}
75+
}

.devcontainer/post-create.sh

Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
#!/bin/bash
2+
3+
# Exit immediately on error, treat unset variables as an error, and fail if any command in a pipeline fails.
4+
set -euo pipefail
5+
6+
# Function to run a command and show logs only on error
7+
run_command() {
8+
local command_to_run="$*"
9+
local output
10+
local exit_code
11+
12+
# Capture all output (stdout and stderr)
13+
output=$(eval "$command_to_run" 2>&1) || exit_code=$?
14+
exit_code=${exit_code:-0}
15+
16+
if [ $exit_code -ne 0 ]; then
17+
echo -e "\033[0;31m[ERROR] Command failed (Exit Code $exit_code): $command_to_run\033[0m" >&2
18+
echo -e "\033[0;31m$output\033[0m" >&2
19+
20+
exit $exit_code
21+
fi
22+
}
23+
24+
# Installing CLI-based AI Agents
25+
26+
echo -e "\n🤖 Installing Copilot CLI..."
27+
run_command "npm install -g @github/copilot@latest"
28+
echo "✅ Done"
29+
30+
echo -e "\n🤖 Installing Claude CLI..."
31+
run_command "npm install -g @anthropic-ai/claude-code@latest"
32+
echo "✅ Done"
33+
34+
echo -e "\n🤖 Installing Codex CLI..."
35+
run_command "npm install -g @openai/codex@latest"
36+
echo "✅ Done"
37+
38+
echo -e "\n🤖 Installing Gemini CLI..."
39+
run_command "npm install -g @google/gemini-cli@latest"
40+
echo "✅ Done"
41+
42+
echo -e "\n🤖 Installing Augie CLI..."
43+
run_command "npm install -g @augmentcode/auggie@latest"
44+
echo "✅ Done"
45+
46+
echo -e "\n🤖 Installing Qwen Code CLI..."
47+
run_command "npm install -g @qwen-code/qwen-code@latest"
48+
echo "✅ Done"
49+
50+
echo -e "\n🤖 Installing OpenCode CLI..."
51+
run_command "npm install -g opencode-ai@latest"
52+
echo "✅ Done"
53+
54+
echo -e "\n🤖 Installing Junie CLI..."
55+
run_command "npm install -g @jetbrains/junie-cli@latest"
56+
echo "✅ Done"
57+
58+
echo -e "\n🤖 Installing Pi Coding Agent..."
59+
run_command "npm install -g @mariozechner/pi-coding-agent@latest"
60+
echo "✅ Done"
61+
62+
echo -e "\n🤖 Installing Kiro CLI..."
63+
# https://kiro.dev/docs/cli/
64+
KIRO_INSTALLER_URL="https://kiro.dev/install.sh"
65+
KIRO_INSTALLER_SHA256="7487a65cf310b7fb59b357c4b5e6e3f3259d383f4394ecedb39acf70f307cffb"
66+
KIRO_INSTALLER_PATH="$(mktemp)"
67+
68+
cleanup_kiro_installer() {
69+
rm -f "$KIRO_INSTALLER_PATH"
70+
}
71+
trap cleanup_kiro_installer EXIT
72+
73+
run_command "curl -fsSL \"$KIRO_INSTALLER_URL\" -o \"$KIRO_INSTALLER_PATH\""
74+
run_command "echo \"$KIRO_INSTALLER_SHA256 $KIRO_INSTALLER_PATH\" | sha256sum -c -"
75+
76+
run_command "bash \"$KIRO_INSTALLER_PATH\""
77+
78+
kiro_binary=""
79+
if command -v kiro-cli >/dev/null 2>&1; then
80+
kiro_binary="kiro-cli"
81+
elif command -v kiro >/dev/null 2>&1; then
82+
kiro_binary="kiro"
83+
else
84+
echo -e "\033[0;31m[ERROR] Kiro CLI installation did not create 'kiro-cli' or 'kiro' in PATH.\033[0m" >&2
85+
exit 1
86+
fi
87+
88+
run_command "$kiro_binary --help > /dev/null"
89+
echo "✅ Done"
90+
91+
echo -e "\n🤖 Installing Kimi CLI..."
92+
# https://code.kimi.com
93+
run_command "pipx install kimi-cli"
94+
echo "✅ Done"
95+
96+
echo -e "\n🤖 Installing CodeBuddy CLI..."
97+
run_command "npm install -g @tencent-ai/codebuddy-code@latest"
98+
echo "✅ Done"
99+
100+
# Installing UV (Python package manager)
101+
echo -e "\n🐍 Installing UV - Python Package Manager..."
102+
run_command "pipx install uv"
103+
echo "✅ Done"
104+
105+
# Installing DocFx (for documentation site)
106+
echo -e "\n📚 Installing DocFx..."
107+
run_command "dotnet tool update -g docfx"
108+
echo "✅ Done"
109+
110+
echo -e "\n🧹 Cleaning cache..."
111+
run_command "sudo apt-get autoclean"
112+
run_command "sudo apt-get clean"
113+
114+
echo "✅ Setup completed. Happy coding! 🚀"

.gitattributes

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
* text=auto eol=lf

.github/CODEOWNERS

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# Global code owner
2+
* @mnriem
3+
Lines changed: 141 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,141 @@
1+
name: Agent Request
2+
description: Request support for a new AI agent/assistant in Spec Kit
3+
title: "[Agent]: Add support for "
4+
labels: ["agent-request", "enhancement", "needs-triage"]
5+
body:
6+
- type: markdown
7+
attributes:
8+
value: |
9+
Thanks for requesting a new agent! Before submitting, please check if the agent is already supported.
10+
11+
**Currently supported agents**: Claude Code, Gemini CLI, GitHub Copilot, Cursor, Qwen Code, opencode, Codex CLI, Windsurf, Kilo Code, Auggie CLI, Roo Code, CodeBuddy, Qoder CLI, Kiro CLI, Amp, SHAI, Tabnine CLI, Antigravity, IBM Bob, Mistral Vibe, Kimi Code, Trae, Pi Coding Agent, iFlow CLI
12+
13+
- type: input
14+
id: agent-name
15+
attributes:
16+
label: Agent Name
17+
description: What is the name of the AI agent/assistant?
18+
placeholder: "e.g., SuperCoder AI"
19+
validations:
20+
required: true
21+
22+
- type: input
23+
id: website
24+
attributes:
25+
label: Official Website
26+
description: Link to the agent's official website or documentation
27+
placeholder: "https://..."
28+
validations:
29+
required: true
30+
31+
- type: dropdown
32+
id: agent-type
33+
attributes:
34+
label: Agent Type
35+
description: How is the agent accessed?
36+
options:
37+
- CLI tool (command-line interface)
38+
- IDE extension/plugin
39+
- Both CLI and IDE
40+
- Other
41+
validations:
42+
required: true
43+
44+
- type: input
45+
id: cli-command
46+
attributes:
47+
label: CLI Command (if applicable)
48+
description: What command is used to invoke the agent from terminal?
49+
placeholder: "e.g., supercode, ai-assistant"
50+
51+
- type: input
52+
id: install-method
53+
attributes:
54+
label: Installation Method
55+
description: How is the agent installed?
56+
placeholder: "e.g., npm install -g supercode, pip install supercode, IDE marketplace"
57+
validations:
58+
required: true
59+
60+
- type: textarea
61+
id: command-structure
62+
attributes:
63+
label: Command/Workflow Structure
64+
description: How does the agent define custom commands or workflows?
65+
placeholder: |
66+
- Command file format (Markdown, YAML, TOML, etc.)
67+
- Directory location (e.g., .supercode/commands/)
68+
- Example command file structure
69+
validations:
70+
required: true
71+
72+
- type: textarea
73+
id: argument-pattern
74+
attributes:
75+
label: Argument Passing Pattern
76+
description: How does the agent handle arguments in commands?
77+
placeholder: |
78+
e.g., Uses {{args}}, $ARGUMENTS, %ARGS%, or other placeholder format
79+
Example: "Run test suite with {{args}}"
80+
81+
- type: dropdown
82+
id: popularity
83+
attributes:
84+
label: Popularity/Usage
85+
description: How widely is this agent used?
86+
options:
87+
- Widely used (thousands+ of users)
88+
- Growing adoption (hundreds of users)
89+
- New/emerging (less than 100 users)
90+
- Unknown
91+
validations:
92+
required: true
93+
94+
- type: textarea
95+
id: documentation
96+
attributes:
97+
label: Documentation Links
98+
description: Links to relevant documentation for custom commands/workflows
99+
placeholder: |
100+
- Command documentation: https://...
101+
- API/CLI reference: https://...
102+
- Examples: https://...
103+
104+
- type: textarea
105+
id: use-case
106+
attributes:
107+
label: Use Case
108+
description: Why do you want this agent supported in Spec Kit?
109+
placeholder: Explain your workflow and how this agent fits into your development process
110+
validations:
111+
required: true
112+
113+
- type: textarea
114+
id: example-command
115+
attributes:
116+
label: Example Command File
117+
description: If possible, provide an example of a command file for this agent
118+
render: markdown
119+
placeholder: |
120+
```toml
121+
description = "Example command"
122+
prompt = "Do something with {{args}}"
123+
```
124+
125+
- type: checkboxes
126+
id: contribution
127+
attributes:
128+
label: Contribution
129+
description: Are you willing to help implement support for this agent?
130+
options:
131+
- label: I can help test the integration
132+
- label: I can provide example command files
133+
- label: I can help with documentation
134+
- label: I can submit a pull request for the integration
135+
136+
- type: textarea
137+
id: context
138+
attributes:
139+
label: Additional Context
140+
description: Any other relevant information about this agent
141+
placeholder: Screenshots, community links, comparison to existing agents, etc.

0 commit comments

Comments
 (0)