Skip to content

Commit 3c88b6d

Browse files
committed
merge: integrate upstream changes (kiro-cli, verify extension, fixes)
Merged changes from github/spec-kit upstream: - Added kiro-cli agent support with 'kiro' alias - Added AI_ASSISTANT_ALIASES for alias resolution - Added verify extension to community catalog - Devcontainer kiro-cli installer with SHA256 verification - Updated agent context scripts for kiro-cli - Various upstream improvements and fixes Fork-specific adaptations: - Kept 'q' agent support for backward compatibility (alongside kiro-cli) - Added 'q' to release package scripts (bash/powershell) - Updated tests to verify both q and kiro-cli are present - Fixed _validate_ai_assistant to accept aliases - Fixed duplicate install_ai_skills call in init command - Preserved agentic-sdlc-v* tag prefix in release scripts All 187 tests pass.
2 parents 6933c42 + 524affc commit 3c88b6d

21 files changed

Lines changed: 589 additions & 148 deletions

.devcontainer/devcontainer.json

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,6 @@
5050
"kilocode.Kilo-Code",
5151
// Roo Code
5252
"RooVeterinaryInc.roo-cline",
53-
// Amazon Developer Q
54-
"AmazonWebServices.amazon-q-vscode",
5553
// Claude Code
5654
"anthropic.claude-code"
5755
],

.devcontainer/post-create.sh

Lines changed: 27 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -51,32 +51,33 @@ echo -e "\n🤖 Installing OpenCode CLI..."
5151
run_command "npm install -g opencode-ai@latest"
5252
echo "✅ Done"
5353

54-
echo -e "\n🤖 Installing Amazon Q CLI..."
55-
# 👉🏾 https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/command-line-verify-download.html
56-
57-
run_command "curl --proto '=https' --tlsv1.2 -sSf 'https://desktop-release.q.us-east-1.amazonaws.com/latest/q-x86_64-linux.zip' -o 'q.zip'"
58-
run_command "curl --proto '=https' --tlsv1.2 -sSf 'https://desktop-release.q.us-east-1.amazonaws.com/latest/q-x86_64-linux.zip.sig' -o 'q.zip.sig'"
59-
cat > amazonq-public-key.asc << 'EOF'
60-
-----BEGIN PGP PUBLIC KEY BLOCK-----
61-
62-
mDMEZig60RYJKwYBBAHaRw8BAQdAy/+G05U5/EOA72WlcD4WkYn5SInri8pc4Z6D
63-
BKNNGOm0JEFtYXpvbiBRIENMSSBUZWFtIDxxLWNsaUBhbWF6b24uY29tPoiZBBMW
64-
CgBBFiEEmvYEF+gnQskUPgPsUNx6jcJMVmcFAmYoOtECGwMFCQPCZwAFCwkIBwIC
65-
IgIGFQoJCAsCBBYCAwECHgcCF4AACgkQUNx6jcJMVmef5QD/QWWEGG/cOnbDnp68
66-
SJXuFkwiNwlH2rPw9ZRIQMnfAS0A/0V6ZsGB4kOylBfc7CNfzRFGtovdBBgHqA6P
67-
zQ/PNscGuDgEZig60RIKKwYBBAGXVQEFAQEHQC4qleONMBCq3+wJwbZSr0vbuRba
68-
D1xr4wUPn4Avn4AnAwEIB4h+BBgWCgAmFiEEmvYEF+gnQskUPgPsUNx6jcJMVmcF
69-
AmYoOtECGwwFCQPCZwAACgkQUNx6jcJMVmchMgEA6l3RveCM0YHAGQaSFMkguoAo
70-
vK6FgOkDawgP0NPIP2oA/jIAO4gsAntuQgMOsPunEdDeji2t+AhV02+DQIsXZpoB
71-
=f8yY
72-
-----END PGP PUBLIC KEY BLOCK-----
73-
EOF
74-
run_command "gpg --batch --import amazonq-public-key.asc"
75-
run_command "gpg --verify q.zip.sig q.zip"
76-
run_command "unzip -q q.zip"
77-
run_command "chmod +x ./q/install.sh"
78-
run_command "./q/install.sh --no-confirm"
79-
run_command "rm -rf ./q q.zip q.zip.sig amazonq-public-key.asc"
54+
echo -e "\n🤖 Installing Kiro CLI..."
55+
# https://kiro.dev/docs/cli/
56+
KIRO_INSTALLER_URL="https://cli.kiro.dev/install"
57+
KIRO_INSTALLER_SHA256="7487a65cf310b7fb59b357c4b5e6e3f3259d383f4394ecedb39acf70f307cffb"
58+
KIRO_INSTALLER_PATH="$(mktemp)"
59+
60+
cleanup_kiro_installer() {
61+
rm -f "$KIRO_INSTALLER_PATH"
62+
}
63+
trap cleanup_kiro_installer EXIT
64+
65+
run_command "curl -fsSL \"$KIRO_INSTALLER_URL\" -o \"$KIRO_INSTALLER_PATH\""
66+
run_command "echo \"$KIRO_INSTALLER_SHA256 $KIRO_INSTALLER_PATH\" | sha256sum -c -"
67+
68+
run_command "bash \"$KIRO_INSTALLER_PATH\""
69+
70+
kiro_binary=""
71+
if command -v kiro-cli >/dev/null 2>&1; then
72+
kiro_binary="kiro-cli"
73+
elif command -v kiro >/dev/null 2>&1; then
74+
kiro_binary="kiro"
75+
else
76+
echo -e "\033[0;31m[ERROR] Kiro CLI installation did not create 'kiro-cli' or 'kiro' in PATH.\033[0m" >&2
77+
exit 1
78+
fi
79+
80+
run_command "$kiro_binary --help > /dev/null"
8081
echo "✅ Done"
8182

