Skip to content

ci(openspec): pin the OpenSpec CLI to 1.13.1 (verbara-meta/ADR-0022) - #339

Merged
Harol-Reina merged 1 commit into
mainfrom
ci/openspec-pin-1.13.1
Sep 20, 2026
Merged

Harol-Reina merged 1 commit into
mainfrom
ci/openspec-pin-1.13.1

Conversation

@Harol-Reina

Copy link
Copy Markdown
Contributor

decision_ref: verbara-meta/ADR-0022OpenSpec CLI pin: 1.8.0 → 1.13.1 (supersedes ADR-0018).

Same-shaped PR of the ADR-0022 rollout. The pilot, Verbara.Sdk#276, is 14/14 green.

The diff

-        run: npx -y @fission-ai/openspec@1.8.0 validate --all --strict --no-interactive
+        run: npx -y @fission-ai/openspec@1.13.1 validate --all --strict --no-interactive

One line. The revert is the same line.

Why (the ADR carries the full argument; this is the short form)

  1. A remedy we prescribe does not run. verbara-meta/ADR-0019 put retire_capabilities: true into every repo's openspec/config.yaml. It aborts on any spec whose scenario bullets wrap onto a second line — 34 of the ecosystem's 51 living specs — and 1.13.0 (#1782) is the first release where it works.
  2. A prompt-injection surface. Every version through 1.13.0 printed config.yaml's context and operations.*.guidance raw into the agent instruction envelope. 1.13.1 (#1902) escapes both, closes catastrophic regex backtracking in update/archive, and stops a repo .npmrc pointing the update check at an attacker-controlled registry — which every npx -y in every PR runs.

This repo is green under both pins

CLI validate --all --strict --no-interactive
1.8.0 (current) 5 passed, 0 failed — rc=0
1.13.1 (this PR) 5 passed, 0 failed — rc=0

Also run locally on the integrated branch: python3 -m unittest discover scripts/tests — clean.

What to expect after this lands

The first openspec archive under the new pin reformats every living spec it touches — a blank line either side of ## Requirements, and the file's trailing blank line dropped. +2 / -1 blank lines per touched spec, zero content change, verified across 28 specs in ADR-0022's Gate 2. Cosmetic and one-time per spec; do not read it as corruption.

Same-shaped PR of the ADR-0022 rollout; the Sdk pilot is 14/14 green.

The pin moves because a remedy this workspace prescribes does not run.
verbara-meta/ADR-0019 carried `retire_capabilities: true` into every repo's
openspec/config.yaml; it aborts on any spec whose scenario bullets wrap onto a
second line, which is 34 of the ecosystem's 51 living specs, and 1.13.0 is the
first release where it works. 1.13.1 additionally stops config.yaml's
`context`/`operations.*.guidance` being printed raw into the agent
instruction envelope, closes ReDoS in update/archive, and stops a repo .npmrc
redirecting the CLI's update check.

This repo's tree is green under both pins (5 passed, 0 failed — rc=0), so CI is the acceptance
test and the revert is this one line.

decision_ref: verbara-meta/ADR-0022
@Harol-Reina
Harol-Reina added this pull request to the merge queue Sep 20, 2026
Merged via the queue into main with commit 373394a Sep 20, 2026
13 checks passed
@Harol-Reina
Harol-Reina deleted the ci/openspec-pin-1.13.1 branch September 20, 2026 14:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant