一键导入
mobile-file-organization
Folder structure, naming conventions, route conventions, export rules for mobile-v2. Load when creating new features or files.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Folder structure, naming conventions, route conventions, export rules for mobile-v2. Load when creating new features or files.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Project UI design system — read this before building any page or component. Defines visual style, color tokens, typography, and constraints.
Design tokens, Tailwind classes, card patterns, spacing, colors, radius, typography, gamification patterns (Duolingo). Load when working on UI, components, styling.
Phân tích và refactor codebase. Load khi cần review code structure, tìm vấn đề thiết kế, tách component, dọn dead code.
Tạo, cập nhật, hoặc implement RFC cho frontend-v2. Use when user says 'tạo rfc', 'viết rfc', 'implement rfc', 'update rfc', 'rfc status', or when a cross-cutting UI/UX change needs formal spec before coding.
TanStack Query patterns, data fetching, cache invalidation, route loaders. Load when working with server state, queries, mutations.
TypeScript patterns, type conventions, naming, code style. Load when writing complex types, reviewing code style, or refactoring.
| name | mobile-file-organization |
| description | Folder structure, naming conventions, route conventions, export rules for mobile-v2. Load when creating new features or files. |
apps/mobile-v2/
├── app/ # Expo Router file-based routes
│ ├── _layout.tsx # Root layout (auth + query providers)
│ ├── index.tsx # Entry redirect
│ ├── (auth)/ # Auth group (login, register)
│ │ ├── _layout.tsx
│ │ ├── login.tsx
│ │ └── register.tsx
│ └── (app)/ # Main app group
│ ├── _layout.tsx # App stack layout
│ ├── (tabs)/ # Bottom tabs
│ │ ├── _layout.tsx
│ │ ├── index.tsx # Dashboard
│ │ ├── practice.tsx
│ │ ├── exams.tsx
│ │ └── profile.tsx
│ ├── practice/ # Practice routes
│ │ ├── index.tsx
│ │ ├── skills.tsx
│ │ ├── listening/
│ │ ├── reading/
│ │ ├── writing/
│ │ └── speaking/
│ ├── vocabulary/
│ └── exam/
├── src/
│ ├── components/ # Shared UI components
│ ├── features/ # Feature modules
│ │ ├── coin/
│ │ ├── streak/
│ │ └── notification/
│ ├── hooks/ # Custom hooks
│ ├── lib/ # Shared utilities
│ ├── theme/ # Design tokens
│ └── types/ # TypeScript types
├── assets/ # Images, fonts, icons
└── .agents/ # Skills & docs
depth-button.tsx, use-auth.ts)DepthButton, Mascot)use-*.ts (use-auth.ts, use-exams.ts)types.ts in feature foldercamelCase, types PascalCase, constants UPPER_SNAKEname.tsx renders <Stack> or <Tabs>name/index.tsx for tab contentname/[id].tsx(groupname)/ — doesn't appear in URLoptions={{ href: null }} in layoutsrc/features/{name}/
types.ts # Types for this feature
queries.ts # TanStack Query hooks (read)
actions.ts # API actions (write)
use-*.ts # Complex hooks (useReducer + useMutation)
components/ # Feature-specific components
{name}-store.ts # Zustand store (if needed)
features/{name}/types.ts firstsrc/types/ when shared cross-featuresrc/types/api.ts.json<>() calls — define and importsrc/components/index.ts for convenience, but not in features.src/index.ts if truly shared across app.Move to src/components/ when:
Keep in feature folder when: