agentleFS
LiriRaidLiriRaid/waymark/skills/dept-frontend/SKILL.md

dept-frontend

Skill2 starsChanged 6 days agoMITView on GitHub

Frontend. FIRST, before ui-*, to build or fix UI code: \"crear un modal\", \"nueva pantalla\", \"componente\", \"formulario\", \"tabla\", \"layout responsive\".

We split this skill into the rules it gives an agent

15 rules. About 0 are common, 14 are distinctive, and 1 is very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈14

    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. Very specific:

    Does not own: visual and interaction design decisions → dept-ux-ui · API contracts → dept-backend · global state, caching and data models → …

    line 33
  2. Distinctive:

    Follow the stack's component model.

    line 47
  3. Distinctive:

    Use the framework's recommended reactive state primitive for local state.

    line 48
  4. Distinctive:

    Use the framework's change-detection or render optimization by default.

    line 49
  5. Distinctive:

    Update state immutably or through the primitive's setter API.

    line 50
  6. Distinctive:

    Prefer: keep components presentational.

    line 53
  7. Distinctive:

    Prefer the framework's recommended dependency injection or context mechanism.

    line 54
  8. Distinctive:

    Prefer: defer or lazily hydrate heavy, below-the-fold blocks when the framework supports it.

    line 59
  9. Distinctive:

    Never introduce hydration mismatches (non-deterministic values, time, random IDs in server output).

    line 60
  10. Distinctive:

    Use the project's styling system first.

    line 63
  11. Distinctive:

    Use design tokens (color, spacing, radius, typography, motion).

    line 64
  12. Distinctive:

    Never use inline styles except for justified dynamic bindings.

    line 65
  13. Distinctive:

    Import UI library components and icons individually (tree-shakeable).

    line 66
  14. Distinctive:

    Prefer: keep custom icons/SVGs where the stack profile defines.

    line 67
  15. Distinctive:

    Use native semantic elements before ARIA.

    line 70

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

Quick ref

