Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
8e76ff3
harden: reject shell=True in run_command (#3132)
PascalThuet Jun 24, 2026
034fbfc
fix: render valid TOML when a command body contains backslashes (#3135)
jawwad-ali Jun 24, 2026
44ef11a
feat(integrations): add omp support (#3107)
omar2535 Jun 24, 2026
37e0e71
fix(scripts): use case-sensitive match for acronym retention in PS br…
Quratulain-bilal Jun 24, 2026
f846d65
fix(workflows): validate requires keys and reject phantom permissions…
zied-jlassi Jun 24, 2026
b042d2a
feat(extensions): verify catalog archive sha256 before install (#3080)
zied-jlassi Jun 24, 2026
b577e6c
chore: release 0.11.7, begin 0.11.8.dev0 development (#3154)
mnriem Jun 24, 2026
e5df517
ci: pin actions to commit SHAs and add shellcheck (#3126)
PascalThuet Jun 24, 2026
fdaaf18
fix(workflows): preserve commas inside quoted list-literal elements (…
jawwad-ali Jun 24, 2026
5404f7e
docs: run /speckit.checklist after /speckit.plan in quickstart (#3108)
jawwad-ali Jun 24, 2026
e12beda
[extension] Add Golden Demo extension to community catalog (#3151)
github-actions[bot] Jun 24, 2026
dc840f0
feat(integration): update Kimi integration for Kimi Code CLI (#2979)
meymchen Jun 24, 2026
0cde6be
Add Spec Roadmap extension to community catalog (#3153)
github-actions[bot] Jun 24, 2026
d6cddd4
[extension] Update Jira Integration (Sync Engine) extension to v0.4.0…
github-actions[bot] Jun 24, 2026
96039d3
Require preset-usage README with Spec Kit CLI syntax in preset submis…
mnriem Jun 24, 2026
05cf078
docs: add SpecKit Assistant npm package to Community Friends (#3142)
dmux Jun 24, 2026
d65f6bd
chore: release 0.11.8, begin 0.11.9.dev0 development (#3156)
mnriem Jun 24, 2026
a93ae93
Merge upstream main into local community fork
bigsmartben Jun 25, 2026
336e5f7
fix: satisfy shellcheck for arch validation
bigsmartben Jun 25, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .devcontainer/post-create.sh
Original file line number Diff line number Diff line change
Expand Up @@ -88,9 +88,9 @@ fi
run_command "$kiro_binary --help > /dev/null"
echo "✅ Done"

echo -e "\n🤖 Installing Kimi CLI..."
echo -e "\n🤖 Installing Kimi Code CLI..."
# https://code.kimi.com
run_command "pipx install kimi-cli"
run_command "npm install -g @moonshot-ai/kimi-code@latest"
echo "✅ Done"

echo -e "\n🤖 Installing CodeBuddy CLI..."
Expand Down
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/agent_request.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ body:
value: |
Thanks for requesting a new agent! Before submitting, please check if the agent is already supported.

**Currently supported agents**: Amp, Antigravity, Auggie CLI, Claude Code, Cline, CodeBuddy, Codex CLI, Cursor, Devin for Terminal, Firebender, Forge, Gemini CLI, GitHub Copilot, Goose, Hermes Agent, IBM Bob, iFlow CLI, Junie, Kilo Code, Kimi Code, Kiro CLI, Lingma, Mistral Vibe, opencode, Pi Coding Agent, Qoder CLI, Qwen Code, Roo Code, RovoDev ACLI, SHAI, Tabnine CLI, Trae, Windsurf, ZCode, Zed
**Currently supported agents**: Amp, Antigravity, Auggie CLI, Claude Code, Cline, CodeBuddy, Codex CLI, Cursor, Devin for Terminal, Firebender, Forge, Gemini CLI, GitHub Copilot, Goose, Hermes Agent, IBM Bob, iFlow CLI, Junie, Kilo Code, Kimi Code, Kiro CLI, Lingma, Mistral Vibe, Oh My Pi, opencode, Pi Coding Agent, Qoder CLI, Qwen Code, Roo Code, RovoDev ACLI, SHAI, Tabnine CLI, Trae, Windsurf, ZCode, Zed

- type: input
id: agent-name
Expand Down
1 change: 1 addition & 0 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,7 @@ body:
- Kiro CLI
- Lingma
- Mistral Vibe
- Oh My Pi
- opencode
- Pi Coding Agent
- Qoder CLI
Expand Down
1 change: 1 addition & 0 deletions .github/ISSUE_TEMPLATE/feature_request.yml
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,7 @@ body:
- Kiro CLI
- Lingma
- Mistral Vibe
- Oh My Pi
- opencode
- Pi Coding Agent
- Qoder CLI
Expand Down
14 changes: 13 additions & 1 deletion .github/ISSUE_TEMPLATE/preset_submission.yml
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,18 @@ body:
validations:
required: true

- type: input
id: documentation
attributes:
label: Documentation URL
description: |
Link to the README that explains how to use **this preset** (not a general product/framework pitch).
Prefer the preset-scoped README (e.g. `presets/<id>/README.md` in a monorepo) over the repository root README.
It must contain at least one valid `specify preset add ...` install command — ideally `specify preset add --from <download-url>` using the exact Download URL above (other forms such as `specify preset add <preset-id>` or `specify preset add --dev <path>` are also accepted).
placeholder: "https://github.com/your-org/spec-kit-presets/blob/main/presets/your-preset/README.md"
validations:
required: true

- type: input
id: license
attributes:
Expand Down Expand Up @@ -175,7 +187,7 @@ body:
options:
- label: Valid `preset.yml` manifest included
required: true
- label: README.md with description and usage instructions
- label: Linked README (Documentation URL) explains how to use this preset and includes a valid `specify preset add ...` command (preferably `specify preset add --from <download-url>` using the exact download URL)
required: true
- label: LICENSE file included
required: true
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/add-community-preset.lock.yml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

62 changes: 58 additions & 4 deletions .github/workflows/add-community-preset.md
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,7 @@ fields):
| Author | `author` | Yes |
| Repository URL | `repository` | Yes |
| Download URL | `download-url` | Yes |
| Documentation URL | `documentation` | Yes |
| License | `license` | Yes |
| Required Spec Kit Version | `speckit-version` | Yes |
| Required Extensions | `required-extensions` | No |
Expand Down Expand Up @@ -100,17 +101,70 @@ deciding pass/fail:
### 2c. Repository validation
- Fetch the repository URL — confirm it exists and is publicly accessible
- Confirm the repository contains a `preset.yml` file
- Confirm the repository contains a `README.md` file
- Confirm the repository contains a `LICENSE` file

### 2d. Release and download URL validation
> The README requirement is enforced once, in **Step 2d**, against the specific file the
> `documentation` field points to — not a generic repository-root `README.md`. This avoids
> the monorepo false-positive where a root README exists but isn't the preset-usage doc.

### 2d. Documentation README validation

The `documentation` field must point to the README that explains **how to use this
preset** — not just any file named `README.md`, and not a product/framework pitch.

- **Restrict the URL to GitHub before fetching.** The `documentation` value is
user-provided input. Only accept GitHub-hosted README URLs:
- `https://github.com/<owner>/<repo>/blob/<ref>/<path>`
- `https://github.com/<owner>/<repo>/raw/<ref>/<path>`
- `https://raw.githubusercontent.com/<owner>/<repo>/<ref>/<path>`

If the URL points anywhere else (or isn't a URL), **fail this check** and do not fetch it.
- **Require the URL to point at a README file.** After stripping any fragment/query (see
below), the URL path must end with `README.md` (case-insensitive). If it points at some
other Markdown file, **fail this check** and ask the submitter to link the preset's README.
- Fetch the **exact URL** in the `documentation` field. First strip any fragment (`#...`)
or query string (`?...`) — these are common when copying from the browser UI and must be
ignored so the fetch target is deterministic. Then resolve the raw content to fetch:
- For a `github.com/<owner>/<repo>/blob/<ref>/<path>` URL, fetch the equivalent
`github.com/<owner>/<repo>/raw/<ref>/<path>` URL (only swap `/blob/` → `/raw/`).
- Fetch `github.com/.../raw/...` and `raw.githubusercontent.com/...` URLs as-is.

Do **not** rewrite into `raw.githubusercontent.com/<owner>/<repo>/<ref>/<path>` form — that
format can't reliably represent refs containing slashes (e.g. a `feature/foo` branch).
Confirm the fetched URL resolves to a readable Markdown file.
- **Validate that the README contains a valid Spec Kit CLI install command.** The fetched
README must contain at least one `specify preset add ...` invocation. The strongest
signal is the catalog-install form whose URL matches the submitted **Download URL**:
- `specify preset add --from <download-url>` (preferred), or
- `specify preset add <preset-id>`, or
- `specify preset add --dev <path>`

A `specify preset add --from <url>` command only counts when its `<url>` **matches the
submitted Download URL exactly**. A `--from` command pointing at a *different* URL does
**not** satisfy the install-command requirement (treat it as if absent) — but the README
may still pass on one of the other accepted forms (`specify preset add <preset-id>` or
`specify preset add --dev <path>`).

If **no** accepted `specify preset add ...` command is present, the README is treated as a
generic description/pitch rather than preset-usage documentation — **fail this check** and
tell the submitter to add a valid install command (ideally
`specify preset add --from <download-url>`).
- **Prefer a preset-scoped README in monorepos.** If `documentation` resolves to a generic
repository-root README in a monorepo (the preset lives in a subdirectory such as
`presets/<id>/` and a preset-scoped README exists there), **flag it** in your comment and
recommend the submitter point `documentation` at the preset-scoped README
(e.g. `presets/<id>/README.md`) so the catalog surfaces usage instead of marketing. Treat
this as a flag rather than a hard failure **only if** the root README still contains a valid
`specify preset add ...` command for this preset; otherwise it fails check 2d above.

### 2e. Release and download URL validation
- The download URL should follow the pattern
`https://github.com/<owner>/<repo>/archive/refs/tags/v<version>.zip`
or
`https://github.com/<owner>/<repo>/releases/download/<tag>/<asset>.zip`
- Verify a GitHub release exists matching the submitted version

### 2e. Submission checklists
### 2f. Submission checklists
- Confirm that all required checkboxes in the Testing Checklist and Submission
Requirements sections are checked (`[x]`)

Expand Down Expand Up @@ -154,7 +208,7 @@ Insert the entry in **alphabetical order by preset ID** within the
"repository": "<repository>",
"download_url": "<download_url>",
"homepage": "<homepage or repository>",
"documentation": "<documentation or repository README>",
"documentation": "<documentation URL — the validated preset-usage README>",
"license": "<license>",
"requires": {
"speckit_version": "<speckit_version>"
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/catalog-assign.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ jobs:
permissions:
issues: write
steps:
- uses: actions/github-script@v9
- uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9
with:
script: |
const issue = context.payload.issue;
Expand Down
12 changes: 12 additions & 0 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,3 +42,15 @@ jobs:
globs: |
'**/*.md'
!extensions/**/*.md

shellcheck:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0

# shellcheck is preinstalled on ubuntu-latest runners.
# Start at --severity=error to block real bugs without flagging style
# (notably SC2155). Tighten in a follow-up after cleanup.
- name: Run shellcheck on shell scripts
run: git ls-files -z -- '*.sh' | xargs -0 shellcheck --severity=error
30 changes: 30 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,36 @@
- Update bundled Repository Governance extension to v2.0.2, including the `/speckit.repository-governance.refresh` command, `.specify/memory/repository-governance.md` internal cache, and default bundled installation behavior.
- Update bundled Workflow Preset documentation for v1.3.2 Final Code Review task generation and structured code review receipts.

## [0.11.8] - 2026-06-24

### Changed

- docs: add SpecKit Assistant npm package to Community Friends (#3142)
- Require preset-usage README with Spec Kit CLI syntax in preset submissions (#3104)
- [extension] Update Jira Integration (Sync Engine) extension to v0.4.0 (#3152)
- Add Spec Roadmap extension to community catalog (#3153)
- feat(integration): update Kimi integration for Kimi Code CLI (#2979)
- [extension] Add Golden Demo extension to community catalog (#3151)
- docs: run /speckit.checklist after /speckit.plan in quickstart (#3108)
- fix(workflows): preserve commas inside quoted list-literal elements (#3134)
- ci: pin actions to commit SHAs and add shellcheck (#3126)
- chore: release 0.11.7, begin 0.11.8.dev0 development (#3154)

## [0.11.7] - 2026-06-24

### Changed

- feat(extensions): verify catalog archive sha256 before install (#3080)
- fix(workflows): validate requires keys and reject phantom permissions gate (#3079)
- fix(scripts): use case-sensitive match for acronym retention in PS branch names (#3130)
- feat(integrations): add omp support (#3107)
- fix: render valid TOML when a command body contains backslashes (#3135)
- harden: reject shell=True in run_command (#3132)
- docs: add monorepo guide (#3084)
- fix(scripts): send check-prerequisites.ps1 errors to stderr (#3123)
- fix: write Codex dev skills as files (#2988)
- chore: release 0.11.6, begin 0.11.7.dev0 development (#3121)

## [0.11.6] - 2026-06-23

### Changed
Expand Down
10 changes: 10 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,16 @@ uv pip install -e ".[test]"
> `specify_cli` to this checkout's `src/`. This matches the gotcha documented in
> `AGENTS.md` (Common Pitfalls).

#### Shell scripts

```bash
git ls-files -z -- '*.sh' | xargs -0 shellcheck --severity=error
```

The CI `lint.yml` `shellcheck` job currently reports and blocks only
error-severity findings. Warnings such as SC2155 are intentionally outside this
job until a follow-up cleanup tightens the threshold.

### Manual testing

#### Testing setup
Expand Down
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -205,10 +205,10 @@ specs/<feature>/preview/wireflow-high.html
常用命令:

```text
/speckit.repository-governance.refresh
/speckit.repository-governance.generate
```

它也注册了 hook,可在 constitution、plan、tasks 之后提示刷新治理内容
它也注册了 hook,可在 constitution、plan、tasks 之后提示生成或更新治理内容

主要产物:

Expand Down Expand Up @@ -415,7 +415,7 @@ specify preset add --dev extensions/arch/presets/arch-governance
/speckit.arch.process-reverse
/speckit.arch.development-reverse
/speckit.arch.physical-reverse
/speckit.repository-governance.refresh
/speckit.repository-governance.generate
/speckit.specify
/speckit.plan
/speckit.tasks
Expand Down
2 changes: 2 additions & 0 deletions docs/community/extensions.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@ The following community-contributed extensions are available in [`catalog.commun
| Fleet Orchestrator | Orchestrate a full feature lifecycle with human-in-the-loop gates across all SpecKit phases | `process` | Read+Write | [spec-kit-fleet](https://github.com/sharathsatish/spec-kit-fleet) |
| GitHub Issues Integration 1 | Generate spec artifacts from GitHub Issues - import issues, sync updates, and maintain bidirectional traceability | `integration` | Read+Write | [spec-kit-github-issues](https://github.com/Fatima367/spec-kit-github-issues) |
| GitHub Issues Integration 2 | Creates and syncs local specs from an existing GitHub issue | `integration` | Read+Write | [spec-kit-issue](https://github.com/aaronrsun/spec-kit-issue) |
| Golden Demo | Extracts acceptance criteria from specs, builds test vectors, and produces a behavioral drift report — complementary to Architecture Guard and CDD | `docs` | Read+Write | [spec-kit-golden-demo](https://github.com/jasstt/spec-kit-golden-demo) |
| Improve Extension | Audits any codebase as a senior advisor and writes prioritized, self-contained spec prompts under specs/ that the spec-kit lifecycle can process | `process` | Read+Write | [spec-kit-improve](https://github.com/d0whc3r/spec-kit-improve) |
| Intake | Normalize PRD, design, and test-case evidence into SDD-ready intake artifacts | `docs` | Read+Write | [spec-kit-intake](https://github.com/bigsmartben/spec-kit-intake) |
| Intelligent Agent Orchestrator | Cross-catalog agent discovery and intelligent prompt-to-command routing | `process` | Read+Write | [spec-kit-orchestrator](https://github.com/pragya247/spec-kit-orchestrator) |
Expand Down Expand Up @@ -117,6 +118,7 @@ The following community-contributed extensions are available in [`catalog.commun
| Spec Orchestrator | Cross-feature orchestration — track state, select tasks, and detect conflicts across parallel specs | `process` | Read-only | [spec-kit-orchestrator](https://github.com/Quratulain-bilal/spec-kit-orchestrator) |
| Spec Reference Loader | Reads the ## References section from the feature spec and loads only the listed docs into context | `docs` | Read-only | [spec-kit-spec-reference-loader](https://github.com/KevinBrown5280/spec-kit-spec-reference-loader) |
| Spec Refine | Update specs in-place, propagate changes to plan and tasks, and diff impact across artifacts | `process` | Read+Write | [spec-kit-refine](https://github.com/Quratulain-bilal/spec-kit-refine) |
| Spec Roadmap | Capture a durable spec roadmap after the constitution, then review specs against it before and after implementation so spec-specific decisions, outcomes, and constraints are never lost. | `process` | Read+Write | [speckit-roadmap](https://github.com/srobroek/speckit-roadmap) |
| Spec Scope | Effort estimation and scope tracking — estimate work, detect creep, and budget time per phase | `process` | Read-only | [spec-kit-scope-](https://github.com/Quratulain-bilal/spec-kit-scope-) |
| Spec Sync | Detect and resolve drift between specs and implementation. AI-assisted resolution with human approval | `docs` | Read+Write | [spec-kit-sync](https://github.com/bgervin/spec-kit-sync) |
| Spec Trace | Build a requirement → test traceability matrix from spec.md and the test suite — surface untested requirements and orphan tests | `code` | Read+Write | [spec-kit-trace](https://github.com/Quratulain-bilal/spec-kit-trace) |
Expand Down
Loading
Loading