github Fission-AI/OpenSpec @fission-ai/openspec@1.14.0

2 hours ago

Minor Changes

  • #883 c879d13 Thanks @Code-Studio-Team! - Add Code Studio as an init and update target, with project skills and .prompt.md commands under .codestudio/.

  • #1672 297092c Thanks @DarkskyX15! - - DeepSeek Harness — openspec init --tools dsh (command-line id dsh) installs the OpenSpec workflow skills into .dsh/skills/ for DeepSeek Harness. It is skills-only (no command adapter or command files): dsh discovers the generated SKILL.md files as its highest-priority project root and surfaces them through its skill catalog, skill tool, and /openspec-* user invocations.

  • #1961 3c3e6e3 Thanks @fresh-fx59! - Add GigaCode as a supported --tools target, with skills in .gigacode/skills/openspec-*/SKILL.md and Markdown commands in .gigacode/commands/opsx-<id>.md.

  • #1211 3de7c72 Thanks @hu-qi! - Add AtomCode support through openspec init --tools atomcode, with project skills in .atomcode/skills/ and /opsx-<id> commands in .atomcode/commands/. Generated commands declare args: optional and receive $ARGUMENTS when the workflow reads invocation input, and args: none when it does not, so AtomCode runs them straight from the slash menu. Follows the selected workflow profile and delivery mode.

  • #1082 a7f08b8 Thanks @Storm-Chaser! - ### New Features

    • GSD support: Install OpenSpec workflows as project skills with openspec init --tools gsd.
  • #420 070de01 Thanks @jeanduplessis! - ### New Features

    • Amp support: select amp during init to install OpenSpec workflows as project skills under .agents/skills/.
  • #2001 56528ea Thanks @clay-good! - ### New Features

    • Version reports — Run openspec version to inspect the installed version and install type, or add --check and --json for structured update information that tools can consume.
  • #1352 d1642cb Thanks @redknox! - Add EasyCode support to init and update, with project-local skills and TOML commands invoked as /opsx:<id>.

  • #399 ded99e2 Thanks @ZEDce! - Add openspec list --archived and --all to browse archived changes, including JSON output and sorting. Show archived changes separately in the openspec view dashboard.

  • #848 5a360c2 Thanks @Columpio! - ### New Features

    • Veai support: select veai during init to install OpenSpec workflows as project skills under .veai/skills/.
  • #1439 f197804 Thanks @jmuchovej! - Expose OpenSpec as a reusable Nix overlay through overlays.default.

  • #1349 e232080 Thanks @0x6d6e647a! - Add Grok Build as a skills-only tool. Run openspec init --tools grok to install skills in .grok/skills, then invoke them with /openspec-propose and other skill names. Existing Grok installations are refreshed by openspec update.

  • #1738 781c7f9 Thanks @clay-good! - Add Warp support through project-local skills. Select warp during init to install OpenSpec workflows in .warp/skills, invoke them with /openspec-*, and refresh them with openspec update. Skills remain available in every delivery mode.

  • #807 c21d897 Thanks @Million-mo! - ### New Features

    • Dashboard workflow status: openspec view now shows each active change's schema and which artifacts are done, ready, blocked, or skipped. Task progress remains visible if a workflow cannot be loaded. Thanks to @Million-mo for the original contribution in #807.

Patch Changes

  • #1977 7728194 Thanks @clay-good! - The openspec-archive-change skill no longer tells the agent to run the openspec-sync-specs skill when that skill is not installed. It merges the delta specs into the main specs itself instead, as the /opsx:archive command already did (#1975).

  • #1722 817cdb6 Thanks @caseyg! - ### Bug Fixes

    • IBM Bob now appears by its full product name in the tool picker and success messages. Existing bob selections, configuration, skills, and slash-command paths continue to work unchanged.
  • #1999 bda8556 Thanks @clay-good! - Guide users through an AI-assisted migration from legacy project.md to config.yaml.

  • #1997 e70dcc7 Thanks @clay-good! - Guide proposal authors toward durable, behavior-based capability names.

  • #2018 81c2f9f Thanks @clay-good! - ### Bug Fixes

    • Apply edits the right task — openspec instructions apply --json now gives each task its sourcePath and line. The apply workflow checks the checkbox at that location before marking the task done and rechecks progress afterward, so agents update the exact task, even when tasks span several files.
    • Archive stops on a failed spec sync — When the spec sync inside /opsx:archive reports a blocking condition, such as a capability retirement it could not complete, the archive now stops and leaves the change in place instead of archiving it with the main specs unchanged. The same applies to bulk archive.
    • Aligned openspec view progress bars — Active change names up to 48 characters now line up their progress bars instead of pushing each bar out of line.
  • #1969 9557b43 Thanks @flcrom! - ### Bug Fixes

    • Let store-only repositories run openspec init at the repo root to install integrations without changing the external-store config or creating local planning directories.
  • #2004 d4e1c77 Thanks @clay-good! - Warn that files listed for legacy cleanup are deleted entirely and ask users to back up custom content first. The openspec/AGENTS.md check detects the file by existence alone.

  • #1995 baad449 Thanks @clay-good! - Guide agents to keep project documentation and codebase facts out of config.yaml context.

  • #1978 1872982 Thanks @clay-good! - The specs instruction now tells agents the 500-character requirement length that openspec validate flags as an informational hint, and how to stay under it when writing new requirements without splitting existing ones. The validator's too-long message now explains how to split a requirement too.

  • #1972 d28fb49 Thanks @ryandemelo! - show --json now includes each requirement's and scenario's name, matching the header names archive uses, so JSON readers can cite a requirement without parsing the markdown again (#1971).

  • #2014 cf2859a Thanks @clay-good! - Fix status --json for store-backed changes: actionContext.allowedEditRoots now lists the project on the current path that declares the store alongside the store, so apply no longer stops on a store-only edit scope. When no project on the current path declares the store, the constraint tells the agent to ask which repository to edit instead of naming the store.

  • #1984 42671df Thanks @Yi-111-a! - Name the offending index when a rules: list is not an array of strings

    A rule item containing an unquoted ": " is valid-looking YAML but parses as a
    mapping, so the artifact's whole rule set is dropped with only a stderr warning
    naming the artifact. The warning now also names the index and the shape YAML
    produced there, plus the quoting fix, so the bad item can be found without
    bisecting the list by hand.

  • #1925 88692b3 Thanks @kevin9327! - ### Bug Fixes

    • Change metadata — Warn when .openspec.yaml contains unrecognized keys such as skip_design. Those keys were stripped with no signal, so status still demanded the design artifact and validate --strict exited 0. status, validate, and archive now name the ignored keys; validate --strict fails.
  • #2016 cd4f9e4 Thanks @huiq777! - Make openspec completion uninstall zsh hand .zshrc back exactly as completion install zsh found it. Uninstall stripped every blank line at the top of the file, so a .zshrc that started with blank lines lost them after an install/uninstall round trip, even when the OpenSpec block had been moved further down. Uninstall now drops only the separator line install added, and only when the block sits at the top of the file, matching the bash installer.

Don't miss a new OpenSpec release

NewReleases is sending notifications on new releases.