erne-universal 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/.cursorrules ADDED
@@ -0,0 +1,57 @@
1
+ You are an expert React Native and Expo developer working in an ERNE-powered project.
2
+
3
+ # Stack
4
+ - TypeScript (strict), React Native, Expo (managed or bare)
5
+ - Expo Router (file-based navigation)
6
+ - Zustand (client state) + TanStack Query (server state)
7
+ - Jest + React Native Testing Library + Detox
8
+
9
+ # Code Style
10
+ - Functional components only: `const Component = () => {}`
11
+ - Named exports only, no default exports
12
+ - PascalCase for components/types, camelCase for functions/hooks
13
+ - Import order: react → react-native → expo → third-party → internal → types
14
+ - Max 250 lines per component — extract if larger
15
+ - `StyleSheet.create()` always — never inline styles
16
+
17
+ # Performance
18
+ - `React.memo`, `useMemo`, `useCallback` where measurable
19
+ - `FlashList` over `FlatList` for 100+ item lists
20
+ - No anonymous functions in JSX render props
21
+ - Images: WebP, explicit dimensions, caching
22
+ - Animations: `react-native-reanimated` (UI thread)
23
+ - JS bundle under 1.5MB
24
+
25
+ # Testing
26
+ - Every component/hook gets a test file
27
+ - Test user behavior, not implementation details
28
+ - Mock native modules in `__mocks__/`
29
+ - Detox for E2E critical paths
30
+
31
+ # Security
32
+ - Never hardcode secrets — use env vars
33
+ - Validate all deep link parameters
34
+ - SSL pinning for sensitive APIs
35
+ - `expo-secure-store` for tokens, never AsyncStorage
36
+
37
+ # State Management
38
+ - Zustand: UI state, preferences, navigation state
39
+ - TanStack Query: API data, caching, refetching
40
+ - Never mix concerns between the two
41
+
42
+ # Expo
43
+ - Prefer Expo SDK modules over community packages
44
+ - `app.config.ts` for dynamic config
45
+ - Config plugins for native customization
46
+ - EAS Build for CI/CD, EAS Update for OTA
47
+
48
+ # Navigation
49
+ - File-based routing with Expo Router
50
+ - Typed routes via `expo-router/typed-routes`
51
+ - `_layout.tsx` for shared UI (headers, tabs)
52
+ - Validate deep link params before navigating
53
+
54
+ # Git
55
+ - Conventional Commits: feat:, fix:, refactor:, test:, docs:, chore:
56
+ - Branch naming: feat/, fix/, refactor/ prefix
57
+ - One logical change per commit
@@ -0,0 +1,57 @@
1
+ # ERNE — React Native & Expo Development Guidelines
2
+
3
+ ## Stack
4
+ - TypeScript (strict mode), React Native, Expo
5
+ - Expo Router for file-based navigation
6
+ - Zustand (client state) + TanStack Query (server state)
7
+ - Jest + React Native Testing Library + Detox
8
+
9
+ ## Code Conventions
10
+ - Functional components only: `const Component = () => {}`
11
+ - Named exports only — no default exports
12
+ - PascalCase for components and types, camelCase for functions and hooks
13
+ - Import order: react → react-native → expo → third-party → internal → types
14
+ - Maximum 250 lines per component file
15
+ - Always use `StyleSheet.create()` — never inline styles
16
+
17
+ ## Performance
18
+ - Use `React.memo`, `useMemo`, `useCallback` for expensive computations
19
+ - Prefer `FlashList` over `FlatList` for lists with 100+ items
20
+ - Avoid anonymous functions in render-path JSX props
21
+ - Use WebP images with explicit dimensions and caching
22
+ - Use `react-native-reanimated` for animations (runs on UI thread)
23
+ - Keep JS bundle under 1.5MB
24
+
25
+ ## Testing
26
+ - Every new component or hook requires a test file
27
+ - Test user-visible behavior, not implementation details
28
+ - Mock native modules in `__mocks__/` directory
29
+ - Use Detox for E2E tests on critical user flows
30
+
31
+ ## Security
32
+ - Never hardcode secrets — use environment variables
33
+ - Validate and sanitize all deep link parameters
34
+ - Use SSL certificate pinning for sensitive API endpoints
35
+ - Store tokens with `expo-secure-store`, never AsyncStorage
36
+
37
+ ## State Management
38
+ - Zustand for UI state, user preferences, navigation state
39
+ - TanStack Query for API data, caching, background refetching
40
+ - Keep separation: Zustand should not cache server data
41
+
42
+ ## Expo-Specific
43
+ - Prefer Expo SDK modules over community alternatives
44
+ - Use `app.config.ts` for dynamic configuration
45
+ - Use config plugins for native customization (avoid manual ios/android edits)
46
+ - EAS Build for CI/CD, EAS Update for OTA deployments
47
+
48
+ ## Navigation
49
+ - File-based routing with Expo Router
50
+ - Use typed routes via `expo-router/typed-routes`
51
+ - Use `_layout.tsx` for shared UI elements
52
+ - Validate deep link parameters before navigation
53
+
54
+ ## Git
55
+ - Conventional Commits: `feat:`, `fix:`, `refactor:`, `test:`, `docs:`, `chore:`
56
+ - Branch naming: `feat/<name>`, `fix/<name>`, `refactor/<name>`
57
+ - One logical change per commit
package/.windsurfrules ADDED
@@ -0,0 +1,57 @@
1
+ You are an expert React Native and Expo developer working in an ERNE-powered project.
2
+
3
+ # Stack
4
+ - TypeScript (strict), React Native, Expo (managed or bare)
5
+ - Expo Router (file-based navigation)
6
+ - Zustand (client state) + TanStack Query (server state)
7
+ - Jest + React Native Testing Library + Detox
8
+
9
+ # Code Style
10
+ - Functional components only: `const Component = () => {}`
11
+ - Named exports only, no default exports
12
+ - PascalCase for components/types, camelCase for functions/hooks
13
+ - Import order: react → react-native → expo → third-party → internal → types
14
+ - Max 250 lines per component — extract if larger
15
+ - `StyleSheet.create()` always — never inline styles
16
+
17
+ # Performance
18
+ - `React.memo`, `useMemo`, `useCallback` where measurable
19
+ - `FlashList` over `FlatList` for 100+ item lists
20
+ - No anonymous functions in JSX render props
21
+ - Images: WebP, explicit dimensions, caching
22
+ - Animations: `react-native-reanimated` (UI thread)
23
+ - JS bundle under 1.5MB
24
+
25
+ # Testing
26
+ - Every component/hook gets a test file
27
+ - Test user behavior, not implementation details
28
+ - Mock native modules in `__mocks__/`
29
+ - Detox for E2E critical paths
30
+
31
+ # Security
32
+ - Never hardcode secrets — use env vars
33
+ - Validate all deep link parameters
34
+ - SSL pinning for sensitive APIs
35
+ - `expo-secure-store` for tokens, never AsyncStorage
36
+
37
+ # State Management
38
+ - Zustand: UI state, preferences, navigation state
39
+ - TanStack Query: API data, caching, refetching
40
+ - Never mix concerns between the two
41
+
42
+ # Expo
43
+ - Prefer Expo SDK modules over community packages
44
+ - `app.config.ts` for dynamic config
45
+ - Config plugins for native customization
46
+ - EAS Build for CI/CD, EAS Update for OTA
47
+
48
+ # Navigation
49
+ - File-based routing with Expo Router
50
+ - Typed routes via `expo-router/typed-routes`
51
+ - `_layout.tsx` for shared UI (headers, tabs)
52
+ - Validate deep link params before navigating
53
+
54
+ # Git
55
+ - Conventional Commits: feat:, fix:, refactor:, test:, docs:, chore:
56
+ - Branch naming: feat/, fix/, refactor/ prefix
57
+ - One logical change per commit
package/AGENTS.md ADDED
@@ -0,0 +1,68 @@
1
+ # ERNE — Everything React Native & Expo
2
+
3
+ This project uses ERNE, a complete AI coding agent harness for React Native and Expo development.
4
+
5
+ ## Instructions for AI Agents
6
+
7
+ You are an expert React Native and Expo developer. Follow these conventions strictly.
8
+
9
+ ### Language & Framework
10
+ - TypeScript with strict mode enabled
11
+ - React Native with Expo (managed or bare workflow)
12
+ - Expo Router for file-based navigation
13
+ - Zustand for client state, TanStack Query for server state
14
+
15
+ ### Code Conventions
16
+ - Functional components only (`const Component = () => {}`)
17
+ - Named exports only — no default exports
18
+ - PascalCase: components, types. camelCase: functions, hooks, variables
19
+ - Import order: react → react-native → expo → third-party → internal → types
20
+ - Max 250 lines per component file
21
+ - Use `StyleSheet.create()` — never inline styles
22
+ - Colocate tests: `__tests__/ComponentName.test.tsx`
23
+
24
+ ### Performance Requirements
25
+ - Use `React.memo`, `useMemo`, `useCallback` for expensive computations
26
+ - Prefer `FlashList` over `FlatList` for lists with 100+ items
27
+ - No anonymous functions in render-path JSX props
28
+ - Images: WebP format, explicit dimensions, caching enabled
29
+ - JS bundle target: under 1.5MB
30
+ - Animations: use `react-native-reanimated` on UI thread
31
+
32
+ ### Testing Standards
33
+ - Jest + React Native Testing Library for unit/component tests
34
+ - Detox for E2E tests on critical user flows
35
+ - Test user-visible behavior, not implementation
36
+ - Every new component or hook requires a test file
37
+ - Mock native modules in `__mocks__/` directory
38
+
39
+ ### Security Practices
40
+ - Environment variables for all secrets (never hardcode)
41
+ - Validate and sanitize deep link parameters
42
+ - SSL certificate pinning for sensitive endpoints
43
+ - `expo-secure-store` for tokens — never use AsyncStorage for secrets
44
+ - Enable ProGuard/R8 for Android release builds
45
+
46
+ ### Git Workflow
47
+ - Conventional Commits: `feat:`, `fix:`, `refactor:`, `test:`, `docs:`, `chore:`
48
+ - Branch naming: `feat/<name>`, `fix/<name>`, `refactor/<name>`
49
+ - One logical change per commit
50
+ - Require PR review before merging to main
51
+
52
+ ### Expo-Specific
53
+ - Prefer Expo SDK modules over community alternatives
54
+ - Use `app.config.ts` for dynamic configuration
55
+ - EAS Build for CI/CD, EAS Update for OTA
56
+ - Config plugins for native customization (avoid manual ios/android edits)
57
+
58
+ ### State Management Architecture
59
+ - **Zustand**: UI state, user preferences, navigation state
60
+ - **TanStack Query**: API data, caching, background refetching
61
+ - Never mix: Zustand should not cache server data, TanStack Query should not hold UI state
62
+
63
+ ### Navigation Patterns
64
+ - File-based routing with Expo Router
65
+ - Typed routes with `expo-router/typed-routes`
66
+ - Deep linking: validate all parameters before navigation
67
+ - Use `_layout.tsx` for shared UI (headers, tabs)
68
+ - Modal routes: `presentation: 'modal'` in layout config
package/CLAUDE.md ADDED
@@ -0,0 +1,60 @@
1
+ # ERNE — Everything React Native & Expo
2
+
3
+ You are working in an ERNE-powered React Native/Expo project.
4
+
5
+ ## Project Stack
6
+
7
+ - **Framework**: React Native with Expo (managed or bare)
8
+ - **Language**: TypeScript (strict mode)
9
+ - **Navigation**: Expo Router (file-based)
10
+ - **State**: Zustand (client) + TanStack Query (server)
11
+ - **Testing**: Jest + React Native Testing Library + Detox
12
+ - **Styling**: StyleSheet.create (no inline styles)
13
+
14
+ ## Key Rules
15
+
16
+ ### Code Style
17
+ - Functional components only with `const` + arrow functions
18
+ - PascalCase for components, camelCase for hooks/utils, SCREAMING_SNAKE for constants
19
+ - Named exports only (no default exports)
20
+ - Group imports: react → react-native → expo → external → internal → types
21
+ - Max component length: 250 lines — extract if larger
22
+
23
+ ### Performance
24
+ - Memoize with `React.memo`, `useMemo`, `useCallback` where measurable
25
+ - Use `FlashList` over `FlatList` for large lists (100+ items)
26
+ - Avoid anonymous functions in JSX render paths
27
+ - Optimize images: WebP format, resizeMode, caching
28
+ - Keep JS bundle under 1.5MB
29
+
30
+ ### Testing
31
+ - Every new component/hook needs a test file
32
+ - Test user behavior, not implementation details
33
+ - Mock native modules at `__mocks__/` level
34
+ - E2E critical paths with Detox
35
+
36
+ ### Security
37
+ - Never hardcode secrets — use environment variables
38
+ - Validate all deep link parameters
39
+ - Pin SSL certificates for sensitive API calls
40
+ - Use `expo-secure-store` for tokens, never AsyncStorage
41
+
42
+ ### Git
43
+ - Conventional Commits: `feat:`, `fix:`, `refactor:`, `test:`, `docs:`, `chore:`
44
+ - Branch naming: `feat/`, `fix/`, `refactor/` prefix
45
+ - Atomic commits — one logical change per commit
46
+
47
+ ## Available Commands
48
+
49
+ Use `/plan`, `/code-review`, `/tdd`, `/build-fix`, `/perf`, `/upgrade`, `/native-module`, `/navigate`, `/animate`, `/deploy`, `/component`, `/debug`, `/quality-gate` for guided workflows.
50
+
51
+ ## Available Skills
52
+
53
+ Skills in `skills/` activate automatically:
54
+ - `coding-standards` — Audit and enforce standards
55
+ - `tdd-workflow` — Red-green-refactor cycle
56
+ - `performance-optimization` — Diagnose and fix perf issues
57
+ - `security-review` — Mobile security audit
58
+ - `native-module-scaffold` — Create Turbo/Expo modules
59
+ - `upgrade-workflow` — Version migration guide
60
+ - `continuous-learning-v2` — Pattern extraction and learning
package/GEMINI.md ADDED
@@ -0,0 +1,59 @@
1
+ # ERNE — Everything React Native & Expo
2
+
3
+ You are an expert React Native and Expo developer working in an ERNE-powered project.
4
+
5
+ ## Stack
6
+ - TypeScript (strict mode), React Native, Expo
7
+ - Expo Router (file-based navigation)
8
+ - Zustand (client state) + TanStack Query (server state)
9
+ - Jest + React Native Testing Library + Detox
10
+
11
+ ## Code Style
12
+ - Functional components only: `const Component = () => {}`
13
+ - Named exports only — no default exports
14
+ - PascalCase for components/types, camelCase for functions/hooks
15
+ - Import order: react → react-native → expo → third-party → internal → types
16
+ - Max 250 lines per component — extract if larger
17
+ - `StyleSheet.create()` always — never inline styles
18
+
19
+ ## Performance
20
+ - `React.memo`, `useMemo`, `useCallback` where measurable
21
+ - `FlashList` over `FlatList` for 100+ item lists
22
+ - No anonymous functions in JSX render props
23
+ - Images: WebP, explicit dimensions, caching
24
+ - Animations: `react-native-reanimated` (UI thread)
25
+ - JS bundle under 1.5MB
26
+
27
+ ## Testing
28
+ - Every component/hook gets a test file
29
+ - Test user behavior, not implementation details
30
+ - Mock native modules in `__mocks__/`
31
+ - Detox for E2E critical paths
32
+
33
+ ## Security
34
+ - Never hardcode secrets — use env vars
35
+ - Validate all deep link parameters
36
+ - SSL pinning for sensitive APIs
37
+ - `expo-secure-store` for tokens, never AsyncStorage
38
+
39
+ ## State Management
40
+ - Zustand: UI state, preferences, navigation state
41
+ - TanStack Query: API data, caching, refetching
42
+ - Never mix concerns between the two
43
+
44
+ ## Expo
45
+ - Prefer Expo SDK modules over community packages
46
+ - `app.config.ts` for dynamic config
47
+ - Config plugins for native customization
48
+ - EAS Build for CI/CD, EAS Update for OTA
49
+
50
+ ## Navigation
51
+ - File-based routing with Expo Router
52
+ - Typed routes via `expo-router/typed-routes`
53
+ - `_layout.tsx` for shared UI (headers, tabs)
54
+ - Validate deep link params before navigating
55
+
56
+ ## Git
57
+ - Conventional Commits: feat:, fix:, refactor:, test:, docs:, chore:
58
+ - Branch naming: feat/, fix/, refactor/ prefix
59
+ - One logical change per commit
package/README.md CHANGED
@@ -26,6 +26,21 @@ This will:
26
26
  | Contexts | 3 behavior modes (dev, review, vibe) |
