Skip to content

Commit 480f761

Browse files
cityacclaude
andcommitted
Merge upstream/main into dev
Integrate 109 upstream commits while preserving fork-specific features: - Project acronym support (ACR prefix from constitution.md) - feature/ branch prefix convention - --local flag for local spec-kit source - Interactive AI assistant selection Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2 parents a0f2414 + f8da535 commit 480f761

File tree

86 files changed

+20755
-1620
lines changed

Some content is hidden

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

86 files changed

+20755
-1620
lines changed

.devcontainer/post-create.sh

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,15 @@ run_command() {
88
local command_to_run="$*"
99
local output
1010
local exit_code
11-
11+
1212
# Capture all output (stdout and stderr)
1313
output=$(eval "$command_to_run" 2>&1) || exit_code=$?
1414
exit_code=${exit_code:-0}
15-
15+
1616
if [ $exit_code -ne 0 ]; then
1717
echo -e "\033[0;31m[ERROR] Command failed (Exit Code $exit_code): $command_to_run\033[0m" >&2
1818
echo -e "\033[0;31m$output\033[0m" >&2
19-
19+
2020
exit $exit_code
2121
fi
2222
}
@@ -51,9 +51,17 @@ echo -e "\n🤖 Installing OpenCode CLI..."
5151
run_command "npm install -g opencode-ai@latest"
5252
echo "✅ Done"
5353

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+
5462
echo -e "\n🤖 Installing Kiro CLI..."
5563
# https://kiro.dev/docs/cli/
56-
KIRO_INSTALLER_URL="https://cli.kiro.dev/install"
64+
KIRO_INSTALLER_URL="https://kiro.dev/install.sh"
5765
KIRO_INSTALLER_SHA256="7487a65cf310b7fb59b357c4b5e6e3f3259d383f4394ecedb39acf70f307cffb"
5866
KIRO_INSTALLER_PATH="$(mktemp)"
5967

@@ -80,6 +88,11 @@ fi
8088
run_command "$kiro_binary --help > /dev/null"
8189
echo "✅ Done"
8290

91+
echo -e "\n🤖 Installing Kimi CLI..."
92+
# https://code.kimi.com
93+
run_command "pipx install kimi-cli"
94+
echo "✅ Done"
95+
8396
echo -e "\n🤖 Installing CodeBuddy CLI..."
8497
run_command "npm install -g @tencent-ai/codebuddy-code@latest"
8598
echo "✅ Done"

.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, Kiro 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, Tabnine CLI, Antigravity, IBM Bob, Mistral Vibe, Kimi Code, Trae, Pi Coding Agent, iFlow CLI
1212
1313
- type: input
1414
id: agent-name

