Disambiguation — the questions that blur together
The intents that blur together — four motion questions, three dark-mode owners, two layout-shift owners — and which node owns each.
Raw markdown On GitHubreferences/meta/disambiguation.md
Taught in
Some questions sound identical but route to different nodes. Misrouting here is the most common navigation failure in this graph: the answer you get is plausible but from the wrong altitude. This node lists the known confusable pairs and the tiebreaker for each.
The four motion questions
"Something about animation" is four different jobs:
| Question | Owner |
|---|---|
| How should this one thing animate? | animation-decision-framework → easing-curves, duration-table |
| Is this diff's animation good? | motion-auditor (motion-only, deeper) or motion rows in a review-format table |
| What's wrong with motion across the whole app? | motion-auditor in audit mode — output is a prioritized plan, not a table |
| Where is motion missing? | delight-impact-curve + responsive-feedback — propose few, reject most |
Tiebreaker: scope. One element → decide/build nodes. One diff → judge posture. Whole codebase → audit plan. Absence of motion → the delight nodes, and the burden of proof is on adding.
Film seam vs UI transition
A product state change routes to fly-not-teleport and cross-blur-transitions; a scene change in a rendered film routes to launch-video-seams and launch-video-cuts.
Tiebreaker: is there a timeline the viewer cannot interrupt? If yes, it is a film, and UI durations (under 300 ms) do not transfer to it.
Page demo vs film demo
A product shot that plays on a page — a hero loop, a feature card, a bento tile — routes to [[MOC-faux-ui]]: shown at 1:1, cursor at real or 1.5× size, typed strings recognised at ~28 c/s, a pause button and a poster. A product demo inside a rendered film routes to launch-video-ui-demo: cursor at ~7cqw, prompts read at ~15 c/s, no replay. Tiebreaker: can the viewer scroll past it, pause it or replay it? Then it is a page demo.
Looks right vs. feels finished vs. should ship
- Looks right — hierarchy, spacing, restraint, while designing → feeling-right, unseen-details-compound.
- Feels finished — press states, tabular numbers, no layout shift, after it works → ui-polish-pass as the finishing pass, review-checklist as the audit.
- Should ship — a verdict on a diff, at the gate → review-format table, checklist-scoped.
Two more that blur: feels wrong vs. drops frames — judged motion goes to easing-curves and duration-table; measured slowness goes to performance-discipline. Broken for someone vs. merely unpolished — a failure in touch-and-focus is blocking; polish is not.
Same screen, three altitudes. Don't give a gate verdict when the user is still designing.
Layout shift has two owners
- Shift because things are slow to arrive — skeletons that don't match loaded dimensions, unreserved space → empty-loading-states.
- Shift because things are animated wrong — layout-property transitions,
width/topanimation → transform-opacity-only.
Tiebreaker: does it happen once (loading) or on every interaction (animation)?
Dark mode has three owners
- The palette — how colors derive, desaturation, preserved layering → dark-mode.
- The treatment — shadows lose their job in dark; borders take over → shadows-whisper.
- The principle — dark mode is a redesign, not an inversion → color-monochromatic.
A dark-mode question that names a hex value routes to palette; one that says "looks flat in dark" routes to treatment.
Hit areas: craft vs. floor
hover-states-subtle treats target sizing and feedback as craft. accessibility-baseline treats the same numbers as a floor you cannot trade away. An a11y audit routes to the floor; a polish pass routes to the craft node — but the floor still applies.
Sound has three owners
- Should it make a sound at all — frequency and purpose, before any file exists → sound-decision-framework. The burden of proof is on adding.
- It has sounds and something is off — stock, late, too long, too loud, no toggle → sound-palette for character, sound-motion-sync for timing, sound-spec for numbers, sound-playback-web for wiring.
- It is a video, not a product → launch-video-sound. Opposite defaults: silence is placed, sound is the medium.
Tiebreaker: is there a user who can mute it? If yes, product rules. If no (video), the launch register.
Component look-alikes
Tooltip vs. popover, badge vs. tag, sheet vs. drawer vs. dialog → component-confusables owns these. Don't adjudicate them from memory.
Gotcha
When two owners both seem right, answer from the narrower one and link the other — a specific node's values with a pointer beats a blended answer from both.
Sources
- HKTITAN — confusable pairs collected from real misroutes; see routing-table for the forward map.
metaroutingdisambiguation