agentleFS
ldaumeldaume/agentic-engineering-harness/skills/frontend/frontend-craft/SKILL.md

frontend-craft

Skill3 starsChanged 3 months agoMITView on GitHub

Guides frontend, UX, UI, responsive design, microcopy, accessibility, feedback states, and AI-assisted product surfaces with production-grade taste. Use when designing, building, reviewing, or polishing screens, React islands/components, Tailwind UI, mobile flows, loading/empty/error states, or user-facing copy. It implements and polishes; deciding a flow, form behavior, or product UI pattern, or running a UX audit, belongs to the design-* skills when installed.

8 other projects use a version of this.

Adopted by

Most recently taken up by

The file

Show its rules and text

We split this skill into the rules it gives an agent

35 rules. 0 are common, 33 are distinctive, and 2 are very specific to this project.

  • 0

    Common

    Most of the 6 edited versions we read keep these.

  • 33

    Distinctive

    This author's own choices. Worth a look.

  • 2

    Very specific

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

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Use this for frontend and product-experience work across web apps, SaaS interfaces, dashboards, marketing surfaces, and AI-assisted UI.

    line 9
  2. Distinctive:

    Before designing or changing UI:

    line 14
  3. Distinctive:

    Follow local component, icon, copy, accessibility, motion, and responsive conventions.

    line 20
  4. Distinctive:

    If design-system docs are missing, infer patterns from the existing UI and state the inference when it affects the result.

    line 22
  5. Distinctive:

    If the repo has its own UX review checklist, merge it with this skill instead of replacing it.

    line 24
  6. Distinctive:

    Use visual taste in service of clarity, trust, speed, and action.

    line 33
  7. Distinctive:

    Every action ends on a surface that shows its result and the next step worth taking.

    line 41
  8. Distinctive:

    No control needs instructions to be found or operated.

    line 43
  9. Distinctive:

    Keep domain policy, authorization decisions, durable workflow state, and persistence semantics out of UI components and framework glue.

    line 61
  10. Distinctive:

    Keep presentation, input handling, accessibility, immediate feedback, latency masking, and genuinely local interaction state in the UI.

    line 63
  11. Distinctive:

    Default SaaS/product surfaces should be calm, utilitarian, and high craft:

    line 97
  12. Distinctive:

    no decoration without function

    line 105
  13. Distinctive:

    Prefer existing framework patterns and primitives.

    line 118
  14. Distinctive:

    Use server-rendered/static components by default.

    line 119
  15. Very specific:

    Check package.json before importing libraries.

    line 121
  16. Distinctive:

    Use CSS variables or design tokens for colors, spacing, radius, and motion.

    line 122
  17. Distinctive:

    Use icons from the installed icon system instead of emojis for UI controls.

    line 129
  18. Distinctive:

    Use stable dimensions for buttons, toolbars, rows, grids, counters, and dynamic labels.

    line 130
  19. Distinctive:

    Do not animate layout properties.

    line 132
  20. Distinctive:

    Every async or data-dependent surface needs:

    line 137
  21. Distinctive:

    Do not ship a polished happy path with broken silence everywhere else.

    line 147
  22. Distinctive:

    Avoid generic labels like "Submit", "OK", and "Continue" when the action can be named.

    line 152
  23. Distinctive:

    Use plain product language from the domain glossary.

    line 154
  24. Distinctive:

    Do not expose raw internal errors, job names, provider stack traces, or agent jargon in user-facing copy.

    line 155
  25. Distinctive:

    If the repo is localized, update all required locales in the established message system.

    line 157
  26. Distinctive:

    No hover-only affordances for critical actions.

    line 165
  27. Distinctive:

    Avoid horizontal overflow at 320-375px.

    line 166
  28. Very specific:

    Check phone UI at the target device width and again at an OS text scale of about 1.3.

    line 167
  29. Distinctive:

    Keep forms short; use progressive disclosure for advanced inputs.

    line 173
  30. Distinctive:

    Keep provenance, review, undo, or restore available for AI-generated changes that affect user trust.

    line 179
  31. Distinctive:

    Do not fake AI results, citations, progress, or confidence.

    line 181
  32. Distinctive:

    Prefer concrete progress labels over generic spinners.

    line 182
  33. Distinctive:

    Do not let AI chrome compete with the user's primary object of work.

    line 183
  34. Distinctive:

    When a screen tells someone what to do next (task, status, approval, or review flows), read GUIDING-SCREENS.md: three first-viewport …

    line 189
  35. Distinctive:

    Stop and revise when you see:

    line 213

