monorepo — скилл для Claude Code: правила монорепозитория
Скилл задаёт агенту набор правил для монорепозиториев на TypeScript, React, Next.js и Expo с Turbo. Пригодится, когда в одном репозитории живут несколько приложений и общих пакетов.
npx skills add Mindrally/skills --skill monorepo -a claude-codeЧто делает monorepo
Скилл подключается как инструкция для агента и описывает, как писать код в монорепозитории. Внутри — соглашения по структуре apps/ и packages/, общие конфигурации в корневой configs/, именование воркспейсов. Отдельные разделы посвящены TypeScript и Zod, состоянию на Zustand, запросам через TanStack React Query, интернационализации на i18next и expo-localization.
Есть блоки про обработку ошибок и производительность: ранние возвраты вместо вложенных условий, динамические импорты, ленивая загрузка, WebP для картинок. Кроссплатформенная часть опирается на Solito и файлы .native.tsx. Бэкенд — Supabase с политиками Row Level Security, платежи — Stripe с обработчиками вебхуков и синхронизацией подписок.
Скилл пригодится, если вы уже выбрали этот стек. Он не подбирает инструменты за вас: Zustand, Supabase, Stripe и Tamagui названы как данность, поэтому в проекте на Redux или Prisma часть советов придётся отбросить. Установка идёт через npx skills add с флагом под конкретную платформу, файл скилла кладётся в каталог вроде ~/.claude/skills/monorepo/SKILL.md.
Какие задачи решает
- разложить приложения и общие пакеты по
apps/иpackages/ - вынести общие конфиги в корневой
configs/ - выбрать Zustand и TanStack React Query вместо самописного стора
- сделать навигацию общей для веба и мобильного через Solito
- настроить валидацию схем Zod и политики RLS в Supabase
Примеры запросов агенту
- Помоги разложить новый воркспейс по структуре монорепозитория
- Проверь, правильно ли я разделил общие пакеты и приложения
- Как в этом проекте принято обрабатывать ошибки в функциях?
Как установить monorepo
1Через Skills CLI (Vercel)
npx skills add Mindrally/skills --skill monorepo -a claude-code2Вручную: положить файлы
~/.claude/skills/monorepo/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/monorepo/
1Через Skills CLI (Vercel)
npx skills add Mindrally/skills --skill monorepo -a codex2Вручную: положить файлы
.agents/skills/monorepo/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add Mindrally/skills --skill monorepo -a cursor2Вручную: положить файлы
.cursor/skills/monorepo/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install Mindrally/skills monorepo2Вручную: положить файлы
.github/skills/monorepo/SKILL.md1Через Skills CLI (Vercel)
npx skills add Mindrally/skills --skill monorepo -a gemini-cli2Командой платформы
gemini skills install https://github.com/Mindrally/skills --path monorepoВручную: положить файлы
.devin/skills/monorepo/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add Mindrally/skills --skill monorepo -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о monorepo
Как установить monorepo в Claude?
Выполните npx skills add Mindrally/skills --skill monorepo -a claude-code. После этого файл скилла окажется в ~/.claude/skills/monorepo/SKILL.md.
Что делает скилл monorepo?
Он даёт агенту правила разработки в монорепозитории: структура воркспейсов, соглашения по TypeScript, состояние, запросы данных, интернационализация, обработка ошибок и интеграции с Supabase и Stripe.
С какими технологиями работает этот скилл?
TypeScript, React, Next.js, Expo, Tamagui, Supabase, Zod, Turbo, i18next, Zustand, TanStack React Query, Solito и Stripe.
Исходный текст
SKILL.md · Apache-2.0
--- name: monorepo description: Best practices for monorepo development with TypeScript, React, Next.js, Expo, Turbo, and related technologies metadata: maintainer: Mindrally source: https://github.com/Mindrally/skills --- # Monorepo Development You are an expert in TypeScript, React and Next.js, Expo (React Native), Tamagui, Supabase, Zod, Turbo (Monorepo Management), i18next, Zustand, TanStack React Query, Solito, and Stripe. ## Code Style and Structure - Write concise, technical TypeScript code with accurate examples - Use functional and declarative programming patterns; avoid classes - Prefer iteration and modularization over code duplication - Use descriptive variable names with auxiliary verbs (e.g., `isLoading`, `hasError`) - Structure files with exported components, subcomponents, helpers, static content, and types - Favor named exports for components and functions - Use lowercase with dashes for directory names (e.g., `components/auth-wizard`) ## TypeScript and Validation - Use TypeScript for all code; prefer interfaces over types for object shapes - Utilize Zod for schema validation and type inference - Avoid enums; use literal types or maps instead - Implement proper error handling with discriminated unions ## State and Data Management - Use Zustand for state management - Use TanStack React Query for data fetching and caching - Minimize `useEffect` and `setState`; favor derived state - Implement optimistic updates for better UX ## Monorepo Structure - Follow best practices using Turbo for monorepo management - Use separate `apps` and `packages` directories - Keep shared configurations in the root `configs/` directory - Use consistent naming conventions for workspaces - Follow the standard Turborepo workspaces directory structure: - `apps/` for application workspaces (Next.js, Expo apps) - `packages/` for shared package workspaces (UI, utils, configs) ## Internationalization - Use i18next for web internationalization - Use expo-localization for React Native internationalization - Keep translation files organized by feature or domain ## Error Handling and Validation - Prioritize error handling and edge cases - Handle errors and edge cases at the beginning of functions - Use early returns for error conditions to avoid deeply nested if statements - Place the happy path last in the function for improved readability - Avoid unnecessary else statements; use if-return pattern instead - Use guard clauses to handle preconditions and invalid states early - Implement proper error logging and user-friendly error messages ## Performance Optimization - Use dynamic imports for code splitting - Implement lazy loading for non-critical components - Optimize images: use WebP format, include size data, implement lazy loading - Minimize the use of 'use client', 'useEffect', and 'setState' ## Cross-Platform Development - Use Solito for navigation across web and mobile - Use `.native.tsx` files for platform-specific code - Share business logic and UI components through packages ## Backend Integration - Use Supabase for authentication and database - Implement Row Level Security (RLS) policies - Use Zod schemas for API validation - Handle webhook events properly ## Payments - Implement Stripe integration with proper webhook handlers - Handle subscription syncing between Stripe and your database - Implement proper error handling for payment failures
© Mindrally · Apache-2.0 · Mindrally/skills