motion-match
Skill4 starsChanged 10 days agoMITView on GitHub
Copy, clone or match how something moves: measure timing and easing, write a spec, build, film ours the same way and compare until the numbers pass; third-party references stay at motion level. Use orbyn-ui-design to design motion, technical-illustration for films, product-illustration for faux UI.
1 other project uses a version of this.
Adopted by
Most recently taken up by
- kinqsradio/orbyn-fullstack-skillsword for word, first seen Nov 8, 2026
Other versions1 project uses a version of this.
Word for word · 1
- kinqsradio/orbyn-fullstack-skills★ 4100% same
Edited · 0
None found.
Wrote their own version · 0
None found.
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository41 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- .github/copilot-instructions.mdCopilot instructions
- architectSkill
- arenaSkill
- automate-meSkill
- figure-it-outSkill
- howSkill
- interrogateSkill
- language-best-practicesSkill
- orbyn-ai-applicationSkill
- orbyn-backend-designSkill
- orbyn-ci-designSkill
- orbyn-content-designSkill
- orbyn-data-migrationSkill
- orbyn-planSkill
- orbyn-researchSkill
- orbyn-security-auditSkill
- orbyn-security-remediationSkill
- orbyn-setupSkill
- orbyn-skill-creatorSkill
- orbyn-stack-selectionSkill
- orbyn-ui-designSkill
- orbyn-upstream-reviewSkill
- orbyn-workflowSkill
- orbyn-worktreeSkill
- product-illustrationSkill
- rea-analysis-optimizationSkill
- rea-changelog-updateSkill
- rea-ci-tests-auditSkill
- rea-tool-designSkill
- reflectSkill
- reverse-engineer-anythingSkill
- show-me-your-workSkill
- social-contentSkill
- social-previewSkill
- stack-diagramSkill
- tddSkill
- technical-illustrationSkill
- unslopSkill
- whySkill
The file
We split this skill into the rules it gives an agent
9 rules. About 0 are common, 5 are distinctive, and 4 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈5
Distinctive · estimate
This author's own choices. Worth a look.
4
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 8
Use this when the user points at something that moves and wants ours to move the same way, or wants proof that it does.
- Distinctive: line 21
Never copy their code, shaders, assets, fonts, brand, layout or copy.
- Very specific: line 26
If the user says they own a reference and nothing contradicts it, take their word and record it in the spec.
- Distinctive: line 44
Scope: Write the target, the destination in the project, the rights and the fidelity.
- Very specific: line 52
Read every sheet: Run scripts/sheet.mjs filmstrip, then open each sheet.
- Very specific: line 53
Write the spec: Run scripts/spec.mjs draft: one row per element per property.
- Very specific: line 56
Compare: Run scripts/spec.mjs check, scripts/compare.mjs and scripts/sheet.mjs compare.
- Distinctive: line 58
Stop after 5 rounds: if a row still fails, and report it with its numbers and the reason.
- Distinctive: line 87
Use orbyn-ui-design to decide what motion a product should have, technical-illustration for films, and product-illustration for faux UI.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Motion match
Use this when the user points at something that moves and wants ours to move the same way, or wants proof that it does. The result is code plus numbers and sheets, never "it looks about right".
Rights come first
Decide who owns the reference before capturing anything, and state it in your first message.
| Reference | What you may do |
| Our own work, or one the user owns or has licensed | Any fidelity, including pixel-level |
| Anyone else's site or video | Measure timing, easing, order and distance only, as a written spec, and build with our own design |
For anyone else's work:
- Never copy their code, shaders, assets, fonts, brand, layout or copy. Never recreate a real product as if it were ours.
- A pixel-faithful match is off the table, whatever the wording of the request. Offer motion-level instead and say why: "I can match how it moves with your design. Copying their look would take their design work, so I won't do that."
- Login walls, paywalls, bot checks and DRM stay closed. Respect the site's terms and capture only what a normal visitor sees. When a page can't be reached, ask for a screen recording. Never download someone else's video.
- Raw captures stay in an ignored local folder. They are never committed, published or used in a deliverable, and they are deleted when the user chooses. Only the written numbers carry forward. Tell the user where they are.
If the user says they own a reference and nothing contradicts it, take their word and record it in the spec. "Make it identical to that company's site" is not a licence. Use --rights third-party whenever ownership is unclear.
Fidelity
State the level in your first message; it decides what you verify.
| Level | Must match | May differ |
| Motion (default) | Trigger, order, stagger, timing of every step within 80 ms, easing, direction and distance | Copy, colours, fonts, images, layout, brand |
| Pixel, own or licensed only | All of the above, plus fonts, sizes, colours, spacing and assets; mean mismatch at most 2% | Nothing the user did not ask to change |
| Mixed | The matched part, at one of the levels above | The additions, which must not break the matched motion |
Match only what the user named: one section, one widget, or a time range.
Method
Work in output/motion-match/<name>/, or another folder Git ignores. Keep every round. Pass --playwright and --chrome, or set PLAYWRIGHT_CORE and CHROME_PATH. Node 22, an existing browser driver and an existing browser are required; ffmpeg is needed for video. Nothing is installed.
- Scope. Write the target, the destination in the project, the rights and the fidelity.
Capture the reference with
scripts/capture.mjs, orscripts/frames.mjsfor a supplied video. Give it the rights you decided:node <skill>/scripts/capture.mjs --url <page> --out <dir>/ref --rights third-party \ --selector .hero --track ".title, .cta" --duration 2000- Read every sheet. Run
scripts/sheet.mjs filmstrip, then open each sheet. The easing lives in the middle frames. - Write the spec. Run
scripts/spec.mjs draft: one row per element per property. A?means you have not finished reading the frames, and the check refuses to run until each is replaced. - Build in the project's own stack, with its own design for a third-party reference.
- Film ours the same way. Reuse the reference command, changing only
--url,--outand--rights. Different settings measure your setup, andcompare.mjsfails them. - Compare. Run
scripts/spec.mjs check,scripts/compare.mjsandscripts/sheet.mjs compare. Read every sheet. - Change the smallest thing the numbers point at, one cause per round, then go back to step 6.
- Stop after 5 rounds if a row still fails, and report it with its numbers and the reason. Keep the thresholds where they are.
- Report so the message stands alone: the rights and fidelity; what was matched and added; the files and how to trigger the motion; a table of the last round; the sheet paths; each residual with a number and a reason; and where any raw third-party capture sits.
Worked failure
Round 1 of three cards fails:
.card-1 opacity start +300 ms end +300 ms easing RMSE 0.0003 FAIL
.card-2 opacity start +300 ms end +300 ms easing RMSE 0.0055 FAIL
gaps 116.7 against 116.7 passEvery row is late by the same amount, and the curve and gaps are right, so the only cause is the base delay. Change that one number and re-film. Aligning the frames would make this row pass and ship a 300 ms late animation, which is why compare.mjs refuses --auto-align between two captures.
Pitfalls
- Different viewport or crop between the two sides: fix the capture before touching code.
- Judging from the first and last frames: read the middle ones.
- Fonts: a fallback font changes every frame's pixels. At motion fidelity, read the timing rows and ignore text pixels.
- Page already busy against a cold start: use the same
--wait-beforeon both sides. - Scroll-driven motion follows scroll position, not time. Use the same
--scroll-stepsand--scroll-ms, and compare perscrollY. - Springs:
easing.mjsreports overshoot and fitted stiffness and damping. Tune by overshoot and settle time. - Screen recordings carry a cursor, browser chrome and compression noise. Crop them out and raise
--activity-thresholdslightly. - Canvas content: use the virtual clock and the same
--seedon both sides. Random content on the real clock measures the machine. - CSS animations report
linearintiming.easing. The real easing sits on each keyframe.
Boundaries
Use orbyn-ui-design to decide what motion a product should have, technical-illustration for films, and product-illustration for faux UI. A video follows the code-only rule: study a reference for technique, and never copy its frames.
Read when needed
- For capture recipes, triggers and output files, read capture.
- For the spec format and how to read frames, read analysis.
- For easing, springs and building patterns, read implementation.
- For pass criteria and what each failure means, read verify.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

