Skip to content

chore(openspec): archive four completed changes and write their specs - #444

Merged
tsenoner merged 1 commit into
mainfrom
chore/archive-completed-openspec-changes
Aug 12, 2026
Merged

chore(openspec): archive four completed changes and write their specs#444
tsenoner merged 1 commit into
mainfrom
chore/archive-completed-openspec-changes

Conversation

@tsenoner

Copy link
Copy Markdown
Owner

/opsx:archive is what makes openspec/specs/ true, and it had not been run for four changes whose work is long since on main — the oldest merged ten weeks ago. Until it runs, the behaviour those changes shipped is simply absent from the source of truth, so the next change reads openspec/specs/ and sees a repo that does not do things it has done since June.

Split out of #391 rather than folded into it: this writes six new capability specs into the source of truth, which deserves its own review rather than being buried in a 42-file docs cleanup.

Archived

Change Merged to main Capabilities added
add-eat-visualization 082b8b75 eat-annotation-overlay, eat-provenance-connectors
organize-predicted-annotations ee707064 (10 wks) annotation-metadata, annotation-presentation
optimize-e2e-suite d15d73f0 (5 wks) e2e-validation
fix-numeric-binning-e2e adeb2dd1 (8 wks) query-builder-filtering

Each was checked to be genuinely finished, not merely ticked: its last commit is an ancestor of origin/main, and no open PR still touches its change directory — the twelve open PRs each carry their own new change dir. All six capabilities are new, so none collides with an existing spec.

Ordering note: add-eat-visualization is archived ahead of #427, whose improve-eat-reliability-filter builds on eat-annotation-overlay and wants that capability to exist first.

Deliberately not archived

merge-protspace-monorepo (16/30) and unified-visibility-model (20/22). Both need reconciling against what actually shipped rather than archiving.

merge-protspace-monorepo is the clearer case. Its delta would land a bundle-contract capability directly alongside the bundle-format-contract that already exists, leaving two specs on the same subject with nothing to say which is authoritative. And its tasks.md is wrong in both directions: 4.3 archive the old repo is unticked but done (tsenoner/protspace-legacy is archived: true), while tasks 5.2–5.6 call for a packages/bundle-contract/ with a schema.json that does not exist anywhere in the repo — the contract work shipped by a different route, as bundle-contract.yml running pnpm test:contract on every PR shows. Archiving would freeze a superseded plan as current behaviour.

Purpose placeholders

openspec archive writes TBD - created by archiving change X. Update Purpose after archive. into each new capability, and that placeholder passes validate --strict — so it survives unless somebody looks. Two from an earlier archive (fix-pdb-annotation-without-uniprot) were still sitting there, which is how it goes unnoticed. All eight now describe what the capability actually covers, written from each spec's own requirements.

Verification

openspec validate --all --strict → 19 passed, 0 failed, re-run after prettier reformatted the spec markdown in precommit (it rewraps text, and --strict only scans a requirement's first line for the normative clause). openspec list now shows only the two genuinely incomplete changes. pnpm precommit green.

🤖 Generated with Claude Code

https://claude.ai/code/session_01Ar6ME3o6VYLYsie3J4kxE5

`/opsx:archive` is what makes `openspec/specs/` true, and it had not been run
for four changes whose work is long since on `main` — the oldest merged ten
weeks ago. Until it runs, the behaviour those changes shipped is absent from the
source of truth, so the next change reads `openspec/specs/` and sees a repo that
does not do things it has done since June.

Archived: add-eat-visualization, organize-predicted-annotations,
optimize-e2e-suite, fix-numeric-binning-e2e. Each was checked to be genuinely
finished before archiving, not just ticked: its last commit is an ancestor of
`origin/main`, and no open PR still touches its change directory (the twelve open
PRs each carry their own new change dir). Six new capabilities land in
`openspec/specs/` — eat-annotation-overlay, eat-provenance-connectors,
annotation-metadata, annotation-presentation, e2e-validation and
query-builder-filtering — none of which collides with an existing one.

Deliberately not archived: `merge-protspace-monorepo` (16/30) and
`unified-visibility-model` (20/22). Both need reconciling against what actually
shipped rather than archiving. merge-protspace-monorepo in particular would land
a `bundle-contract` capability next to the `bundle-format-contract` that already
exists, and its tasks.md is wrong in both directions: 4.3 (archive the old repo)
is done but unticked, while 5.2-5.6 call for a `packages/bundle-contract/` with a
schema.json that does not exist — the contract work shipped by another route, as
`bundle-contract.yml` running `pnpm test:contract` shows. Archiving would freeze
a superseded plan as current behaviour.

Also fill in the `## Purpose` of every new capability. `openspec archive` writes
"TBD - created by archiving change X. Update Purpose after archive." and that
placeholder still passes `validate --strict`, so it survives unless someone looks
— two from an earlier archive (`fix-pdb-annotation-without-uniprot`) were still
there, which is how this goes unnoticed. All eight now say what the capability
covers.

Verified: `openspec validate --all --strict` passes 19/19, `openspec list` now
shows only the two genuinely incomplete changes.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ar6ME3o6VYLYsie3J4kxE5
@tsenoner
tsenoner merged commit 230c055 into main Aug 12, 2026
3 checks passed
@tsenoner
tsenoner deleted the chore/archive-completed-openspec-changes branch August 12, 2026 16:09
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