Skip to content

fix(spec): correct stale tags note in doc.json liveness ledger - #9317

Merged
os-steve merged 1 commit into
mainfrom
claude/issue-9310-liveness-doc-note-stale
Aug 17, 2026
Merged

fix(spec): correct stale tags note in doc.json liveness ledger#9317
os-steve merged 1 commit into
mainfrom
claude/issue-9310-liveness-doc-note-stale

Conversation

@os-steve

Copy link
Copy Markdown
Collaborator

Fixes#9310

What was stale

packages/spec/liveness/doc.json's _note claimed DocSchema declares no
tags key, so authoring tags: on a doc was a parse error, every doc
reached the resolver with tags === undefined, and a book group's
include: { tag: '<t>' } rule could therefore never match.

That was true when the note was written, but doc.zod.ts:126 has declared
tags: z.array(z.string()).optional() since 17.0.0 (#4509, ADR-0049) — the
enforce half of enforce-or-remove for this key, with the fix's own history
in the comment block immediately above the declaration (L111–L122). The
ledger's own props.tags entry already reflects status: "live" with that
full history; only the top-level _note paragraph had gone stale.

What changed

Corrected the note's last sentence to a current-state statement rather than
deleting it outright: it still carries load-bearing cross-references (the
book-side include: { tag } rule, the REST corpus offset at
rest-server.ts:2965) that are useful context for a reader of the ledger,
so it now says tags was declared and the { tag } variant went live, and
points at the props.tags entry below for the full history instead of
repeating it. No behaviour change, no verdict changes, no other rows
touched.

Local gates (HEAD 1543ad904)

Derived via node scripts/pm/dispatch-gates.mjs packages/spec/liveness/doc.json:

  • pnpm --filter @objectstack/spec run check:empty-state — pass
  • pnpm --filter @objectstack/spec run check:liveness — pass
  • pnpm --filter @objectstack/spec run check:strictness-ledger — pass
  • pnpm --filter @objectstack/spec run check:variant-docs — pass
  • node scripts/check-nul-bytes.mjs packages/spec/liveness/doc.json — pass

Not run: pnpm --filter @objectstack/spec test — no test suite reads
liveness/doc.json's _note (checked via grep across packages/spec/**/*.test.*).

Out-of-scope findings (same stale claim restated elsewhere)

The file surface for this card is packages/spec/liveness/doc.json only.
Grepping sibling liveness files for the same assertion found it restated in
two more places, both outside this diff — filed as #9316:

  • packages/spec/liveness/book.json:77 (props.include.note)
  • packages/spec/liveness/README.md:808 (the book row)

Generated by Claude Code


Generated by Claude Code

doc.json's `_note` claimed DocSchema declares no `tags` key, so the
book-side `include: { tag }` rule could never match. That was true
when written, but doc.zod.ts:126 has declared `tags` since 17.0.0
(#4509, ADR-0049) — the enforce half of enforce-or-remove for this
key. Correct the note to a current-state statement instead of
deleting it: it still carries load-bearing cross-references (the
book-side rule, the REST corpus offset) that are worth keeping, now
pointed at the props.tags entry for the fix's full history.
No behaviour change; no verdict changes.
Fixes#9310
@os-steveos-steve added the skip-changeset PR has no user-facing published change; bypasses the changeset gate label Aug 17, 2026 — with Claude
@github-actions

Copy link
Copy Markdown
Contributor

📓 Docs Drift Check

Nothing in this diff resolved to a documentable surface (no symbol, route or SDK anchor derived from 1 changed package(s)), so this run has no opinion about the docs.

What this run could not see
  • 1 changed file(s) yielded no anchor (packages/spec/liveness/doc.json) — pages documenting those are invisible to this run

Coarse fallback — 113 page(s) merely mention a changed package (the pre-#9192 predicate, kept for the deliberately-wide backstop): node scripts/docs-audit/affected-docs.mjs --json origin/mainpackageMentionDocs.

@os-steve
os-steve marked this pull request as ready for review August 17, 2026 13:29
@os-steve
os-steve added this pull request to the merge queueAug 17, 2026
Merged via the queue into main with commit 68cd4e7Aug 17, 2026
30 checks passed
@os-steve
os-steve deleted the claude/issue-9310-liveness-doc-note-stale branch August 17, 2026 13:46
os-steve pushed a commit that referenced this pull request Aug 17, 2026
… book.json and liveness README
Same class as #9310/#9317: DocSchema declared `tags` in 17.0.0 (#4509,
ADR-0049), making the book `include: { tag }` include variant live, but
two more places in the liveness tree still restated the pre-fix claim
that the tag rule can never match:
- packages/spec/liveness/book.json — the `groups.include` prop's note
- packages/spec/liveness/README.md — the `book` row
Both corrected to current-state truth, matching the #9317 wording
posture and preserving load-bearing cross-references (the #4667
tombstone paragraph on the README row). No verdict change, no
behaviour change — ledger prose only.
Fixes#9316
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Fs18A2DdXLVN2h8PaaFBcP
akarma-synetal pushed a commit to akarma-synetal/framework that referenced this pull request Aug 23, 2026
… book.json and liveness README (objectstack-ai#9357)
Same class as objectstack-ai#9310/objectstack-ai#9317: DocSchema declared `tags` in 17.0.0 (objectstack-ai#4509,
ADR-0049), making the book `include: { tag }` include variant live, but
two more places in the liveness tree still restated the pre-fix claim
that the tag rule can never match:
- packages/spec/liveness/book.json — the `groups.include` prop's note
- packages/spec/liveness/README.md — the `book` row
Both corrected to current-state truth, matching the objectstack-ai#9317 wording
posture and preserving load-bearing cross-references (the objectstack-ai#4667
tombstone paragraph on the README row). No verdict change, no
behaviour change — ledger prose only.
Fixesobjectstack-ai#9316
Claude-Session: https://claude.ai/code/session_01Fs18A2DdXLVN2h8PaaFBcP
Co-authored-by: Claude <noreply@anthropic.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size/xsskip-changesetPR has no user-facing published change; bypasses the changeset gate

Projects

None yet

Development

Successfully merging this pull request may close these issues.

finding: packages/spec/liveness/doc.json carries a _note describing a tags defect that is already fixed

2 participants

@os-steve@claude