.github/ISSUE_TEMPLATE/config.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ contact_links:
77
url: https://github.com/github/spec-kit/blob/main/README.md
88
about: Read the Spec Kit documentation and guides
99
- name: 🛠️ Extension Development Guide
10-
url: https://github.com/manfredseee/spec-kit/blob/main/extensions/EXTENSION-DEVELOPMENT-GUIDE.md
10+
url: https://github.com/github/spec-kit/blob/main/extensions/EXTENSION-DEVELOPMENT-GUIDE.md
1111
about: Learn how to develop and publish Spec Kit extensions
1212
- name: 🤝 Contributing Guide
1313
url: https://github.com/github/spec-kit/blob/main/CONTRIBUTING.md
Lines changed: 169 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,169 @@
1+
name: Preset Submission
2+
description: Submit your preset to the Spec Kit preset catalog
3+
title: "[Preset]: Add "
4+
labels: ["preset-submission", "enhancement", "needs-triage"]
5+
body:
6+
- type: markdown
7+
attributes:
8+
value: |
9+
Thanks for contributing a preset! This template helps you submit your preset to the community catalog.
10+
11+
**Before submitting:**
12+
- Review the [Preset Publishing Guide](https://github.com/github/spec-kit/blob/main/presets/PUBLISHING.md)
13+
- Ensure your preset has a valid `preset.yml` manifest
14+
- Create a GitHub release with a version tag (e.g., v1.0.0)
15+
- Test installation from the release archive: `specify preset add --from <download-url>`
16+
17+
- type: input
18+
id: preset-id
19+
attributes:
20+
label: Preset ID
21+
description: Unique preset identifier (lowercase with hyphens only)
22+
placeholder: "e.g., healthcare-compliance"
23+
validations:
24+
required: true
25+
26+
- type: input
27+
id: preset-name
28+
attributes:
29+
label: Preset Name
30+
description: Human-readable preset name
31+
placeholder: "e.g., Healthcare Compliance"
32+
validations:
33+
required: true
34+
35+
- type: input
36+
id: version
37+
attributes:
38+
label: Version
39+
description: Semantic version number
40+
placeholder: "e.g., 1.0.0"
41+
validations:
42+
required: true
43+
44+
- type: textarea
45+
id: description
46+
attributes:
47+
label: Description
48+
description: Brief description of what your preset does (under 200 characters)
49+
placeholder: Enforces HIPAA-compliant spec workflows with audit templates and compliance checklists
50+
validations:
51+
required: true
52+
53+
- type: input
54+
id: author
55+
attributes:
56+
label: Author
57+
description: Your name or organization
58+
placeholder: "e.g., John Doe or Acme Corp"
59+
validations:
60+
required: true
61+
62+
- type: input
63+
id: repository
64+
attributes:
65+
label: Repository URL
66+
description: GitHub repository URL for your preset
67+
placeholder: "https://github.com/your-org/spec-kit-your-preset"
68+
validations:
69+
required: true
70+
71+
- type: input
72+
id: download-url
73+
attributes:
74+
label: Download URL
75+
description: URL to the GitHub release archive for your preset (e.g., https://github.com/your-org/spec-kit-preset-your-preset/archive/refs/tags/v1.0.0.zip)
76+
placeholder: "https://github.com/your-org/spec-kit-preset-your-preset/archive/refs/tags/v1.0.0.zip"
77+
validations:
78+
required: true
79+
80+
- type: input
81+
id: license
82+
attributes:
83+
label: License
84+
description: Open source license type
85+
placeholder: "e.g., MIT, Apache-2.0"
86+
validations:
87+
required: true
88+
89+
- type: input
90+
id: speckit-version
91+
attributes:
92+
label: Required Spec Kit Version
93+
description: Minimum Spec Kit version required
94+
placeholder: "e.g., >=0.3.0"
95+
validations:
96+
required: true
97+
98+
- type: textarea
99+
id: templates-provided
100+
attributes:
101+
label: Templates Provided
102+
description: List the template overrides your preset provides
103+
placeholder: |
104+
- spec-template.md — adds compliance section
105+
- plan-template.md — includes audit checkpoints
106+
- checklist-template.md — HIPAA compliance checklist
107+
validations:
108+
required: true
109+
110+
- type: textarea
111+
id: commands-provided
112+
attributes:
113+
label: Commands Provided (optional)
114+
description: List any command overrides your preset provides
115+
placeholder: |
116+
- speckit.specify.md — customized for compliance workflows
117+
118+
- type: textarea
119+
id: tags
120+
attributes:
121+
label: Tags
122+
description: 2-5 relevant tags (lowercase, separated by commas)
123+
placeholder: "compliance, healthcare, hipaa, audit"
124+
validations:
125+
required: true
126+
127+
- type: textarea
128+
id: features
129+
attributes:
130+
label: Key Features
131+
description: List the main features and capabilities of your preset
132+
placeholder: |
133+
- HIPAA-compliant spec templates
134+
- Audit trail checklists
135+
- Compliance review workflow
136+
validations:
137+
required: true
138+
139+
- type: checkboxes
140+
id: testing
141+
attributes:
142+
label: Testing Checklist
143+
description: Confirm that your preset has been tested
144+
options:
145+
- label: Preset installs successfully via `specify preset add`
146+
required: true
147+
- label: Template resolution works correctly after installation
148+
required: true
149+
- label: Documentation is complete and accurate
150+
required: true
151+
- label: Tested on at least one real project
152+
required: true
153+
154+
- type: checkboxes
155+
id: requirements
156+
attributes:
157+
label: Submission Requirements
158+
description: Verify your preset meets all requirements
159+
options:
160+
- label: Valid `preset.yml` manifest included
161+
required: true
162+
- label: README.md with description and usage instructions
163+
required: true
164+
- label: LICENSE file included
165+
required: true
166+
- label: GitHub release created with version tag
167+
required: true
168+
- label: Preset ID follows naming conventions (lowercase-with-hyphens)
169+
required: true

.github/workflows/docs.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,5 +64,5 @@ jobs:
6464
steps:
6565
- name: Deploy to GitHub Pages
6666
id: deployment
67-
uses: actions/deploy-pages@v4
67+
uses: actions/deploy-pages@v5
6868

.github/workflows/lint.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ jobs:
1515
uses: actions/checkout@v6
1616

1717
- name: Run markdownlint-cli2
18-
uses: DavidAnson/markdownlint-cli2-action@v19
18+
uses: DavidAnson/markdownlint-cli2-action@v23
1919
with:
2020
globs: |
2121
'**/*.md'

.github/workflows/release-trigger.yml

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -86,8 +86,10 @@ jobs:
8686
if [ -f "CHANGELOG.md" ]; then
8787
DATE=$(date +%Y-%m-%d)
8888
89-
# Get the previous tag to compare commits
90-
PREVIOUS_TAG=$(git describe --tags --abbrev=0 2>/dev/null || echo "")
89+
# Get the previous tag by sorting all version tags numerically
90+
# (git describe --tags only finds tags reachable from HEAD,
91+
# which misses tags on unmerged release branches)
92+
PREVIOUS_TAG=$(git tag -l 'v*' --sort=-version:refname | head -n 1)
9193
9294
echo "Generating changelog from commits..."
9395
if [[ -n "$PREVIOUS_TAG" ]]; then
@@ -98,18 +100,16 @@ jobs:
98100
COMMITS="- Initial release"
99101
fi
100102
101-
# Create new changelog entry
102-
{
103-
head -n 8 CHANGELOG.md
104-
echo ""
105-
echo "## [${{ steps.version.outputs.version }}] - $DATE"
106-
echo ""
107-
echo "### Changed"
108-
echo ""
109-
echo "$COMMITS"
110-
echo ""
111-
tail -n +9 CHANGELOG.md
112-
} > CHANGELOG.md.tmp
103+
# Create new changelog entry — insert after the marker comment
104+
NEW_ENTRY=$(printf '%s\n' \
105+
"" \
106+
"## [${{ steps.version.outputs.version }}] - $DATE" \
107+
"" \
108+
"### Changed" \
109+
"" \
110+
"$COMMITS")
111+
112+
awk -v entry="$NEW_ENTRY" '/<!-- insert new changelog below this comment -->/ { print; print entry; next } {print}' CHANGELOG.md > CHANGELOG.md.tmp
113113
mv CHANGELOG.md.tmp CHANGELOG.md
114114
115115
echo "✅ Updated CHANGELOG.md with commits since $PREVIOUS_TAG"

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

100644100755
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@ gh release create "$VERSION" \
3030
.genreleases/spec-kit-template-qwen-ps-"$VERSION".zip \
3131
.genreleases/spec-kit-template-windsurf-sh-"$VERSION".zip \
3232
.genreleases/spec-kit-template-windsurf-ps-"$VERSION".zip \
33+
.genreleases/spec-kit-template-junie-sh-"$VERSION".zip \
34+
.genreleases/spec-kit-template-junie-ps-"$VERSION".zip \
3335
.genreleases/spec-kit-template-codex-sh-"$VERSION".zip \
3436
.genreleases/spec-kit-template-codex-ps-"$VERSION".zip \
3537
.genreleases/spec-kit-template-kilocode-sh-"$VERSION".zip \
@@ -46,12 +48,24 @@ gh release create "$VERSION" \
4648
.genreleases/spec-kit-template-amp-ps-"$VERSION".zip \
4749
.genreleases/spec-kit-template-shai-sh-"$VERSION".zip \
4850
.genreleases/spec-kit-template-shai-ps-"$VERSION".zip \
51+
.genreleases/spec-kit-template-tabnine-sh-"$VERSION".zip \
52+
.genreleases/spec-kit-template-tabnine-ps-"$VERSION".zip \
4953
.genreleases/spec-kit-template-kiro-cli-sh-"$VERSION".zip \
5054
.genreleases/spec-kit-template-kiro-cli-ps-"$VERSION".zip \
5155
.genreleases/spec-kit-template-agy-sh-"$VERSION".zip \
5256
.genreleases/spec-kit-template-agy-ps-"$VERSION".zip \
5357
.genreleases/spec-kit-template-bob-sh-"$VERSION".zip \
5458
.genreleases/spec-kit-template-bob-ps-"$VERSION".zip \
59+
.genreleases/spec-kit-template-vibe-sh-"$VERSION".zip \
60+
.genreleases/spec-kit-template-vibe-ps-"$VERSION".zip \
61+
.genreleases/spec-kit-template-kimi-sh-"$VERSION".zip \
62+
.genreleases/spec-kit-template-kimi-ps-"$VERSION".zip \
63+
.genreleases/spec-kit-template-trae-sh-"$VERSION".zip \
64+
.genreleases/spec-kit-template-trae-ps-"$VERSION".zip \
65+
.genreleases/spec-kit-template-pi-sh-"$VERSION".zip \
66+
.genreleases/spec-kit-template-pi-ps-"$VERSION".zip \
67+
.genreleases/spec-kit-template-iflow-sh-"$VERSION".zip \
68+
.genreleases/spec-kit-template-iflow-ps-"$VERSION".zip \
5569
.genreleases/spec-kit-template-generic-sh-"$VERSION".zip \
5670
.genreleases/spec-kit-template-generic-ps-"$VERSION".zip \
5771
--title "Spec Kit Templates - $VERSION_NO_V" \

0 commit comments

Comments
 (0)