Token导航 LogoToken导航TokenDH.com
前端设计只读github未标认证来源可访问clear审计异常

theone-react-native-standardstheone React native standards 前端

Agent Skill

用于辅助前端页面、组件、样式和交互逻辑的开发与维护。它适合让 Agent 生成或审查 React、Next.js、Vue、Tailwind、CSS 等相关代码,整理组件结构,或定位布局和性能问题。使用时需要结合项目现有设计系统、路由和构建方式,避免只生成孤立片段;涉及页面改动时,应配合本地预览和构建检查确认视觉效果。

总安装

470

周安装

20

GitHub Stars

71

下载量

165
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

3

许可证

MIT

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:theone-react-native-standards(theone React native standards 前端)
来源仓库:https://github.com/the1studio/theone-training-skills
仓库路径:skills/theone-react-native-standards
安装命令:
npx skills add https://github.com/the1studio/theone-training-skills --skill theone-react-native-standards
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。不同来源提供的安装方式可能略有差异;本站展示可直接复制的安装命令,安装前请核对来源页面。

skills.shnpx skills
npx skills add https://github.com/the1studio/theone-training-skills --skill theone-react-native-standards

简介

theone-react-native-standards 用于辅助前端页面、组件、样式和交互逻辑的开发与维护,适合生成或审查 React、Next.js、Vue、Tailwind、CSS 等相关代码。

  • 适用于前端开发辅助,可整理组件结构和定位布局性能问题。
  • 通过 npx skills add 命令从 GitHub 仓库安装,支持主流 AI 宿主环境。
  • 使用时需结合项目现有设计系统和构建方式,避免生成孤立代码片段。
  • 适用宿主包括 Codex、Claude、Cursor、Gemini CLI,接入前应确认版本、权限和运行环境要求。

SKILL.md

TheOne Studio React Native Development Standards

⚠️ React Native Latest + TypeScript: All patterns use latest React Native with TypeScript strict mode, Expo SDK 51+, and modern React 18+ patterns.

Skill Purpose

This skill enforces TheOne Studio's comprehensive React Native development standards with CODE QUALITY FIRST:

Priority 1: Code Quality & Hygiene (MOST IMPORTANT)

  • TypeScript strict mode, ESLint + Prettier enforcement
  • Path aliases (@/), throw errors (never suppress), structured logging
  • No any types, proper error boundaries, consistent imports
  • File naming conventions, no inline styles in JSX

Priority 2: Modern React & TypeScript

  • Functional components with Hooks (NO class components)
  • Custom hooks for logic reuse, proper memoization
  • Type-safe props, generics, discriminated unions
  • useCallback/useMemo for performance

Priority 3: React Native Architecture

  • Zustand/Jotai for state (document both, require consistency per project)
  • Expo Router (file-based) OR React Navigation 7
  • FlatList optimization (NEVER ScrollView + map)
  • Platform-specific code (.ios.tsx/.android.tsx)

Priority 4: Mobile Performance

  • List rendering optimization (getItemLayout, keyExtractor)
  • Prevent unnecessary rerenders (React.memo, shouldComponentUpdate)
  • Lazy loading, code splitting, bundle optimization
  • Memory leak prevention (cleanup effects)

When This Skill Triggers

  • Writing or refactoring React Native TypeScript code
  • Implementing mobile UI components or features
  • Working with state management (Zustand/Jotai)
  • Implementing navigation flows (Expo Router/React Navigation)
  • Optimizing list rendering or app performance
  • Reviewing React Native pull requests
  • Setting up project architecture or conventions

Quick Reference Guide

What Do You Need Help With?

PriorityTaskReference
🔴 PRIORITY 1: Code Quality (Check FIRST)
1TypeScript strict, ESLint, Prettier, no any typesQuality & Hygiene
1Path aliases (@/), structured logging, error handlingQuality & Hygiene
1File naming, no inline styles, consistent importsQuality & Hygiene
🟡 PRIORITY 2: Modern React/TypeScript
2Functional components, Hooks rules, custom hooksModern React
2useCallback, useMemo, React.memo optimizationModern React
2Type-safe props, generics, utility typesTypeScript Patterns
2Discriminated unions, type guards, inferenceTypeScript Patterns
🟢 PRIORITY 3: React Native Architecture
3Functional components, composition, HOCsComponent Patterns
3Zustand patterns, Jotai atoms, persistenceState Management
3Expo Router (file-based), React Navigation setupNavigation
3Platform checks,.ios/.android files, Platform modulePlatform-Specific
🔵 PRIORITY 4: Performance
4FlatList optimization, getItemLayout, keyExtractorPerformance
4Rerender prevention, React.memo, useMemoPerformance
4Architecture violations (components, state, navigation)Architecture Review
4TypeScript quality, hooks violations, ESLintQuality Review
4List optimization, memory leaks, unnecessary rerendersPerformance Review