8283
echo -e "\n🤖 Installing CodeBuddy CLI..."

.github/ISSUE_TEMPLATE/agent_request.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ body:
88
value: |
99
Thanks for requesting a new agent! Before submitting, please check if the agent is already supported.
1010
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, Amazon Q Developer CLI, Amp, SHAI, IBM Bob, Antigravity
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, IBM Bob, Antigravity
1212
1313
- type: input
1414
id: agent-name

.github/ISSUE_TEMPLATE/bug_report.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ body:
7575
- Roo Code
7676
- CodeBuddy
7777
- Qoder CLI
78-
- Amazon Q Developer CLI
78+
- Kiro CLI
7979
- Amp
8080
- SHAI
8181
- IBM Bob

.github/ISSUE_TEMPLATE/feature_request.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ body:
6969
- Roo Code
7070
- CodeBuddy
7171
- Qoder CLI
72-
- Amazon Q Developer CLI
72+
- Kiro CLI
7373
- Amp
7474
- SHAI
7575
- IBM Bob

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ TAG_PREFIX="agentic-sdlc-v"
1919
VERSION_NO_V=${VERSION#v}
2020

2121
ASSETS=()
22-
AGENTS=(copilot claude gemini cursor-agent opencode qwen windsurf codex kilocode auggie roo codebuddy qodercli amp shai q agy bob)
22+
AGENTS=(copilot claude gemini cursor-agent opencode qwen windsurf codex kilocode auggie roo codebuddy qodercli amp shai kiro-cli q agy bob generic)
2323
SCRIPTS=(sh ps)
2424

2525
for agent in "${AGENTS[@]}"; do

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

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
1515
.PARAMETER Agents
1616
Comma or space separated subset of agents to build (default: all)
17-
Valid agents: claude, gemini, copilot, cursor-agent, qwen, opencode, windsurf, codex, kilocode, auggie, roo, codebuddy, amp, q, bob, qodercli, shai, agy, generic
17+
Valid agents: claude, gemini, copilot, cursor-agent, qwen, opencode, windsurf, codex, kilocode, auggie, roo, codebuddy, amp, kiro-cli, q, bob, qodercli, shai, agy, generic
1818
1919
.PARAMETER Scripts
2020
Comma or space separated subset of script types to build (default: both)
@@ -342,6 +342,10 @@ function Build-Variant {
342342
$cmdDir = Join-Path $baseDir ".agents/commands"
343343
Generate-Commands -Agent 'amp' -Extension 'md' -ArgFormat '$ARGUMENTS' -OutputDir $cmdDir -ScriptVariant $Script
344344
}
345+
'kiro-cli' {
346+
$cmdDir = Join-Path $baseDir ".kiro/prompts"
347+
Generate-Commands -Agent 'kiro-cli' -Extension 'md' -ArgFormat '$ARGUMENTS' -OutputDir $cmdDir -ScriptVariant $Script
348+
}
345349
'q' {
346350
$cmdDir = Join-Path $baseDir ".amazonq/prompts"
347351
Generate-Commands -Agent 'q' -Extension 'md' -ArgFormat '$ARGUMENTS' -OutputDir $cmdDir -ScriptVariant $Script
@@ -354,10 +358,21 @@ function Build-Variant {
354358
$cmdDir = Join-Path $baseDir ".qoder/commands"
355359
Generate-Commands -Agent 'qodercli' -Extension 'md' -ArgFormat '$ARGUMENTS' -OutputDir $cmdDir -ScriptVariant $Script
356360
}
361+
'shai' {
362+
$cmdDir = Join-Path $baseDir ".shai/commands"
363+
Generate-Commands -Agent 'shai' -Extension 'md' -ArgFormat '$ARGUMENTS' -OutputDir $cmdDir -ScriptVariant $Script
364+
}
365+
'agy' {
366+
$cmdDir = Join-Path $baseDir ".agent/workflows"
367+
Generate-Commands -Agent 'agy' -Extension 'md' -ArgFormat '$ARGUMENTS' -OutputDir $cmdDir -ScriptVariant $Script
368+
}
357369
'generic' {
358370
$cmdDir = Join-Path $baseDir ".speckit/commands"
359371
Generate-Commands -Agent 'generic' -Extension 'md' -ArgFormat '$ARGUMENTS' -OutputDir $cmdDir -ScriptVariant $Script
360372
}
373+
default {
374+
throw "Unsupported agent '$Agent'."
375+
}
361376
}
362377

363378
# Create zip archive
@@ -367,7 +382,7 @@ function Build-Variant {
367382
}
368383

369384
# Define all agents and scripts
370-
$AllAgents = @('claude', 'gemini', 'copilot', 'cursor-agent', 'qwen', 'opencode', 'windsurf', 'codex', 'kilocode', 'auggie', 'roo', 'codebuddy', 'amp', 'q', 'bob', 'qodercli', 'shai', 'agy', 'generic')
385+
$AllAgents = @('claude', 'gemini', 'copilot', 'cursor-agent', 'qwen', 'opencode', 'windsurf', 'codex', 'kilocode', 'auggie', 'roo', 'codebuddy', 'amp', 'kiro-cli', 'q', 'bob', 'qodercli', 'shai', 'agy', 'generic')
371386
$AllScripts = @('sh', 'ps')
372387

373388
function Normalize-List {
@@ -432,4 +447,4 @@ foreach ($agent in $AgentList) {
432447
Write-Host "`nArchives in ${GenReleasesDir}:"
433448
Get-ChildItem -Path $GenReleasesDir -Filter "spec-kit-template-*-${Version}.zip" | ForEach-Object {
434449
Write-Host " $($_.Name)"
435-
}
450+
}

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

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ set -euo pipefail
66
# Usage: .github/workflows/scripts/create-release-packages.sh <version>
77
# Version argument should include leading 'v'.
88
# Optionally set AGENTS and/or SCRIPTS env vars to limit what gets built.
9-
# AGENTS : space or comma separated subset of: claude gemini copilot cursor-agent qwen opencode windsurf codex amp shai bob generic (default: all)
9+
# AGENTS : space or comma separated subset of: claude gemini copilot cursor-agent qwen opencode windsurf codex kilocode auggie roo codebuddy amp shai kiro-cli agy bob qodercli generic (default: all)
1010
# SCRIPTS : space or comma separated subset of: sh ps (default: both)
1111
# Examples:
1212
# AGENTS=claude SCRIPTS=sh $0 v0.2.0
@@ -239,6 +239,9 @@ build_variant() {
239239
shai)
240240
mkdir -p "$base_dir/.shai/commands"
241241
generate_commands shai md "\$ARGUMENTS" "$base_dir/.shai/commands" "$script" ;;
242+
kiro-cli)
243+
mkdir -p "$base_dir/.kiro/prompts"
244+
generate_commands kiro-cli md "\$ARGUMENTS" "$base_dir/.kiro/prompts" "$script" ;;
242245
q)
243246
mkdir -p "$base_dir/.amazonq/prompts"
244247
generate_commands q md "\$ARGUMENTS" "$base_dir/.amazonq/prompts" "$script" ;;
@@ -257,7 +260,7 @@ build_variant() {
257260
}
258261

