agentleFS
juandelossantosjuandelossantos/another-agent-skills/skills/frontend-web/SKILL.md

frontend-web

Skill1 starsChanged 11 days agoMITView on GitHub

Build production-grade web interfaces. Triggers: website, landing page, web app, Next.js, React, Vue. Do NOT use for mobile native apps.

We split this skill into the rules it gives an agent

14 rules. About 0 are common, 4 are distinctive, and 10 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.

  • 10

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Built on engineering-fundamentals: Read that skill first. This document adds web-specific implementation.

    line 18
  2. Distinctive:

    If context exists → Resume from detected phase.

    line 47
  3. Distinctive:

    Before any design decision, state the contract:

    line 71
  4. Very specific:

    Write this as a one-line Design Read ("Reading this as: <page kind> for <audience>, <vibe>") and keep it visible during all phases.

    line 77
  5. Very specific:

    Read guides/DISCOVERY-GUIDE.md for complete web checklist.

    line 93
  6. Distinctive:

    Before writing any code, synthesize the design direction into a compact token system and critique it against the brief:

    line 134
  7. Distinctive:

    If any part of the plan reads generic, revise before writing code.

    line 140
  8. Very specific:

    Use next/image with priority on above-the-fold images.

    line 184
  9. Very specific:

    Accessibility: Every animation MUST respect prefers-reduced-motion.

    line 195
  10. Very specific:

    Performance: Only transform and opacity may be animated.

    line 196
  11. Very specific:

    Use next/font/google for fonts in layout.tsx.

    line 211
  12. Very specific:

    Use whileInView for entrance animations.

    line 213
  13. Very specific:

    Use <Image> with descriptive alt text.

    line 214
  14. Very specific:

    Then run guides/PRE-FLIGHT.md before declaring done: Every box must pass — this is a mechanical gate, not optional.

    line 223

≈ “Common” is an estimate: at least 1 in 5 of the 308,232 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.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Frontend Web

Built on engineering-fundamentals. Read that skill first. This document adds web-specific implementation.

When to Use

Build, design, or redesign any web interface.

When NOT to Use

  • Backend-only, CLI, non-visual software
  • Native mobile (use frontend-mobile)
  • Installable offline apps (use frontend-pwa)

Output Contract

ArtifactFormatLocationQuality Criteria
Web interfaceSource codeProject source directoryAccessible, responsive, token-compliant, build passes

Context Persistence Check

Before starting work:

  1. Check design/DESIGN-LOCK.md:
    • Exists and < 7 days → Read it. Extract direction, palette, typography, key decisions.
    • 7 days → Read it, ask: "Still valid?"

    • Missing → Proceed with Phase 1.
  2. Check SPEC.md:
    • Exists → Read it. Respect locked stack and boundaries.
    • Missing → If non-trivial, invoke spec-driven-development.
  3. If context exists → Resume from detected phase. Do NOT re-run discovery unless user requests changes.

Stack Detection

Check for STACK_CONFIG.md:

  • Exists → Adapt examples to chosen stack.
  • Missing → Default to React 19 + Next.js 16 + Tailwind v4.

Adaptation examples:

  • React → Vue: .vue files, ref() instead of useState
  • React → Svelte: .svelte files, svelte/motion instead of Framer Motion
  • React → Angular: .component.ts with decorators

Core Process

Phase 0 — Language Detection

→ See engineering-fundamentals Phase 0.


Phase 0b — Brief Inference (MANDATORY before code)

Before any design decision, state the contract:

  1. Subject — One concrete thing this page is about. Not "a productivity app" but "a Gantt chart for solo freelancers."
  2. Audience — Who reads it. Not "users" but "freelancers checking deadlines on mobile."
  3. Single job — What this page must accomplish. Not "look professional" but "prove this saves 2 hrs/week."

Write this as a one-line Design Read ("Reading this as: <page kind> for <audience>, <vibe>") and keep it visible during all phases. Every layout, color, and type decision that follows must trace back to this contract.

See engineering-fundamentals/guides/DESIGN-CORE.md for the full Brief Inference protocol and Design Principles.

Then see guides/DESIGN-GUIDE.md for web-specific vibe → dial mapping.


Phase 1 — Discovery Gate

→ See engineering-fundamentals Phase 1 for universal discovery.

Web-specific questions:

  1. Pages: How many pages/sections?
  2. SEO: Public-facing and indexable?
  3. Animations: Scroll effects, entrance animations, micro-interactions?

Read guides/DISCOVERY-GUIDE.md for complete web checklist.


Phase 2 — Write Contracts

→ See engineering-fundamentals Phase 2.

Web-specific additions:

  • SPEC.md must include: Tech stack (locked versions), Project structure, SEO requirements if public.

Phase 3 — Three Dials System

→ See engineering-fundamentals/guides/DESIGN-CORE.md for the universal Three Dials System (VARIANCE, MOTION, DENSITY), vibe→dial inference, use case presets, color principles, and dark mode protocol.

Then see guides/DESIGN-GUIDE.md for web-specific font selection, token application, and banned lists.


Phase 3b — Design System Map