🔴 CRITICAL: Code Quality Rules (CHECK FIRST!)

⚠️ MANDATORY QUALITY STANDARDS

ALWAYS enforce these BEFORE writing any code:

  1. TypeScript strict mode - Enable all strict compiler options
  2. ESLint + Prettier - Enforce linting and formatting
  3. No any types - Use proper types or unknown
  4. Path aliases - Use @/ for src/ imports
  5. Throw errors - NEVER suppress errors with try/catch + console.log
  6. Structured logging - Use logger utility, not raw console.log
  7. Error boundaries - Wrap components with ErrorBoundary
  8. Consistent imports - React first, then libraries, then local
  9. File naming - kebab-case for files, PascalCase for components
  10. No inline styles in JSX - Define styles outside component or use StyleSheet

Example: Enforce Quality First

// ✅ EXCELLENT: All quality rules enforced

// 1. TypeScript strict mode in tsconfig.json
// {
//   "compilerOptions": {
//     "strict": true,
//     "noImplicitAny": true,
//     "strictNullChecks": true
//   }
// }

// 2. Import order: React → libraries → local
import React, { useCallback, useMemo } from 'react'; // React first
import { View, Text, StyleSheet } from 'react-native'; // Libraries
import { useStore } from '@/stores/user-store'; // Local with path alias

// 3. Type-safe props (no any)
interface UserProfileProps {
  userId: string;
  onPress?: () => void;
}

// 4. Functional component with typed props
export const UserProfile: React.FC<UserProfileProps> = ({ userId, onPress }) => {
  const user = useStore((state) => state.users[userId]);

  // 5. Throw errors (not console.log)
  if (!user) {
    throw new Error(`User not found: ${userId}`);
  }

  // 6. Structured logging
  const handlePress = useCallback(() => {
    logger.info('User profile pressed', { userId });
    onPress?.();
  }, [userId, onPress]);

  return (
    <View style={styles.container}>
      <Text style={styles.name}>{user.name}</Text>
    </View>
  );
};

// 7. No inline styles - use StyleSheet
const styles = StyleSheet.create({
  container: {
    padding: 16,
  },
  name: {
    fontSize: 18,
    fontWeight: 'bold',
  },
});

⚠️ React Native Architecture Rules (AFTER Quality)

Choose Consistent State Management

Choose ONE state management solution per project:

Option 1: Zustand (Recommended for Simple State)

  • ✅ Minimal boilerplate, hooks-based
  • ✅ Perfect for app-level state (user, settings)
  • ✅ Easy to test, TypeScript-friendly

Option 2: Jotai (Recommended for Atomic State)

  • ✅ Atomic state management
  • ✅ Perfect for complex derived state
  • ✅ Better for fine-grained reactivity

Universal Rules (Both Solutions):

  • ✅ Use selectors to prevent unnecessary rerenders
  • ✅ Keep state normalized (no nested objects)
  • ✅ Persist state with async storage adapters
  • ✅ NEVER use Redux (too much boilerplate)

Choose ONE Navigation Solution

Option 1: Expo Router (Recommended)

  • ✅ File-based routing (app/ directory)
  • ✅ Built-in TypeScript support
  • ✅ Automatic deep linking

Option 2: React Navigation 7

  • ✅ More control over navigation structure
  • ✅ Better for complex navigation flows
  • ✅ Proven stability

ALWAYS Use FlatList for Lists

NEVER use ScrollView + map for lists:

// ❌ BAD: ScrollView + map (terrible performance)
<ScrollView>
  {items.map(item => <Item key={item.id} {...item} />)}
</ScrollView>

// ✅ GOOD: FlatList with proper optimization
<FlatList
  data={items}
  renderItem={({ item }) => <Item {...item} />}
  keyExtractor={(item) => item.id}
  getItemLayout={(data, index) => ({
    length: ITEM_HEIGHT,
    offset: ITEM_HEIGHT * index,
    index,
  })}
  removeClippedSubviews
  maxToRenderPerBatch={10}
  windowSize={11}
/>

Quick Examples: ❌ BAD vs ✅ GOOD

Example 1: Component Structure

// ❌ BAD: Class component, inline styles, no types
class UserCard extends React.Component {
  render() {
    return (
      <View style={{ padding: 10 }}>
        <Text>{this.props.name}</Text>
      </View>
    );
  }
}

// ✅ GOOD: Functional component, typed props, StyleSheet
interface UserCardProps {
  name: string;
  onPress?: () => void;
}

export const UserCard: React.FC<UserCardProps> = ({ name, onPress }) => {
  return (
    <View style={styles.container}>
      <Text style={styles.name}>{name}</Text>
    </View>
  );
};

const styles = StyleSheet.create({
  container: { padding: 10 },
  name: { fontSize: 16 },
});

Example 2: State Management

// ❌ BAD: useState for app-level state
function App() {
  const [user, setUser] = useState(null);
  const [settings, setSettings] = useState({});

  return <AppContent user={user} settings={settings} />;
}