“Common” is measured: kept by at least 6 in 10 of the 6 edited versions of this file we could read. “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 Craft

Use this for frontend and product-experience work across web apps, SaaS interfaces, dashboards, marketing surfaces, and AI-assisted UI.

Project Fit Check

Before designing or changing UI:

  1. Scan the existing product surface, routes, components, tokens, styles, localization files, tests, and design docs.
  2. Detect the framework and styling system before importing libraries or inventing primitives.
  3. Follow local component, icon, copy, accessibility, motion, and responsive conventions. Improve them only when the task requires it.
  4. If design-system docs are missing, infer patterns from the existing UI and state the inference when it affects the result.
  5. If the repo has its own UX review checklist, merge it with this skill instead of replacing it.

Core Stance

  • Design flows before screens.
  • Build the actual usable experience, not a decorative landing shell.
  • Solve the happy path and the state path: loading, empty, error, success, and recovery.
  • Use visual taste in service of clarity, trust, speed, and action.
  • Mobile is not a small desktop. Touch, reach, network, battery, and distraction matter.
  • UI copy is product behavior. Buttons, errors, empty states, and confirmations must help the user proceed or recover.
  • State each page's one purpose in one sentence. If the object of that purpose is not in the first screenful, the layout is wrong; everything else steps back.
  • Every action ends on a surface that shows its result and the next step worth taking. No blank page, no silent return, no dead end.
  • No control needs instructions to be found or operated. If it does, fix the label, placement, or affordance. Domain consequences may still be explained next to the action, never the control itself.

Read First

  1. Repo agent instructions (AGENTS.md, CLAUDE.md, etc.)
  2. Domain glossary (CONTEXT.md) and current product/design docs
  3. Existing components, tokens, message catalogs, routes, and tests
  4. Package manifest before importing any dependency
  5. Accessibility, i18n, and design-system conventions already present

Pair with coding-discipline for implementation and completion-gate before claiming done when those Skills are available. This Skill remains usable on its own.

Thin UI, full product behavior

  • Keep domain policy, authorization decisions, durable workflow state, and persistence semantics out of UI components and framework glue.
  • Keep presentation, input handling, accessibility, immediate feedback, latency masking, and genuinely local interaction state in the UI.
  • Consume task-shaped read models and send intent-shaped mutations or commands when they make the user's job and the system contract clearer than generic CRUD forms over persistence records.
  • Build and test vertical behavior through the real public boundary. Do not split ownership into frontend and backend handoffs when one end-to-end slice gives faster evidence.
  • Choose rendering, state, caching, and component patterns for this product and its measured constraints. Framework patterns are tools, not the design.
  • Challenge the surface with slow networks, large or awkward data, repeated actions, multiple clients or tabs, partial failure, and narrow or low-power devices where those conditions are plausible.

Experience Contract

Every flow needs:

  1. Entry point
  2. User intent and known context
  3. Primary action
  4. Immediate feedback
  5. Outcome
  6. Natural next step or exit

Use:

  • hub-and-spoke for dashboards and detail views
  • linear flow for onboarding, forms, checkout, and setup
  • tabs only for 3 to 5 stable top-level areas
  • progressive disclosure when complexity would otherwise overload the screen

Visual Direction

Default SaaS/product surfaces should be calm, utilitarian, and high craft:

  • crisp hierarchy
  • restrained color
  • semantic tokens
  • strong contrast
  • stable layout dimensions
  • clear affordances
  • no decoration without function

Avoid:

  • generic centered hero sections when a real product surface is needed
  • generic purple or blue gradients used only to signal "AI"
  • nested cards
  • three equal feature cards as the default layout
  • stock-like visuals that hide the actual product
  • text that describes how to use obvious UI controls

