Frontend Code Review
ProgrammerAnthony/Expert-Coding-Harness
A skill your agent uses when 用户需要审查前端代码(React/Vue/Next.js/TypeScript/Tailwind等)、检查代码质量、性能问题、可维护性、安全漏洞、最佳实践落地时。触发场景:前端代码评审、前端代码优化、React/Vue代码检查、TypeScript代码审查、前端性能优化、前端安全审计、前端代码规范检查。
Create React/Vue component with TypeScript, tests, and styles.
$ npx skills add qf-studio/navigator --skill frontend-component -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install qf-studio/navigator frontend-component --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/qf-studio/navigator.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/frontend-component .claude/skills/frontend-component && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "frontend-component" agent skill from https://github.com/qf-studio/navigator/tree/main/skills/frontend-component into .claude/skills/frontend-component/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "frontend-component", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/qf-studio/navigator/tree/main/skills/frontend-componentType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add qf-studio/navigator --skill frontend-component -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install qf-studio/navigator frontend-component --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/qf-studio/navigator.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/frontend-component .agents/skills/frontend-component && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "frontend-component" agent skill from https://github.com/qf-studio/navigator/tree/main/skills/frontend-component into .agents/skills/frontend-component/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "frontend-component", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add qf-studio/navigator --skill frontend-component -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install qf-studio/navigator frontend-component --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/qf-studio/navigator.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/frontend-component .cursor/skills/frontend-component && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "frontend-component" agent skill from https://github.com/qf-studio/navigator/tree/main/skills/frontend-component into .cursor/skills/frontend-component/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "frontend-component", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/qf-studio/navigator.git --path skills/frontend-component--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add qf-studio/navigator --skill frontend-component -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install qf-studio/navigator frontend-component --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/qf-studio/navigator.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/frontend-component .gemini/skills/frontend-component && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "frontend-component" agent skill from https://github.com/qf-studio/navigator/tree/main/skills/frontend-component into .gemini/skills/frontend-component/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "frontend-component", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install qf-studio/navigator frontend-componentInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add qf-studio/navigator --skill frontend-component -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/qf-studio/navigator.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/frontend-component .github/skills/frontend-component && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "frontend-component" agent skill from https://github.com/qf-studio/navigator/tree/main/skills/frontend-component into .github/skills/frontend-component/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "frontend-component", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add qf-studio/navigator --skill frontend-component -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install qf-studio/navigator frontend-component --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/qf-studio/navigator.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/frontend-component .opencode/skills/frontend-component && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "frontend-component" agent skill from https://github.com/qf-studio/navigator/tree/main/skills/frontend-component into .opencode/skills/frontend-component/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "frontend-component", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
frontend-componentCreate React/Vue component with TypeScript, tests, and styles.
Frontend Component is an agent skill from qf-studio/navigator. Create React/Vue component with TypeScript, tests, and styles. Auto-invoke when user says "create component", "add component", "new component", or "build component".
Its SKILL.md is about 4.5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 17 other files (for example `functions/component_generator.py`, `functions/file_generator.py` and `functions/name_validator.py`).
It sits in Frontend & Design. It works with React, TypeScript, Vue.js and Next.js. The repository describes itself as: Finish What You Start — Context engineering for Claude Code. Sessions last 20+ exchanges instead of crashing at 7. The licence is MIT.
12 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit a6f3006. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
ReadWriteEditGrepGlobBashFrom allowed-tools in the SKILL.md frontmatter.
Ships script files (Python), which the agent can run.
Shell commands in SKILL.md call:
python3From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Frontend Component loads about 4.5k tokens when it runs. Until then it costs about 46 tokens; SKILL.md has 1,229 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
allowed-tools: Read, Write, Edit, Grep, Glob, BashAutomated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from qf-studio/navigator at commit a6f3006, republished under its MIT licence (© qf-studio). 1,229 words, ~4,482 tokens.
.claude/skills/frontend-component/SKILL.md (or your agent's skills folder). This skill also uses 14 other files; get the full folder from GitHub.Generate production-ready React/Vue components with TypeScript, tests, and styles following modern best practices.
Auto-invoke when user mentions:
Before gathering requirements, query the knowledge graph for what we already know about frontend/component work in this project. This mirrors navigator-research's Phase 0 and prevents re-deriving patterns we've already decided on.
PLUGIN_DIR="${CLAUDE_PLUGIN_ROOT:-$HOME/.claude/plugins/cache/navigator-marketplace/navigator}"
[ -d "$PLUGIN_DIR" ] || PLUGIN_DIR="$HOME/.claude/plugins/marketplaces/navigator-marketplace"
python3 "$PLUGIN_DIR/skills/nav-graph/functions/graph_manager.py" \
--action query --concept frontend \
--graph-path .agent/knowledge/graph.json 2>/dev/null | head -40If memories surface (look for PATTERN, PITFALL, DECISION entries), read the full memory files for any directly relevant ones:
ls .agent/knowledge/memories/{patterns,pitfalls,decisions}/ 2>/dev/nullWhat to do with what you find:
pitfalls_avoided in Step 8)If the graph returns nothing useful, proceed without it. Skip this step only if the knowledge graph is disabled in .agent/.nav-config.json.
First, detect the framework: read package.json. If "next" is in dependencies, this is a Next.js App Router project — use the Next.js variants in Step 3 and default styling to Tailwind (no CSS module file). See .agent/philosophy/NEXTJS-PATTERNS.md for the patterns these templates encode.
Ask user for component details:
Component name: [PascalCase name, e.g., UserProfile]
Component type:
Generic React:
- simple (basic functional component)
- with-hooks (useState, useEffect, etc.)
- container (data fetching component)
Next.js App Router:
- nextjs-page (app/<route>/page.tsx — Server Component, async)
- nextjs-layout (app/<route>/layout.tsx — Server Component, metadata + viewport)
- nextjs-server (Server Component with fetch, async)
- nextjs-client ('use client' component with state/effects)
Styling approach:
- tailwind (default for nextjs-* types)
- css-modules (default for generic React types)
- styled-components
Props needed: [Optional: describe expected props]Picking the right Next.js variant:
nextjs-pagenextjs-layoutuseState" / "click handler" / "interactive" → nextjs-clientnextjs-serverValidate component name:
functions/name_validator.pyIMPORTANT: This step MUST be executed for complex components.
Before generating files, confirm interpretation with user.
Display verification:
I understood you want:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Component: {NAME}
Type: {TYPE} (inferred because: {REASON})
Location: src/components/{NAME}/
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Detected patterns from your codebase:
- Styling: {CSS_APPROACH} (found {EVIDENCE})
- Testing: {TEST_LIBRARY} (found in package.json)
- Similar component: {EXISTING_COMPONENT} at {PATH}
Props I'll generate:
{PROPS_PREVIEW}
Proceed with generation? [Y/n]Skip verification if (HIGH-STAKES ONLY mode):
Always verify if:
Based on component type and requirements:
Use predefined function: functions/props_interface_generator.py
# Generates TypeScript interface based on component requirements
python3 functions/props_interface_generator.py \
--name "UserProfile" \
--props "userId:string,onUpdate:function,isActive:boolean"Output:
interface UserProfileProps {
userId: string;
onUpdate?: () => void;
isActive?: boolean;
children?: React.ReactNode;
className?: string;
}Use appropriate template based on type:
Simple component:
Use template: templates/component-simple-template.tsxComponent with hooks / Container component:
Start from templates/component-simple-template.tsx and add the hook
declarations (useState/useEffect) or data-fetching logic inline — there is
no separate with-hooks/container template file; the simple template is the base.Next.js App Router variants (use when "next" is in package.json):
| --type | Template | Output path example |
|---|---|---|
nextjs-page | templates/nextjs-page-template.tsx | app/schedule/page.tsx |
nextjs-layout | templates/nextjs-layout-template.tsx | app/schedule/layout.tsx |
nextjs-server | templates/nextjs-server-component-template.tsx | app/components/speaker-list.tsx |
nextjs-client | templates/nextjs-client-component-template.tsx | app/components/favourite-button.tsx |
The Next.js templates already encode Next.js 15+/16 conventions:
params/searchParams are Promises — await them'use client' directive on line 1 of client components, above all importsSkip Step 5 (Style File) for nextjs-* types — Tailwind classes are baked into the templates, no CSS module needed.
Use predefined function: functions/component_generator.py
python3 functions/component_generator.py \
--name "UserProfile" \
--type "simple" \
--props-interface "UserProfileProps" \
--template "templates/component-simple-template.tsx" \
--output "src/components/UserProfile/UserProfile.tsx"Template substitutions:
${COMPONENT_NAME} → Component name (PascalCase)${PROPS_INTERFACE} → Generated props interface${STYLE_IMPORT} → CSS module import${DESCRIPTION} → Brief component descriptionUse predefined function: functions/file_generator.py
python3 functions/file_generator.py \
--component-name "UserProfile" \
--component-path "src/components/UserProfile/UserProfile.tsx" \
--template "templates/test-template.tsx" \
--output "src/components/UserProfile/UserProfile.test.tsx"Test template includes:
Template substitutions:
${COMPONENT_NAME} → Component name${IMPORT_PATH} → Relative import path${TEST_CASES} → Generated test cases based on propsUse predefined function: functions/style_generator.py
python3 functions/style_generator.py \
--name "UserProfile" \
--approach "css-modules" \
--template "templates/style-template.module.css" \
--output "src/components/UserProfile/UserProfile.module.css"CSS Modules template:
.container {
/* Component wrapper styles */
}
.title {
/* Title styles */
}
/* Add more classes as needed */Styled Components alternative:
// Generated if --approach "styled-components"
import styled from 'styled-components';
export const Container = styled.div`
/* Component wrapper styles */
`;
export const Title = styled.h2`
/* Title styles */
`;Create index.ts for clean imports:
Write(
file_path: "src/components/UserProfile/index.ts",
content: "export { UserProfile } from './UserProfile';\nexport type { UserProfileProps } from './UserProfile';\n"
)Allows usage:
import { UserProfile } from '@/components/UserProfile';Display generated files and usage:
✅ Component Created: UserProfile
Structure:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📁 src/components/UserProfile/
├── UserProfile.tsx (Component)
├── UserProfile.test.tsx (Tests)
├── UserProfile.module.css (Styles)
└── index.ts (Exports)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Props Interface:
interface UserProfileProps {
userId: string;
onUpdate?: () => void;
isActive?: boolean;
}
Usage:
import { UserProfile } from '@/components/UserProfile';
<UserProfile
userId="123"
onUpdate={() => console.log('Updated')}
isActive={true}
/>
Next Steps:
1. Customize component implementation
2. Run tests: npm test UserProfile
3. Import and use in your featureAfter Step 7, emit an execution_summary JSON block that captures patterns/decisions/pitfalls from this run. This block is the parity equivalent of the research_findings block emitted by navigator-research, and it gets ingested into the knowledge graph so future component work can surface what we learned.
Output the block verbatim (replace placeholders with actual values from this run):
{
"execution_summary": {
"skill": "frontend-component",
"task": "{COMPONENT_NAME} component",
"files_created": ["{paths of files written}"],
"files_modified": ["{paths of files edited}"],
"tests_added": ["{test file path}"],
"stack_detected": "{e.g. react+typescript+vitest}",
"patterns_followed": [
{"summary": "{convention applied — e.g. functional component with Props interface}", "concepts": ["frontend"], "confidence": 0.8}
],
"decisions_made": [
{"summary": "{non-obvious choice — e.g. React.memo because props are stable}", "concepts": ["frontend"], "confidence": 0.75, "evidence": "{path:line}"}
],
"pitfalls_avoided": [],
"assumptions_made": ["{e.g. project uses CSS Modules (detected via existing components)}"]
}
}Ingestion (run from project root):
PLUGIN_DIR="${CLAUDE_PLUGIN_ROOT:-$HOME/.claude/plugins/cache/navigator-marketplace/navigator}"
[ -d "$PLUGIN_DIR" ] || PLUGIN_DIR="$HOME/.claude/plugins/marketplaces/navigator-marketplace"
echo '<execution_summary JSON>' | python3 "$PLUGIN_DIR/skills/nav-graph/functions/execution_to_graph.py" -Rules:
decisions_made and pitfalls_avoided entries that are non-obvious and would help future runs.Validates component naming conventions.
Usage:
python3 functions/name_validator.py --name "UserProfile"Checks:
Returns: Valid name or error message
Generates TypeScript props interface from user input.
Usage:
python3 functions/props_interface_generator.py \
--name "UserProfile" \
--props "userId:string,onUpdate:function,isActive:boolean"Supported types:
string, number, booleanfunction (becomes () => void)array (becomes any[])object (becomes Record<string, any>)react-node (becomes React.ReactNode)Returns: TypeScript interface string
Generates component file from template with substitutions.
Usage:
python3 functions/component_generator.py \
--name "UserProfile" \
--type "simple" \
--props-interface "UserProfileProps" \
--template "templates/component-simple-template.tsx" \
--output "src/components/UserProfile/UserProfile.tsx"Parameters:
--name: Component name (PascalCase)--type: Component type (simple/with-hooks/container)--props-interface: Props interface name--template: Template file path--output: Output file pathReturns: Generated component code
Generates test file with React Testing Library.
Usage:
python3 functions/file_generator.py \
--component-name "UserProfile" \
--component-path "src/components/UserProfile/UserProfile.tsx" \
--template "templates/test-template.tsx" \
--output "src/components/UserProfile/UserProfile.test.tsx"Generates tests for:
Returns: Generated test code
Generates style file (CSS Modules or Styled Components).
Usage:
python3 functions/style_generator.py \
--name "UserProfile" \
--approach "css-modules" \
--template "templates/style-template.module.css" \
--output "src/components/UserProfile/UserProfile.module.css"Supported approaches:
css-modules (default)styled-componentstailwind (generates className utilities)Returns: Generated style code
Basic functional component template.
Placeholders:
${COMPONENT_NAME} - Component name${PROPS_INTERFACE} - Props interface definition${STYLE_IMPORT} - CSS import statement${DESCRIPTION} - Component descriptionComponents needing hooks or data fetching start from
component-simple-template.tsx(above) and the model adds theuseState/useEffectdeclarations or fetch logic inline — no dedicated with-hooks/container template ships.
React Testing Library test template.
Placeholders:
${COMPONENT_NAME} - Component name${IMPORT_PATH} - Import path${TEST_CASES} - Generated test casesCSS Modules template.
Placeholders:
${COMPONENT_NAME_KEBAB} - Component name in kebab-case${BASE_STYLES} - Base container stylesSee examples/ directory for reference implementations:
Each example includes:
any type (use unknown if needed)Problem: Generated component throws errors
Solutions:
Problem: Generated tests don't pass
Solutions:
--verbose flagProblem: CSS modules not loading
Solutions:
This skill succeeds when:
Auto-invoke this skill when creating React components to ensure consistency and save time ⚛️
© qf-studio, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 14 other files in skills/frontend-component of qf-studio/navigator.
Open the folder on GitHubat commit a6f3006
Frontend Component next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Frontend Component this skillqf-studio/navigator | 354 | — | ~4.5k | Automated safety check: Notes | MIT | |
| Frontend Code ReviewProgrammerAnthony/Expert-Coding-Harness | 235 | — | ~614 | Automated safety check: Pass | MIT | |
| Next Generate Skilljiushiwon/wg-skills | 110 | — | ~3.2k | Automated safety check: Notes | Apache-2.0 | |
| Nuxt Generate Skilljiushiwon/wg-skills | 110 | — | ~2.6k | Automated safety check: Notes | Apache-2.0 | |
| Ss Learnbitjaru/styleseed | 970 | — | ~1.3k | Automated safety check: Pass | MIT | |
| UI/UX Design System AdvisorGalaxy-Dawn/claude-scholar | 5.7k | 1 repos | ~1.1k | Automated safety check: Pass | MIT |
ProgrammerAnthony/Expert-Coding-Harness
A skill your agent uses when 用户需要审查前端代码(React/Vue/Next.js/TypeScript/Tailwind等)、检查代码质量、性能问题、可维护性、安全漏洞、最佳实践落地时。触发场景:前端代码评审、前端代码优化、React/Vue代码检查、TypeScript代码审查、前端性能优化、前端安全审计、前端代码规范检查。
jiushiwon/wg-skills
当用户要创建 Next.js 14+(React 生态的全栈框架,非 Vue 的 Nuxt)App Router + TypeScript + Zustand 全栈项目时使用。引导完成需求澄清、项目初始化、SSR/RSC 配置、请求层集成、API Routes、认证中间件、后置验证。严格对齐 frontend-request-skill 请求层规范。触发词:"帮我做一个 Next.js…
jiushiwon/wg-skills
当用户要创建 Nuxt 3(Vue 生态的全栈框架,非 React 的 Next.js)+ TypeScript + Pinia 全栈项目时使用。引导完成需求澄清、项目初始化、SSR/SEO 配置、请求层集成、BFF API 层、认证中间件、后置验证。严格对齐 frontend-request-skill 请求层规范。触发词:"帮我做一个 Nuxt 项目"、"初始化 Nuxt3 模板"、"用…
bitjaru/styleseed
Capture a human-approved UI design lesson as a privacy-minimized local StyleSeed candidate, review it, and prepare an opt-in share package without transmitting project code, prompts, screenshots, or…
Galaxy-Dawn/claude-scholar
Turns a vague UI request into a concrete design system with style, palette, typography and layout guidance from a search script, plus stack-specific implementation advice.
Castor6/tactus
A skill your agent uses whenever the user asks to build, create, design, develop, improve, or style any frontend interface or visual element.
qf-studio/navigator
Create REST/GraphQL API endpoint with validation, error handling, and tests.
qf-studio/navigator
Load Navigator documentation navigator when starting development session, resuming work, or beginning new feature.
qf-studio/navigator
Generate backend tests (unit, integration, mocks) for existing code.
qf-studio/navigator
Create database migration with schema changes and rollback. An agent skill from qf-studio/navigator.
qf-studio/navigator
Generate frontend component tests (React Testing Library, Vue Test Utils, snapshot) for existing components.
qf-studio/navigator
Clear conversation context while preserving knowledge via context marker.
Works with
Categories
Create React/Vue component with TypeScript, tests, and styles. Frontend Component is an agent skill from qf-studio/navigator. Create React/Vue component with TypeScript, tests, and styles.
Frontend Component fits situations like: says create component; build component.
Run `npx skills add qf-studio/navigator --skill frontend-component -a claude-code`. Or copy the skill folder (skills/frontend-component in qf-studio/navigator) into .claude/skills/frontend-component in your project. Claude Code loads it when a task matches its description.
Run `npx skills add qf-studio/navigator --skill frontend-component -a codex`. Or copy the skill folder (skills/frontend-component in qf-studio/navigator) into .agents/skills/frontend-component in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add qf-studio/navigator --skill frontend-component -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/frontend-component, .gemini/skills/frontend-component, .github/skills/frontend-component and .opencode/skills/frontend-component in your project.
Going by SKILL.md and its folder, Frontend Component needs Python for the scripts in its folder and the command-line tools its instructions call (python3). Our summary lists: Python 3. Its frontmatter pre-approves these tools: Read, Write, Edit, Grep, Glob, Bash.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Frontend Component is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.5k tokens (SKILL.md is roughly 18k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Frontend Component: Frontend Code Review (ProgrammerAnthony/Expert-Coding-Harness, 235 stars), Next Generate Skill (jiushiwon/wg-skills, 110 stars), Nuxt Generate Skill (jiushiwon/wg-skills, 110 stars) and Ss Learn (bitjaru/styleseed, 970 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
qf-studio (a GitHub organization) maintains it in qf-studio/navigator, which has 354 GitHub stars. The repository holds 32 skills in this directory. The repository was last updated on October 6, 2026.
Source: qf-studio/navigator on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.