Filed unassigned, not claiming. Created by the widening in objectui#7308 (PR on branch claude/issue-7308-doc-snippet-readme-walk), which brought the nested packages/** READMEs into check:doc-snippets' scan surface ledger-first — the direction that card's triage ruled correct. This is the debt half, filed so it is a named card rather than three ledger rows nobody ever reads back.
Blocked-by: objectui#7308's PR landing (these three UNGATED_DOCS rows do not exist until it does).
The census, re-derived on 9ba7e9c3 with the gate's own analyzer
Populations named: 43 tracked files under packages/ whose basename is README.md; 39 at a package root; 4 deeper. Of those 4, 3 hold ts/tsx blocks (the fourth, packages/plugin-gantt/docs/verification/README.md, holds none and is covered at zero blocks — it is correctly on no ledger row).
With the surface widened and no ledger row written, those 3 pages contribute 20 blocks, 13 of them failing — 3 syntax-phase and 10 semantic-phase — for 37 diagnostics:
| page |
blocks |
clean |
failing |
diagnostics |
packages/components/src/__tests__/README.md |
1 |
0 |
1 |
9 semantic (TS2593 x3, TS2304 x5, TS2552 x1) |
packages/core/src/adapters/README.md |
5 |
2 |
3 |
9 semantic (TS2304 x2, TS2355 x6, TS2420 x1) |
packages/types/src/zod/README.md |
14 |
5 |
9 |
10 syntax (TS1109) + 9 semantic (TS2304 x8, TS2307 x1) |
Each row's UNGATED_DOCS reason already says what would have to change per page; this card is the work, not a re-measurement.
The one item that is a real defect rather than snippet hygiene
packages/core/src/adapters/README.md, fence 239 — the custom-adapter template:
export class MyCustomAdapter<T = any> implements DataSource<T> {
async find(...) { /* Your implementation */ }
...
}
It declares implements DataSource<T> while omitting getObjectSchema, which DataSource<T> requires (TS2420), and its six method bodies are // Your implementation comments under non-void return annotations (TS2355 x6). A reader who copies the template gets a class that does not satisfy the interface it claims to implement. That is the class of defect this gate exists to catch, and it was invisible for as long as the page was outside the walk.
Why packages/types/src/zod/README.md is worth more than its size
packages/types lists the whole of src/ in its manifest files, so this page is inside the npm tarball a reader downloads. Three separable classes on it:
- fence 220 is a shape sketch — a bare object literal at statement position with
?: markers on keys; its fence language should be one the gate does not compile;
- fences 301 and 368 write the elision
{ ... } literally, which TypeScript reads as a spread with no operand;
- six blocks are excerpts continuing an earlier block's imports (
ButtonSchema, CardSchema, userInput, internalConfig, useForm, registry), plus one specifier no imported package declares (@hookform/resolvers/zod, TS2307) — which is the gate's stated bound rather than a page defect, and whose documented remedy is the declare const stand-in.
⛔ Boundaries
- ⛔ A row leaves
UNGATED_DOCS only by the page compiling, or by the block getting a FRAGMENT_MARKER with a written reason. ⛔ Never by softening the gate and ⛔ never by deleting the row.
- These three are debt, unlike the objectui#7856 card 2 rows beneath them, which are records nobody may repair. A package README is a page a reader copies from, so every row here can and should leave.
- The three pages are independent; this is splittable per page if triage prefers.
Grading
For PM triage. The core/adapters item is a documented-API defect with a reader-visible consequence; the other two are snippet hygiene on pages that are nonetheless published.
Filed unassigned, not claiming. Created by the widening in objectui#7308 (PR on branch
claude/issue-7308-doc-snippet-readme-walk), which brought the nestedpackages/**READMEs intocheck:doc-snippets' scan surface ledger-first — the direction that card's triage ruled correct. This is the debt half, filed so it is a named card rather than three ledger rows nobody ever reads back.Blocked-by:objectui#7308's PR landing (these threeUNGATED_DOCSrows do not exist until it does).The census, re-derived on
9ba7e9c3with the gate's own analyzerPopulations named: 43 tracked files under
packages/whose basename isREADME.md; 39 at a package root; 4 deeper. Of those 4, 3 holdts/tsxblocks (the fourth,packages/plugin-gantt/docs/verification/README.md, holds none and is covered at zero blocks — it is correctly on no ledger row).With the surface widened and no ledger row written, those 3 pages contribute 20 blocks, 13 of them failing — 3 syntax-phase and 10 semantic-phase — for 37 diagnostics:
packages/components/src/__tests__/README.mdpackages/core/src/adapters/README.mdpackages/types/src/zod/README.mdEach row's
UNGATED_DOCSreason already says what would have to change per page; this card is the work, not a re-measurement.The one item that is a real defect rather than snippet hygiene
packages/core/src/adapters/README.md, fence 239 — the custom-adapter template:It declares
implements DataSource<T>while omittinggetObjectSchema, whichDataSource<T>requires (TS2420), and its six method bodies are// Your implementationcomments under non-voidreturn annotations (TS2355 x6). A reader who copies the template gets a class that does not satisfy the interface it claims to implement. That is the class of defect this gate exists to catch, and it was invisible for as long as the page was outside the walk.Why
packages/types/src/zod/README.mdis worth more than its sizepackages/typeslists the whole ofsrc/in its manifestfiles, so this page is inside the npm tarball a reader downloads. Three separable classes on it:?:markers on keys; its fence language should be one the gate does not compile;{ ... }literally, which TypeScript reads as a spread with no operand;ButtonSchema,CardSchema,userInput,internalConfig,useForm,registry), plus one specifier no imported package declares (@hookform/resolvers/zod, TS2307) — which is the gate's stated bound rather than a page defect, and whose documented remedy is thedeclare conststand-in.⛔ Boundaries
UNGATED_DOCSonly by the page compiling, or by the block getting aFRAGMENT_MARKERwith a written reason. ⛔ Never by softening the gate and ⛔ never by deleting the row.Grading
For PM triage. The
core/adaptersitem is a documented-API defect with a reader-visible consequence; the other two are snippet hygiene on pages that are nonetheless published.