docs(skills): correct six wrong shipped-API facts in the published objectui guides - #7677
Merged
Merged
Conversation
…hipped return shape
`usePullToRefresh` returns `{ ref, isRefreshing, pullDistance }`
(packages/mobile/dist/usePullToRefresh.d.ts), not a bare ref. The gesture
fence bound the whole result object and attached it as a React ref, which
`tsc` rejects (TS2322) and which would not attach at runtime either.
Destructuring the `ref` member at the call site is the one-line correction;
the fence's remaining diagnostics are all TS2304 on deliberate prose
placeholders, so it stays unmarked.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019RfFHiRCSs3JXLK4cwcfox
This was referenced Sep 4, 2026
…uides Each site stated a member, prop or call shape the built dist/*.d.ts contradicts, and each is corrected to what the types declare: - auth-permissions: AuthProvider takes `client`, not `authClient`, and `authUrl` is required (AuthProviderOptions). Both usages corrected. - auth-permissions: createAuthenticatedFetch takes its options object, not the auth client; the token comes from storage. - auth-permissions: PermissionGuard's `fallback` is the closed union 'hide' | 'disable' | 'custom'; custom content goes in `fallbackContent`. - i18n: the four format helpers are module-level exports of @object-ui/i18n, not members of useObjectTranslation()'s return, and they take options objects rather than positional format strings. - project-setup: app-shell's MetadataProvider takes `adapter`, not `value`. The fences stay unmarked; their remaining diagnostics are the prose placeholders they reference by design. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019RfFHiRCSs3JXLK4cwcfox
os-zhuang
approved these changes
Sep 5, 2026
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.
Fixes #7676
Six statements of a shipped-API fact in the published
skills/objectui/guides/bundle contradicted the builtdist/*.d.ts. Each is corrected here to what the types declare, one line per fact. ⛔ No fence is rewritten and noos:checkmarker is added — the fences stay unmarked, and their remaining diagnostics are the prose placeholders they reference by design.The sites were found by running
check-skill-examples.mjs --measureover the whole corpus (that sweep's other result — that the guides' fences are fragments by construction and none is markable — is recorded on the card it came from, which is closed not planned).改前 → 改后
mobile.mdgesture fenceconst listRef = usePullToRefresh(...)const { ref: listRef } = usePullToRefresh(...)ref,isRefreshing,pullDistance— not a bare ref (packages/mobile/dist/usePullToRefresh.d.ts)auth-permissions.mdprovider fence (and the nesting-order fence, same fact)authClient={authClient}authUrl="/api/v1/auth" client={authClient}client, andauthUrlis required (AuthProviderOptions,packages/auth/dist/types.d.ts:493)auth-permissions.mdfetch fencecreateAuthenticatedFetch(authClient)createAuthenticatedFetch()CreateAuthenticatedFetchOptions(onlysameOriginOnly?), never the client; the bearer token comes from storageauth-permissions.mdguard fencefallback={ the AccessDenied element }fallback="custom" fallbackContent={ the AccessDenied element }fallbackis the closed union'hide' | 'disable' | 'custom'; custom content goes infallbackContenti18n.mdformatting fenceconst { formatCurrency, formatDate, formatNumber, formatRelativeTime } = useObjectTranslation();andformatDate(date, 'YYYY-MM-DD')import { formatCurrency, formatDate, formatNumber, formatRelativeTime } from '@object-ui/i18n';andformatDate(date, { style: 'short' })packages/i18n/dist/index.d.ts:49), not members of the hook's return, and each takes an options object, not a positional format stringproject-setup.mdprovider fencevalue={metadata}adapter={myAdapter}MetadataProvidertakesadapterand optionalttlMs(packages/app-shell/dist/providers/MetadataProvider.d.ts)Row 5 is two lines because the fact is stated twice in the same fence: where the helpers come from, and how they are called. Correcting only the import would have introduced a fresh error on the positional format string, which is the same wrong fact one line down.
Differential evidence, per row
Method: the named diagnostic is present in a
--measurelog taken before the edit and absent from one taken after, with the fence's remaining diagnostics being the placeholder class. Nothing else in the corpus moved.mobile.md:48:35 TS2322— the pull-to-refresh result object is not assignable to the element ref propCardContentauth-permissions.md:29:19 TS2322— propertyauthClientdoes not exist on the provider propsTS2741 authUrl is missingthis exposed is also absent after the required prop was supplied; fence keeps only TS2304AppContentauth-permissions.md:110:53 TS2559—AuthClienthas no properties in common with the options typeauth-permissions.md:242:56 TS2322— an element is not assignable to the closed unionAccessDenied,BulkDeleteButtoni18n.md:98:11 / :27 / :39 / :53 TS2339x4 — none of the four helpers exists on the hook's returnproject-setup.md:280:21 TS2322— propertyvaluedoes not exist on the provider propsmyAdapterCorpus-level: semantic failures 81 → 80 over 95 judged fences, and exactly one verdict flipped —
auth-permissions.md:105(row 3) wentFAIL→pass. It is now the first unmarked fence inskills/objectui/guides/that compiles, so it is the one candidate a follow-up could opt in (floor 13 → 14). ⛔ Deliberately not marked here: this PR corrects facts and moves no marker.Gate verdicts — union re-run on the final commit
a7dfbccThe marked population and both floors are unchanged at 13 ts / 70 json — no marker moved, so
MARKED_FLOORis not re-pinned.Changeset — objectui has no
skip-changesetlabel, so the script decides:Ratchets (whole-file lines, before → after):
auth-permissions.md348 → 348;i18n.md187 → 185;project-setup.md345 → 345;mobile.md168 → 168. PublishedSKILL.mdbundle sum 137 lines, untouched. Net −2 lines — no content was purchased.Review notes
Governed surface
skills-catalog. Stays a draft; two approvers; human merge. The packages are untouched — every change is documentation converging on the API that already ships.🤖 Generated with Claude Code
https://claude.ai/code/session_019RfFHiRCSs3JXLK4cwcfox
Generated by Claude Code