sync-plate-ui

Syncs Plate UI registry components into downstream apps using three-way fork classification.

16.5k|997|Updated Dec 2, 2019
One-click install
npx skills add https://github.com/udecode/plate --skill sync-plate-ui
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: sync-plate-ui
Source: https://github.com/udecode/plate/tree/main/.agents/skills/sync-plate-ui
Command: npx skills add https://github.com/udecode/plate --skill sync-plate-ui

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Downstream apps that copy and customize Plate UI registry components end up with mixed-ownership files, making it unsafe to blindly overwrite them with upstream updates. This Skill performs a three-way sync (base, upstream, local) that classifies every hunk as upstream-owned or target-owned, so Plate bugfixes land without destroying local product forks.

Core Features & Use Cases

  • Three-Way Classification: Compares base, upstream Plate source, and local target files at hunk or symbol level, labeling each as upstream-only, local-only, same-change, conflict, or unknown-base.
  • Plan, Review, Dashboard, Apply Modes: Generates reviewable sync plans and dashboards under the target repo's .plate-ui-sync/ directory, then applies only user-accepted rows.
  • Fork Ledger and Status Tracking: Records fork decisions, applied PRs, and source hashes in status.json so sync state survives context loss and can be resumed.
  • Use Case: A team maintaining a Notion-like app (e.g., Potion) that copied Plate UI components wants to pull the latest code-block-node fixes from the Plate changelog while keeping its custom toolbar styling intact.

Quick Start

Ask the assistant to run sync-plate-ui plan for a target repo and component, for example: sync-plate-ui plan ../potion code-block-node.

Frequently Asked Questions about sync-plate-ui

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I sync Plate UI components into my downstream app?

Run sync-plate-ui plan with your target repo path and component scope, for example sync-plate-ui plan ../potion code-block-node. The skill writes a plan under the target's .plate-ui-sync/runs directory, and you apply changes only after accepting specific rows.

How does three-way sync avoid overwriting my local forks?

It compares base, upstream Plate source, and your local file at hunk or symbol level, classifying each as upstream-only, local-only, same-change, or conflict. Only hunks classified as safe to pull are applied, while local-only hunks are preserved as forks.

What is the difference between sync-plate-ui and sync-shadcn?

sync-shadcn compares upstream shadcn docs with Plate docs, while sync-plate-ui compares Plate UI registry source with a downstream app that copied and customized Plate UI. They operate on different source and target pairs.

Can sync-plate-ui apply changes without reviewing a plan first?

No. Planning mode is the default and never mutates target source. Apply mode starts only when you accept a named plan, dashboard payload, component, or row, and each row is revalidated against current source before mutation.

What happens if the base version of a copied component is unknown?

The skill enters bootstrap mode, deriving evidence from the target's components.json, package.json, copied registry paths, and Plate registry definitions. It writes a plan and fork ledger but does not apply changes until you accept the baseline.

Where does sync-plate-ui store sync state and plans?

All state lives in the target repo under .plate-ui-sync, including status.json, fork ledgers, run artifacts, and dashboard files. This keeps mutation rows resumable after context loss and out of chat history.