27
27
  | MCP configs | 10 server integrations |
28
28
 
29
+ ## IDE & Editor Support
30
+
31
+ ERNE works with every major AI coding assistant out of the box:
32
+
33
+ | File | IDE / Tool |
34
+ |------|-----------|
35
+ | `CLAUDE.md` | Claude Code |
36
+ | `AGENTS.md` | Codex, Windsurf, Cursor, GitHub Copilot |
37
+ | `GEMINI.md` | Google Antigravity |
38
+ | `.cursorrules` | Cursor |
39
+ | `.windsurfrules` | Windsurf |
40
+ | `.github/copilot-instructions.md` | GitHub Copilot |
41
+
42
+ All config files share the same React Native & Expo conventions: TypeScript strict mode, Expo Router, Zustand + TanStack Query, testing with Jest/RNTL/Detox, and security best practices.
43
+
29
44
  ## Agents
30
45
 
31
46
  - **architect** — System design and project structure
@@ -55,6 +70,13 @@ Extended: `/animate`, `/deploy`, `/component`, `/debug`, `/quality-gate`
55
70
 
56
71
  Learning: `/learn`, `/retrospective`, `/setup-device`
57
72
 
73
+ ## Available On
74
+
75
+ - [npm](https://www.npmjs.com/package/erne-universal) — `npx erne-universal init`
76
+ - [SkillsMP](https://skillsmp.com) — Auto-indexed from GitHub
77
+ - [BuildWithClaude](https://buildwithclaude.com) — Plugin directory
78
+ - [VoltAgent/awesome-agent-skills](https://github.com/VoltAgent/awesome-agent-skills) — Curated skills list
79
+
58
80
  ## Documentation
59
81
 
60
82
  - [Getting Started](docs/getting-started.md)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "erne-universal",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
4
4
  "description": "Complete AI coding agent harness for React Native and Expo development",
5
5
  "keywords": [
6
6
  "react-native",
@@ -34,6 +34,12 @@
34
34
  "schemas/",
35
35
  "docs/",
36
36
  "install.sh",
37
+ "CLAUDE.md",
38
+ "AGENTS.md",
39
+ "GEMINI.md",
40
+ ".cursorrules",
41
+ ".windsurfrules",
42
+ ".github/copilot-instructions.md",
37
43
  "LICENSE",
38
44
  "README.md"
39
45
  ],