Skip to content

Commit 8c446e2

Browse files
committed
Merge upstream/main - add Junie agent and timestamp branches (v0.1.16)
Upstream changes merged: - feat: add Junie agent support (github#1831) - feat: add timestamp-based branch naming option (--branch-numbering) (github#1911) - fix: Align native skills frontmatter with install_ai_skills (github#1920) - docs: add Extension Comparison Guide for community extensions (github#1897) - docs: update SUPPORT.md, fix issue templates, add preset submission template (github#1910) Tikalk customizations preserved: - Orange theme (ACCENT_COLOR = #f47721) - --team-ai-directives CLI parameter - Skills package manager (specify skill subcommand) - Bundled extensions/presets installation - Pre-Installed Extensions panel Version: 0.1.16
2 parents fa89a13 + 191f332 commit 8c446e2

24 files changed

Lines changed: 808 additions & 117 deletions

.devcontainer/post-create.sh

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,10 @@ 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+
5458
echo -e "\n🤖 Installing Pi Coding Agent..."
5559
run_command "npm install -g @mariozechner/pi-coding-agent@latest"
5660
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/scripts/create-github-release.sh

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@ gh release create "$VERSION" \
3030
.genreleases/agentic-sdlc-spec-kit-template-qwen-ps-"$VERSION".zip \
3131
.genreleases/agentic-sdlc-spec-kit-template-windsurf-sh-"$VERSION".zip \
3232
.genreleases/agentic-sdlc-spec-kit-template-windsurf-ps-"$VERSION".zip \
33+
.genreleases/agentic-sdlc-spec-kit-template-junie-sh-"$VERSION".zip \
34+
.genreleases/agentic-sdlc-spec-kit-template-junie-ps-"$VERSION".zip \
3335
.genreleases/agentic-sdlc-spec-kit-template-codex-sh-"$VERSION".zip \
3436
.genreleases/agentic-sdlc-spec-kit-template-codex-ps-"$VERSION".zip \
3537
.genreleases/agentic-sdlc-spec-kit-template-kilocode-sh-"$VERSION".zip \
@@ -64,6 +66,8 @@ gh release create "$VERSION" \
6466
.genreleases/agentic-sdlc-spec-kit-template-pi-ps-"$VERSION".zip \
6567
.genreleases/agentic-sdlc-spec-kit-template-iflow-sh-"$VERSION".zip \
6668
.genreleases/agentic-sdlc-spec-kit-template-iflow-ps-"$VERSION".zip \
69+
.genreleases/agentic-sdlc-spec-kit-template-junie-sh-"$VERSION".zip \
70+
.genreleases/agentic-sdlc-spec-kit-template-junie-ps-"$VERSION".zip \
6771
.genreleases/agentic-sdlc-spec-kit-template-generic-sh-"$VERSION".zip \
6872
.genreleases/agentic-sdlc-spec-kit-template-generic-ps-"$VERSION".zip \
6973
--title "Agentic SDLC Spec Kit Templates - $VERSION_NO_V" \

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

Lines changed: 11 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, kiro-cli, bob, qodercli, shai, tabnine, agy, vibe, kimi, trae, pi, iflow, generic
17+
Valid agents: claude, gemini, copilot, cursor-agent, qwen, opencode, windsurf, junie, codex, kilocode, auggie, roo, codebuddy, amp, kiro-cli, bob, qodercli, shai, tabnine, agy, vibe, kimi, trae, pi, iflow, generic
1818
1919
.PARAMETER Scripts
2020
Comma or space separated subset of script types to build (default: both)
@@ -207,6 +207,10 @@ agent: $basename
207207
# Create skills in <skills_dir>\<name>\SKILL.md format.
208208
# Most agents use hyphenated names (e.g. speckit-plan); Kimi is the
209209
# current dotted-name exception (e.g. speckit.plan).
210+
#
211+
# Technical debt note:
212+
# Keep SKILL.md frontmatter aligned with `install_ai_skills()` and extension
213+
# overrides (at minimum: name/description/compatibility/metadata.{author,source}).
210214
function New-Skills {
211215
param(
212216
[string]$SkillsDir,
@@ -288,7 +292,7 @@ function New-Skills {
288292
if ($inBody) { $templateBody += "$line`n" }
289293
}
290294

291-
$skillContent = "---`nname: `"$skillName`"`ndescription: `"$description`"`n---`n`n$templateBody"
295+
$skillContent = "---`nname: `"$skillName`"`ndescription: `"$description`"`ncompatibility: `"Requires spec-kit project structure with .specify/ directory`"`nmetadata:`n author: `"github-spec-kit`"`n source: `"templates/commands/$name.md`"`n---`n`n$templateBody"
292296
Set-Content -Path (Join-Path $skillDir "SKILL.md") -Value $skillContent -NoNewline
293297
}
294298
}
@@ -400,6 +404,10 @@ function Build-Variant {
400404
$cmdDir = Join-Path $baseDir ".windsurf/workflows"
401405
Generate-Commands -Agent 'windsurf' -Extension 'md' -ArgFormat '$ARGUMENTS' -OutputDir $cmdDir -ScriptVariant $Script
402406
}
407+
'junie' {
408+
$cmdDir = Join-Path $baseDir ".junie/commands"
409+
Generate-Commands -Agent 'junie' -Extension 'md' -ArgFormat '$ARGUMENTS' -OutputDir $cmdDir -ScriptVariant $Script
410+
}
403411
'codex' {
404412
$skillsDir = Join-Path $baseDir ".agents/skills"
405413
New-Item -ItemType Directory -Force -Path $skillsDir | Out-Null
@@ -489,7 +497,7 @@ function Build-Variant {
489497
}
490498

491499
# Define all agents and scripts
492-
$AllAgents = @('claude', 'gemini', 'copilot', 'cursor-agent', 'qwen', 'opencode', 'windsurf', 'codex', 'kilocode', 'auggie', 'roo', 'codebuddy', 'amp', 'kiro-cli', 'bob', 'qodercli', 'shai', 'tabnine', 'agy', 'vibe', 'kimi', 'trae', 'pi', 'iflow', 'generic')
500+
$AllAgents = @('claude', 'gemini', 'copilot', 'cursor-agent', 'qwen', 'opencode', 'windsurf', 'junie', 'codex', 'kilocode', 'auggie', 'roo', 'codebuddy', 'amp', 'kiro-cli', 'bob', 'qodercli', 'shai', 'tabnine', 'agy', 'vibe', 'kimi', 'trae', 'pi', 'iflow', 'generic')
493501
$AllScripts = @('sh', 'ps')
494502

495503
function Normalize-List {

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

Lines changed: 13 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 kilocode auggie roo codebuddy amp shai tabnine kiro-cli agy bob vibe qodercli kimi trae pi iflow generic (default: all)
9+
# AGENTS : space or comma separated subset of: claude gemini copilot cursor-agent qwen opencode windsurf junie codex kilocode auggie roo codebuddy amp shai tabnine kiro-cli agy bob vibe qodercli kimi trae pi iflow 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
@@ -126,6 +126,10 @@ EOF
126126
# Create skills in <skills_dir>/<name>/SKILL.md format.
127127
# Most agents use hyphenated names (e.g. speckit-plan); Kimi is the
128128
# current dotted-name exception (e.g. speckit.plan).
129+
#
130+
# Technical debt note:
131+
# Keep SKILL.md frontmatter aligned with `install_ai_skills()` and extension
132+
# overrides (at minimum: name/description/compatibility/metadata.{author,source}).
129133
create_skills() {
130134
local skills_dir="$1"
131135
local script_variant="$2"
@@ -189,6 +193,10 @@ create_skills() {
189193
printf -- '---\n'
190194
printf 'name: "%s"\n' "$skill_name"
191195
printf 'description: "%s"\n' "$description"
196+
printf 'compatibility: "%s"\n' "Requires spec-kit project structure with .specify/ directory"
197+
printf -- 'metadata:\n'
198+
printf ' author: "%s"\n' "github-spec-kit"
199+
printf ' source: "%s"\n' "templates/commands/${name}.md"
192200
printf -- '---\n\n'
193201
printf '%s\n' "$template_body"
194202
} > "$skill_dir/SKILL.md"
@@ -252,6 +260,9 @@ build_variant() {
252260
windsurf)
253261
mkdir -p "$base_dir/.windsurf/workflows"
254262
generate_commands windsurf md "\$ARGUMENTS" "$base_dir/.windsurf/workflows" "$script" ;;
263+
junie)
264+
mkdir -p "$base_dir/.junie/commands"
265+
generate_commands junie md "\$ARGUMENTS" "$base_dir/.junie/commands" "$script" ;;
255266
codex)
256267
mkdir -p "$base_dir/.agents/skills"
257268
create_skills "$base_dir/.agents/skills" "$script" "codex" "-" ;;
@@ -313,7 +324,7 @@ build_variant() {
313324
}
314325

315326
# Determine agent list
316-
ALL_AGENTS=(claude gemini copilot cursor-agent qwen opencode windsurf codex kilocode auggie roo codebuddy amp shai tabnine kiro-cli agy bob vibe qodercli kimi trae pi iflow generic)
327+
ALL_AGENTS=(claude gemini copilot cursor-agent qwen opencode windsurf junie codex kilocode auggie roo codebuddy amp shai tabnine kiro-cli agy bob vibe qodercli kimi trae pi iflow generic)
317328
ALL_SCRIPTS=(sh ps)
318329

319330
norm_list() {

AGENTS.md

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,9 @@ Specify supports multiple AI agents by generating agent-specific command files a
4545
| **Cursor** | `.cursor/commands/` | Markdown | `cursor-agent` | Cursor CLI |
4646
| **Qwen Code** | `.qwen/commands/` | Markdown | `qwen` | Alibaba's Qwen Code CLI |
4747
| **opencode** | `.opencode/command/` | Markdown | `opencode` | opencode CLI |
48-
| **Codex CLI** | `.codex/prompts/` | Markdown | `codex` | Codex CLI |
48+
| **Codex CLI** | `.agents/skills/` | Markdown | `codex` | Codex CLI (skills) |
4949
| **Windsurf** | `.windsurf/workflows/` | Markdown | N/A (IDE-based) | Windsurf IDE workflows |
50+
| **Junie** | `.junie/commands/` | Markdown | `junie` | Junie by JetBrains |
5051
| **Kilo Code** | `.kilocode/workflows/` | Markdown | N/A (IDE-based) | Kilo Code IDE |
5152
| **Auggie CLI** | `.augment/commands/` | Markdown | `auggie` | Auggie CLI |
5253
| **Roo Code** | `.roo/commands/` | Markdown | N/A (IDE-based) | Roo Code IDE |
@@ -330,6 +331,7 @@ Require a command-line tool to be installed:
330331
- **Cursor**: `cursor-agent` CLI
331332
- **Qwen Code**: `qwen` CLI
332333
- **opencode**: `opencode` CLI
334+
- **Junie**: `junie` CLI
333335
- **Kiro CLI**: `kiro-cli` CLI
334336
- **CodeBuddy CLI**: `codebuddy` CLI
335337
- **Qoder CLI**: `qodercli` CLI
@@ -351,7 +353,7 @@ Work within integrated development environments:
351353

352354
### Markdown Format
353355

354-
Used by: Claude, Cursor, opencode, Windsurf, Kiro CLI, Amp, SHAI, IBM Bob, Kimi Code, Qwen, Pi
356+
Used by: Claude, Cursor, opencode, Windsurf, Junie, Kiro CLI, Amp, SHAI, IBM Bob, Kimi Code, Qwen, Pi
355357

356358
**Standard format:**
357359

@@ -389,8 +391,9 @@ Command content with {SCRIPT} and {{args}} placeholders.
389391
## Directory Conventions
390392

391393
- **CLI agents**: Usually `.<agent-name>/commands/`
392-
- **Common prompt-based exceptions**:
393-
- Codex: `.codex/prompts/`
394+
- **Skills-based exceptions**:
395+
- Codex: `.agents/skills/` (skills, invoked as `$speckit-<command>`)
396+
- **Prompt-based exceptions**:
394397
- Kiro CLI: `.kiro/prompts/`
395398
- Pi: `.pi/prompts/`
396399
- **IDE agents**: Follow IDE-specific patterns:

CHANGELOG.md

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

8+
## [0.1.16] - 2026-03-20
9+
10+
### Changed
11+
12+
- **Upstream merge**: Synced with github/spec-kit (5 commits)
13+
- feat: add Junie agent support (#1831)
14+
- feat: add timestamp-based branch naming option (`--branch-numbering timestamp`) (#1911)
15+
- fix: Align native skills frontmatter with install_ai_skills (#1920)
16+
- docs: add Extension Comparison Guide for community extensions (#1897)
17+
- docs: update SUPPORT.md, fix issue templates, add preset submission template (#1910)
18+
19+
### Preserved
20+
21+
- All tikalk-specific features maintained:
22+
- Orange branding theme (#f47721)
23+
- `--team-ai-directives` CLI parameter
24+
- Skills package manager (`specify skill` subcommand)
25+
- Bundled extensions/presets installation
26+
827
## [0.1.15] - 2026-03-19
928

1029
### Changed

0 commit comments

Comments
 (0)