259262
# Determine agent list
260-
ALL_AGENTS=(claude gemini copilot cursor-agent qwen opencode windsurf codex kilocode auggie roo codebuddy amp shai q agy bob qodercli generic)
263+
ALL_AGENTS=(claude gemini copilot cursor-agent qwen opencode windsurf codex kilocode auggie roo codebuddy amp shai kiro-cli q agy bob qodercli generic)
261264
ALL_SCRIPTS=(sh ps)
262265

263266
norm_list() {

AGENTS.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ Specify supports multiple AI agents by generating agent-specific command files a
5252
| **Roo Code** | `.roo/rules/` | Markdown | N/A (IDE-based) | Roo Code IDE |
5353
| **CodeBuddy CLI** | `.codebuddy/commands/` | Markdown | `codebuddy` | CodeBuddy CLI |
5454
| **Qoder CLI** | `.qoder/commands/` | Markdown | `qodercli` | Qoder CLI |
55-
| **Amazon Q Developer CLI** | `.amazonq/prompts/` | Markdown | `q` | Amazon Q Developer CLI |
55+
| **Kiro CLI** | `.kiro/prompts/` | Markdown | `kiro-cli` | Kiro CLI |
5656
| **Amp** | `.agents/commands/` | Markdown | `amp` | Amp CLI |
5757
| **SHAI** | `.shai/commands/` | Markdown | `shai` | SHAI CLI |
5858
| **IBM Bob** | `.bob/commands/` | Markdown | N/A (IDE-based) | IBM Bob IDE |
@@ -94,7 +94,7 @@ This eliminates the need for special-case mappings throughout the codebase.
9494
- `folder`: Directory where agent-specific files are stored (relative to project root)
9595
- `commands_subdir`: Subdirectory name within the agent folder where command/prompt files are stored (default: `"commands"`)
9696
- Most agents use `"commands"` (e.g., `.claude/commands/`)
97-
- Some agents use alternative names: `"agents"` (copilot), `"workflows"` (windsurf, kilocode, agy), `"prompts"` (codex, q), `"command"` (opencode - singular)
97+
- Some agents use alternative names: `"agents"` (copilot), `"workflows"` (windsurf, kilocode, agy), `"prompts"` (codex, kiro-cli), `"command"` (opencode - singular)
9898
- This field enables `--ai-skills` to locate command templates correctly for skill generation
9999
- `install_url`: Installation documentation URL (set to `None` for IDE-based agents)
100100
- `requires_cli`: Whether the agent requires a CLI tool check during initialization
@@ -104,7 +104,7 @@ This eliminates the need for special-case mappings throughout the codebase.
104104
Update the `--ai` parameter help text in the `init()` command to include the new agent:
105105

106106
```python
107-
ai_assistant: str = typer.Option(None, "--ai", help="AI assistant to use: claude, gemini, copilot, cursor-agent, qwen, opencode, codex, windsurf, kilocode, auggie, codebuddy, new-agent-cli, or q"),
107+
ai_assistant: str = typer.Option(None, "--ai", help="AI assistant to use: claude, gemini, copilot, cursor-agent, qwen, opencode, codex, windsurf, kilocode, auggie, codebuddy, new-agent-cli, or kiro-cli"),
108108
```
109109

110110
Also update any function docstrings, examples, and error messages that list available agents.
@@ -125,7 +125,7 @@ Modify `.github/workflows/scripts/create-release-packages.sh`:
125125
##### Add to ALL_AGENTS array
126126

127127
```bash
128-
ALL_AGENTS=(claude gemini copilot cursor-agent qwen opencode windsurf q)
128+
ALL_AGENTS=(claude gemini copilot cursor-agent qwen opencode windsurf kiro-cli)
129129
```
130130

131131
##### Add case statement for directory structure
@@ -325,7 +325,7 @@ Require a command-line tool to be installed:
325325
- **Cursor**: `cursor-agent` CLI
326326
- **Qwen Code**: `qwen` CLI
327327
- **opencode**: `opencode` CLI
328-
- **Amazon Q Developer CLI**: `q` CLI
328+
- **Kiro CLI**: `kiro-cli` CLI
329329
- **CodeBuddy CLI**: `codebuddy` CLI
330330
- **Qoder CLI**: `qodercli` CLI
331331
- **Amp**: `amp` CLI
@@ -343,7 +343,7 @@ Work within integrated development environments:
343343

344344
### Markdown Format
345345

346-
Used by: Claude, Cursor, opencode, Windsurf, Amazon Q Developer, Amp, SHAI, IBM Bob
346+
Used by: Claude, Cursor, opencode, Windsurf, Kiro CLI, Amp, SHAI, IBM Bob
347347

348348
**Standard format:**
349349

CHANGELOG.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,18 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
99

1010
## [Unreleased]
1111

12+
### Merged from Upstream (spec-kit 0.1.13)
13+
14+
- feat: add kiro-cli and AGENT_CONFIG consistency coverage (#1690)
15+
- feat: add verify extension to community catalog (#1726)
16+
- Add Retrospective Extension to community catalog README table (#1741)
17+
- fix(scripts): add empty description validation and branch checkout error handling (#1559)
18+
- fix: correct Copilot extension command registration (#1724)
19+
- fix(implement): remove Makefile from C ignore patterns (#1558)
20+
- Add sync extension to community catalog (#1728)
21+
- fix(checklist): clarify file handling behavior for append vs create (#1556)
22+
- fix(clarify): correct conflicting question limit from 10 to 5 (#1557)
23+
1224
### Added
1325

1426
- **LevelUp Extension**: Modularized `/spec.levelup` into dedicated extension with 5 CDR-based commands (#56)

0 commit comments

Comments
 (0)