Good Plite contributions improve one of these surfaces:
@platejs/plite;@platejs/plite-dom;@platejs/plite-react;@platejs/plite-history;@platejs/yjs;@platejs/plite-layout;@platejs/browser;content/docs/plite/** and /examples/plite/*.Do not add compatibility aliases, wrapper APIs, or old Plite helper shims. If the current API is wrong, propose the better current API and prove it.
Editor bugs need more than a screenshot.
Include:
For selection, paste, IME, void, hidden DOM, or huge-document behavior, include browser-visible evidence. Model-only tests are useful, but they do not prove contenteditable behavior.
Keep PRs narrow and takeover-ready.
Every behavior PR should include:
If a PR changes package exports, run pnpm brl. If it changes published package behavior, add the right changeset unless a maintainer explicitly says the release lane does not need one.
Install dependencies from the repository root:
pnpm installpnpm installRun the smallest relevant lane first. Do not start with the full repo check unless the change truly crosses the whole repo.
pnpm plite:packages:typecheck
pnpm plite:packages:test
pnpm --filter www check:docspnpm plite:packages:typecheck
pnpm plite:packages:test
pnpm --filter www check:docsUse pnpm check:plite:fast for normal Plite confidence:
pnpm check:plite:fastpnpm check:plite:fastUse pnpm check:plite for release or deletion confidence:
pnpm check:plitepnpm check:plite| Change | Start with |
|---|---|
| Core runtime, transforms, changes, nodes, locations | pnpm --filter @platejs/plite test |
| React editor behavior | pnpm --filter @platejs/plite-react test |
| History | pnpm --filter @platejs/plite-history test |
| DOM bridge or browser harness | pnpm --filter @platejs/browser test |
| Yjs adapter | pnpm --filter @platejs/yjs test |
| Layout | pnpm --filter @platejs/plite-layout test |
| Docs source | pnpm --filter www check:docs |
| Example browser behavior | pnpm --filter plite test:plite-browser:chromium <file-or-grep> |
| Full browser matrix | pnpm check:plite:browser-matrix |
Browser proof should hit /examples/plite/*, not docs pages. Docs pages prove reading and navigation. Example routes prove editor behavior.
Docs should describe the current API, not migration history.
Use:
Do not write placeholder prose, fake APIs, stale upstream URLs, or broad claims that the proof lane does not own.
Public release, package promotion, and npm publishing decisions belong to maintainers. A contribution can prepare proof and docs, but it should not claim release readiness unless the release lane has run.