CodeVetter · Repo Unpack · Contributor handoff
motiondivision/motion
Begin with the actual public entrypoint and follow ownership into the implementation package before editing. The inspected tests and CI were not executed, and the inventory is bounded rather than exhaustive coverage. Preserve package compatibility, shared state ownership, frame timing, and browser fallback branches. Future execution should use repository-defined checks only when authorized, with release and external-write commands treated separately.
- Read AGENTS.md, the affected manifests, and actual re-export files first: the short architecture description calls motion a re-export package, but its default entrypoint specifically targets framer-motion/dom.
- Preserve exact internal package versions and Yarn 3.6.4; internal-dependencies.test.ts checks every workspace dependency category against public package versions and verifies Lerna's exact-version setting.
- Follow library conventions: interface type definitions, named exports, const/let, and strict equality are ESLint rules; shared TypeScript settings enable strict null checks, noImplicitAny, and unused-symbol checks.
- Use time.now() for frame-synchronized timestamps; its cached value comes from frameData during frame processing or manual timing and is cleared by a microtask.
- For animation changes, inspect subject dispatch, animateElement, and effect-state handoff together; existing VisualElement ownership and handOffElementState prevent independent renderers from driving the same values.
- When execution is authorized, choose package Jest client/server tests for logic and SSR, Cypress for React/browser behavior, and yarn test-playwright for browser suites; tests and CI were inspected here, not executed, so these commands are candidate checks rather than passing evidence.
- Keep React 18/19 fixture compatibility and browser-specific checks explicit: React 19 shares fixture sources but deduplicates/aliases React locally, and JSDOM cannot establish WAAPI or real-layout correctness.
- Before public-API or bundling changes, inspect Rollup context sharing and bundle budgets; before any operational command, inspect scripts because publication, tag pushes, changelog mirroring, and notifications carry external effects.