docs(plugin-designer): shrink UNGATED_DOCS by one — 24 entries to 23, the designer README's 8 blocks compile (#5174 batch 15) - #7983
Merged
Conversation
…p its ledger entry Every ts/tsx block in packages/plugin-designer/README.md now compiles against the built dist/*.d.ts, so its UNGATED_DOCS entry comes out. The gate file's own strictness is untouched: the only edit there is the two-line entry removal. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013uAaxiwgYDybsTNV9xwa1M
Contributor
✅ Console Performance Budget
The eager closure is every chunk the entry reaches through static imports — what the browser fetches and parses before the app renders. The entry chunk on its own is a small fraction of it. 📦 Bundle Size Report
Size Limits
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Part of #5174
Batch 15 of the
UNGATED_DOCSburn-down inscripts/check-doc-snippet-types.mjs.One document leaves the ledger:
packages/plugin-designer/README.md. All 8 of itsts/tsx blocks now compile against the built
dist/*.d.ts, so the entry comes out.The card stays open — 23 entries remain.
File surface: exactly two files.
scripts/check-doc-snippet-types.mjsis0 2ongit diff --numstat— the two-line entry removal and nothing else.Census, re-taken at this branch point
Base
b31370093, recorded before the first edit and never inherited from batch 14or from the dispatch. Taken with the gate's own exports (
UNGATED_DOCS,listDocuments,scanFences).Ledger entry count at base: 24 — batch 14 has not merged, so
packages/mobile/README.mdis still listed. Gate verdict at base, exit 0:packages/plugin-gantt/README.mdpackages/plugin-chatbot/README.mdaiSDKpackages/auth/README.mdpackages/auth/README.mdis still in it)packages/mobile/README.mdpackages/i18n/README.mdpackages/plugin-designer/README.mdpackages/collaboration·layout·permissions·plugin-detail·typespackages/core·plugin-kanban(no — objectui#7302's) ·plugin-list·react-runtime· rootREADME.mdpackages/plugin-ai·plugin-charts·plugin-editor·plugin-map·plugin-markdown·providerspackages/fields/README.mdpackages/plugin-tree/README.mdThe tie at 8 blocks was broken by measured debt, per the batch-14 ruling: the entry
hiding more diagnostics is the one whose green means more. Both sides were measured
on this base by removing that one entry and running the gate — 22 for
plugin-designer, 11 fori18n.Decomposition, measured at the base before any edit
The ledger reason is archaeology; the measurement is the fact. This time the two
agree, which is worth recording after three batches where they did not:
b31370093README.md:105What each one was:
TS1382/TS1003 at line 105 — the
CollaborationProviderexample wrote a literalthree-dot elision inside a JSX tag. Not a fragment marker, just a token TypeScript
cannot parse.
TS2741 at line 41 —
CollaborationProviderwas used with noconfig, which itsshipped
CollaborationProviderPropsdeclares as required.TS2304/TS2552 x12 — five prop-reference blocks used ambient names (
componentList,canvasConfig,entities,relationships,nodes,edges,sections) and, in fourof them, the component itself was never imported.
TS2554 at line 120 —
useUndoRedo()called with zero arguments; it ships asuseUndoRedo(initialState, options).TS2339 x6 at lines 121-123 — six phantom member names on three hooks. Every one of
them has a shipped equivalent, so each is a repair and not a refusal, except
cut,which has no shipped counterpart and is simply no longer documented:
useClipboard().cutClipboardStateisclipboard/copy/paste/hasContentuseMultiSelect().selectedselectedIdsuseMultiSelect().selectselectOneuseMultiSelect().selectAllselectMany(ids)useCanvasPanZoom().panpanOffset(state) andstartPan(action)useCanvasPanZoom().resetViewresetZoomNo public type was widened to accept anything the page said, and no lenient alias was
added anywhere. The direction is the one AGENTS.md commandment #0.1 requires: the
document moved to the contract, never the contract to the document.
Shape of the rewrite, and the readers it had to keep green
git grep -l 'plugin-designer/README' -- scripts/ packages/ examples/ apps/returns tworeaders: this gate, and
scripts/__tests__/doc-version-claims.test.ts, whoseKNOWN_CLAIMSpins the peer line atREADME.md:26and asserts it verbatim against thepackage manifest. Lines 25-28 are byte-identical on this branch, and probe P4 below shows
that pin is still live rather than vacuous.
The five prop-reference blocks keep their original element shape and gain a compact
preamble of the real import plus
declare constplaceholders carrying the shipped type.That form documents strictly more than the old ambient names did — a reader now sees what
type each prop wants — and probe P5 shows those annotations are load-bearing rather than
silently widened.
Coverage arithmetic
b313700937116b5e1dAll 8 blocks were bought by compiling them. None was bought with a fragment declaration.
Strictness invariant
sha256 of
scripts/check-doc-snippet-types.mjsfrom theFence scanningbanner to EOF,1178 lines on both sides:
b31370093—f46b5662ba336f026bca3a0003e0b7979789d48d0291fa5760be7d23c8ed01607116b5e1d—f46b5662ba336f026bca3a0003e0b7979789d48d0291fa5760be7d23c8ed0160Identical. Nothing in the gate's scanning, marker, control or verdict logic moved.
Ledger invariants
Both sides'
UNGATED_DOCSliterals were imported and diffed programmatically:Probes — predicted in writing, then observed
Every mutation proved on disk (occurrence counts plus blob hash), every restore proved
(blob equals HEAD, empty
git diff HEAD), each leg wrapped in an EXIT/INT/TERM trap withabsolute paths.
24 ungated,Covered blocks: 635 — 477 to compile,477 of 477 judged, 0 failedzoomInbecomeszoomInTypoin the hooks blockREADME.md:170:26 TS2339: Property 'zoomInTypo' does not exist on type 'PanZoomState',485 of 485 judged, 1 failedreactcaret-18 becomes caret-17doc-version-claims.test.tsgoes redREADME says caret-17 or caret-19, manifest says caret-18 or caret-19)entitiesplaceholder retyped fromDataModelEntity[]toBPMNNode[]entities=TS2322: Type 'BPMNNode[]' is not assignable to type 'DataModelEntity[]'ReportDesignerimport renamed toReportDesignerNopecheck:readme-exportsred, 1 fabricated1 README import name(s) NO package exports, census431 real, 0 wrong-path, 1 fabricatedSix of six landed in the predicted direction; nothing reversed, so no isolating follow-up
probe was needed.
Gates
Every exit code captured by redirecting first, never through a pipe. Union re-run at the
final commit
7116b5e1d.pnpm check:doc-snippetsEvery covered documentation snippet compiles against the built types.pnpm check:doc-fencesevery TypeScript block in 227 document(s) is fenced ts/tsx/typescript, except 80 declared file(s) carrying 89 block(s)pnpm check:readme-exportsOK (43 tracked README(s) ... 432 of them self-imports judged (432 real, 0 wrong-path, 0 fabricated)pnpm check:doc-typesEvery documented component type is registered.node scripts/check-doc-links.mjsLinks are valid across 17 scan roots.pnpm check:doc-example-readersOK 80 documented symbol(s), 3947 call site(s) ... no @example hand-spells one.pnpm check:control-bytesOK (scanned 6421 tracked text file(s); skipped 85 binary).pnpm type-check:scriptstsc -p tsconfig.scripts.jsonnode scripts/check-changeset-presence.mjsNo source or published contract of a released package changed in this range, so no changeset is owed.node scripts/check-governed-queue-guard.mjs --test(both paths)NOT GOVERNED — 2 path(s) checked against 5 governed surface(s); none matched.Tests:
pnpm exec vitest run scripts/__tests__/check-doc-snippet-types.test.ts scripts/__tests__/doc-version-claims.test.ts scripts/__tests__/check-doc-fence-languages.test.ts scripts/__tests__/check-readme-exports.test.ts—Test Files 4 passed (4) / Tests 231 passed (231).pnpm exec vitest run packages/plugin-designer/—Test Files 17 passed (17) / Tests 124 passed (124).pnpm --filter @object-ui/plugin-designer type-check— exit 0.check:readme-exportsfirst came back exit 1 with three@object-ui/plugin-aientriesreading
its type entry ./dist/index.d.ts is not on disk -- run pnpm build first. That isthe unbuilt-tree PRECONDITION, not a verdict:
@object-ui/plugin-aisits outsidecheck:doc-snippets --build-filter's closure, so building only what the snippet gate asksfor leaves it unbuilt. After
turbo run build --filter=@object-ui/plugin-ai...the gateran and returned the green quoted above. Read the earlier exit as NOT MEASURED.
TURBO_SCM_BASE=b31370093 turbo ls --affectednames five packages:plugin-designer,app-shell,console,example-byo-backend-console,example-console-starter. Only thefirst owns anything that reads the changed bytes; the other four are affected through
turbo's package input hash alone.
git grep READMEacross those four returns nothing butprose in comments and their own READMEs, none of it naming this document. Their suites are
declared to CI — a stated narrowing, not a skipped run. Repository-wide
pnpm lintislikewise CI's run.
Concurrency with batch 14
Batch 14 is PR #7975, removing
packages/mobile/README.md. The two removals are disjointlines of the same object literal in the same file, and the two READMEs do not overlap. Both
are
Part of #5174; whichever lands second is rebuilt by the merge queue on the other'sresult. No coordination beyond that is owed.
Refusals
None. Every block on this page had a shipped spelling for what it meant, so all 8 compile
and none was declared a fragment. No coverage limit to record.
Next takeable
packages/i18n/README.md— 8 blocks, 11 measured diagnostics on this base (TS2304 x7,TS2559 x2, TS2554 x2), no open PR holding it.
Generated by Claude Code