Agent Skillsiflytek/skillhub › frontend-conventions

frontend-conventions

GitHub

规范 React/TypeScript 前端开发,涵盖 Feature-Sliced Design 架构、TanStack Query 数据获取、Zustand 状态管理及 Tailwind CSS 样式规则,确保代码一致性与类型安全。

.agents/skills/frontend-conventions/SKILL.md iflytek/skillhub

Trigger Scenarios

添加或修改 React/TypeScript 前端代码 创建新页面、功能模块或共享组件 调整 API 客户端调用或数据获取模式

Install

npx skills add iflytek/skillhub --skill frontend-conventions -g -y
More Options

Non-standard path

npx skills add https://github.com/iflytek/skillhub/tree/main/.agents/skills/frontend-conventions -g -y

Use without installing

npx skills use iflytek/skillhub@frontend-conventions

指定 Agent (Claude Code)

npx skills add iflytek/skillhub --skill frontend-conventions -a claude-code -g -y

安装 repo 全部 skill

npx skills add iflytek/skillhub --all -g -y

预览 repo 内 skill

npx skills add iflytek/skillhub --list

SKILL.md

Frontmatter
{
    "name": "frontend-conventions",
    "license": "Apache-2.0",
    "description": "Coding conventions, architecture patterns, and testing rules for the SkillHub React frontend. Ensures agents follow Feature-Sliced Design and use the generated OpenAPI types."
}

Frontend Conventions Skill

Trigger

Use this skill when:

  • Adding or modifying React/TypeScript frontend code
  • Creating new pages, features, entities, or shared components
  • Changing API client calls or data fetching patterns

Rules

Feature-Sliced Design

Place code at the lowest appropriate layer:

Layer Path Purpose
Pages web/src/pages/ Route-level page components
Features web/src/features/ Business features (search, upload, review, etc.)
Entities web/src/entities/ Domain entity display logic (skill, user, namespace)
Shared web/src/shared/ Reusable UI components, hooks, utilities

Current features:

  • admin — Admin panel (user management, labels, search)
  • auth — Login, OAuth flows, device auth
  • governance — Skill governance actions (hide, yank, archive)
  • namespace — Namespace management (members, settings)
  • notification — User notifications and inbox
  • promotion — Skill promotion between scopes
  • publish — Skill upload/publish UI
  • report — Skill reporting
  • review — Review workflow UI
  • search — Skill search and filtering
  • security-audit — Security audit viewer
  • skill — Skill detail, listing, cards
  • social — Stars, ratings, subscriptions
  • token — API token management

Data Fetching

  • Always use TanStack Query (@tanstack/react-query) for server state.
  • Never use useEffect for data fetching.
  • Use openapi-fetch client with generated types from web/src/api/generated/schema.d.ts.
  • Never use any types.

State Management

  • TanStack Query for server state (API data, caching, invalidation, optimistic updates)
  • Zustand for local/UI state (theme, sidebar, modals, form state)

Component Composition

  • Radix UI primitives: @radix-ui/react-dropdown-menu, @radix-ui/react-select
  • class-variance-authority (cva) for component variants
  • clsx + tailwind-merge for class merging
  • cn() utility: web/src/shared/lib/utils.ts
  • shadcn/ui is NOT used as a library

API Type Generation

When backend OpenAPI contracts change:

make generate-api

This runs openapi-typescript http://localhost:8080/v3/api-docs -o src/api/generated/schema.d.ts.

Commit the updated web/src/api/generated/schema.d.ts with the PR.

To verify the generated file is not stale:

./scripts/check-openapi-generated.sh

Styling

  • Tailwind CSS for all styling
  • cn() utility for conditional class merging
  • Follow existing component patterns in web/src/shared/components/

Internationalization

  • i18next + react-i18next for translations
  • All user-facing text must be translatable
  • Translation keys in web/src/i18n/

Build & Development

make dev-web                # Start Vite dev server (HMR enabled)
make build-frontend         # Production build
make typecheck-web          # TypeScript type check (tsc --noEmit)
make lint-web               # ESLint check
make test-frontend          # Vitest unit tests
make test-e2e-frontend      # Playwright E2E tests
make test-e2e-smoke-frontend # Playwright smoke tests

Vite HMR is enabled by default — save a file and the browser updates instantly.

Frontend Dependencies

Key dependencies (from web/package.json):

  • react 19, react-dom 19
  • @tanstack/react-query 5
  • @tanstack/react-router 1
  • @radix-ui/react-dropdown-menu, @radix-ui/react-select
  • class-variance-authority, clsx, tailwind-merge
  • openapi-fetch 0.13
  • i18next, react-i18next
  • zustand 5
  • react-markdown, rehype-highlight, rehype-sanitize
  • lucide-react (icons)
  • sonner (toasts)

Build tools: Vite 6, TypeScript 5.7, Vitest 3.2, Playwright 1.58

Version History

  • ac46ad5 Current 2026-07-25 07:08

Same Skill Collection

.agents/skills/api-and-namespace-design/SKILL.md
.agents/skills/backend-module-structure/SKILL.md
.agents/skills/code-conventions/SKILL.md
.agents/skills/dev-workflow/SKILL.md
.agents/skills/pr-submission/SKILL.md
.agents/skills/skill-lifecycle/SKILL.md
.agents/skills/testing-and-ci/SKILL.md
builtin-skills/skills/ai-claim-checker/SKILL.md
builtin-skills/skills/daily-standup-journal/SKILL.md
builtin-skills/skills/decision-matrix/SKILL.md
builtin-skills/skills/diagram-maker/SKILL.md
builtin-skills/skills/documentation-writer/SKILL.md
builtin-skills/skills/exam-ready/SKILL.md
builtin-skills/skills/frontend-design/SKILL.md
builtin-skills/skills/linkedin-post-formatter/SKILL.md
builtin-skills/skills/meeting-note-summarizer/SKILL.md
builtin-skills/skills/retrieval-practice-generator/SKILL.md
builtin-skills/skills/storytelling-advisor/SKILL.md
builtin-skills/skills/study-strategy-selector/SKILL.md
builtin-skills/skills/time-blocking-scheduler/SKILL.md
builtin-skills/skills/video-frames/SKILL.md
builtin-skills/skills/weather/SKILL.md

Metadata

Files
0
Version
d2403bb
Hash
67613120
Indexed
2026-07-25 07:08

inicio - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-08-21 04:15
浙ICP备14020137号-1 $mapa de visitantes$