Minor Changes
-
#883
c879d13Thanks @Code-Studio-Team! - Add Code Studio as aninitandupdatetarget, with project skills and.prompt.mdcommands under.codestudio/. -
#1672
297092cThanks @DarkskyX15! - - DeepSeek Harness —openspec init --tools dsh(command-line iddsh) installs the OpenSpec workflow skills into.dsh/skills/for DeepSeek Harness. It is skills-only (no command adapter or command files): dsh discovers the generatedSKILL.mdfiles as its highest-priority project root and surfaces them through its skill catalog,skilltool, and/openspec-*user invocations. -
#1961
3c3e6e3Thanks @fresh-fx59! - Add GigaCode as a supported--toolstarget, with skills in.gigacode/skills/openspec-*/SKILL.mdand Markdown commands in.gigacode/commands/opsx-<id>.md. -
#1211
3de7c72Thanks @hu-qi! - Add AtomCode support throughopenspec init --tools atomcode, with project skills in.atomcode/skills/and/opsx-<id>commands in.atomcode/commands/. Generated commands declareargs: optionaland receive$ARGUMENTSwhen the workflow reads invocation input, andargs: nonewhen it does not, so AtomCode runs them straight from the slash menu. Follows the selected workflow profile and delivery mode. -
#1082
a7f08b8Thanks @Storm-Chaser! - ### New Features- GSD support: Install OpenSpec workflows as project skills with
openspec init --tools gsd.
- GSD support: Install OpenSpec workflows as project skills with
-
#420
070de01Thanks @jeanduplessis! - ### New Features- Amp support: select
ampduring init to install OpenSpec workflows as project skills under.agents/skills/.
- Amp support: select
-
#2001
56528eaThanks @clay-good! - ### New Features- Version reports — Run
openspec versionto inspect the installed version and install type, or add--checkand--jsonfor structured update information that tools can consume.
- Version reports — Run
-
#1352
d1642cbThanks @redknox! - Add EasyCode support to init and update, with project-local skills and TOML commands invoked as/opsx:<id>. -
#399
ded99e2Thanks @ZEDce! - Addopenspec list --archivedand--allto browse archived changes, including JSON output and sorting. Show archived changes separately in theopenspec viewdashboard. -
#848
5a360c2Thanks @Columpio! - ### New Features- Veai support: select
veaiduring init to install OpenSpec workflows as project skills under.veai/skills/.
- Veai support: select
-
#1439
f197804Thanks @jmuchovej! - Expose OpenSpec as a reusable Nix overlay throughoverlays.default. -
#1349
e232080Thanks @0x6d6e647a! - Add Grok Build as a skills-only tool. Runopenspec init --tools grokto install skills in.grok/skills, then invoke them with/openspec-proposeand other skill names. Existing Grok installations are refreshed byopenspec update. -
#1738
781c7f9Thanks @clay-good! - Add Warp support through project-local skills. Selectwarpduring init to install OpenSpec workflows in.warp/skills, invoke them with/openspec-*, and refresh them withopenspec update. Skills remain available in every delivery mode. -
#807
c21d897Thanks @Million-mo! - ### New Features- Dashboard workflow status:
openspec viewnow 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.
- Dashboard workflow status:
Patch Changes
-
#1977
7728194Thanks @clay-good! - Theopenspec-archive-changeskill no longer tells the agent to run theopenspec-sync-specsskill when that skill is not installed. It merges the delta specs into the main specs itself instead, as the/opsx:archivecommand already did (#1975). -
#1722
817cdb6Thanks @caseyg! - ### Bug Fixes- IBM Bob now appears by its full product name in the tool picker and success messages. Existing
bobselections, configuration, skills, and slash-command paths continue to work unchanged.
- IBM Bob now appears by its full product name in the tool picker and success messages. Existing
-
#1999
bda8556Thanks @clay-good! - Guide users through an AI-assisted migration from legacyproject.mdtoconfig.yaml. -
#1997
e70dcc7Thanks @clay-good! - Guide proposal authors toward durable, behavior-based capability names. -
#2018
81c2f9fThanks @clay-good! - ### Bug Fixes- Apply edits the right task —
openspec instructions apply --jsonnow gives each task itssourcePathandline. 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:archivereports 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 viewprogress bars — Active change names up to 48 characters now line up their progress bars instead of pushing each bar out of line.
- Apply edits the right task —
-
#1969
9557b43Thanks @flcrom! - ### Bug Fixes- Let store-only repositories run
openspec initat the repo root to install integrations without changing the external-store config or creating local planning directories.
- Let store-only repositories run
-
#2004
d4e1c77Thanks @clay-good! - Warn that files listed for legacy cleanup are deleted entirely and ask users to back up custom content first. Theopenspec/AGENTS.mdcheck detects the file by existence alone. -
#1995
baad449Thanks @clay-good! - Guide agents to keep project documentation and codebase facts out ofconfig.yamlcontext. -
#1978
1872982Thanks @clay-good! - The specs instruction now tells agents the 500-character requirement length thatopenspec validateflags 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
d28fb49Thanks @ryandemelo! -show --jsonnow includes each requirement's and scenario'sname, matching the header names archive uses, so JSON readers can cite a requirement without parsing the markdown again (#1971). -
#2014
cf2859aThanks @clay-good! - Fixstatus --jsonfor store-backed changes:actionContext.allowedEditRootsnow 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
42671dfThanks @Yi-111-a! - Name the offending index when arules:list is not an array of stringsA 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
88692b3Thanks @kevin9327! - ### Bug Fixes- Change metadata — Warn when
.openspec.yamlcontains unrecognized keys such asskip_design. Those keys were stripped with no signal, sostatusstill demanded the design artifact andvalidate --strictexited 0.status,validate, andarchivenow name the ignored keys;validate --strictfails.
- Change metadata — Warn when
-
#2016
cd4f9e4Thanks @huiq777! - Makeopenspec completion uninstall zshhand.zshrcback exactly ascompletion install zshfound it. Uninstall stripped every blank line at the top of the file, so a.zshrcthat 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.