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