docs/sync/shadcn/runs/2026-05-28-4a4dc8e-to-360e8a1/plan.md
shadcn-ui/ui../shadcn/apps/v44a4dc8eb0fc793d8e9225e780183ad605f15d2c2 (2026-05-22, Update pnpm release age settings (#10719))360e8a19c3ee13ac78b656027462007c8bdaa6d5 (2026-05-27, fix(transform-rtl): preserve quotes in transformed className literals (#10495))apps/wwwdocs/sync/shadcn/status.jsondocs/sync/shadcn/runs/2026-05-28-4a4dc8e-to-360e8a1../shadcn was fast-forwarded to 360e8a19c3ee13ac78b656027462007c8bdaa6d5. The apps/v4 diff is large by file count but narrow by product meaning: 520 rows are theme/style output, 136 rows are registry-build or registry-output plumbing, and 66 rows are shadcn home/create product surfaces. Most of that is excluded or no-op for Plate by current policy.
Actionable Plate work is small: inspect the shadcn 4.8.2 package bump, smart-merge the docs-shell token/sidebar/command-menu polish that maps to retained Plate docs UI, and separately decide whether Plate should expose an upstream-style /r/registries.json directory route. Do not import Rhea, create, generated style registries, or shadcn homepage cards.
| Key | Count |
|---|---|
A | 561 |
D | 22 |
M | 156 |
| Key | Count |
|---|---|
assets | 2 |
deps-config | 3 |
docs-engine | 4 |
other | 1 |
product-page | 66 |
registry-build | 136 |
routing | 2 |
shell-nav-sidebar | 5 |
theme-style | 520 |
| Key | Count |
|---|---|
adopt-upstream | 1 |
exclude-upstream | 566 |
no-op | 156 |
plate-fork | 6 |
smart-merge | 10 |
Full inventory with every changed upstream path: inventory.md.
Source artifacts:
upstream-name-status.tsvupstream-numstat.tsvupstream-commits.txtgit -C ../shadcn diff ... commands instead of committing .patch
files.apps/v4/app/r/registries.json/route.ts, which serves registry/directory.json through a static route.apps/v4/package.json, docs page text token changes, docs sidebar wrapper/border changes, command-menu trigger styling, registry validation/build script changes, and content/docs/registry/registry-index.mdx.lg:[--header-height:calc(var(--spacing)*16)] layout change in apps/www/src/app/layout.tsx:105-108, so upstream app/layout.tsx is no-op.text-neutral-800 dark:text-neutral-300 on docs content at apps/www/src/app/(app)/docs/[[...slug]]/doc-content.tsx:90, matching an upstream fix candidate to text-foreground.px-2.5 on SidebarContent, but still has the decorative vertical border at apps/www/src/components/docs-nav.tsx:83; upstream removed that border.apps/v4/public/r/registries.json was deleted because upstream now serves the directory from /r/registries.json; this is the only deleted file with possible Plate infrastructure relevance.| Order | Slice | Class | Files | Why | Verification |
|---|---|---|---|---|---|
| 1 | Docs shell parity polish | smart-merge | apps/www/src/app/(app)/docs/[[...slug]]/doc-content.tsx, apps/www/src/components/docs-nav.tsx, possibly apps/www/src/components/command-menu.tsx | Upstream has retained docs UI polish: foreground text tokens, sidebar border removal, command trigger styling. Plate owns the accordion UX but should keep primitives aligned. | pnpm --filter www typecheck, pnpm lint:fix, browser check /docs and /cn/docs/table. |
| 2 | shadcn package bump audit | adopt-upstream | apps/www/package.json, lockfile | Upstream moved shadcn 4.8.0 -> 4.8.2; Plate still pins 4.8.0. This may carry registry/RTL fixes relevant to Plate registry validation. | pnpm install, pnpm --filter www exec tsx --tsconfig ./scripts/tsconfig.scripts.json scripts/check-registry-source.mts, pnpm --filter www typecheck. |
| 3 | Registry directory route decision | smart-merge | possible Plate /r/registries.json route or explicit no-op note | Upstream stopped generating public/r/registries.json and serves registry/directory.json through a static route. Plate currently does not expose a shadcn registry directory, so this needs a product decision before implementation. | If implemented: route smoke for /r/registries.json, source-only validation. If rejected: record exclusion. |
| 4 | Rhea/create/theme exclusion audit | exclude-upstream | Rhea style files, create preview files, homepage cards, generated style output | Current Plate policy rejects themes/create and keeps Plate homepage. This slice is just a source search if implementing another slice touches nearby code. | `rg -n "rhea |
docs/sync/shadcn/decisions.md theme/customizer policy.apps/v4/public/r/styles/**: no manual import; Plate generated registry output remains CI/source-pipeline-owned./api/registry-source/[name] code-view payload route for bandwidth.text-foreground dark:text-foreground direction, but preserve Plate isWideContent, registry fallback, related docs, Plus CTA, and CN behavior./r/{name}.json.[email protected] only after local registry source validation; do not pull upstream generated registry output.One real decision before implementation: should Plate expose a shadcn-compatible /r/registries.json directory route, or should this upstream registry-directory feature stay excluded as shadcn product surface?
Docs shell polish and package bump do not need a policy question; they are normal smart-merge/adopt candidates if you want implementation.
Do not advance lastSyncedCommit yet. This plan accounts for the full range, but implementation has not run and the /r/registries.json directory-route question is unresolved. lastPlannedCommit may point at 360e8a19c3ee13ac78b656027462007c8bdaa6d5 with this plan path.
Recommended first implementation slice: docs shell parity polish. It is small, maps directly to retained Plate UI, and avoids the unresolved registry-directory product question.