Skip to content

Releases: Fission-AI/OpenSpec

v1.12.0 - Findings Reports, SourceCraft

Choose a tag to compare

@openspec-release-bot openspec-release-bot released this 03 Sep 00:09
e062b95

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 findings with 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-uri advisories and refreshed website dependencies.

New Contributors

Full Changelog: v1.11.0...v1.12.0

v1.11.0 - Spec Diffs & Batch Status

Choose a tag to compare

@clay-good clay-good released this 26 Aug 21:40
a0ddb60

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. --diff isolates 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 --diff brings 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 validate catches 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 --default sets the default - The command now writes the schema key 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.

Full Changelog: v1.10.0...v1.11.0

v1.10.0 - Zed support, quieter installs

Choose a tag to compare

@clay-good clay-good released this 19 Aug 22:33
1ebddd1

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 zed installs 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-editing config.yaml. OpenSpec headings and SHALL/MUST stay 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/openspec no longer emits the allow-scripts warning 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 feedback used 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 requirement with 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 specs instruction 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-auth dropped add-auth before 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.md wrote 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

Full Changelog: v1.9.0...v1.10.0

v1.9.0 - Command Code & safer specs

Choose a tag to compare

@clay-good clay-good released this 13 Aug 15:38
2826b88

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 supportopenspec init --tools command-code installs 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 in changes/archive/ has all its tasks.md boxes ticked, exiting non-zero if not. Perfect for a pre-commit or CI hook to catch work archived unfinished. (#1604)

Improved

  • Honest root resolutionlist, validate --all/--changes/--specs, and schemas now fail loudly (non-zero) outside an OpenSpec root instead of quietly resolving an empty one. Single-item validate <name> is unchanged. (#1612, #1616)
  • Authoring-time scenario safetyvalidate counts every #### child of a requirement as a scenario, catching a MODIFIED block that would drop one before archive deletes it. (#1521)
  • Task-numbering warningsvalidate flags duplicate task IDs and tasks under a mismatched ## N. group for spec-driven changes (enforced under --strict). (#1523)
  • Quieter automationarchive uses 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 update workflow. (#1610, #1632)

Fixed

  • Faithful spec rebuilds — syncing a delta preserves the blank lines around ## Requirements and ends the file with exactly one newline. (#1528, #1637)
  • Schema fork fidelityopenspec schema fork keeps comments, block-scalar style, and key order by editing YAML in place. (#1607)
  • Shared-skills ownershipopenspec update won't overwrite a vendor-neutral .agents skills 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!

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

Choose a tag to compare

@clay-good clay-good released this 05 Aug 21:10
d578896

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 agents and you're set.
  • GitHub Copilot cloud agent, opt-in - openspec init can 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: true can 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 archive with 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.
  • validate catches 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.md count toward progress, so "✓ Complete" actually means complete.
  • Telemetry honors your config - telemetry.enabled: false turns 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 - init and update no longer delete the CoStrict and Junie command files they just generated.
  • Non-English specs validate - SHALL/MUST is 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

Full Changelog: v1.7.0...v1.8.0

v1.7.0 - New tools, smarter updates

Choose a tag to compare

@openspec-release-bot openspec-release-bot released this 29 Jul 01:31
4e16790

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 update keeps 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/OpenSpec works 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: true and move straight through validate and archive.
  • Project context in every workflow - Schemas can carry per-operation guidance, and openspec instructions apply|archive serve 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 ## Purpose carries 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.md is 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 feedback always 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-auth is 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

Full Changelog: v1.6.0...v1.7.0

v1.6.0 - OPSX Update, Tool Support

Choose a tag to compare

@openspec-release-bot openspec-release-bot released this 10 Jul 13:12
e1b51d1

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:update to 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 .omp layout.
  • TRAE support - Generate .trae/commands/opsx-<id>.md commands 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 MODIFIED requirements 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

Full Changelog: v1.5.0...v1.6.0

v1.6.0-beta.1

v1.6.0-beta.1 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 08 Jul 15:04
93e27a7

Beta prerelease. Install with npm install -g @fission-ai/openspec@beta.

What's Changed

New Contributors

Full Changelog: v1.5.0...v1.6.0-beta.1

v1.5.0 - Stores Beta

Choose a tag to compare

@openspec-release-bot openspec-release-bot released this 28 Jun 13:08
546224e

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

Full Changelog: v1.4.1...v1.5.0

v1.4.1 - Update Fix

Choose a tag to compare

@openspec-release-bot openspec-release-bot released this 03 Jun 09:36
1b06fdd

What's New in v1.4.1

Fixed

  • openspec update - Projects with their own workspace.yaml (like Dagster) now run openspec update normally again.