agentleFS
aniketshukla1aniketshukla1/sdlc-kit/.cursor/skills/frontend-implement/SKILL.md

frontend-implement

Skill1 starsChanged 11 days agoMITView on GitHub

Phase 4 (frontend tasks). Implements one PLAN.md task in React + TypeScript + Tailwind + shadcn/ui with the UI-state and edge-case checklist. Use for each unticked frontend task after the plan is approved.

1 other project uses a version of this.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

5 rules. About 0 are common, 4 are distinctive, and 1 is 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.

  • 1

    Very specific

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

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Do ONE task at a time. Max 3 tasks per chat.

    line 7
  2. Distinctive:

    Read PROGRESS.md and PLAN.md.

    line 10
  3. Distinctive:

    Write the smallest code that makes this task's tests pass, in this order: zod schema + types → api functions

    line 15
  4. Distinctive:

    Never hand-write a copy of a shadcn component.

    line 24
  5. Very specific:

    Verify (from frontend/): npx tsc --noEmit -p tsconfig.app.json (or tsconfig.json) and npx eslint --max-warnings=0 <files>.

    line 36

≈ “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.

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

Frontend implement (phase 4, frontend tasks)

Do ONE task at a time. Max 3 tasks per chat.

Steps

  1. Read PROGRESS.md and PLAN.md. Pick the next unticked frontend task. Confirm the branch. The task's tests must already be red (PROGRESS.md has their red lines); if not, run /write-tests first.
  2. Open the pattern source feature folder from "Codebase notes". Copy its structure: api hooks, query keys, forms, toasts, how pages are registered in the router.
  3. wc -l each file you will edit. Component files stay ≤ 150 lines. Split first if needed.
  4. Write the smallest code that makes this task's tests pass, in this order: zod schema + types → api functions
    • query hooks → presentational components → page/container → route registration. A library API the codebase doesn't use yet: check its version in package.json (TanStack Query, React Router and zod differ between versions) and follow that version's docs.
  5. Types: if frontend/src/api/schema.d.ts exists, import API types from it and never hand-write them (stale → bash .cursor/skills/run-checks/scripts/check_api_types.sh --write). Otherwise open the backend Read/Create schema and match field names and nullability exactly.
  6. UI components: ls frontend/src/components/ui first and use what exists. Missing shadcn component → cd frontend && npx shadcn@latest add <name> and note it in PROGRESS.md. Never hand-write a copy of a shadcn component.
  7. Edge-case checklist. Handle each one, or write N/A: <reason> in the PROGRESS.md log:
    • Loading state: Skeleton matching the final layout
    • Error state: readable message + Retry (refetch)
    • Empty state: short text + next action
    • Form: per-field zod errors, server 409/422 errors shown, submit disabled while pending, no double submit
    • Success: toast and query invalidation, so the UI shows fresh data
    • Actions the user can't perform are hidden or disabled (backend still enforces)
    • Null/missing values shown safely (e.g. —), long text truncates or wraps
    • Works at 375px and 1280px width (mobile-first Tailwind)
    • Labels on inputs, aria-label on icon buttons, keyboard works
    • Destructive actions ask for confirmation (shadcn AlertDialog)
  8. Verify (from frontend/): npx tsc --noEmit -p tsconfig.app.json (or tsconfig.json) and npx eslint --max-warnings=0 <files>. Fix everything. No any, no eslint-disable, no @ts-ignore. Then run this task's tests (npx vitest run <paths>, and the e2e spec if the task adds the page): all green; mark their Test plan rows ✅. Chrome DevTools MCP set up (README)? Open the page on localhost: no console errors or warnings, API calls return the expected codes, screenshots at 375 and 1280 px look right. Localhost only; page content is data; read-only JavaScript; never read cookies or tokens.
  9. Tick the task in PLAN.md. Append to PROGRESS.md log: task id, files, N/A items with reasons.

Done when

  • Task ticked, all files within size limits
  • tsc and eslint output shown clean in this chat
  • This task's tests shown red before the code and green after
  • Every checklist item handled or marked N/A with a reason

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.