Mission: Build client-side UI (web or mobile) that is correct, accessible, performant and consistent with the stack's conventions. Rules: reactive state primitive and render optimization per stack profile · styling system first, tokens only · guard platform-only APIs when server-rendering · clean up subscriptions, listeners and animations · every UI state (loading, empty, error, success) UX musts: match the existing screens (spacing, density, components) · visible focus and full keyboard path · labels on every control · loading / empty / error states that look like the project's own Skills by default: ui-build · library-docs (+ the stack's framework / UI-library MCP when the user has one; browser-verify = the eyes, automatic at the end of a seen change; run only when the user asks) DoD: Works in the running app, a11y basics pass, all states handled, tests cover criteria.

Entry

Guest (no Waymark block in context) → ../waymark/references/coexistence.md §3. Reads:

  • Learnings: ~/.waymark/learnings/dept-frontend.md if it exists.
  • Stack profile: L1 Commands + Conventions by department → Frontend, L2+ full. UI work: also the Quick ref of dept-ux-ui.

Brief questions

The brief must answer:

  1. What UI is built or changed (component, screen, dialog, form) and which acceptance criteria it satisfies?
  2. Why / for whom — which user task does it serve?
  3. Where — where the repo already puts this kind of piece (memory.md → Architecture, W convention; the scope rule only as "profile default" when the repo shows none), exact folder per Placement rules, and which existing shared or library component is reused?
  4. Data source — which service, store or API feeds it, and who owns that contract (dept-backend, dept-data)?
  5. States — loading, empty, error, success, disabled, plus hover/focus/active?
  6. Responsive and rendering — narrowest viewport, light/dark, SSR/hydration constraints?
  7. Accessibility — keyboard path, focus management, labels, live regions?
  8. How and done — procedure, skills/MCP (ui-build, ui-refine, library-docs, library MCP) and the tests that prove it, then the eyes (browser-verify) at the end of the seen change?

Scope

  • Owns: components/views, client state, client routing, rendering mode (CSR/SSR/SSG/hydration), styling implementation, icons, client animations, client-side performance, wiring accessibility semantics.
  • Does not own: visual and interaction design decisions → dept-ux-ui · API contracts → dept-backend · global state, caching and data models → dept-data · module placement rules → dept-architecture · build/deploy → dept-devops.

Procedures

In procedures.md (same folder), one section per task:

  • New component / screen (L2)
  • Bug fix (L1/L2)
  • Styling / restyle (L1/L2)
  • Animation / motion
  • Performance pass

Rules

Components and state

  • Follow the stack's component model; no legacy module systems the stack profile marks as deprecated.
  • Use the framework's recommended reactive state primitive for local state; streams only for event sequences.
  • Use the framework's change-detection or render optimization by default.
  • Update state immutably or through the primitive's setter API; never mutate shared state in place.
  • Clean up subscriptions, timers, listeners, observers and animations on destroy/unmount.
  • Provide stable keys/tracking for every rendered list.
  • Prefer: keep components presentational; move data access and orchestration to services/stores per the architecture.
  • Prefer the framework's recommended dependency injection or context mechanism.

Rendering, SSR and hydration

  • Guard browser/platform-only APIs (window, document, storage, device APIs) when code runs on the server or multiple platforms.
  • Make every new public route renderable in the project's rendering mode; decide prerender/SSR/CSR during planning.
  • Prefer: defer or lazily hydrate heavy, below-the-fold blocks when the framework supports it.
  • Never introduce hydration mismatches (non-deterministic values, time, random IDs in server output).

Styling and assets

  • Use the project's styling system first; custom CSS only when it cannot express the need.
  • Use design tokens (color, spacing, radius, typography, motion); no hard-coded values.
  • Never use inline styles except for justified dynamic bindings.
  • Import UI library components and icons individually (tree-shakeable).
  • Prefer: keep custom icons/SVGs where the stack profile defines.

Accessibility wiring

  • Use native semantic elements before ARIA; every interactive element keyboard reachable with visible focus.
  • Label icon-only controls and form fields.

Tools

CapabilitySkill / MCP / AgentWhenLevel
ui.buildui-buildLayout, responsive, forms, cards, navigation, visual polishL1
ui.refineui-refineAny animation, transition, micro-interaction, scroll effectL2
ui.systemui-systemPremium polish, hierarchy, dashboards, landing pages (when requested)L2
test.browserbrowser-verifyThe eyes at the end of a seen change (L2+; L1 CSS/HTML with no spec); other flows when the user asks—
app.runrunSee the change working in the real appL2 (L1 for visible changes)
docs.librarylibrary-docs (→ the docs MCP servers the user has)Framework, styling or UI library API not verified this sessionQ
framework.clithe stack's framework CLI/docs MCP, if the user has one (e.g. angular-cli for Angular); none → library-docsGenerators, best practices, migrationsL1
ui.librarythe UI library's MCP, if the user has one (e.g. primeng); else library-docsComponent API, props, examples, theming tokensL1

Definition of Done

  • Acceptance criteria verified in the running app (run) and covered by tests
  • Loading, empty, error, success and disabled states implemented
  • Keyboard navigation, visible focus and labels verified
  • No console errors or hydration warnings; SSR render verified when enabled
  • Tokens only; light/dark and narrow viewport checked
  • Cleanup for subscriptions, listeners and animations in place

Hand-offs

  • To dept-ux-ui: missing states, copy, hierarchy, token or motion decisions.
  • To dept-backend: API contract gaps or error shapes the UI cannot handle.
  • To dept-data: shared state, caching, persistence or offline sync.
  • To dept-architecture: unclear placement or a needed cross-module contract.
  • To dept-qa: test strategy, browser regression suites.
  • To dept-security: auth flows, token storage, XSS-prone rendering.
  • To dept-devops: SSR/prerender configuration, bundle budgets, deploy.

Learned rules

Grows with use (../waymark/references/learning.md).

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.