Frontend Defaults

  • Prefer existing framework patterns and primitives.
  • Use server-rendered/static components by default; isolate client components or islands only where interactivity requires them.
  • Check package.json before importing libraries.
  • Use CSS variables or design tokens for colors, spacing, radius, and motion.
  • Hold every text-on-surface pair to WCAG AAA (7:1, or 4.5:1 for large text) in light and dark, and enforce it with an automated test, not review: list every text token on every surface it is drawn on (translucent tints composited over their base), compute the ratio for both schemes, and fail the build below AAA. Disabled controls are exempt. Text without an explicit color must inherit a theme token from the root, not a framework default.
  • Use icons from the installed icon system instead of emojis for UI controls.
  • Use stable dimensions for buttons, toolbars, rows, grids, counters, and dynamic labels.
  • Do not animate layout properties; use transform and opacity.
  • Respect prefers-reduced-motion.

State Discipline

Every async or data-dependent surface needs:

  • Loading: skeletons that match the final layout; avoid generic full-page spinners.
  • Empty: friendly observation, useful context, and a next action.
  • Error: plain-language problem plus recovery; localize partial failures to the affected region.
  • Success: lightweight confirmation; undo for reversible destructive actions.

Do not ship a polished happy path with broken silence everywhere else.

Copy Rules

  • Name the action: "Review changes", "Create workspace", "Retry import".
  • Avoid generic labels like "Submit", "OK", and "Continue" when the action can be named.
  • Use plain product language from the domain glossary.
  • Do not expose raw internal errors, job names, provider stack traces, or agent jargon in user-facing copy.
  • If the repo is localized, update all required locales in the established message system.
  • Blame the system, not the user, when recovery is possible.

Mobile Rules

  • Minimum touch target: 44px.
  • Primary actions should be reachable in normal thumb zones.
  • No hover-only affordances for critical actions.
  • Avoid horizontal overflow at 320-375px.
  • Check phone UI at the target device width and again at an OS text scale of about 1.3. Scale with page zoom; a root font-size change misses px-sized layouts. Assert that visible control boxes do not overlap (clip to scroll containers), targets stay at 44px, and the page does not scroll horizontally.
  • Reserve space for async content to prevent layout jumps.
  • Keep forms short; use progressive disclosure for advanced inputs.
  • Safe areas matter for sticky bottom actions.

AI Interface Rules

  • Make uncertainty visible.
  • Keep provenance, review, undo, or restore available for AI-generated changes that affect user trust.
  • Do not fake AI results, citations, progress, or confidence.
  • Prefer concrete progress labels over generic spinners.
  • Do not let AI chrome compete with the user's primary object of work.
  • Preserve user agency: suggestions should be easy to accept, reject, edit, or ignore.

Guiding Screens

When a screen tells someone what to do next (task, status, approval, or review flows), read GUIDING-SCREENS.md: three first-viewport answers, server-computed acts, links to where a person checks, two registers, and suggestions that name the act of their button.

Review Checklist

  • Does the screen answer one primary question, and does the entry point promise that question?
  • Does each primary action land on a surface that shows its result and the next step?
  • Which control needs instructions to be found or operated, and what label, placement, or affordance removes that need?
  • Is the primary action obvious, reachable, and accurately labeled?
  • Does the flow have an exit and a recovery path?
  • Are loading, empty, error, and success states present?
  • Does mobile collapse cleanly without hidden actions or horizontal scroll?
  • Are focus, labels, roles, contrast, keyboard access, and reduced motion handled?
  • Does the implementation follow existing tokens and component patterns?
  • Is every new dependency justified?

Red Flags

Stop and revise when you see:

  • happy-path-only UI
  • hidden or generic error handling
  • hover-only mobile-critical actions
  • hardcoded colors where tokens exist
  • icons or emojis used inconsistently
  • UI copy added outside the repo's localization system
  • AI surfaces with no review, provenance, or recovery
  • animation that delays the user's work
  • an action that ends on a blank page or a silent return
  • a tooltip or tour that explains how to find or operate a control

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.

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.