agentleFS
sukirman1901sukirman1901/frontend-expert/skills/engineering-vocabulary/SKILL.md

engineering-vocabulary

Skill9 starsChanged 2 months agoMITView on GitHub

Name a frontend engineering concept from a loose description. Reverse-lookup for FE technical terms — user describes a pattern informally ("supaya gak fetch ulang", "render cuma yang keliatan"), skill returns the proper name + brief definition. Use when the user uses informal language for a technical concept, or when you need the correct term to pick the right implementation.

The file

Files
SKILL.md

Engineering Vocabulary

Overview

Bridge the gap between casual engineering descriptions and precise technical terms. When a user describes a frontend pattern loosely, look it up here to pick the right implementation approach.

When to use

  • User describes a pattern informally ("yang nge-cache itu", "biar gak nge-lag")
  • You need the precise term to search docs or pick the right library
  • Communicating architecture decisions clearly

When to skip

  • User already uses the correct term
  • Non-frontend (backend, DevOps, database) concepts

Lookup table

State Management

Description (loose)TermDefinition
Share data without passing through every componentContext / Provider patternReact Context or equivalent for cross-tree state
Data cached so it doesn't fetch againSWR / Stale-while-revalidateReturn cached data, revalidate in background
Store that any component can readGlobal store (Zustand/Redux)Centralized client state container
State in the URL (filters, tabs)URL state / Search paramsShareable, bookmarkable state via URL
Pass data down without prop chainsState hoisting / Lifting stateMove state to nearest common ancestor
Optimistic update before server confirmsOptimistic UI / Optimistic mutationShow expected result immediately, rollback on error
Undo/redo supportCommand pattern / History stackStack of reversible actions
Form state that tracks dirty/touchedForm state managementLibraries like React Hook Form, Formik
Derived value computed from other stateComputed / Derived state / SelectorValue calculated from source state, memoized

Data Fetching & Async

Description (loose)TermDefinition
Loading skeleton before dataSkeleton screen / Placeholder UIShimmer placeholders mimicking final layout
Retry on failureRetry with backoffRe-attempt failed requests with increasing delay
Cancel request when leaving pageAbort controller / Request cancellationAbortController signal to cancel in-flight fetch
Load more as you scrollInfinite scroll / Cursor paginationFetch next page when nearing scroll bottom
Fetch once, use everywhereQuery cache / React QueryCentralized async state with cache + revalidation
Pre-fetch data before user navigatesPrefetching / Preloading dataAnticipate next route, start fetching early
Debounce search inputDebounced inputDelay execution until user stops typing (~300ms)
Show stale data while loading newStale-while-revalidate (SWR)Display cached result, refresh in background
Parallel requests instead of sequentialPromise.all / Parallel fetchingFire independent requests simultaneously
Server sends updates without pollingWebSocket / Server-Sent EventsReal-time push from server to client

Rendering & Performance

Description (loose)TermDefinition
Render only visible list itemsVirtualization / WindowingRender only viewport-visible items (react-virtual, etc.)
Component doesn't re-render unnecessarilyMemoization (React.memo/useMemo)Skip re-render when props/deps unchanged
Load component only when neededLazy loading / Code splittingDynamic import() + Suspense for deferred loading
Render on the server firstSSR (Server-Side Rendering)Generate HTML on server, hydrate on client
Static HTML at build timeSSG (Static Site Generation)Pre-render pages at build time
Mix of server and client componentsIslands architecture / Partial hydrationStatic shell + interactive client islands
Avoid layout thrashingLayout batching / Read-write separationBatch DOM reads before writes
Animate without jankCompositor-friendly animationUse only transform/opacity for smooth 60fps
Heavy computation off main threadWeb WorkerRun CPU-intensive work in background thread
Throttle scroll/resize handlersThrottlingLimit handler execution to N times per second

Component Architecture

Description (loose)TermDefinition
Component that renders its childrenCompound componentParent + children share implicit state (Tabs + Tab)
Component that accepts a render functionRender propsPass rendering logic as a function prop
Wrap component to add behaviorHOC (Higher-Order Component)Function that returns an enhanced component
Reusable logic extracted from componentCustom hookuseXxx() function encapsulating stateful logic
Component that just displays, no logicPresentational component / Dumb componentPure UI, receives all data via props
Component that fetches and manages stateContainer component / Smart componentHandles data, passes to presentational children
Slot where parent injects contentChildren / Slots / Compositionprops.children or named slots for flexible layouts
Component that handles its own errorsError boundaryCatches render errors, shows fallback UI
Forwarding ref to inner elementforwardRefExpose inner DOM node to parent via ref
Polymorphic "render as" different elementPolymorphic component / as propComponent that can render as different HTML elements

CSS & Styling

Description (loose)TermDefinition
Styles scoped to one componentCSS Modules / Scoped stylesClass names hashed to prevent collision
CSS variables for themingDesign tokens / CSS custom properties--color-primary etc. in :root for systematic theming
Responsive without media queriesContainer queriesStyle based on parent size, not viewport
Apply styles based on parent state:has() selectorParent selector — style parent based on child state
Dark/light mode toggleColor scheme / Theme switchingprefers-color-scheme + manual toggle
Utility classes like TailwindUtility-first CSSSingle-purpose classes composed in markup
CSS-in-JS at build timeZero-runtime CSS-in-JSStyles extracted at build (Vanilla Extract, Panda)
Smooth number transitionstabular-nums / CSS counter animationFixed-width numerals for stable layout
Balanced heading line breakstext-wrap: balanceBrowser-native even line distribution

Architecture & Patterns

Description (loose)TermDefinition
Folder per feature, not per typeFeature-based architecturefeatures/auth/, not components/ + hooks/ + utils/
One source of truth for routesCentralized routingRoute config in one place (React Router, Next.js pages)
Shared UI library across featuresUI primitives / Design systemReusable base components (Button, Input, Card)
API calls in one placeAPI layer / Service layerCentralized API functions, not fetch() in components
Types shared between FE and BEShared types / Contract-firstTypeScript interfaces shared or generated from schema
Feature flagsFeature toggle / Remote configEnable/disable features without deploy
Event-driven communicationEvent bus / Pub-subLoosely coupled component communication
Guard routes based on authRoute guard / Protected routeRedirect unauthenticated users
Micro frontendModule federation / Micro-frontendIndependent deployable frontend modules
Monorepo with shared packagesMonorepo (Turborepo/Nx)Multiple apps/packages in one repository

Testing

Description (loose)TermDefinition
Test one component in isolationUnit test / Component testRender + assert on single component
Test user flows end-to-endE2E test (Playwright/Cypress)Simulate real user interaction in browser
Test visual appearanceVisual regression / Snapshot testCompare screenshots against baseline
Test accessibility automaticallyaxe-core / a11y auditAutomated WCAG violation detection
Mock API responsesMSW (Mock Service Worker)Intercept network requests with mock responses
Test from user perspectiveTesting Library philosophyQuery by role/label, not implementation details

Workflow

  1. Listen for informal engineering descriptions
  2. Match against the lookup table above
  3. Return the proper term + brief definition
  4. Implement using the named pattern/library

Checklist

  • Loose description identified
  • Correct engineering term applied
  • Right library/approach chosen based on the pattern
  • Implementation follows established conventions for that pattern

Depth

Cross-reference with:

  • State architecture: references/architecture.md
  • FE architecture: architecture skill + references/architecture.md
  • Data patterns: data-fetching skill + references/data-fetching.md
  • Performance: performance skill + references/performance.md
  • Testing: testing skill + references/testing.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.

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.