Detects the type of frontend unit being worked on: page, component, hook/composable, layout, utility, or style. Uses file path, naming conventions, and content signals to classify.
How this skill is triggered — by the user, by Claude, or both
Slash command
/frontend-coding-agent:component-detectionThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Classifies the frontend unit being worked on so that the correct skill set, guidelines, and review rules are applied. Detection runs before any code action and produces a single unit type used for routing within the agent.
Classifies the frontend unit being worked on so that the correct skill set, guidelines, and review rules are applied. Detection runs before any code action and produces a single unit type used for routing within the agent.
A route-level unit that maps directly to a URL.
app/, pages/, or a directory declared as a route root in framework config.page.tsx, page.vue, [slug].tsx, index.tsx inside a route directory, *.page.ts (Angular).getServerSideProps, getStaticProps, loader, generateStaticParams; imports Head, Link, useRouter, or useNavigate at the top level; defines route-level metadata (export const metadata, <Title>).A reusable, composable UI unit.
components/, src/components/, or a feature's local components/ subdirectory.*.component.ts / *.component.html (Angular), *.tsx / *.vue outside a route directory, PascalCase filename.<template>, or Angular @Component decorated class; defines a props interface or defineProps; renders JSX, a template, or an SFC.Encapsulates stateful logic or side effects without rendering.
hooks/, composables/, src/hooks/, or src/composables/.use followed by an uppercase letter (useAuth.ts, useCart.ts), or is an Angular @Injectable() service (*.service.ts).useState, useEffect, useRef, ref, reactive, computed, inject, or RxJS operators; returns state, handlers, or computed values; contains no JSX, template, or render return.A structural wrapper applied to groups of pages.
layouts/, app/layout.tsx (Next.js App Router), src/app/layout.ts (Angular), __layout.vue (Nuxt/SvelteKit pattern used for reference).layout.tsx, layout.vue, *.layout.ts, RootLayout, DefaultLayout.<Outlet> (React Router / TanStack Router), <router-outlet> (Angular), <slot> (Vue/Nuxt); wraps children with navigation, sidebars, or global providers.Pure functions with no framework dependency.
utils/, helpers/, lib/, shared/utils/, or src/utils/.formatDate.ts, string-utils.ts).react, @angular/core, vue, or any framework package; exports only functions, constants, or type aliases; no JSX, no decorators.Styling artifacts with no component logic.
.module.css, .module.scss, .css, .scss, or is tailwind.config.js / tailwind.config.ts / theme.ts / tokens.ts..styles.ts, .styled.ts, or contains theme / tokens in the name.Execute the following steps in order. Stop at the first step that produces a confident match.
The resolved type can be overridden per-invocation:
--unit-type hook
An explicit override skips all detection steps and is recorded in resolutionSource.unitType = "per-invocation".
{
"unitType": "component",
"confidence": "high",
"detectedBy": "file-path",
"signals": {
"path": "src/components/Button.tsx",
"namingMatch": "PascalCase .tsx",
"contentMatch": "exports React function component"
}
}
confidence is one of high (step 1 or 2 matched), medium (step 3 matched), or low (default applied).
npx claudepluginhub gagandeepp/software-agent-teams --plugin frontend-coding-agentGuides completion of development work by verifying tests, detecting environment, and presenting structured options for merge, PR, or cleanup.
Enforces test-driven development: write failing test first, then minimal code to pass. Use when implementing features or bugfixes.
Guides creation and editing of skills using test-driven development with pressure scenarios and subagents to verify agent compliance.