بنقرة واحدة
frontend-code-quality
Provides code quality standards for frontend applications. This skill should be used when configuring linting rules, organizing file structures, or ensuring consistency across React applications.
القائمة
Provides code quality standards for frontend applications. This skill should be used when configuring linting rules, organizing file structures, or ensuring consistency across React applications.
Patterns for auditing and improving erify_api query performance and response efficiency. Use when detecting N+1 queries, reducing over-fetching, designing lean select/include strategies, replacing in-memory joins with DB aggregations, adding pagination guards, or defining API performance baselines before scaling. Complements database-patterns which covers the basic N+1 and Promise.all rules.
Patterns for building the studio Operations review surfaces in erify_studios (`/task-review`, `/show-run-review`, `/task-setup`, and future `/costs` / analytics views). Use BEFORE adding or changing an operational-day-scoped review screen — the lean-summary + lazy-paginated-sub-resources read model, URL-synced multi-tab DataTables, per-tab "export the full filtered set" CSV, and the 06:00–05:59 operational-day window computed on the frontend. Required reading before cloning `show-run-summary` for a new review surface.
Patterns for adding extractors and write surfaces to the PR 12 fact-extraction pipeline (`apps/erify_api/src/orchestration/fact-extraction/`). Use BEFORE implementing any new `IngestionExtractor`, paired-atomic write, `SystemFactKey`, or hydrated-scope target type. Required reading before PR 12.3.2 (violations), 12.4 (review surface), or any follow-on extractor work — every Codex finding on PR 12.1.2 (#103) and PR 12.2 (#104) is encoded here. The "State-transition handoff between co-submitted facts" section is mandatory before adding ANY fact whose write semantics depend on another fact's value in the same submission.
Provides guidelines for using shared UI components and styling. This skill should be used when implementing UI features using Shadcn/Radix components and the shared @eridu/ui package.
Provides patterns for building and optimizing large frontend tabular views across the eridu-services monorepo. Use when building or refactoring server-driven tables, dense tabular UIs, virtualized grids, inline editing, saved views, and table URL state in erify_creators, erify_studios, or shared @eridu/ui.
Use when expanding the SystemFactKey catalog, onboarding task templates that need operational fact extraction, a prod-db-sync reveals task templates without system_fact_key bindings, or a field-type mismatch (e.g. select where checkbox or multiselect is required) blocks binding a template field to the fact-extraction pipeline.
| name | frontend-code-quality |
| description | Provides code quality standards for frontend applications. This skill should be used when configuring linting rules, organizing file structures, or ensuring consistency across React applications. |
Quality standards for frontend applications. See references/code-quality-details.md for detailed patterns and code examples.
@eridu/eslint-config: pnpm linthappy-dom + @testing-library/react: pnpm testany types. React Hooks rules enforced.Always use @/* imports (configured in tsconfig.json), never deep relative paths.
| Type | Convention | Example |
|---|---|---|
| Components | PascalCase | UserProfile.tsx |
| Hooks | camelCase with use prefix | useAuth.ts |
| Utilities | camelCase | formatDate.ts |
| Routes | TanStack Router file conventions | posts/$postId.tsx |
| Folders | kebab-case | user-profile/ |
condition ? <A /> : null), not && with numeric/nullable.Trigger: Route >200 LOC or mixes 3+ concerns → split into container + hooks + presentation.
Pattern: route container + useFeatureViewModel() hook + presentation components.
useTableUrlState owns URL pagination statesetPageCount from real API metadataplaceholderData: keepPreviousDataDataTablePagination renders footersrc/lib/constants/studio-route-access.tsStudioRouteGuard + useStudioAccess — no duplicated role checksPlanning for schedules/shows/assignment setup, Operations for task setup, task review, show run review, and task reports, People for member/creator rosters, and Studio Settings for configuration surfaces.Creator Mapping with Planning, not People; it assigns creators to shows rather than managing creator records.AdminLayout for /system/*, PageLayout for studio pagesMemberCompensationsView) is rendered from routes with different routeKey guards (admin/manager /members/$memberId/compensations and member self-view /my-compensations), gate any cross-route navigation by an opt-in prop (default off). Never render a link whose destination is protected by a stricter guard than the current route — it ships members into a guaranteed access-denied page. The opting route turns it on; the lower-trust route leaves it off.pnpm lint and pnpm test pass&&)StudioRouteGuard + shared access policy