Releases: Fission-AI/OpenSpec
Release list
v1.12.0 - Findings Reports, SourceCraft
What's New in v1.12.0
OpenSpec v1.12.0 adds focused validation reports and SourceCraft support, while making planning, initialization, installation, and documentation more reliable.
New
- Findings-only validation reports - Use
openspec validate --report findingswith explicit bulk scopes to show only errors, warnings, and informational findings while preserving full-run totals and exit codes. - SourceCraft Code Assistant support - Generate OpenSpec project skills and commands for the SourceCraft VS Code extension.
Improved
- Code-grounded planning - Propose and fast-forward workflows now inspect relevant code, tests, and documentation before drafting artifacts.
- Focused exploration - Explore mode asks dependency-aware questions, recommends defaults, and checks the repository before asking users for facts already present in the codebase.
- Initialization reliability - Empty OpenSpec directories remain tracked in Git, and rerunning init safely restores missing markers.
- Consistent restart guidance - Init and update now share accurate IDE restart hints, including when workflows are removed.
- Documentation - Expanded archive, PowerShell completion, community showcase, spec behavior, analytics routing, and store-link guidance.
Fixed
- Delta validation - Merge conflicts appear as informational findings without changing exit codes, filesystem read errors remain distinct from missing specs, and advisory preflight failures preserve the validation report.
- Git installations - npm Git installs prepare correctly without requiring pnpm on the user's machine.
- Node.js 20 compatibility - Chalk remains on a Node.js 20-compatible version.
- Dependency security - Patched
fast-uriadvisories and refreshed website dependencies.
New Contributors
- @jasonsawthis made their first contribution in #1757
- @aleksandr4842 made their first contribution in #1171
- @pformoso-deus-ai made their first contribution in #792
- @DanRioDev made their first contribution in #1017
- @aron-intframe made their first contribution in #1725
- @Br1an67 made their first contribution in #786
Full Changelog: v1.11.0...v1.12.0
v1.11.0 - Spec Diffs & Batch Status
What's New in v1.11.0
This release makes it easier to see exactly what a change proposes, check your whole workspace at a glance, and trust that your specs and skills land right where you expect.
New
openspec show <change> --diff- See precisely what a change alters. Because a MODIFIED requirement has to restate every scenario it keeps, the delta you review is mostly text identical to the main spec.--diffisolates the lines that actually change, as a colorized unified diff per requirement, with full text for ADDED, the authored Reason and Migration notes for REMOVED, and clear FROM/TO for RENAMED.--json --diffbrings the same detail to your pipelines, and--store <id>diffs against that store.openspec status --all- Check every active change in one command instead of one process per change. The JSON envelope is sorted and stable, and a change that fails to load contributes a diagnostic in place rather than stopping the sweep, so dashboards and CI always get the full picture.
Improved
- Explore mode asks before it writes - Explore now names the artifacts or files it proposes to create or edit and waits for a clear yes in a separate message before touching anything. Answering its own clarifying questions no longer reads as consent. Read-only exploration stays friction-free.
- Explore diagrams render consistently everywhere - Worked examples use plain ASCII, so boxes and tables keep their alignment across terminals, fonts, and locales.
- Fish completions stay on topic - Commands, subcommands, flags, and positionals no longer fall back to filesystem suggestions, while genuine path arguments still complete paths.
- Antigravity uses the shared
.agents/root - Skills and workflows land where Antigravity looks for them and coexist cleanly with other tools sharing that tree. An existing.agent/install migrates automatically, and anything you customized is preserved and pointed out rather than overwritten. openspec validatecatches an unwritten Purpose - A capability still carrying the placeholder that archive writes is now reported, so specs get a real Purpose instead of quietly keeping a to-do. It stays a warning by default and only fails under--strict.
Fixed
- Archive keeps requirement order on rename - A renamed requirement stays in its original position instead of moving to the end of the spec, keeping archive diffs small and easy to read.
schema init --defaultsets the default - The command now writes theschemakey the config loader actually reads, so a new schema takes effect right away. It also validates and stages config changes before installing, and rolls back cleanly if anything fails.
New Contributors
A warm welcome to six people who made their first contribution to OpenSpec in this release. Thank you.
- @m-tanner made their first contribution in #1301
- @bsmedberg-xometry made their first contribution in #980
- @leo-ar made their first contribution in #1199
- @Dansyuqri made their first contribution in #1010
- @kitimark made their first contribution in #1671
- @aymanxdev made their first contribution in #1716
Full Changelog: v1.10.0...v1.11.0
v1.10.0 - Zed support, quieter installs
What's New in v1.10.0
Zed joins the supported tools, init speaks your language, and installing OpenSpec no longer trips npm's alarm.
New
- Zed Agent -
openspec init --tools zedinstalls the workflow skills into.agents/skills/, where Zed's built-in Agent finds them. Skills-only, so they're invoked as/openspec-propose. Requires Zed v1.4.2 or newer. - Non-English artifacts -
openspec init --language <language>sets the language for generated artifacts without hand-editingconfig.yaml. OpenSpec headings andSHALL/MUSTstay in English, so your specs still validate.
Improved
- Installing - the published package now declares no install scripts at all, so
npm install -g @fission-ai/openspecno longer emits theallow-scriptswarning that read like a packaging fault (and whose suggested fix,npm approve-scripts, never worked for a global install anyway). The shell-completions tip now comes from the CLI itself: once, on stderr, and only when there's a human there to read it. - Task plans - generated tasks now have to say how you'd know they're done, whether that's a test, a command, an observable result, or a delivered artifact. "Implement the thing" no longer passes for a plan.
- Prompts - the multi-select picker now shows the full key help from the prompt library, so navigation, select-all and invert are discoverable instead of folklore.
Fixed
- Feedback -
openspec feedbackused your entire report as the issue title and left the body with nothing but metadata. Reports now keep their text, and titles stay a readable length. - Archive - retiring a capability could dead-end on
Spec must have at least one requirementwith no guidance at all, when the spec also held content the merge couldn't account for. The abort now names exactly what's in the way. - Stores - the
specsinstruction read main specs from a path relative to your working directory. Under a store that missed the spec entirely, or, worse, quietly returned a different capability that happened to share the name. - Profiles - a custom profile could select archive without sync, leaving the archive workflow calling a workflow that was never installed.
- OpenCode -
/opsx-propose add-authdroppedadd-authbefore the workflow ever saw it. - Schemas with no specs artifact - changes created under one failed validation immediately, demanding a delta that schema could never produce.
- Output hygiene - the first-run telemetry notice went to stdout, so
openspec spec show auth > auth.mdwrote the notice into the file ahead of the spec. It goes to stderr now. openspec update- stopped advising Claude Code, Codex and other CLI tools to restart an IDE they don't have.
New Contributors
- @ryandemelo made their first contribution in #1666
Full Changelog: v1.9.0...v1.10.0
v1.9.0 - Command Code & safer specs
What's New in v1.9.0
New tool support, sharper validation, and safer spec rebuilds — plus clearer signals when you wander off the beaten path.
New
- Command Code support —
openspec init --tools command-codeinstalls the OpenSpec workflow skills and, as an adapter-backed tool, generates/opsx-*slash commands under.commandcode/commands/. (#1613, #1622) openspec validate --archived— an opt-in check that every change inchanges/archive/has all itstasks.mdboxes ticked, exiting non-zero if not. Perfect for a pre-commit or CI hook to catch work archived unfinished. (#1604)
Improved
- Honest root resolution —
list,validate --all/--changes/--specs, andschemasnow fail loudly (non-zero) outside an OpenSpec root instead of quietly resolving an empty one. Single-itemvalidate <name>is unchanged. (#1612, #1616) - Authoring-time scenario safety —
validatecounts every####child of a requirement as a scenario, catching a MODIFIED block that would drop one before archive deletes it. (#1521) - Task-numbering warnings —
validateflags duplicate task IDs and tasks under a mismatched## N.group forspec-drivenchanges (enforced under--strict). (#1523) - Quieter automation —
archiveuses plain-text prompts on non-TTY stdout (no stray escape codes in CI logs), and the first-run telemetry notice no longer intrudes on--json. (#1603, #1609) - Sharper guidance — the "Restart your IDE" hint shows only for IDE-resident tools, and the config picker now labels the
updateworkflow. (#1610, #1632)
Fixed
- Faithful spec rebuilds — syncing a delta preserves the blank lines around
## Requirementsand ends the file with exactly one newline. (#1528, #1637) - Schema fork fidelity —
openspec schema forkkeeps comments, block-scalar style, and key order by editing YAML in place. (#1607) - Shared-skills ownership —
openspec updatewon't overwrite a vendor-neutral.agentsskills tree (or flip its target) on a legacy Codex upgrade. (#1522) - Apply-scope honesty — apply guidance now tells agents to surface out-of-scope work rather than silently defer it. (#1530)
New Contributors 🎉
Four developers shipped their very first OpenSpec contribution in this release — welcome aboard!
- @Marzx13 made their first contribution in #1528
- @Angelthebestone made their first contribution in #1613
- @Patodo made their first contribution in #1616
- @jwang513 made their first contribution in #1637
Thanks 💙
v1.9.0 is a community release through and through. A hearty thank-you to @alectimison-maker for continuing to sharpen validation (#1523), and to everyone who filed an issue, tested a build, or opened a PR this cycle. Every improvement here started with someone noticing something — please keep it coming.
Full Changelog: v1.8.0...v1.9.0
v1.8.0 - More agents, sturdier archives
What's New in v1.8.0
Thirty-four merged PRs from fifteen contributors. More agents pull up a chair, archive learns to use its words, and validate starts catching problems while you can still fix them cheaply.
New
- Three more agent targets - The vendor-neutral
agents(writes skills to the shared.agents/skills/that AGENTS.md-aware assistants read), MiniMax Code, and Atlassian's Rovo Dev CLI.openspec init --tools agentsand you're set. - GitHub Copilot cloud agent, opt-in -
openspec initcan generate Copilot coding-agent files for you. It asks first and defaults to No, so nothing lands in.github/unless you say yes. - Retire a capability on archive - A change that declares
retire_capabilities: truecan remove a capability's last requirement and cleanly delete its spec, instead of hitting a wall at archive time.
Improved
- Archive that talks back - Run
openspec archivewith no terminal (an agent, a CI job) and it now names the exact flag it needs and hands you a paste-ready rerun, instead of dying on a cryptic prompt error. validatecatches scenario loss early - A MODIFIED requirement that would drop a scenario now fails at authoring time, naming the scenarios to copy back, instead of ambushing you at archive.- Sub-tasks finally count - Nested checkboxes in
tasks.mdcount toward progress, so "✓ Complete" actually means complete. - Telemetry honors your config -
telemetry.enabled: falseturns off anonymous telemetry and update checks. Env and CI opt-outs still win. - Sharper agent workflows - Propose stays focused on planning and hands off cleanly to apply, explore scaffolds a real change before writing to it, and nested
specs/<area>/<capability>/paths are preserved end to end.
Fixed
- Stops eating its own commands -
initandupdateno longer delete the CoStrict and Junie command files they just generated. - Non-English specs validate -
SHALL/MUSTis treated as guidance in normal mode, so requirements in other languages pass. Strict mode still enforces it. - Your notes stay put - Archive warns before a merge would drop a note tucked under a requirement, and generated files stay inside their boundaries without breaking linked monorepos.
New Contributors
- @Ardakilic made their first contribution in #1079
- @Shashank200345 made their first contribution in #1153
- @ismet made their first contribution in #1196
- @NicoAvanzDev made their first contribution in #1274
- @solanab made their first contribution in #1303
- @SuhaibAslam made their first contribution in #1487
- @alectimison-maker made their first contribution in #1491
- @FasterPHP made their first contribution in #1513
Full Changelog: v1.7.0...v1.8.0
v1.7.0 - New tools, smarter updates
What's New in v1.7.0
Ninety merged PRs from nineteen contributors. New tools, sturdier archives, and a CLI that keeps itself fresh.
New
openspec updatekeeps you current - It now checks npm for a newer release and offers to run the upgrade for you. One less thing to remember.- Five new AI tools - Welcome ZCode, Hermes Agent, CodeArts Agent, and Kimi Code; Codex now runs skills-only. And if skills.sh is your thing,
npx skills add Fission-AI/OpenSpecworks too. - One default store for your whole machine -
openspec config set defaultStore <id>and every repo without its own config resolves through it. - Changes without spec changes - Pure refactors and docs work can declare
skip_specs: trueand move straight through validate and archive. - Project context in every workflow - Schemas can carry per-operation guidance, and
openspec instructions apply|archiveserve it to your agent right when it needs it.
Improved
- Slash commands, spelled the way your tool spells them - Generated content now matches each tool's registered command names across all 30+ supported tools.
- Archives flow - Already-synced deltas glide through as no-ops, your authored
## Purposecarries into new specs, and dated names stay tidy on re-archive. - Multi-select prompts got proper checkboxes -
[x]for multi-select, exactly as your fingers expect. - A welcome screen for everyone - Honors your OS Reduce Motion setting,
--no-animation, and waits politely for Enter. - Nested spec folders everywhere -
specs/<area>/<capability>/spec.mdis first-class in validate, apply, archive, and view.
Fixed
- Leaner, policy-friendly installs - Telemetry now sends its single event with a plain fetch, so installs are ~160 packages lighter and sail through supply-chain age policies like pnpm's
minimumReleaseAge(#1390). - Completions everywhere you shell - fish gets true fish completions, PowerShell scripts parse cleanly, and Oh My Zsh installs land in your actual
$ZSH. - Windows input flows smoothly - keystrokes register immediately after the welcome screen.
openspec feedbackalways delivers - your message reaches an issue or a ready-to-send link, whatever gh is up to.- Files from every editor parse - UTF-8 BOMs from Windows editors are handled transparently.
- Change names with leading digits -
0001-add-authis valid everywhere, matching the archive conventions.
Want every detail? All 79 changes are itemized in the CHANGELOG.
Thanks
Every PR in this release, big or small, made it better:
@TabishB, @showms, @mc856, @hsusul, @xiaoquisme, @vishnujayvel, @taltas, @nmrtn, @mehdishahdoost, @jikkujoyce, @javigomez, @fyeeme, @c4patino, @benjymoses, @akeyz, @Lukk17, @HowardYan888, @CodeArtsAgent, @clay-good
New Contributors
- @javigomez made their first contribution in #1151
- @akeyz made their first contribution in #1208
- @xiaoquisme made their first contribution in #1292
- @fyeeme made their first contribution in #1209
- @mc856 made their first contribution in #1191
- @CodeArtsAgent made their first contribution in #1266
- @showms made their first contribution in #1283
- @vishnujayvel made their first contribution in #1391
- @benjymoses made their first contribution in #1299
- @nmrtn made their first contribution in #1109
- @Lukk17 made their first contribution in #1255
- @taltas made their first contribution in #1428
- @c4patino made their first contribution in #1455
- @hsusul made their first contribution in #1447
- @jikkujoyce made their first contribution in #1469
- @mehdishahdoost made their first contribution in #1167
Full Changelog: v1.6.0...v1.7.0
v1.6.0 - OPSX Update, Tool Support
What's New in v1.6.0
This release adds a safer way to revise plans in place, expands tool support, and hardens validation, archiving, and store setup.
New
- Update planning artifacts - Use
/opsx:updateto revise an existing change's plan and reconcile related artifacts without crossing into implementation work. - Oh My Pi support - Generate native OPSX commands and skills for Oh My Pi projects, with automatic tool detection and the expected
.omplayout. - TRAE support - Generate
.trae/commands/opsx-<id>.mdcommands for TRAE projects.
Improved
- Generated skill permissions - Generated skills and Claude commands can pre-approve the OpenSpec CLI, avoiding repeated confirmation prompts while leaving other tools under normal permission controls.
- Requirement handling - Validation now reads fenced examples, metadata, multi-line descriptions, nested deltas, and normative keywords more consistently across changes and main specs.
Fixed
- Fresh stores - Newly created stores can be registered and used before empty changes, specs, or archive directories have been committed.
- Archive safety - Stale
MODIFIEDrequirements stop instead of silently deleting scenarios added by an earlier archive. - Resolution and task progress -
validate,view,list, and archive checks now agree on change resolution and correctly handle nested specs and task files. - Archive failure signaling - Blocked human-mode archive operations now exit non-zero, so scripts and CI no longer interpret validation failures as success.
New Contributors
- @danilopopeye made their first contribution in #1311
- @ercanerdogan made their first contribution in #1261
- @jjxyxsjr made their first contribution in #1090
- @xianzheTM made their first contribution in #1276
Full Changelog: v1.5.0...v1.6.0
v1.6.0-beta.1
Beta prerelease. Install with npm install -g @fission-ai/openspec@beta.
What's Changed
- fix(resolution): converge validate, view, and archive onto canonical resolution (#1182, #1202, #1156) by @clay-good in #1280
- docs: add cloudflare documentation deployment website by @clay-good in #1285
- Fix
archiveexit code on validation failure by @danilopopeye in #1311 - feat(skills): propose /opsx:update planning-artifact update skill by @clay-good in #1278
- refactor: unify requirement reader and surface #498 by @clay-good in #1281
- feat(skills): auto-approve the openspec CLI in generated skills and commands by @clay-good in #1300
- fix archive scenario drift for #1246 by @zhangsan582 in #1252
- docs: clarify change name format by @ercanerdogan in #1261
- chore: remove stale npm lockfile by @TabishB in #1319
- feat: add Trae command adapter by @jjxyxsjr in #1090
- feat: add Oh My Pi (OMP) tool support by @xianzheTM in #1276
- chore: remove scheduled docs workflow by @TabishB in #1324
- Fix Windows CI flake hardening by @TabishB in #1325
- ci(release): add beta prerelease workflow by @clay-good in #1327
- fix(stores): allow empty store registration by @TabishB in #1328
New Contributors
- @danilopopeye made their first contribution in #1311
- @ercanerdogan made their first contribution in #1261
- @jjxyxsjr made their first contribution in #1090
- @xianzheTM made their first contribution in #1276
Full Changelog: v1.5.0...v1.6.0-beta.1
v1.5.0 - Stores Beta
What's New in v1.5.0
Stores arrives in very early beta — a simpler model for organizing specs and changes — alongside a couple of generation and config fixes.
New
- Stores (very early beta) - A simpler way to organize specs and changes, replacing the workspace and initiative model. Still rough — expect breaking changes while it stabilizes.
Fixed
- Config parsing - Configuration values wrapped in JSON containers are now parsed correctly.
- YAML frontmatter - Carriage returns in generated command descriptions are now escaped instead of written literally, which could silently corrupt CRLF-authored values.
New Contributors
- @clay-good made their first contribution in #1237
- @zied-jlassi made their first contribution in #1240
- @zhangsan582 made their first contribution in #1244
Full Changelog: v1.4.1...v1.5.0
v1.4.1 - Update Fix
What's New in v1.4.1
Fixed
openspec update- Projects with their ownworkspace.yaml(like Dagster) now runopenspec updatenormally again.