Skip to content

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

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).

Pilot repo for the rollout: root of the chain, smallest spec tree. The other four follow once this one is 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) 13 passed, 0 failed — rc=0
1.13.1 (this PR) 13 passed, 0 failed — rc=0

Also run locally on the integrated branch: tools/audit-test-asserts.sh, scripts/check-recording-redaction.py, and python3 -m unittest discover scripts/tests — all 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. It is cosmetic and one-time per spec; don't read it as corruption.

One visible cost: this repo's OpenSpec Validate output gains advisory [INFO] lines (Requirement text is very long (>500 characters)). Advisory only — they do not affect the exit code.

Pilot repo for the ADR-0022 rollout: root of the chain, smallest spec tree.

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 — `validate --all --strict` reports
13 passed, 0 failed at 1.8.0 and at 1.13.1 alike — so CI is the acceptance
test and the revert is this one line.

decision_ref: verbara-meta/ADR-0022
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