Oh-my-agent oma-frontend
Frontend specialist for React, Next.js, TypeScript with FSD-lite architecture, shadcn/ui, and design system alignment. Use for UI, component, page, layout, CSS, Tailwind, and shadcn work.
install
source · Clone the upstream repo
git clone https://github.com/first-fluke/oh-my-agent
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/first-fluke/oh-my-agent "$T" && mkdir -p ~/.claude/skills && cp -r "$T/.agents/skills/oma-frontend" ~/.claude/skills/first-fluke-oh-my-agent-oma-frontend && rm -rf "$T"
manifest:
.agents/skills/oma-frontend/SKILL.mdsource content
Frontend Agent - UI/UX Specialist
When to use
- Building user interfaces and components
- Client-side logic and state management
- Styling and responsive design
- Form validation and user interactions
- Integrating with backend APIs
When NOT to use
- Backend API implementation → use Backend Agent
- Database access, migrations, or ORM setup → use Backend Agent
- Auth server setup (better-auth server library, DB adapters) → use Backend Agent
- Native mobile development → use Mobile Agent
Libraries
| Category | Library |
|---|---|
| Date | |
| Styling | + |
| Hooks | (pre-made hooks preferred) |
| Utils | (first choice) |
| State (URL) | |
| State (Server) | |
| State (Client) | (minimize use) |
| Forms | + |
| Auth | (client SDK only — never import server library or database adapters) |
Shadcn Workflow
- Search:
shadcn_search_items_in_registries - Review:
shadcn_get_item_examples_from_registries - Install:
shadcn_get_add_command_for_items
Server vs Client Components
- Server Components: Layouts, marketing pages, SEO metadata (
,generateMetadata
)sitemap - Client Components: Interactive features and
hooksuseQuery
UI Implementation (Shadcn/UI)
- Usage: Prefer strict shadcn primitives (
,Card
,Sheet
,Typography
) overTable
or generic classes.div - Responsiveness: Use
(mobile) vsDrawer
(desktop) viaDialog
.useResponsive - Customization: Treat
as read-only. Create wrappers (e.g.,components/ui/*
) or usecomponents/common/ProductButton.tsx
composition. Never editcva
directly.components/ui/button.tsx
Sources of Truth
- Design Tokens:
(OKLCH) — never hardcode colorspackages/design-tokens - i18n strings:
— never hardcode UI textpackages/i18n - Custom utilities: check
first; if implementing custom logic, >90% unit test coverage is mandatoryes-toolkit
Designer Collaboration
- Sync: Map code variables to Figma layer names
- UX: Ensure key actions are visible "Above the Fold"
How to Execute
- Follow
step by step.resources/execution-protocol.md - See
for input/output examples.resources/examples.md - Before submitting, run
.resources/checklist.md
Execution Protocol (CLI Mode)
Vendor-specific execution protocols are injected automatically by
oma agent:spawn.
Source files live under ../_shared/runtime/execution-protocols/{vendor}.md.
References
- Tech stack & Serena shortcuts:
resources/tech-stack.md - Execution steps:
resources/execution-protocol.md - Code examples:
resources/examples.md - Code snippets:
resources/snippets.md - Checklist:
resources/checklist.md - Error recovery:
resources/error-playbook.md - Component template:
resources/component-template.tsx - Tailwind rules:
resources/tailwind-rules.md - Context loading:
../_shared/core/context-loading.md - Reasoning templates:
../_shared/core/reasoning-templates.md - Clarification:
../_shared/core/clarification-protocol.md - Context budget:
../_shared/core/context-budget.md - Lessons learned:
../_shared/core/lessons-learned.md
[!IMPORTANT] Treat
as read-only. Create wrappers for customization.components/ui/*