build-recipes
Skill1 starsChanged 3 months agoMITView on GitHub
Build the landing from the approved DESIGN.md and design plan on the fixed stack (Next.js + Tailwind + GSAP + Lenis, optional R3F). Use when craft/elevate invoke it after the design-plan gate, or standalone to rebuild a section. Never use before a design plan is approved.
The file
We split this skill into the rules it gives an agent
4 rules. About 0 are common, 4 are distinctive, and 0 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈4
Distinctive · estimate
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 25
Keep the CSS custom-property names equal to the frontmatter token slugs so impeccable's detector and live panel resolve them.
- Distinctive: line 42
Only when reproduction holds does phase two (steps 4-7: motion, interaction, responsive) begin.
- Distinctive: line 48
BEFORE writing each ScrollTrigger.
- Distinctive: line 65
Never a ScrollTrigger on a tween nested in a timeline.
≈ “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
Build recipes — fixed-stack construction
Stack is FIXED: Next.js (App Router) + Tailwind + GSAP + Lenis. R3F only if the approved design plan names a 3D signature. gsap-skills (installed separately) owns API correctness — consult it for GSAP syntax. This skill owns WHICH pattern goes WHERE and the site-level wiring.
Order of construction
- Scaffold:
create-next-app(TS, Tailwind, App Router, src/). Installgsap lenis. No other animation libs. - Global wiring FIRST (${CLAUDE_PLUGIN_ROOT}/skills/build-recipes/references/lenis-setup.md):
Lenis on GSAP ticker,
lagSmoothing(0), single RAF loop.html { scroll-behavior: auto !important }. - Tokens: read them from DESIGN.md's YAML frontmatter (
colors,typography,rounded,spacing,components) — that layer is normative, the prose sections are context. Motion tokens come from the## Motion identityextension section (mirrored in.impeccable/design.jsonunderextensions.motion). Frontmatter → Tailwind theme + CSS custom properties (--ease-out-brand,--dur-base...).gsap.defaults({ease, duration}). Keep the CSS custom-property names equal to the frontmatter token slugs so impeccable's detector and live panel resolve them. 3b. When an approved comp exists, the comp is king and the build runs in two phases. Phase one is REPRODUCTION, statics only: rebuild the first viewport at the comp's own width, screenshot it at the comp's dimensions, and set the two side by side. Materials, component character, elevation, scale relationships and type silhouette must match; the only allowed concessions are the closest obtainable font, the icon set, and genuine defects in the comp. The comparison is the authority, never your conviction that the recreation worked — models systematically believe HTML/CSS recreations succeeded when they did not. A region that keeps losing the comparison stops being recreated in code and becomes aproduceasset composited into the page. Prove the hero this way BEFORE building past it: every later section inherits the hero's shortfall, and a five-minute retry here is what a rebuild verdict at verify costs. Where the comp does not cover a section, build it inside the fidelity inventory recorded in the design plan (§ Comps) — corner language, line weights, materials, type ramp — never from stock defaults. Only when reproduction holds does phase two (steps 4-7: motion, interaction, responsive) begin. No comp → skip this step and build from the wireframe. - Sections in SCRIPT ORDER, one at a time. Per section pick the pattern from ${CLAUDE_PLUGIN_ROOT}/skills/build-recipes/references/page-anatomy.md + ${CLAUDE_PLUGIN_ROOT}/skills/build-recipes/references/scrolltrigger-patterns.md. Consult ${CLAUDE_PLUGIN_ROOT}/skills/build-recipes/references/anti-patterns.md BEFORE writing each ScrollTrigger.
- Asset placeholders: every media slot renders a placeholder at the EXACT
ratio from the design plan (
aspect-[16/9]etc.) with the slot name visible — layout must never reflow when real assets land. prefers-reduced-motionfrom the START, not retrofit: every ScrollTrigger created insidegsap.matchMedia()with a reduce context (opacity-only, no pin, no scrub, no parallax). Content NEVER gated behind animation — noopacity: 0initial states in CSS; set from JS.- Signature moment LAST, with the most care. Budget: 1–2 pinned sequences per page max, runway 1.5–3 viewport-heights per chapter. Signature techniques: scroll-video → ${CLAUDE_PLUGIN_ROOT}/skills/build-recipes/references/scroll-video.md; 3D → ${CLAUDE_PLUGIN_ROOT}/skills/build-recipes/references/r3f.md.
Hard rules (from verified doctrine)
- Scrub OR toggleActions per trigger, never both. Scrub 0.5–1.5 for
storytelling;
scrub: trueonly for frame-accurate (sequences, progress). - Pace = runway (
end), neverduration, on scrubbed timelines. - Never a ScrollTrigger on a tween nested in a timeline. Never animate the pin target (pin wrapper, animate children). Pinned triggers in document order.
- Horizontal containers + parallax:
ease: "none"mandatory. - Function-based start/end +
invalidateOnRefresh: truefor anything size-dependent. All triggers insidegsap.matchMedia()contexts. - Continuous/scroll-linked animation:
transform+opacityONLY. - Mobile (≤768px) gets a DESIGNED simpler choreography, not degraded desktop.
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.

