Skip to content

chore(openspec): archive signature-coverage-statement - #248

Merged
thecodedrift merged 1 commit into
mainfrom
chore/archive-signature-coverage-statement
Sep 2, 2026
Merged

chore(openspec): archive signature-coverage-statement#248
thecodedrift merged 1 commit into
mainfrom
chore/archive-signature-coverage-statement

Conversation

@thecodedrift

Copy link
Copy Markdown
Member

#247 merged signature-coverage-statement and never took its tip step.

That matters more than a tidy-up, because archiving is what promotes a delta into the standing spec. Until this lands, the statement the change exists to make is not in openspec/specs/cli-rule-reconciliation/spec.md:

matches in standing spec: 0
matches in the change:    1

We declined the generator team's per-file signature proposal on the strength of writing this down instead, and told them so. It was not written down.

What lands

Canonical rule signature envelope gains:

The algoVersion SHALL also determine what the signature covers. A signature at algoVersion 1 covers exactly one file: the engine's ruleFile from the rule layout table, which is check.ts for the runtime engine. An engine that requires more than one file to be signed SHALL do so under a later algoVersion.

plus the scenario A v1 signature covers the engine's rule file.

All four scenarios survive the promotion, verified after archiving — including the two that were nearly dropped in review (Version is read before parameters, Signatures compare as whole strings). openspec validate --specs --strict passes across all 26 specs.

Why this keeps happening

Nothing checks archive state in either direction, by design: a PR-time gate had to guess at stack position, and the main-only replacement turned main red for as long as a forward-merging stack took to drain.

The gap that remains is the single-PR change, which has no later slice to carry the archive. #246 was the same omission on a stacked change; this is the single-PR version. Both were found by a person noticing, which is the thing the removed gates were supposed to replace and did not.

No code. Every path is under openspec/.

#247 merged the change and never took its tip step, so the statement it exists
to make lived in a change directory and not in the spec. Archiving is what
promotes a delta into `openspec/specs/`, which means until now
`cli-rule-reconciliation` did not carry the coverage rule we declined the
generator team's per-file signature proposal on the strength of writing down.

All four scenarios survive the promotion, including the two that were nearly
dropped in review: parameter-parsing order and whole-string comparison.

Nothing checks for this in either direction, which is how #246 came to be
outstanding too. A single-PR change has no later slice to carry the archive, so
it has to happen on the same PR or immediately after.
@thecodedrift
thecodedrift merged commit 8cbc150 into main Sep 2, 2026
6 checks passed
@thecodedrift
thecodedrift deleted the chore/archive-signature-coverage-statement branch September 2, 2026 19:05
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