Skip to content

docs(openspec): write the Purpose for the three placeholder living specs - #296

Merged
Harol-Reina merged 1 commit into
mainfrom
docs/living-spec-purposes
Sep 20, 2026
Merged

Harol-Reina merged 1 commit into
mainfrom
docs/living-spec-purposes

Conversation

@Harol-Reina

@Harol-Reina Harol-Reina commented Sep 20, 2026 •

Copy link
Copy Markdown
Contributor

What

Three living specs carry the CLI's birth placeholder at line 4:

  • openspec/specs/community-boot-readiness/spec.md
  • openspec/specs/tenant-auth-config-surface/spec.md
  • openspec/specs/typed-response-schemas/spec.md
TBD - created by archiving change <name>. Update Purpose after archive.

Each was created by archiving a change and never revisited. This writes a real Purpose for each, from the requirements the spec actually holds.

Why now

The OpenSpec validator has rejected a placeholder ## Purpose since 1.11.0 (upstream #1671). Under the CLI version this repo pins today (1.8.0) these three pass; under 1.13.1 they are 3 of this repo's 30 items failing, and the OpenSpec Validate job is a required check that always runs with --all.

So a PR that moves the pin line would be red on arrival. Landing the Purposes first makes the later pin bump a genuine one-line change.

Verified

CLI validate --all --strict --no-interactive
1.8.0 (the current pin) 30 passed, 0 failed — rc=0
1.13.1 (latest) 30 passed, 0 failed — rc=0

Green under both, so this PR carries no decision about the pin. It can land on its own merits.

Also run locally on the integrated branch: python3 scripts/check-endpoint-invariants.py (all gates OK) and python3 -m unittest discover scripts/tests (82 passed). Correction to an earlier revision of this description: I first reported docs_only=false for this change — that was a local run against an uncommitted tree. CI classified the real commit as docs-only, so build-and-test, coverage and the heavy lanes are legitimately SKIPPED; the ungated checks (OpenSpec Validate, and this repo's tree-scanning guards) all ran and are green.

Note on the instrument

This edits the living specs directly, not through a change proposal. A ## Purpose written into a MODIFIED delta silently does nothing — the CLI reads a capability's Purpose only when the capability is created, and says so itself when you try.

One thing worth a second pair of eyes

community-boot-readiness holds a requirement titled "The released-image smoke asserts the dialer-engine Degraded shape as a gating leg", but that leg is still continue-on-error: true in release.yml — its promotion is tracked by the still-open follow-ups 3.2/6.4 in the archived 2026-07-26-license-gated-engine-health-degraded. I wrote the Purpose to say the smoke leg asserts the shape without claiming it gates, so the Purpose does not inherit the overstatement. The requirement body itself is left untouched — correcting it is a separate call, not something to smuggle into a Purpose PR.

`community-boot-readiness`, `tenant-auth-config-surface` and
`typed-response-schemas` were each born by archiving a change, which seeds
`## Purpose` with the CLI's own placeholder — "TBD - created by archiving
change <name>. Update Purpose after archive." None was revisited, so three
capabilities have carried a TBD since they were created.

This edits the living specs directly. A `## Purpose` written into a MODIFIED
delta would silently do nothing: the CLI reads a Purpose only when the
capability is created, so a change proposal is the wrong instrument here.

Green under the pinned CLI (1.8.0 — `validate --all --strict` 30 passed, 0
failed) and under 1.13.1, which since 1.11.0 rejects the placeholder outright.
That is the point of landing this on its own: it carries no decision about the
pin, and it is what makes a later pin bump a one-line change per repo rather
than a PR that is red on arrival.
@Harol-Reina
Harol-Reina added this pull request to the merge queue Sep 20, 2026
Merged via the queue into main with commit 94890e2 Sep 20, 2026
10 checks passed
@Harol-Reina
Harol-Reina deleted the docs/living-spec-purposes branch September 20, 2026 12:55
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