Skip to content

Commit 18236f2

Browse files
authored
Merge pull request #451 from github/spec-kit-vnext
Spec Kit Improvements
2 parents 385d17c + 974347c commit 18236f2

File tree

15 files changed

+184
-41
lines changed

15 files changed

+184
-41
lines changed

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,5 +32,9 @@ gh release create "$VERSION" \
3232
.genreleases/spec-kit-template-windsurf-ps-"$VERSION".zip \
3333
.genreleases/spec-kit-template-codex-sh-"$VERSION".zip \
3434
.genreleases/spec-kit-template-codex-ps-"$VERSION".zip \
35+
.genreleases/spec-kit-template-kilocode-sh-"$VERSION".zip \
36+
.genreleases/spec-kit-template-kilocode-ps-"$VERSION".zip \
37+
.genreleases/spec-kit-template-auggie-sh-"$VERSION".zip \
38+
.genreleases/spec-kit-template-auggie-ps-"$VERSION".zip \
3539
--title "Spec Kit Templates - $VERSION_NO_V" \
3640
--notes-file release_notes.md

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

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,13 +163,19 @@ build_variant() {
163163
codex)
164164
mkdir -p "$base_dir/.codex/prompts"
165165
generate_commands codex md "\$ARGUMENTS" "$base_dir/.codex/prompts" "$script" ;;
166+
kilocode)
167+
mkdir -p "$base_dir/.kilocode/workflows"
168+
generate_commands kilocode md "\$ARGUMENTS" "$base_dir/.kilocode/workflows" "$script" ;;
169+
auggie)
170+
mkdir -p "$base_dir/.augment/commands"
171+
generate_commands auggie md "\$ARGUMENTS" "$base_dir/.augment/commands" "$script" ;;
166172
esac
167173
( cd "$base_dir" && zip -r "../spec-kit-template-${agent}-${script}-${NEW_VERSION}.zip" . )
168174
echo "Created $GENRELEASES_DIR/spec-kit-template-${agent}-${script}-${NEW_VERSION}.zip"
169175
}
170176

171177
# Determine agent list
172-
ALL_AGENTS=(claude gemini copilot cursor qwen opencode windsurf codex)
178+
ALL_AGENTS=(claude gemini copilot cursor qwen opencode windsurf codex kilocode auggie)
173179
ALL_SCRIPTS=(sh ps)
174180

175181

AGENTS.md

Lines changed: 41 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,23 @@ AI_CHOICES = {
5959
}
6060
```
6161

62+
Also update the `agent_folder_map` in the same file to include the new agent's folder for the security notice:
63+
64+
```python
65+
agent_folder_map = {
66+
"claude": ".claude/",
67+
"gemini": ".gemini/",
68+
"cursor": ".cursor/",
69+
"qwen": ".qwen/",
70+
"opencode": ".opencode/",
71+
"codex": ".codex/",
72+
"windsurf": ".windsurf/", # Add new agent folder here
73+
"kilocode": ".kilocode/",
74+
"auggie": ".auggie/",
75+
"copilot": ".github/"
76+
}
77+
```
78+
6279
#### 2. Update CLI Help Text
6380

6481
Update all help text and examples to include the new agent:
@@ -67,7 +84,16 @@ Update all help text and examples to include the new agent:
6784
- Function docstrings and examples
6885
- Error messages with agent lists
6986

70-
#### 3. Update Release Package Script
87+
#### 3. Update README Documentation
88+
89+
Update the **Supported AI Agents** section in `README.md` to include the new agent:
90+
91+
- Add the new agent to the table with appropriate support level (Full/Partial)
92+
- Include the agent's official website link
93+
- Add any relevant notes about the agent's implementation
94+
- Ensure the table formatting remains aligned and consistent
95+
96+
#### 4. Update Release Package Script
7197

7298
Modify `.github/workflows/scripts/create-release-packages.sh`:
7399

@@ -86,7 +112,19 @@ case $agent in
86112
esac
87113
```
88114

89-
#### 4. Update Agent Context Scripts
115+
#### 4. Update GitHub Release Script
116+
117+
Modify `.github/workflows/scripts/create-github-release.sh` to include the new agent's packages:
118+
119+
```bash
120+
gh release create "$VERSION" \
121+
# ... existing packages ...
122+
.genreleases/spec-kit-template-windsurf-sh-"$VERSION".zip \
123+
.genreleases/spec-kit-template-windsurf-ps-"$VERSION".zip \
124+
# Add new agent packages here
125+
```
126+
127+
#### 5. Update Agent Context Scripts
90128

