Skip to content

ci(openspec): gate archived changes on having no unticked tasks - #113

Merged
Harol-Reina merged 1 commit into
mainfrom
ci/gate-archived-tasks
Sep 21, 2026
Merged

Harol-Reina merged 1 commit into
mainfrom
ci/gate-archived-tasks

Conversation

@Harol-Reina

Copy link
Copy Markdown
Contributor

Completes the ADR-0023 §7 rollout — the fifth and last repo.

Why here, where there is nothing to validate yet

The other four wired this after clearing real debt: 18 archived changes between them carried tasks that were never ticked, invisible to every gate because validate --all --strict does not read changes/archive/.

This repo has no archived change yet, so the step passes vacuously today.

That is the argument for adding it now rather than later. It guards the first archived change instead of the eighteenth. The cost of the other four was a full session of disposing 35 boxes one by one against the tree; the cost here is one line.

Two things checked before wiring

The empty case is safe — otherwise this would break CI on the next push:

$ npx -y @fission-ai/openspec@1.13.1 validate --archived --no-interactive
No items found to validate.
rc=0

It is a gate, not decoration — proved on a scratch copy of a repo that does have archived changes:

control (untouched)                       rc=0
one box unticked in one archived change    rc=1

What this costs from here

Archiving a change with an unticked box will fail CI. The box must then be dispositioned honestly — - [x] with evidence, or harvested into an open change. Never ticked to get green.

Verification on this branch

openspec validate --all --strict   No items found to validate (rc=0)
openspec validate --archived       rc=0
npm run check                      0 warnings, 0 hints
npm run lint                       rc=0
npm run test:i18n                  i18n parity OK across 3 locales
npm run validate:digests           rc=0

decision_ref: verbara-meta/ADR-0023 §7

🤖 Generated with Claude Code

Completes the ADR-0023 §7 rollout. The other four repos wired this step after
clearing real debt — 18 archived changes across them carried tasks that were
never ticked, invisible to every gate because `validate --all --strict` does not
read `changes/archive/`.

This repo has no archived change yet, so the step passes vacuously today. That
is the reason to add it now rather than later: it guards the FIRST archived
change instead of the eighteenth.

Verified the empty case is safe before wiring it — `validate --archived` exits 0
with "No items found to validate", so this cannot break CI on the next push. And
verified the step is a gate rather than decoration, on a scratch copy of a repo
that does have archived changes: exit 0 clean, exit 1 with a single box unticked.

Verified on this branch: openspec validate --all --strict, npm run check, lint,
test:i18n (parity OK across 3 locales) and validate:digests all rc=0.
@cloudflare-workers-and-pages

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Preview URL Updated (UTC)
✅ Deployment successful!
View logs
verbara-website 28aa55c Commit Preview URL

Branch Preview URL
Sep 21 2026, 12:57 PM

@Harol-Reina
Harol-Reina added this pull request to the merge queue Sep 21, 2026
Merged via the queue into main with commit e8bb896 Sep 21, 2026
11 checks passed
@Harol-Reina
Harol-Reina deleted the ci/gate-archived-tasks branch September 21, 2026 13:12
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