You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Nov 4, 2026. It is now read-only.
Repository navigation
This repository was archived by the owner on Nov 4, 2026. It is now read-only.
finding(tooling): the doc-snippet ledger docblock still narrates component-registry's six category lists as live tsx-fenced fragments, in the present tense, after they were re-fenced #6054
Filed unassigned by the dev on #5997 (branch claude/issue-5997-component-registry-fence-language) as an out-of-scope observation. Not folded into that PR: the #5997 dispatch fenced "the gate itself" out of scope, and scripts/check-doc-snippet-types.mjs is the shared ledger file the whole #5174 lane edits, so another claim may hold it right now.
What
scripts/check-doc-snippet-types.mjs, ledger docblock, lines 317-320 on ad0f5f11f:
* unknown. `guide/component-registry`'s six category lists are markdown BULLET
* LISTS inside `tsx` fences — the fence language is the defect there, and
* correcting it is a change to the page's rendering rather than to a snippet, so it
* is declared here and left to its own change.
That sentence is present tense about the current tree, unlike the round-by-round entries around it ("objectui#5343 then read that list back and cleared it…"). Once #5997's PR lands, the six fences are plain markdown lists and the six FRAGMENT_MARKER declarations are gone, so a reader who goes looking for them on content/docs/guide/component-registry.md finds nothing there.
Why it is worth recording rather than shrugging at
Same class the ledger lane has been clearing: declared ≠ actual. And it is the exact debt shape #5997's own dispatch names — nothing will ever fail to prompt the correction, because no assertion reads the docblock. Confirmed mechanically: scripts/__tests__/check-doc-snippet-types.test.ts does not reference the docblock, the word "category", or component-registry at all, so the gate stays green with the prose false indefinitely.
Scope is one paragraph of comment prose. The docblock's own convention suggests the fix is to convert it to the past-tense round record the neighbouring sentences use, naming the round that discharged it — not to delete it, since the ledger deliberately keeps the history of why each entry existed.
⛔ Not a strictness change and not a behaviour change — comment prose only.
Grep for other instances before fixing: grep -rn 'category lists\|six category' currently hits only this file.
{
"issue": 6054,
"status": "done",
"branch": "claude/issue-6054-ledger-docblock-past-tense",
"pr": "https://github.com/objectstack-ai/objectui/pull/6077",
"premise_still_valid": true,
"summary": "Converted the ledger docblock's present-tense entry for guide/component-registry's six category lists into the past-tense round record its neighbours use, naming the round that discharged it (objectui#5997 / PR #6056, landed as 5cafb91d8). Verified the premise on origin/main first: the page now holds plain markdown bullet lists and grep -c FRAGMENT_MARKER on it returns 0, so the sentence was false about the current tree, not prospectively. The entry is kept rather than deleted, per the card. Comment prose only: 1 file, +10/-4, all inside one block comment; no strictness or behaviour change, no ledger entry added or removed, content/docs/guide/component-registry.md untouched. The card's own pre-check (grep -rn 'category lists\\|six category') still hits only this file, so no sweep was needed.",
"tests": "All at HEAD 7d0b901be (final commit), after a full `pnpm build --concurrency=2` (`Tasks: 43 successful, 43 total`), each run serialized through scripts/pm/os-verify-lock.sh. (1) `node scripts/check-doc-snippet-types.mjs` — exit 0, and its output is BYTE-IDENTICAL before and after the edit (`diff` of the two captures empty). Verdict lines: `Scanned 222 document(s): 178 covered (43 of them hold a ts/tsx block), 44 ungated`; `Covered blocks: 268 — 157 to compile, 111 declared fragment(s).`; `Semantic phase: 157 of 157 block(s) judged, 0 failed.`; `Every covered documentation snippet compiles against the built types.` (2) `npx vitest run scripts/__tests__/check-doc-snippet-types.test.ts --maxWorkers=2` from the repo ROOT — `Test Files 1 passed (1)` / `Tests 20 passed (20)`, identical before and after. (3) `node scripts/check-control-bytes.mjs` — `check-control-bytes: OK (scanned 5026 tracked text file(s); skipped 85 binary)`. (4) `node scripts/check-changeset-presence.mjs` — `No source of a released package changed in this range, so no changeset is owed` (so no changeset, and objectui has no skip-changeset label mechanism). (5) eslint: targeted `npx eslint scripts/check-doc-snippet-types.mjs --no-inline-config --format json` — 1 file linted, 0 errors, 0 warnings; narrowing declared and measured — eslint.config.js declares no `project:`/`projectService`, so type-aware linting is off and a comment-only diff cannot move any untouched file's verdict. A full `eslint .` was additionally run and reached all 3655 files it covers; its 89 errors are pre-existing on main and none are in the changed file. All exit codes captured before any pipe (redirect-then-capture). No ablation was applicable: nothing asserts on this docblock, which is the card's own point — no run would ever have failed to prompt this correction, and nothing keeps the new text true either. The byte-identical gate output is precisely the evidence that the change is inert to the tooling; correctness here is held by review only. CI on the draft PR is in_progress at report time (per dispatch contract, CI convergence is the PM's step).",
"open_questions": [],
"out_of_scope_findings": []
}
Activity
yinlianghui-tw commentedon Aug 24, 2026
{ "issue": 6054, "status": "done", "branch": "claude/issue-6054-ledger-docblock-past-tense", "pr": "https://github.com/objectstack-ai/objectui/pull/6077", "premise_still_valid": true, "summary": "Converted the ledger docblock's present-tense entry for guide/component-registry's six category lists into the past-tense round record its neighbours use, naming the round that discharged it (objectui#5997 / PR #6056, landed as 5cafb91d8). Verified the premise on origin/main first: the page now holds plain markdown bullet lists and grep -c FRAGMENT_MARKER on it returns 0, so the sentence was false about the current tree, not prospectively. The entry is kept rather than deleted, per the card. Comment prose only: 1 file, +10/-4, all inside one block comment; no strictness or behaviour change, no ledger entry added or removed, content/docs/guide/component-registry.md untouched. The card's own pre-check (grep -rn 'category lists\\|six category') still hits only this file, so no sweep was needed.", "tests": "All at HEAD 7d0b901be (final commit), after a full `pnpm build --concurrency=2` (`Tasks: 43 successful, 43 total`), each run serialized through scripts/pm/os-verify-lock.sh. (1) `node scripts/check-doc-snippet-types.mjs` — exit 0, and its output is BYTE-IDENTICAL before and after the edit (`diff` of the two captures empty). Verdict lines: `Scanned 222 document(s): 178 covered (43 of them hold a ts/tsx block), 44 ungated`; `Covered blocks: 268 — 157 to compile, 111 declared fragment(s).`; `Semantic phase: 157 of 157 block(s) judged, 0 failed.`; `Every covered documentation snippet compiles against the built types.` (2) `npx vitest run scripts/__tests__/check-doc-snippet-types.test.ts --maxWorkers=2` from the repo ROOT — `Test Files 1 passed (1)` / `Tests 20 passed (20)`, identical before and after. (3) `node scripts/check-control-bytes.mjs` — `check-control-bytes: OK (scanned 5026 tracked text file(s); skipped 85 binary)`. (4) `node scripts/check-changeset-presence.mjs` — `No source of a released package changed in this range, so no changeset is owed` (so no changeset, and objectui has no skip-changeset label mechanism). (5) eslint: targeted `npx eslint scripts/check-doc-snippet-types.mjs --no-inline-config --format json` — 1 file linted, 0 errors, 0 warnings; narrowing declared and measured — eslint.config.js declares no `project:`/`projectService`, so type-aware linting is off and a comment-only diff cannot move any untouched file's verdict. A full `eslint .` was additionally run and reached all 3655 files it covers; its 89 errors are pre-existing on main and none are in the changed file. All exit codes captured before any pipe (redirect-then-capture). No ablation was applicable: nothing asserts on this docblock, which is the card's own point — no run would ever have failed to prompt this correction, and nothing keeps the new text true either. The byte-identical gate output is precisely the evidence that the change is inert to the tooling; correctness here is held by review only. CI on the draft PR is in_progress at report time (per dispatch contract, CI convergence is the PM's step).", "open_questions": [], "out_of_scope_findings": [] }Generated by Claude Code