// ✅ GOOD: Zustand for app-level state
import { create } from 'zustand';

interface AppState {
  user: User | null;
  settings: Settings;
  setUser: (user: User | null) => void;
}

export const useAppStore = create<AppState>((set) => ({
  user: null,
  settings: {},
  setUser: (user) => set({ user }),
}));

function App() {
  const user = useAppStore((state) => state.user);
  return <AppContent />;
}

Example 3: List Rendering

// ❌ BAD: ScrollView + map
<ScrollView>
  {users.map(user => (
    <UserCard key={user.id} user={user} />
  ))}
</ScrollView>

// ✅ GOOD: FlatList with optimization
const ITEM_HEIGHT = 80;

<FlatList
  data={users}
  renderItem={({ item }) => <UserCard user={item} />}
  keyExtractor={(item) => item.id}
  getItemLayout={(_, index) => ({
    length: ITEM_HEIGHT,
    offset: ITEM_HEIGHT * index,
    index,
  })}
/>

Common Mistakes to Avoid

🔴 Critical Mistakes

MistakeWhy It's WrongCorrect Approach
Using class componentsOutdated, verbose, no hooksUse functional components
Using any typeDefeats TypeScript safetyUse proper types or unknown
Inline styles in JSXPoor performance, not reusableUse StyleSheet.create()
ScrollView + map for long listsMemory issues, poor performanceUse FlatList with optimization
Direct console.logNot structured, no filteringUse logger utility

🟡 Warning-Level Mistakes

MistakeWhy It's WrongCorrect Approach
Not using path aliasesUgly relative importsConfigure @/ alias
Missing keyExtractorPoor list performanceAlways provide keyExtractor
Not memoizing callbacksCauses unnecessary rerendersUse useCallback
Platform checks in renderDuplicated logicUse Platform-specific files
Not cleaning up effectsMemory leaksReturn cleanup function

🟢 Optimization Opportunities

PatternIssueOptimization
Expensive calculations in renderRecalculates every renderUse useMemo
Props causing child rerendersChild rerenders unnecessarilyUse React.memo
Large lists without optimizationSlow scrollingAdd getItemLayout
Deep object comparisonsExpensive checksUse shallow equality
Large bundlesSlow app startupCode splitting, lazy loading

Code Review Checklist

Use this checklist when reviewing React Native code:

🔴 Critical Issues (Block Merge)

  • TypeScript strict mode enabled
  • No any types used
  • ESLint + Prettier passing
  • Path aliases (@/) configured and used
  • Errors are thrown (not suppressed)
  • Error boundaries wrap components
  • FlatList used for lists (not ScrollView + map)
  • File naming follows conventions (kebab-case)

🟡 Important Issues (Request Changes)

  • Functional components used (no class components)
  • Props are properly typed
  • Hooks rules followed (no conditionals, no loops)
  • useCallback/useMemo used appropriately
  • Styles use StyleSheet (no inline styles)
  • State management is consistent (Zustand OR Jotai)
  • Navigation is consistent (Expo Router OR React Navigation)
  • Platform-specific code properly handled

🟢 Suggestions (Non-Blocking)

  • Custom hooks extract reusable logic
  • React.memo used for expensive components
  • getItemLayout provided for FlatList
  • Effect cleanup functions provided
  • Code splitting for large screens
  • Images optimized and lazy loaded
  • Accessibility props added (accessibilityLabel)

Framework Versions

Recommended Stack:

  • React Native: 0.74+ (latest stable)
  • Expo SDK: 51+ (if using Expo)
  • TypeScript: 5.4+
  • React: 18.2+
  • Zustand: 4.5+ OR Jotai: 2.8+
  • Expo Router: 3.5+ OR React Navigation: 7+

Development Tools:

  • ESLint: 8.57+ with @react-native-community plugin
  • Prettier: 3.2+
  • Metro bundler (built-in)
  • React DevTools: Latest

Reference Files Structure

All detailed patterns and examples are in reference files:

Language Patterns (TypeScript + React)

Framework Patterns (React Native)

Code Review Guidelines

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

04

需要参考平台分布和安装热度时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

补充不同宿主或平台的使用分布数据

能力 5

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Claude Code

26.41%
按下载量换算44

Antigravity

26.25%
按下载量换算43

windsurf

19.01%
按下载量换算31

trae

11.78%
按下载量换算19

OpenCode

7.13%
按下载量换算12

Codex

3.88%
按下载量换算6

安全审计

Gen Agent Trust Hub

未通过

Socket

通过

Snyk

通过

权限和风险

只读

该 Skill 主要提供规则、说明或参考内容,本身偏只读;真正读写文件、联网或执行命令仍取决于宿主 Agent 的任务。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在 warning/failed 结果,不能写成本站确认安全。

来源信息

继续浏览同类 Skills