Auto-generated from all feature plans. Last updated: 2025-11-26
-
TypeScript 5.x with React Native 0.76 + Expo SDK 52, Expo Router, React Query v5, PostHog SDK, Sentry SDK, Recharts (or React Native Charts Wrapper) (002-admin-stats-dashboard)
-
React Query cache (in-memory) with 4-minute staleTime, no persistent storage for dashboard data (002-admin-stats-dashboard)
-
TypeScript 5.x with React Native 0.76 + Expo SDK 52, Expo Router, React Query v5, PostHog SDK, Sentry SDK, react-native-gifted-charts (002-admin-stats-dashboard)
-
TypeScript 5.x with React Native 0.76 + Expo SDK 52, Expo Router (file-based routing), React Native, @expo/vector-icons, react-native-svg (001-acp-mobile)
src/
tests/
npm start- Start Expo dev servernpm run ios- Run on iOS simulatornpm run android- Run on Android emulator
npm run lint- Check for linting errorsnpm run lint:fix- Fix linting errors automaticallynpm run format- Format all files with Prettiernpm run format:check- Check formatting without making changesnpm run type-check- Run TypeScript compiler checksnpm run validate- Run all checks (type-check + lint + format)
This project uses Husky and lint-staged to automatically lint, format, and type-check staged files before commits.
When you run git commit, the following happens automatically:
- Prettier formats all staged
.js,.jsx,.ts,.tsx,.json, and.mdfiles - ESLint runs with
--fixon all staged TypeScript/JavaScript files - TypeScript type-check runs (only if
.tsor.tsxfiles are staged) - If any issues can't be auto-fixed or type errors exist, the commit is blocked
Performance impact:
- Non-TypeScript commits: ~2-3 seconds (no change)
- TypeScript file commits: ~8-30 seconds (includes type-checking)
To bypass the pre-commit hook (not recommended):
git commit --no-verifyAll pull requests to main must pass automated checks via GitHub Actions:
- ✅ TypeScript type-check (
npm run type-check) - ✅ ESLint validation (
npm run lint) - ✅ Prettier format check (
npm run format:check) - ✅ Test suite (
npm run test)
CI runs on:
- All pull requests targeting
main - Direct pushes to
mainbranch
Check the Actions tab in GitHub for CI status and detailed logs.
- Use TypeScript 5.x strict mode
- Prefer
typeimports:import type { Foo } from './types' - Avoid
any- useunknownor proper types - Use underscore prefix for unused variables:
_unusedVar
- Use functional components with hooks
- Follow React Hooks rules (enforced by ESLint)
- Use
useCallbackanduseMemoappropriately
- No semicolons
- Single quotes for strings
- 2 space indentation
- 100 character line width
- Trailing commas in ES5 style
- Group imports: React → libraries → local components → types
- Keep components small and focused
- Use meaningful variable and function names
- Extract complex logic into custom hooks
- 002-admin-stats-dashboard: Added TypeScript 5.x with React Native 0.76 + Expo SDK 52, Expo Router, React Query v5, PostHog SDK, Sentry SDK, react-native-gifted-charts
- 002-admin-stats-dashboard: Added TypeScript 5.x with React Native 0.76 + Expo SDK 52, Expo Router, React Query v5, PostHog SDK, Sentry SDK, react-native-gifted-charts
- 002-admin-stats-dashboard: Added TypeScript 5.x with React Native 0.76 + Expo SDK 52, Expo Router, React Query v5, PostHog SDK, Sentry SDK, Recharts (or React Native Charts Wrapper)
This project includes specialized Claude Code skills for advanced topics:
Location: .claude/skills/sse-react-query-sync/
Comprehensive guidance on implementing Server-Sent Events (SSE) with React Query cache synchronization for real-time data updates.
What it covers:
- Step-by-step SSE implementation (700-line guide)
- Architecture decisions (5 ADRs explaining design choices)
- Working code examples (6 complete examples)
- Troubleshooting guides (5 common issues with solutions)
- Production-ready reference code (920 lines ready to copy)
How to use: Ask Claude any SSE/React Query question naturally:
- "How do I set up SSE with React Query?"
- "Why did we choose SSE over WebSockets?"
- "Show me SSE implementation examples"
- "The SSE connection keeps dropping, how do I debug it?"
Claude will automatically route you to the right documentation.
Quick start: See .claude/skills/sse-react-query-sync/README.md
- Use the Makefile in the platform repo to control the local developer environment. Use as necessary. Before beginning, ALWAYS confirm the dev local version that is running is the target version you actually want.