91129
##### Bash script (`scripts/bash/update-agent-context.sh`):
92130

@@ -132,7 +170,7 @@ switch ($AgentType) {
132170
}
133171
```
134172

135-
#### 5. Update CLI Tool Checks (Optional)
173+
#### 6. Update CLI Tool Checks (Optional)
136174

137175
For agents that require CLI tools, add checks in the `check()` command and agent validation:
138176

CHANGELOG.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,19 @@ All notable changes to the Specify CLI will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [0.0.13] - 2025-09-21
9+
10+
### Added
11+
12+
- Support for Kilo Code. Thank you [@shahrukhkhan489](https://github.com/shahrukhkhan489) with [#394](https://github.com/github/spec-kit/pull/394).
13+
- Support for Auggie CLI. Thank you [@hungthai1401](https://github.com/hungthai1401) with [#137](https://github.com/github/spec-kit/pull/137).
14+
- Agent folder security notice displayed after project provisioning completion, warning users that some agents may store credentials or auth tokens in their agent folders and recommending adding relevant folders to `.gitignore` to prevent accidental credential leakage.
15+
16+
### Changed
17+
18+
- Warning displayed to ensure that folks are aware that they might need to add their agent folder to `.gitignore`.
19+
- Cleaned up the `check` command output.
20+
821
## [0.0.12] - 2025-09-21
922

1023
### Changed

CONTRIBUTING.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ These are one time installations required to be able to test your changes locall
1111
1. Install [Python 3.11+](https://www.python.org/downloads/)
1212
1. Install [uv](https://docs.astral.sh/uv/) for package management
1313
1. Install [Git](https://git-scm.com/downloads)
14-
1. Have an AI coding agent available: [Claude Code](https://www.anthropic.com/claude-code), [GitHub Copilot](https://code.visualstudio.com/), [Gemini CLI](https://github.com/google-gemini/gemini-cli), or [Qwen Code](https://github.com/QwenLM/qwen-code). We're working on adding support for other agents as well.
14+
1. Have an [AI coding agent available](README.md#-supported-ai-agents)
1515

1616
## Submitting a pull request
1717

README.md

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
- [🤔 What is Spec-Driven Development?](#-what-is-spec-driven-development)
1818
- [⚡ Get started](#-get-started)
1919
- [📽️ Video Overview](#️-video-overview)
20+
- [🤖 Supported AI Agents](#-supported-ai-agents)
2021
- [🔧 Specify CLI Reference](#-specify-cli-reference)
2122
- [📚 Core philosophy](#-core-philosophy)
2223
- [🌟 Development phases](#-development-phases)
@@ -92,6 +93,21 @@ Want to see Spec Kit in action? Watch our [video overview](https://www.youtube.c
9293

9394
[![Spec Kit video header](/media/spec-kit-video-header.jpg)](https://www.youtube.com/watch?v=a9eR1xsfvHg&pp=0gcJCckJAYcqIYzv)
9495

96+
## 🤖 Supported AI Agents
97+
98+
| Agent | Support | Notes |
99+
|-----------------------------------------------------------|---------|---------------------------------------------------|
100+
| [Claude Code](https://www.anthropic.com/claude-code) || |
101+
| [GitHub Copilot](https://code.visualstudio.com/) || |
102+
| [Gemini CLI](https://github.com/google-gemini/gemini-cli) || |
103+
| [Cursor](https://cursor.sh/) || |
104+
| [Qwen Code](https://github.com/QwenLM/qwen-code) || |
105+
| [opencode](https://opencode.ai/) || |
106+
| [Windsurf](https://windsurf.com/) || |
107+
| [Kilo Code](https://github.com/Kilo-Org/kilocode) || |
108+
| [Auggie CLI](https://docs.augmentcode.com/cli/overview) || |
109+
| [Codex CLI](https://github.com/openai/codex) | ⚠️ | Codex [does not support](https://github.com/openai/codex/issues/2890) custom arguments for slash commands. |
110+
95111
## 🔧 Specify CLI Reference
96112

97113
The `specify` command supports the following options:
@@ -108,7 +124,7 @@ The `specify` command supports the following options:
108124
| Argument/Option | Type | Description |
109125
|------------------------|----------|------------------------------------------------------------------------------|
110126
| `<project-name>` | Argument | Name for your new project directory (optional if using `--here`) |
111-
| `--ai` | Option | AI assistant to use: `claude`, `gemini`, `copilot`, `cursor`, `qwen`, `opencode`, `codex`, or `windsurf` |
127+
| `--ai` | Option | AI assistant to use: `claude`, `gemini`, `copilot`, `cursor`, `qwen`, `opencode`, `codex`, `windsurf`, `kilocode`, or `auggie` |
112128
| `--script` | Option | Script variant to use: `sh` (bash/zsh) or `ps` (PowerShell) |
113129
| `--ignore-agent-tools` | Flag | Skip checks for AI agent tools like Claude Code |
114130
| `--no-git` | Flag | Skip git repository initialization |
@@ -163,6 +179,12 @@ After running `specify init`, your AI coding agent will have access to these sla
163179
| `/tasks` | Generate actionable task lists for implementation |
164180
| `/implement` | Execute all tasks to build the feature according to the plan |
165181

182+
### Environment Variables
183+
184+
| Variable | Description |
185+
|------------------|------------------------------------------------------------------------------------------------|
186+
| `SPECIFY_FEATURE` | Override feature detection for non-Git repositories. Set to the feature directory name (e.g., `001-photo-albums`) to work on a specific feature when not using Git branches.<br/>**Must be set in the context of the agent you're working with prior to using `/plan` or follow-up commands. |
187+
166188
## 📚 Core philosophy
167189

168190
Spec-Driven Development is a structured process that emphasizes:
@@ -214,6 +236,8 @@ Our research and experimentation focus on:
214236
- [Python 3.11+](https://www.python.org/downloads/)
215237
- [Git](https://git-scm.com/downloads)
216238

239+
If you encounter issues with an agent, please open an issue so we can refine the integration.
240+
217241
## 📖 Learn more
218242

219243
- **[Complete Spec-Driven Development Methodology](./spec-driven.md)** - Deep dive into the full process

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "specify-cli"
3-
version = "0.0.12"
3+
version = "0.0.14"
44
description = "Specify CLI, part of GitHub Spec Kit. A tool to bootstrap your projects for Spec-Driven Development (SDD)."
55
requires-python = ">=3.11"
66
dependencies = [

scripts/bash/update-agent-context.sh

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,8 @@ CURSOR_FILE="$REPO_ROOT/.cursor/rules/specify-rules.mdc"
6666
QWEN_FILE="$REPO_ROOT/QWEN.md"
6767
AGENTS_FILE="$REPO_ROOT/AGENTS.md"
6868
WINDSURF_FILE="$REPO_ROOT/.windsurf/rules/specify-rules.md"
69+
KILOCODE_FILE="$REPO_ROOT/.kilocode/rules/specify-rules.md"
70+
AUGGIE_FILE="$REPO_ROOT/.augment/rules/specify-rules.md"
6971

7072
# Template file
7173
TEMPLATE_FILE="$REPO_ROOT/.specify/templates/agent-file-template.md"
@@ -568,9 +570,15 @@ update_specific_agent() {
568570
windsurf)
569571
update_agent_file "$WINDSURF_FILE" "Windsurf"
570572
;;
573+
kilocode)
574+
update_agent_file "$KILOCODE_FILE" "Kilo Code"
575+
;;
576+
auggie)
577+
update_agent_file "$AUGGIE_FILE" "Auggie CLI"
578+
;;
571579
*)
572580
log_error "Unknown agent type '$agent_type'"
573-
log_error "Expected: claude|gemini|copilot|cursor|qwen|opencode|codex|windsurf"
581+
log_error "Expected: claude|gemini|copilot|cursor|qwen|opencode|codex|windsurf|kilocode|auggie"
574582
exit 1
575583
;;
576584
esac
@@ -615,6 +623,16 @@ update_all_existing_agents() {
615623
found_agent=true
616624
fi
617625

626+
if [[ -f "$KILOCODE_FILE" ]]; then
627+
update_agent_file "$KILOCODE_FILE" "Kilo Code"
628+
found_agent=true
629+
fi
630+
631+
if [[ -f "$AUGGIE_FILE" ]]; then
632+
update_agent_file "$AUGGIE_FILE" "Auggie CLI"
633+
found_agent=true
634+
fi
635+
618636
# If no agent files exist, create a default Claude file
619637
if [[ "$found_agent" == false ]]; then
620638
log_info "No existing agent files found, creating default Claude file..."
@@ -638,7 +656,7 @@ print_summary() {
638656
fi
639657

640658
echo
641-
log_info "Usage: $0 [claude|gemini|copilot|cursor|qwen|opencode|codex|windsurf]"
659+
log_info "Usage: $0 [claude|gemini|copilot|cursor|qwen|opencode|codex|windsurf|kilocode|auggie]"
642660
}
643661

644662
#==============================================================================

scripts/powershell/update-agent-context.ps1

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -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','qwen','opencode','codex','windsurf')]
28+
[ValidateSet('claude','gemini','copilot','cursor','qwen','opencode','codex','windsurf','kilocode','auggie')]
2929
[string]$AgentType
3030
)
3131

@@ -51,6 +51,8 @@ $CURSOR_FILE = Join-Path $REPO_ROOT '.cursor/rules/specify-rules.mdc'
5151
$QWEN_FILE = Join-Path $REPO_ROOT 'QWEN.md'
5252
$AGENTS_FILE = Join-Path $REPO_ROOT 'AGENTS.md'
5353
$WINDSURF_FILE = Join-Path $REPO_ROOT '.windsurf/rules/specify-rules.md'
54+
$KILOCODE_FILE = Join-Path $REPO_ROOT '.kilocode/rules/specify-rules.md'
55+
$AUGGIE_FILE = Join-Path $REPO_ROOT '.augment/rules/specify-rules.md'
5456

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

@@ -370,7 +372,9 @@ function Update-SpecificAgent {
370372
'opencode' { Update-AgentFile -TargetFile $AGENTS_FILE -AgentName 'opencode' }
371373
'codex' { Update-AgentFile -TargetFile $AGENTS_FILE -AgentName 'Codex CLI' }
372374
'windsurf' { Update-AgentFile -TargetFile $WINDSURF_FILE -AgentName 'Windsurf' }
373-
default { Write-Err "Unknown agent type '$Type'"; Write-Err 'Expected: claude|gemini|copilot|cursor|qwen|opencode|codex|windsurf'; return $false }
375+
'kilocode' { Update-AgentFile -TargetFile $KILOCODE_FILE -AgentName 'Kilo Code' }
376+
'auggie' { Update-AgentFile -TargetFile $AUGGIE_FILE -AgentName 'Auggie CLI' }
377+
default { Write-Err "Unknown agent type '$Type'"; Write-Err 'Expected: claude|gemini|copilot|cursor|qwen|opencode|codex|windsurf|kilocode|auggie'; return $false }
374378
}
375379
}
376380

@@ -384,6 +388,8 @@ function Update-AllExistingAgents {
384388
if (Test-Path $QWEN_FILE) { if (-not (Update-AgentFile -TargetFile $QWEN_FILE -AgentName 'Qwen Code')) { $ok = $false }; $found = $true }
385389
if (Test-Path $AGENTS_FILE) { if (-not (Update-AgentFile -TargetFile $AGENTS_FILE -AgentName 'Codex/opencode')) { $ok = $false }; $found = $true }
386390
if (Test-Path $WINDSURF_FILE) { if (-not (Update-AgentFile -TargetFile $WINDSURF_FILE -AgentName 'Windsurf')) { $ok = $false }; $found = $true }
391+
if (Test-Path $KILOCODE_FILE) { if (-not (Update-AgentFile -TargetFile $KILOCODE_FILE -AgentName 'Kilo Code')) { $ok = $false }; $found = $true }
392+
if (Test-Path $AUGGIE_FILE) { if (-not (Update-AgentFile -TargetFile $AUGGIE_FILE -AgentName 'Auggie CLI')) { $ok = $false }; $found = $true }
387393
if (-not $found) {
388394
Write-Info 'No existing agent files found, creating default Claude file...'
389395
if (-not (Update-AgentFile -TargetFile $CLAUDE_FILE -AgentName 'Claude Code')) { $ok = $false }
@@ -398,7 +404,7 @@ function Print-Summary {
398404
if ($NEW_FRAMEWORK) { Write-Host " - Added framework: $NEW_FRAMEWORK" }
399405
if ($NEW_DB -and $NEW_DB -ne 'N/A') { Write-Host " - Added database: $NEW_DB" }
400406
Write-Host ''
401-
Write-Info 'Usage: ./update-agent-context.ps1 [-AgentType claude|gemini|copilot|cursor|qwen|opencode|codex|windsurf]'
407+
Write-Info 'Usage: ./update-agent-context.ps1 [-AgentType claude|gemini|copilot|cursor|qwen|opencode|codex|windsurf|kilocode|auggie]'
402408
}
403409

404410
function Main {

0 commit comments

Comments
 (0)