Machine-readable spec for reproducing an editorial slide-deck design system and its product UI variant in any Next.js project. Audience: LLM coding agents. Read order: OVERVIEW → STACK → INSTALL → RULES → MOTION → ANTIPATTERNS → VOICE → PRODUCT-UI (variant for dashboards / admin tools) → EVENT-DECK (co-branded paged event decks) → DATAVIZ (animated charts & diagrams), then copy files.
v2.1.0 (hard-edit release): eyebrows removed entirely (component, classes and token; the headline carries the slide); flanking rule pairs gone from QuoteDivider and thesis tails; max-width in px/ch banned (fluid containers, reading measures in % or grid columns); KPI figures, units and mono spans aligned on the shared baseline; shipped components and templates rewritten Tailwind-free with colocated plain CSS.
v2.0.0 (de-slop release): Tailwind removed from the stack (plain CSS: tokens + semantic classes + colocated per-slide CSS); eyebrow and decorative-bar discipline reversed (headline carries the slide); VOICE.md doubled (contrast-frame rationing, data attribution, es-ES number idiom); data-viz language, media rules and the opt-in HMAC access gate codified. Distilled from the ivi-mid-2026 production deck.
cd your-project-root # 1. Auto-detect: writes AGENTS.md + files for any agent dir already present curl -fsSL https://sd.michelvalles.com/install.sh | bash # 2. All supported agents at once curl -fsSL https://sd.michelvalles.com/install.sh | bash -s -- --all # 3. Pick specific agents curl -fsSL https://sd.michelvalles.com/install.sh | bash -s -- --agents=claude,cursor,codex,gemini
Supported agents and where the installer writes their rules file:
claude → .claude/skills/sd-design/SKILL.md + CLAUDE.md codex → AGENTS.md (OpenAI Codex CLI / agents.md standard) cursor → .cursor/rules/sd-design.mdc + .cursorrules (legacy) windsurf → .windsurf/rules/sd-design.md + .windsurfrules (legacy) copilot → .github/copilot-instructions.md (GitHub Copilot) gemini → GEMINI.md (Gemini CLI) aider → CONVENTIONS.md (Aider) continue → .continuerules (Continue) kiro → .kiro/steering/sd-design.md (Kiro) universal → AGENTS.md (always written; agents.md fallback)
After install, every agent receives the same instructions and fetches asset files on demand from this host. Full detail in AGENTS-SUPPORTED.md.
fetch the docs in order, then copy each file to the matching path in your project: https://sd.michelvalles.com/OVERVIEW.md https://sd.michelvalles.com/STACK.md https://sd.michelvalles.com/INSTALL.md https://sd.michelvalles.com/RULES.md https://sd.michelvalles.com/MOTION.md https://sd.michelvalles.com/ANTIPATTERNS.md https://sd.michelvalles.com/VOICE.md https://sd.michelvalles.com/files/globals.css -> app/globals.css https://sd.michelvalles.com/files/layout.tsx -> app/layout.tsx https://sd.michelvalles.com/files/page.example.tsx -> app/page.tsx https://sd.michelvalles.com/files/tsconfig.json -> tsconfig.json https://sd.michelvalles.com/files/next.config.ts -> next.config.ts (no PostCSS config since v2.0.0 -- no Tailwind) https://sd.michelvalles.com/components/utils.ts -> lib/utils.ts https://sd.michelvalles.com/components/format.ts -> lib/format.ts ... (see INSTALL.md for the full path mapping) https://sd.michelvalles.com/logos/flat101.svg -> public/logos/flat101.svg https://sd.michelvalles.com/logos/flat101-light.svg -> public/logos/flat101-light.svg https://sd.michelvalles.com/logos/indra.svg -> public/logos/indra.svg https://sd.michelvalles.com/logos/indra-light.svg -> public/logos/indra-light.svg
--cat-* palette, dependency-free geometry/layout helpers)