From 5e016e496aad23f5599d4156317e99990155c0b0 Mon Sep 17 00:00:00 2001 From: Clay Good Date: Wed, 12 Aug 2026 11:27:41 -0500 Subject: [PATCH] chore(changeset): add catch-up changesets for 6 untracked fixes Six user-facing fixes merged after v1.8.0 without a changeset, so they would ship in v1.9.0 with no changelog entry and their authors uncredited. All are patch fixes; the release target stays at 1.9.0. Covers: #1637, #1607, #1632, #1616, #1612, #1523. Co-Authored-By: Claude Opus 4.8 --- .changeset/catchup-archive-requirements-blank-lines.md | 5 +++++ .changeset/catchup-cli-reject-missing-roots.md | 5 +++++ .changeset/catchup-config-picker-update-label.md | 5 +++++ .changeset/catchup-schema-fork-yaml-fidelity.md | 5 +++++ .changeset/catchup-schemas-canonical-root.md | 5 +++++ .changeset/catchup-validate-task-numbering.md | 5 +++++ 6 files changed, 30 insertions(+) create mode 100644 .changeset/catchup-archive-requirements-blank-lines.md create mode 100644 .changeset/catchup-cli-reject-missing-roots.md create mode 100644 .changeset/catchup-config-picker-update-label.md create mode 100644 .changeset/catchup-schema-fork-yaml-fidelity.md create mode 100644 .changeset/catchup-schemas-canonical-root.md create mode 100644 .changeset/catchup-validate-task-numbering.md diff --git a/.changeset/catchup-archive-requirements-blank-lines.md b/.changeset/catchup-archive-requirements-blank-lines.md new file mode 100644 index 000000000..00e051770 --- /dev/null +++ b/.changeset/catchup-archive-requirements-blank-lines.md @@ -0,0 +1,5 @@ +--- +"@fission-ai/openspec": patch +--- + +Preserve the blank lines around a spec's `## Requirements` heading when syncing a delta. `openspec archive` rebuilt `openspec/specs//spec.md` by joining its slices with a bare newline, so the blank lines that surround the heading were dropped and the resulting file failed Markdown whitespace checks. The rebuild now keeps that spacing intact. Fixes #1625. Thanks [@jwang513](https://github.com/jwang513)! ([#1637](https://github.com/Fission-AI/OpenSpec/pull/1637)) diff --git a/.changeset/catchup-cli-reject-missing-roots.md b/.changeset/catchup-cli-reject-missing-roots.md new file mode 100644 index 000000000..1246f0241 --- /dev/null +++ b/.changeset/catchup-cli-reject-missing-roots.md @@ -0,0 +1,5 @@ +--- +"@fission-ai/openspec": patch +--- + +`openspec validate --all` and `openspec list --json` no longer silently pass when run outside an OpenSpec project. From a directory with no root they used to resolve the current directory as an implicit root, exit 0, and report empty results — a false pass for CI and agents. Bulk validation (`--all`, `--changes`, `--specs`) and `list` now require an existing root (the `openspec/project.md` fallback for legacy projects is kept), while direct validation and other intentional implicit-root workflows are unchanged. Thanks [@clay-good](https://github.com/clay-good)! ([#1612](https://github.com/Fission-AI/OpenSpec/pull/1612)) diff --git a/.changeset/catchup-config-picker-update-label.md b/.changeset/catchup-config-picker-update-label.md new file mode 100644 index 000000000..1d7f23871 --- /dev/null +++ b/.changeset/catchup-config-picker-update-label.md @@ -0,0 +1,5 @@ +--- +"@fission-ai/openspec": patch +--- + +Label the `update` workflow in the `openspec config` workflow picker. The checklist had friendly labels for 11 of the 12 workflows but was missing `update`, so that row — one of the six core workflows every user sees — fell back to its raw id with a placeholder description. The update-change template's stale "expanded-profile" wording is also reworded to "optional". Fixes #1627. Thanks [@clay-good](https://github.com/clay-good)! ([#1632](https://github.com/Fission-AI/OpenSpec/pull/1632)) diff --git a/.changeset/catchup-schema-fork-yaml-fidelity.md b/.changeset/catchup-schema-fork-yaml-fidelity.md new file mode 100644 index 000000000..e2485d624 --- /dev/null +++ b/.changeset/catchup-schema-fork-yaml-fidelity.md @@ -0,0 +1,5 @@ +--- +"@fission-ai/openspec": patch +--- + +`openspec schema fork` now preserves the source schema's YAML formatting. Renaming a forked `schema.yaml` round-tripped through a parse/re-serialize step that dropped comments, could rewrite block-scalar style (a literal `|` folded to `>`), and reordered keys, so the fork no longer matched its source. The rename now edits the document in place via the YAML Document API, leaving comments, scalar style, and key order untouched. Thanks [@clay-good](https://github.com/clay-good)! ([#1607](https://github.com/Fission-AI/OpenSpec/pull/1607)) diff --git a/.changeset/catchup-schemas-canonical-root.md b/.changeset/catchup-schemas-canonical-root.md new file mode 100644 index 000000000..027ac6b94 --- /dev/null +++ b/.changeset/catchup-schemas-canonical-root.md @@ -0,0 +1,5 @@ +--- +"@fission-ai/openspec": patch +--- + +`openspec schemas` now resolves through the canonical OpenSpec root-selection precedence instead of always reading from the current directory. It accepts `--store `, rejects `--store-path` like the other store-aware commands, and returns the shared machine-readable diagnostics on JSON failures, while preserving the existing human output and bare JSON array on success. Thanks [@Patodo](https://github.com/Patodo)! ([#1616](https://github.com/Fission-AI/OpenSpec/pull/1616)) diff --git a/.changeset/catchup-validate-task-numbering.md b/.changeset/catchup-validate-task-numbering.md new file mode 100644 index 000000000..b35188fe6 --- /dev/null +++ b/.changeset/catchup-validate-task-numbering.md @@ -0,0 +1,5 @@ +--- +"@fission-ai/openspec": patch +--- + +`openspec validate` now warns on ambiguous task numbering in `spec-driven` changes: a task ID duplicated at full depth (including across resolved task files), or a task whose leading number disagrees with its enclosing `## N.` group. Numeric-looking text outside numbered groups is ignored, and custom schemas are unchanged until they opt in. The checks run across direct, bulk, and deprecated change validation. Closes #1520. Thanks [@alectimison-maker](https://github.com/alectimison-maker)! ([#1523](https://github.com/Fission-AI/OpenSpec/pull/1523))