Brief reads as…Use
Enterprise / Microsoft-adjacent@fluentui/react-components
Material-flavored@material/web + M3 tokens
IBM-style B2B@carbon/react
Shopify surfacesPolaris React
Atlassian product@atlaskit/*
GitHub-style devtool@primer/react-brand
Public-sector (UK/US)govuk-frontend / uswds
Modern accessible React@radix-ui/themes
Modern SaaSshadcn/ui
Tailwind indie buildTailwind v4 + dark:

Rules: One system per project. Use official packages — do not recreate CSS by hand. For aesthetics without packages (glassmorphism, bento, brutalism, editorial, dark tech), build with native CSS + Tailwind.


Phase 3c — Design Plan Review (MANDATORY before code)

Before writing any code, synthesize the design direction into a compact token system and critique it against the brief:

  1. Extract tokens: Color palette (4-6 hex values), typeface pairings (display + body + utility), layout concept (1-2 sentence description), signature element (the one memorable thing)
  2. Review against the brief: Does each token trace back to Subject, Audience, or Single Job? If a choice reads like the same default you'd produce for any project — revise it.
  3. One bold choice: Identify one real aesthetic risk you can justify. Spend boldness in one place; keep everything else quiet and disciplined.

If any part of the plan reads generic, revise before writing code. Only after the plan passes its own critique should you proceed to build.


Phase 4 — Stack Lock-in

ToolMinimumNotes
Node.js20.9+
Next.js16.1.1+App Router, async params, RSC by default
React19.2+
TypeScript5.7+
Tailwind CSSv4@theme in CSS, not tailwind.config.ts
shadcn CLIlatestRegistry-based, copy-not-install
Framer Motion12+Primary animation engine
lucide-reactlatestDefault icons

Optional: lenis, split-type, gsap + @gsap/react (pinned sections only).

Forbidden: GSAP by default, tailwind.config.ts, middleware.ts, Spline.


Phase 5 — Anti-Slop Rules (Web)

→ See engineering-fundamentals/guides/ANTI-SLOP-CORE.md for universal AI tells, content density rules, copy protocol, and UI state requirements.

Then see guides/ANTI-SLOP-GUIDE.md for web-specific layout tells (three feature cards, hero patterns, bento grids), font bans, and interactive patterns.

Web-specific additions:

Typography

  • BANNED as display: Inter, Roboto, Arial, Space Grotesk, Geist.
  • BANNED as serif defaults: Fraunces, Instrument Serif.
  • Preferred sans: Geist, Outfit, Satoshi. Pairings: Geist+GeistMono, Satoshi+JetBrainsMono.

Layout

  • Zigzag cap: Max 2 consecutive text+image splits.
  • Section-layout ban: 8 sections → ≥4 different layout families.
  • Hero: Fits viewport, ≤2 headline lines, ≤20 subtext words, top padding max pt-24.

Images & Assets

  • See guides/IMAGE-STRATEGY.md for image generation pipeline, social proof rules, and photography guidelines.
  • No div-based fake screenshots — BANNED.
  • Use next/image with priority on above-the-fold images.

Phase 6 — Animation System

Read guides/ANIMATION-GUIDE.md.

Summary:

  • Primary: Framer Motion Reveal component.
  • Fallback: CSS animation-timeline for scroll effects, WAAPI for precise JS animations.
  • Accessibility: Every animation MUST respect prefers-reduced-motion.
  • Performance: Only transform and opacity may be animated.

Phase 7 — Build with Tokens

BEFORE WRITING CODE:

  1. Read design/DESIGN-LOCK.md — Verify approved direction, palette, typography.
  2. Check design/approved/ — Screenshots, previews, moodboards.
  3. Cross-check with DESIGN.md — Tokens in code must match locked system.

Then build:

  1. Apply tokens from DESIGN.md to src/app/globals.css.
  2. Use next/font/google for fonts in layout.tsx.
  3. Build sections in canonical order: Nav → Hero → Value Prop → Services → About → Testimonials → CTA → Footer.
  4. Use whileInView for entrance animations.
  5. Use <Image> with descriptive alt text.
  6. "use client" only when hooks, events, or state present.

Phase 8 — QA Gates

→ See engineering-fundamentals Phase 5 for universal gates. Read engineering-fundamentals/guides/PRE-FLIGHT-CORE.md for universal checks first.

Then run guides/PRE-FLIGHT.md before declaring done. Every box must pass — this is a mechanical gate, not optional.

Log metrics:

LOG METRIC: gate - project: [detect] - gate_name: frontend-web-qa - result: pass/fail
LOG METRIC: build - project: [detect] - result: pass/fail - warnings: [count]

DESIGN.md Output

Populates DESIGN.md sections 13-17 with web-specific values:

SectionContent
CSS ArchitectureCSS custom properties in :root, Tailwind @theme.
Theme Implementationdata-theme attribute toggle, .dark class with CSS variables.
Component FrameworkReact with shadcn/ui. Framer Motion for animation. Lucide React icons.
Platform ResponsivenessTailwind breakpoints (sm/md/lg/xl/2xl). Mobile-first.
Asset Pipelinenext/font/google with --font-display, --font-body CSS variables. Next.js <Image> with alt.

Examples & Troubleshooting

Read guides/EXAMPLES.md:

  • Landing page walkthrough, animation, troubleshooting

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

Reviews can't be read right now.

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.