feat: Expo project bootstrap (v1.0.1) + untrack private docs
This commit is contained in:
parent
2677febe03
commit
1a1357d5c9
|
|
@ -0,0 +1,25 @@
|
||||||
|
module.exports = {
|
||||||
|
root: true,
|
||||||
|
parser: '@typescript-eslint/parser',
|
||||||
|
plugins: ['@typescript-eslint', 'prettier'],
|
||||||
|
extends: [
|
||||||
|
'eslint:recommended',
|
||||||
|
'plugin:@typescript-eslint/recommended',
|
||||||
|
'plugin:prettier/recommended',
|
||||||
|
],
|
||||||
|
rules: {
|
||||||
|
'prettier/prettier': 'error',
|
||||||
|
'@typescript-eslint/no-unused-vars': ['warn', { argsIgnorePattern: '^_' }],
|
||||||
|
'@typescript-eslint/explicit-function-return-type': 'off',
|
||||||
|
'@typescript-eslint/no-explicit-any': 'off',
|
||||||
|
},
|
||||||
|
ignorePatterns: [
|
||||||
|
'node_modules/',
|
||||||
|
'.expo/',
|
||||||
|
'dist/',
|
||||||
|
'metro.config.ts',
|
||||||
|
'babel.config.js',
|
||||||
|
'.eslintrc.js',
|
||||||
|
'.prettierrc',
|
||||||
|
],
|
||||||
|
};
|
||||||
|
|
@ -0,0 +1,52 @@
|
||||||
|
# Learn more https://docs.github.com/en/get-started/getting-started-with-git/ignoring-files
|
||||||
|
|
||||||
|
# dependencies
|
||||||
|
node_modules/
|
||||||
|
|
||||||
|
# Expo
|
||||||
|
.expo/
|
||||||
|
dist/
|
||||||
|
web-build/
|
||||||
|
expo-env.d.ts
|
||||||
|
|
||||||
|
# Native
|
||||||
|
.kotlin/
|
||||||
|
*.orig.*
|
||||||
|
*.jks
|
||||||
|
*.p8
|
||||||
|
*.p12
|
||||||
|
*.key
|
||||||
|
*.mobileprovision
|
||||||
|
|
||||||
|
# Metro
|
||||||
|
.metro-health-check*
|
||||||
|
|
||||||
|
# debug
|
||||||
|
npm-debug.*
|
||||||
|
yarn-debug.*
|
||||||
|
yarn-error.*
|
||||||
|
|
||||||
|
# macOS
|
||||||
|
.DS_Store
|
||||||
|
*.pem
|
||||||
|
|
||||||
|
# local env files
|
||||||
|
.env*.local
|
||||||
|
|
||||||
|
# typescript
|
||||||
|
*.tsbuildinfo
|
||||||
|
|
||||||
|
# generated native folders
|
||||||
|
/ios
|
||||||
|
/android
|
||||||
|
|
||||||
|
# Private project/agent docs — never commit
|
||||||
|
DEVELOPMENT_LOG.md
|
||||||
|
PROJECT.md
|
||||||
|
STRUCTURE.md
|
||||||
|
FUTURE.md
|
||||||
|
HISTORY.md
|
||||||
|
BUILD_SUMMARY.md
|
||||||
|
SCRIPTS.md
|
||||||
|
project-requirements.md
|
||||||
|
.learnings/
|
||||||
|
|
@ -0,0 +1,10 @@
|
||||||
|
module.exports = {
|
||||||
|
semi: true,
|
||||||
|
singleQuote: true,
|
||||||
|
tabWidth: 2,
|
||||||
|
useTabs: false,
|
||||||
|
trailingComma: 'all',
|
||||||
|
printWidth: 100,
|
||||||
|
bracketSpacing: true,
|
||||||
|
arrowParens: 'always',
|
||||||
|
};
|
||||||
|
|
@ -0,0 +1,20 @@
|
||||||
|
import { StatusBar } from 'expo-status-bar';
|
||||||
|
import { StyleSheet, Text, View } from 'react-native';
|
||||||
|
|
||||||
|
export default function App() {
|
||||||
|
return (
|
||||||
|
<View style={styles.container}>
|
||||||
|
<Text>Open up App.tsx to start working on your app!</Text>
|
||||||
|
<StatusBar style="auto" />
|
||||||
|
</View>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
const styles = StyleSheet.create({
|
||||||
|
container: {
|
||||||
|
flex: 1,
|
||||||
|
backgroundColor: '#fff',
|
||||||
|
alignItems: 'center',
|
||||||
|
justifyContent: 'center',
|
||||||
|
},
|
||||||
|
});
|
||||||
96
FUTURE.md
96
FUTURE.md
|
|
@ -1,96 +0,0 @@
|
||||||
# Relationship App — Planning
|
|
||||||
|
|
||||||
## Phase 1 — Foundation & Infrastructure (1.0.x)
|
|
||||||
|
|
||||||
### Batch 1.0.1: Expo Project Bootstrap (Scarlett)
|
|
||||||
- Initialize Expo project with TypeScript template
|
|
||||||
- Configure ESLint + Prettier
|
|
||||||
- Create folder architecture (app/, components/, lib/, constants/, assets/)
|
|
||||||
- Configure app entry points (app/_layout.tsx, app/index.tsx)
|
|
||||||
- Verify: `npx expo start` runs clean
|
|
||||||
|
|
||||||
### Batch 1.0.2: Navigation Foundation (Scarlett)
|
|
||||||
- Install and configure Expo Router
|
|
||||||
- Create tab layout with placeholder tabs (Home, Questions, Milestones, Settings)
|
|
||||||
- Create stack layout for detail screens
|
|
||||||
- Verify: navigation between tabs and stacks works
|
|
||||||
|
|
||||||
### Batch 1.0.3: Supabase Project Setup (Neo)
|
|
||||||
- Create Supabase project (or document connection to existing)
|
|
||||||
- Configure environment variables (.env.local, .env.example)
|
|
||||||
- Create Supabase client in lib/supabase.ts
|
|
||||||
- Create lib/supabase.ts with init and auth helpers
|
|
||||||
- Verify: client connects to Supabase instance, health check passes
|
|
||||||
|
|
||||||
### Batch 1.0.4: Database Schema — Users & Couples (Neo)
|
|
||||||
- Create `profiles` table (id, email, display_name, avatar_url, created_at)
|
|
||||||
- Create `couples` table (id, partner1_id, partner2_id, created_at)
|
|
||||||
- Create `couple_members` table (id, couple_id, user_id, joined_at)
|
|
||||||
- Row Level Security on all tables
|
|
||||||
- Verify: can insert/select with proper RLS, cross-couple isolation works
|
|
||||||
|
|
||||||
### Batch 1.0.5: Auth — Magic Link Email (Neo)
|
|
||||||
- Configure Supabase Auth for email magic links
|
|
||||||
- Auth hook: useAuth() with session state
|
|
||||||
- Protected route wrapper component
|
|
||||||
- Logout handling
|
|
||||||
- Verify: magic link flow works end-to-end
|
|
||||||
|
|
||||||
### Batch 1.0.6: Auth UI — Login Screen (Scarlett)
|
|
||||||
- Login screen with email input + "Send Magic Link" button
|
|
||||||
- Loading state, success message, error state
|
|
||||||
- Deep link handling for magic link redirect
|
|
||||||
- Verify: user can request and receive magic link, redirect works
|
|
||||||
|
|
||||||
### Batch 1.0.7: Pairing — Code Generation (Neo)
|
|
||||||
- Generate unique 6-character pair codes
|
|
||||||
- `pair_codes` table (id, code, creator_id, status, expires_at, created_at)
|
|
||||||
- API: create pair code, expire old codes
|
|
||||||
- RLS: only creator can generate, only partner can claim
|
|
||||||
- Verify: code generation works, uniqueness constraint, expiration works
|
|
||||||
|
|
||||||
### Batch 1.0.8: Pairing — Join Flow (Neo)
|
|
||||||
- Claim pair code endpoint
|
|
||||||
- Couple creation logic on successful claim
|
|
||||||
- RLS: couple_members only visible to members
|
|
||||||
- Verify: two users can pair, couple created correctly
|
|
||||||
|
|
||||||
### Batch 1.0.9: Pairing UI — Enter Code Screen (Scarlett)
|
|
||||||
- "Share Your Code" screen showing generated code with copy button
|
|
||||||
- "Enter Partner's Code" screen with input + submit
|
|
||||||
- Paired state screen showing partner info
|
|
||||||
- Loading/success/error states throughout
|
|
||||||
- Verify: full pairing flow works on device
|
|
||||||
|
|
||||||
### Batch 1.0.10: Design System — Theme & Tokens (Scarlett)
|
|
||||||
- Create constants/Colors.ts with warm color palette
|
|
||||||
- Create constants/Spacing.ts with spacing scale
|
|
||||||
- Create constants/Typography.ts with font sizes/weights
|
|
||||||
- NativeWind config extending Tailwind theme with custom tokens
|
|
||||||
- Dark mode color tokens
|
|
||||||
- Verify: tokens render correctly in both modes
|
|
||||||
|
|
||||||
### Batch 1.0.11: Design System — Base Components (Scarlett)
|
|
||||||
- Button component (variants: primary, secondary, ghost; sizes: sm, md, lg)
|
|
||||||
- Input component (text input with label, error state)
|
|
||||||
- Card component (with header, body, footer)
|
|
||||||
- Avatar component (with fallback initials)
|
|
||||||
- Verify: all components render in light/dark mode
|
|
||||||
|
|
||||||
### Batch 1.0.12: Home Screen (Scarlett)
|
|
||||||
- Home screen layout with greeting, daily question card, quick actions
|
|
||||||
- Navigation to question packs
|
|
||||||
- Warm, calm aesthetic matching design philosophy
|
|
||||||
- Verify: home screen renders with placeholder data
|
|
||||||
|
|
||||||
## Phase 2 — Core Question Engine (1.1.x)
|
|
||||||
*(Planned — not yet broken into batches)*
|
|
||||||
|
|
||||||
## Phase 3 — Milestones & Memories (1.2.x)
|
|
||||||
*(Planned — not yet broken into batches)*
|
|
||||||
|
|
||||||
## Phase 4 — Messaging & Notifications (1.3.x)
|
|
||||||
*(Planned — not yet broken into batches)*
|
|
||||||
|
|
||||||
## Phase 5 — Polish & Launch Prep (1.4.x)
|
|
||||||
*(Planned — not yet broken into batches)*
|
|
||||||
|
|
@ -1,9 +0,0 @@
|
||||||
# Relationship App — Changelog
|
|
||||||
|
|
||||||
## v1.0.0 — Phase 1 Foundation Baseline — 2026-05-13
|
|
||||||
|
|
||||||
### Project Setup
|
|
||||||
- Initialized project structure (PROJECT.md, STRUCTURE.md, FUTURE.md, project-requirements.md)
|
|
||||||
- Execution plan rewritten with small batch sizing per BATCH_SIZING.md rules
|
|
||||||
- Phase 1 broken into 12 focused batches (1.0.1 through 1.0.12)
|
|
||||||
- Agent pipeline: Scarlett → Neo → Bishop → Private_Hudson as needed
|
|
||||||
53
PROJECT.md
53
PROJECT.md
|
|
@ -1,53 +0,0 @@
|
||||||
# Relationship App — Couples Connection
|
|
||||||
|
|
||||||
## Overview
|
|
||||||
Project: Relationship App (Couples Connection)
|
|
||||||
Created: 2026-05-13
|
|
||||||
Status: Active (Phase 1 - Foundation & Infrastructure - 1.0.x)
|
|
||||||
Build Phase: 1 (Foundation & Infrastructure)
|
|
||||||
|
|
||||||
## Description
|
|
||||||
A mobile app designed to help couples build a deeper emotional connection through meaningful interaction, guided conversations, and personal moments. Built with React Native + Expo for iOS and Android.
|
|
||||||
|
|
||||||
## Tech Stack
|
|
||||||
- **React Native** — mobile framework (cross-platform: iOS + Android)
|
|
||||||
- **Expo** — development platform and build tooling
|
|
||||||
- **TypeScript** — type safety
|
|
||||||
- **NativeWind** — Tailwind CSS for React Native
|
|
||||||
- **Supabase** — Auth, Database (PostgreSQL), Realtime, Storage
|
|
||||||
- **Cloudflare R2** — media storage
|
|
||||||
- **Expo Push Notifications** — push alerts
|
|
||||||
- **shadcn/ui-style** — component primitives adapted for mobile
|
|
||||||
|
|
||||||
## Directory Structure (Phase 1 target)
|
|
||||||
- `app/` — Expo Router screens and layouts
|
|
||||||
- `components/` — Reusable UI components
|
|
||||||
- `lib/` — Utilities, hooks, Supabase client
|
|
||||||
- `constants/` — Theme, colors, spacing
|
|
||||||
- `assets/` — Images, fonts
|
|
||||||
- `supabase/` — Migrations and config (if using CLI)
|
|
||||||
|
|
||||||
## Git
|
|
||||||
- **Branch:** `dev` (working), `main` (stable)
|
|
||||||
- **Remote:** `ssh://forgejo/null/relationship-app.git`
|
|
||||||
|
|
||||||
## Versioning
|
|
||||||
Version numbers correlate to the active phase:
|
|
||||||
- Phase 1: `1.0.x` (foundation, bootstrap, auth)
|
|
||||||
- Phase 2: `1.1.x` (core question engine)
|
|
||||||
- Phase 3: `1.2.x` (milestones & memories)
|
|
||||||
- Phase 4: `1.3.x` (messaging & notifications)
|
|
||||||
- Phase 5: `1.4.x` (polish & launch prep)
|
|
||||||
|
|
||||||
## Phase Completion Git Rule
|
|
||||||
Push to `dev` after every completed and verified batch.
|
|
||||||
- Agents do not touch git.
|
|
||||||
- Bishop verifies and updates docs.
|
|
||||||
- Ripley performs final checks, commits, and pushes to `dev`.
|
|
||||||
|
|
||||||
## Conventions
|
|
||||||
- Follow AGENTS.md for agent dispatch protocol
|
|
||||||
- All agents read project-requirements.md before starting tasks
|
|
||||||
- Ripley owns git — no agent touches git directly
|
|
||||||
- See BATCH_SIZING.md for batch sizing rules (one focused task per batch)
|
|
||||||
- NOT Next.js. NOT a web app. This is React Native + Expo.
|
|
||||||
102
STRUCTURE.md
102
STRUCTURE.md
|
|
@ -1,102 +0,0 @@
|
||||||
# Relationship App — Structure
|
|
||||||
|
|
||||||
## Agent Roles
|
|
||||||
|
|
||||||
| Area | Owner | Notes |
|
|
||||||
|------|-------|-------|
|
|
||||||
| Backend, Supabase, Auth, DB, RLS | Neo | All server-side work |
|
|
||||||
| UI, Mobile UX, NativeWind, Design System | Scarlett | All visual/interaction work |
|
|
||||||
| QA, Testing, Build Verification | Bishop | Verify everything works |
|
|
||||||
| Security Review, Content, Moderation | Private_Hudson | Security-first features |
|
|
||||||
| Coordination, Git, Deployment | Ripley | Orchestrates pipeline |
|
|
||||||
|
|
||||||
## Phase 1 — Foundation & Infrastructure (1.0.x)
|
|
||||||
|
|
||||||
Batches follow the rule: **one focused task per batch, one agent, one pass.**
|
|
||||||
|
|
||||||
### Batch 1.0.1: Expo Project Bootstrap (Scarlett)
|
|
||||||
- Initialize Expo project with TypeScript template
|
|
||||||
- Configure ESLint + Prettier
|
|
||||||
- Create folder architecture (app/, components/, lib/, constants/, assets/)
|
|
||||||
- Configure app entry points (app/_layout.tsx, app/index.tsx)
|
|
||||||
- Verify: `npx expo start` runs clean
|
|
||||||
|
|
||||||
### Batch 1.0.2: Navigation Foundation (Scarlett)
|
|
||||||
- Install and configure Expo Router
|
|
||||||
- Create tab layout with placeholder tabs (Home, Questions, Milestones, Settings)
|
|
||||||
- Create stack layout for detail screens
|
|
||||||
- Verify: navigation between tabs and stacks works
|
|
||||||
|
|
||||||
### Batch 1.0.3: Supabase Project Setup (Neo)
|
|
||||||
- Create Supabase project (or document connection to existing)
|
|
||||||
- Configure environment variables (.env.local, .env.example)
|
|
||||||
- Create Supabase client in lib/supabase.ts
|
|
||||||
- Create lib/supabase.ts with init and auth helpers
|
|
||||||
- Verify: client connects to Supabase instance, health check passes
|
|
||||||
|
|
||||||
### Batch 1.0.4: Database Schema — Users & Couples (Neo)
|
|
||||||
- Create `profiles` table (id, email, display_name, avatar_url, created_at)
|
|
||||||
- Create `couples` table (id, partner1_id, partner2_id, created_at)
|
|
||||||
- Create `couple_members` table (id, couple_id, user_id, joined_at)
|
|
||||||
- Row Level Security on all tables
|
|
||||||
- Verify: can insert/select with proper RLS, cross-couple isolation works
|
|
||||||
|
|
||||||
### Batch 1.0.5: Auth — Magic Link Email (Neo)
|
|
||||||
- Configure Supabase Auth for email magic links
|
|
||||||
- Auth hook: useAuth() with session state
|
|
||||||
- Protected route wrapper component
|
|
||||||
- Logout handling
|
|
||||||
- Verify: magic link flow works end-to-end
|
|
||||||
|
|
||||||
### Batch 1.0.6: Auth UI — Login Screen (Scarlett)
|
|
||||||
- Login screen with email input + "Send Magic Link" button
|
|
||||||
- Loading state, success message, error state
|
|
||||||
- Deep link handling for magic link redirect
|
|
||||||
- Verify: user can request and receive magic link, redirect works
|
|
||||||
|
|
||||||
### Batch 1.0.7: Pairing — Code Generation (Neo)
|
|
||||||
- Generate unique 6-character pair codes
|
|
||||||
- `pair_codes` table (id, code, creator_id, status, expires_at, created_at)
|
|
||||||
- API: create pair code, expire old codes
|
|
||||||
- RLS: only creator can generate, only partner can claim
|
|
||||||
- Verify: code generation works, uniqueness constraint, expiration works
|
|
||||||
|
|
||||||
### Batch 1.0.8: Pairing — Join Flow (Neo)
|
|
||||||
- Claim pair code endpoint
|
|
||||||
- Couple creation logic on successful claim
|
|
||||||
- RLS: couple_members only visible to members
|
|
||||||
- Verify: two users can pair, couple created correctly
|
|
||||||
|
|
||||||
### Batch 1.0.9: Pairing UI — Enter Code Screen (Scarlett)
|
|
||||||
- "Share Your Code" screen showing generated code with copy button
|
|
||||||
- "Enter Partner's Code" screen with input + submit
|
|
||||||
- Paired state screen showing partner info
|
|
||||||
- Loading/success/error states throughout
|
|
||||||
- Verify: full pairing flow works on device
|
|
||||||
|
|
||||||
### Batch 1.0.10: Design System — Theme & Tokens (Scarlett)
|
|
||||||
- Create constants/Colors.ts with warm color palette
|
|
||||||
- Create constants/Spacing.ts with spacing scale
|
|
||||||
- Create constants/Typography.ts with font sizes/weights
|
|
||||||
- NativeWind config extending Tailwind theme with custom tokens
|
|
||||||
- Dark mode color tokens
|
|
||||||
- Verify: tokens render correctly in both modes
|
|
||||||
|
|
||||||
### Batch 1.0.11: Design System — Base Components (Scarlett)
|
|
||||||
- Button component (variants: primary, secondary, ghost; sizes: sm, md, lg)
|
|
||||||
- Input component (text input with label, error state)
|
|
||||||
- Card component (with header, body, footer)
|
|
||||||
- Avatar component (with fallback initials)
|
|
||||||
- Verify: all components render in light/dark mode
|
|
||||||
|
|
||||||
### Batch 1.0.12: Home Screen (Scarlett)
|
|
||||||
- Home screen layout with greeting, daily question card, quick actions
|
|
||||||
- Navigation to question packs
|
|
||||||
- Warm, calm aesthetic matching design philosophy
|
|
||||||
- Verify: home screen renders with placeholder data
|
|
||||||
|
|
||||||
## Cross-Cutting Concerns
|
|
||||||
|
|
||||||
- **Security**: Private_Hudson reviews auth, pairing, and RLS before Phase 2
|
|
||||||
- **Testing**: Bishop verifies each batch with build + runtime check
|
|
||||||
- **Documentation**: Bishop updates docs after each verified batch
|
|
||||||
|
|
@ -0,0 +1,30 @@
|
||||||
|
{
|
||||||
|
"expo": {
|
||||||
|
"name": "relationship-app",
|
||||||
|
"slug": "relationship-app",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"orientation": "portrait",
|
||||||
|
"icon": "./assets/icon.png",
|
||||||
|
"userInterfaceStyle": "light",
|
||||||
|
"newArchEnabled": true,
|
||||||
|
"splash": {
|
||||||
|
"image": "./assets/splash-icon.png",
|
||||||
|
"resizeMode": "contain",
|
||||||
|
"backgroundColor": "#ffffff"
|
||||||
|
},
|
||||||
|
"ios": {
|
||||||
|
"supportsTablet": true
|
||||||
|
},
|
||||||
|
"android": {
|
||||||
|
"adaptiveIcon": {
|
||||||
|
"foregroundImage": "./assets/adaptive-icon.png",
|
||||||
|
"backgroundColor": "#ffffff"
|
||||||
|
},
|
||||||
|
"edgeToEdgeEnabled": true,
|
||||||
|
"predictiveBackGestureEnabled": false
|
||||||
|
},
|
||||||
|
"web": {
|
||||||
|
"favicon": "./assets/favicon.png"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
# App placeholder
|
||||||
|
|
@ -0,0 +1,9 @@
|
||||||
|
import { Stack } from 'expo-router';
|
||||||
|
|
||||||
|
export default function RootLayout() {
|
||||||
|
return (
|
||||||
|
<Stack>
|
||||||
|
<Stack.Screen name="index" />
|
||||||
|
</Stack>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,9 @@
|
||||||
|
import { Text, View } from 'react-native';
|
||||||
|
|
||||||
|
export default function HomeScreen() {
|
||||||
|
return (
|
||||||
|
<View className="flex-1 items-center justify-center bg-white">
|
||||||
|
<Text className="text-2xl font-bold text-gray-900">Hello, Relationship App!</Text>
|
||||||
|
</View>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
# Assets placeholder
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 17 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 1.4 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 22 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 17 KiB |
|
|
@ -0,0 +1 @@
|
||||||
|
# Components placeholder
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
# Constants placeholder
|
||||||
|
|
@ -1,932 +0,0 @@
|
||||||
# Couples Connection Mobile App
|
|
||||||
|
|
||||||
# Full Execution Plan
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
# Project Stack
|
|
||||||
|
|
||||||
## Frontend
|
|
||||||
|
|
||||||
* React Native
|
|
||||||
* Expo
|
|
||||||
* TypeScript
|
|
||||||
|
|
||||||
## Backend
|
|
||||||
|
|
||||||
* Supabase
|
|
||||||
* PostgreSQL
|
|
||||||
* Supabase Auth
|
|
||||||
* Supabase Realtime
|
|
||||||
|
|
||||||
## Storage
|
|
||||||
|
|
||||||
* Cloudflare R2
|
|
||||||
|
|
||||||
## Notifications
|
|
||||||
|
|
||||||
* Expo Push Notifications
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
# Agent Assignment Matrix
|
|
||||||
|
|
||||||
| Agent | Role |
|
|
||||||
| ------------------------------------------ | ------------------------------------------------------------------- |
|
|
||||||
| Ripley | Project orchestration, execution coordination, batch sequencing |
|
|
||||||
| Neo (`agentId: neo`) | Backend systems, architecture, security, realtime, database |
|
|
||||||
| Scarlett (`agentId: scarlett`) | UI systems, mobile UX, styling, responsive layouts, design systems |
|
|
||||||
| Bishop (`agentId: bishop`) | QA, stability, testing, regression validation, release verification |
|
|
||||||
| Private_Hudson (`agentId: private_hudson`) | Content systems, moderation, admin workflows, operational tooling |
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
# Dispatch Rules
|
|
||||||
|
|
||||||
## Required On Every Agent Spawn
|
|
||||||
|
|
||||||
* Explicit `agentId`
|
|
||||||
* Project context block
|
|
||||||
* Project directory
|
|
||||||
* Relevant spec references
|
|
||||||
* Recent changes summary
|
|
||||||
* Learnings path reminder
|
|
||||||
* Report back to Ripley only
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
# Learnings Paths
|
|
||||||
|
|
||||||
| Agent | Learnings Path |
|
|
||||||
| -------------- | ---------------------------- |
|
|
||||||
| Ripley | `.learnings/` |
|
|
||||||
| Neo | `.learnings/neo/` |
|
|
||||||
| Scarlett | `.learnings/scarlett/` |
|
|
||||||
| Bishop | `.learnings/bishop/` |
|
|
||||||
| Private_Hudson | `.learnings/private_hudson/` |
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
# STAGE 1
|
|
||||||
|
|
||||||
# Foundation & Infrastructure
|
|
||||||
|
|
||||||
## Goal
|
|
||||||
|
|
||||||
Establish stable application foundation.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
# Batch 1A
|
|
||||||
|
|
||||||
## Expo Bootstrap & Structure
|
|
||||||
|
|
||||||
### Lead
|
|
||||||
|
|
||||||
Scarlett (`agentId: scarlett`)
|
|
||||||
|
|
||||||
### Support
|
|
||||||
|
|
||||||
Neo (`agentId: neo`)
|
|
||||||
|
|
||||||
### QA
|
|
||||||
|
|
||||||
Bishop (`agentId: bishop`)
|
|
||||||
|
|
||||||
### Stack Used
|
|
||||||
|
|
||||||
* Expo
|
|
||||||
* React Native
|
|
||||||
* TypeScript
|
|
||||||
|
|
||||||
### Tasks
|
|
||||||
|
|
||||||
* Initialize Expo application
|
|
||||||
* Configure TypeScript
|
|
||||||
* Configure ESLint + Prettier
|
|
||||||
* Create folder architecture
|
|
||||||
* Configure app entry points
|
|
||||||
* Configure navigation foundation
|
|
||||||
* Setup environment structure
|
|
||||||
|
|
||||||
### Deliverables
|
|
||||||
|
|
||||||
* Running Expo app
|
|
||||||
* Stable folder structure
|
|
||||||
* Base navigation
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
# Batch 1B
|
|
||||||
|
|
||||||
## Supabase Backend Foundation
|
|
||||||
|
|
||||||
### Lead
|
|
||||||
|
|
||||||
Neo (`agentId: neo`)
|
|
||||||
|
|
||||||
### Support
|
|
||||||
|
|
||||||
Private_Hudson (`agentId: private_hudson`)
|
|
||||||
|
|
||||||
### QA
|
|
||||||
|
|
||||||
Bishop (`agentId: bishop`)
|
|
||||||
|
|
||||||
### Stack Used
|
|
||||||
|
|
||||||
* Supabase
|
|
||||||
* PostgreSQL
|
|
||||||
|
|
||||||
### Tasks
|
|
||||||
|
|
||||||
* Create Supabase project
|
|
||||||
* Configure auth providers
|
|
||||||
* Configure PostgreSQL structure
|
|
||||||
* Configure storage buckets
|
|
||||||
* Configure environment variables
|
|
||||||
* Setup baseline row level security
|
|
||||||
|
|
||||||
### Deliverables
|
|
||||||
|
|
||||||
* Working backend connection
|
|
||||||
* Secure database foundation
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
# Batch 1C
|
|
||||||
|
|
||||||
## Authentication System
|
|
||||||
|
|
||||||
### Lead
|
|
||||||
|
|
||||||
Neo (`agentId: neo`)
|
|
||||||
|
|
||||||
### Support
|
|
||||||
|
|
||||||
Scarlett (`agentId: scarlett`)
|
|
||||||
|
|
||||||
### QA
|
|
||||||
|
|
||||||
Bishop (`agentId: bishop`)
|
|
||||||
|
|
||||||
### Stack Used
|
|
||||||
|
|
||||||
* Supabase Auth
|
|
||||||
* React Native
|
|
||||||
* Expo Router
|
|
||||||
|
|
||||||
### Tasks
|
|
||||||
|
|
||||||
* Email magic link auth
|
|
||||||
* Session persistence
|
|
||||||
* Protected routes
|
|
||||||
* Login screen
|
|
||||||
* Logout handling
|
|
||||||
* Auth validation
|
|
||||||
|
|
||||||
### Deliverables
|
|
||||||
|
|
||||||
* Stable authentication flow
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
# Batch 1D
|
|
||||||
|
|
||||||
## Pairing System
|
|
||||||
|
|
||||||
### Lead
|
|
||||||
|
|
||||||
Neo (`agentId: neo`)
|
|
||||||
|
|
||||||
### Support
|
|
||||||
|
|
||||||
Scarlett (`agentId: scarlett`)
|
|
||||||
|
|
||||||
### QA
|
|
||||||
|
|
||||||
Bishop (`agentId: bishop`)
|
|
||||||
|
|
||||||
### Stack Used
|
|
||||||
|
|
||||||
* Supabase
|
|
||||||
* PostgreSQL
|
|
||||||
* React Native
|
|
||||||
|
|
||||||
### Tasks
|
|
||||||
|
|
||||||
* Pair code generation
|
|
||||||
* Pair code validation
|
|
||||||
* Couple linking logic
|
|
||||||
* Pairing UI
|
|
||||||
* Couple membership persistence
|
|
||||||
|
|
||||||
### Deliverables
|
|
||||||
|
|
||||||
* Fully working pairing system
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
# Batch 1E
|
|
||||||
|
|
||||||
## Design System Foundation
|
|
||||||
|
|
||||||
### Lead
|
|
||||||
|
|
||||||
Scarlett (`agentId: scarlett`)
|
|
||||||
|
|
||||||
### Support
|
|
||||||
|
|
||||||
Ripley
|
|
||||||
|
|
||||||
### QA
|
|
||||||
|
|
||||||
Bishop (`agentId: bishop`)
|
|
||||||
|
|
||||||
### Stack Used
|
|
||||||
|
|
||||||
* React Native
|
|
||||||
* Expo
|
|
||||||
* NativeWind/Tailwind RN strategy
|
|
||||||
|
|
||||||
### Tasks
|
|
||||||
|
|
||||||
* Typography system
|
|
||||||
* Color palette
|
|
||||||
* Spacing system
|
|
||||||
* Shared components
|
|
||||||
* Theme provider
|
|
||||||
* Dark mode foundation
|
|
||||||
|
|
||||||
### Deliverables
|
|
||||||
|
|
||||||
* Shared mobile design system
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
# STAGE 2
|
|
||||||
|
|
||||||
# Core Question Engine
|
|
||||||
|
|
||||||
## Goal
|
|
||||||
|
|
||||||
Build primary emotional interaction system.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
# Batch 2A
|
|
||||||
|
|
||||||
## Question Database Architecture
|
|
||||||
|
|
||||||
### Lead
|
|
||||||
|
|
||||||
Neo (`agentId: neo`)
|
|
||||||
|
|
||||||
### Support
|
|
||||||
|
|
||||||
Private_Hudson (`agentId: private_hudson`)
|
|
||||||
|
|
||||||
### QA
|
|
||||||
|
|
||||||
Ripley
|
|
||||||
|
|
||||||
### Stack Used
|
|
||||||
|
|
||||||
* PostgreSQL
|
|
||||||
* Supabase
|
|
||||||
|
|
||||||
### Tasks
|
|
||||||
|
|
||||||
* Question schema
|
|
||||||
* Metadata tagging
|
|
||||||
* Category structure
|
|
||||||
* Visibility rules
|
|
||||||
* Relationship stage tagging
|
|
||||||
* Seed starter questions
|
|
||||||
|
|
||||||
### Deliverables
|
|
||||||
|
|
||||||
* Structured question engine
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
# Batch 2B
|
|
||||||
|
|
||||||
## Daily Question System
|
|
||||||
|
|
||||||
### Lead
|
|
||||||
|
|
||||||
Neo (`agentId: neo`)
|
|
||||||
|
|
||||||
### Support
|
|
||||||
|
|
||||||
Scarlett (`agentId: scarlett`)
|
|
||||||
|
|
||||||
### QA
|
|
||||||
|
|
||||||
Bishop (`agentId: bishop`)
|
|
||||||
|
|
||||||
### Stack Used
|
|
||||||
|
|
||||||
* Supabase
|
|
||||||
* React Native
|
|
||||||
|
|
||||||
### Tasks
|
|
||||||
|
|
||||||
* Daily selection logic
|
|
||||||
* Daily refresh system
|
|
||||||
* Question retrieval APIs
|
|
||||||
* Daily question UI
|
|
||||||
|
|
||||||
### Deliverables
|
|
||||||
|
|
||||||
* Daily question flow
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
# Batch 2C
|
|
||||||
|
|
||||||
## Random Question Generator
|
|
||||||
|
|
||||||
### Lead
|
|
||||||
|
|
||||||
Neo (`agentId: neo`)
|
|
||||||
|
|
||||||
### Support
|
|
||||||
|
|
||||||
Private_Hudson (`agentId: private_hudson`)
|
|
||||||
|
|
||||||
### QA
|
|
||||||
|
|
||||||
Ripley
|
|
||||||
|
|
||||||
### Stack Used
|
|
||||||
|
|
||||||
* PostgreSQL
|
|
||||||
* Supabase
|
|
||||||
|
|
||||||
### Tasks
|
|
||||||
|
|
||||||
* Randomization logic
|
|
||||||
* Category filtering
|
|
||||||
* Surprise mode
|
|
||||||
* Duplicate prevention
|
|
||||||
* Usage history filtering
|
|
||||||
|
|
||||||
### Deliverables
|
|
||||||
|
|
||||||
* Random question system
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
# Batch 2D
|
|
||||||
|
|
||||||
## Answer System
|
|
||||||
|
|
||||||
### Lead
|
|
||||||
|
|
||||||
Neo (`agentId: neo`)
|
|
||||||
|
|
||||||
### Support
|
|
||||||
|
|
||||||
Scarlett (`agentId: scarlett`)
|
|
||||||
|
|
||||||
### QA
|
|
||||||
|
|
||||||
Bishop (`agentId: bishop`)
|
|
||||||
|
|
||||||
### Stack Used
|
|
||||||
|
|
||||||
* React Native
|
|
||||||
* Supabase Realtime
|
|
||||||
|
|
||||||
### Tasks
|
|
||||||
|
|
||||||
* Text answers
|
|
||||||
* Save answers
|
|
||||||
* Partner answer retrieval
|
|
||||||
* Favorite answers
|
|
||||||
* Reactions foundation
|
|
||||||
|
|
||||||
### Deliverables
|
|
||||||
|
|
||||||
* Full answer interaction flow
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
# Batch 2E
|
|
||||||
|
|
||||||
## Custom Questions
|
|
||||||
|
|
||||||
### Lead
|
|
||||||
|
|
||||||
Private_Hudson (`agentId: private_hudson`)
|
|
||||||
|
|
||||||
### Support
|
|
||||||
|
|
||||||
Neo (`agentId: neo`)
|
|
||||||
|
|
||||||
### QA
|
|
||||||
|
|
||||||
Ripley
|
|
||||||
|
|
||||||
### Stack Used
|
|
||||||
|
|
||||||
* PostgreSQL
|
|
||||||
* Supabase
|
|
||||||
|
|
||||||
### Tasks
|
|
||||||
|
|
||||||
* Custom question creation
|
|
||||||
* Shared question libraries
|
|
||||||
* Validation rules
|
|
||||||
* Moderation structure
|
|
||||||
|
|
||||||
### Deliverables
|
|
||||||
|
|
||||||
* User generated question system
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
# STAGE 3
|
|
||||||
|
|
||||||
# Couple Interaction Systems
|
|
||||||
|
|
||||||
## Goal
|
|
||||||
|
|
||||||
Expand emotional interaction systems.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
# Batch 3A
|
|
||||||
|
|
||||||
## Emotional Check Ins
|
|
||||||
|
|
||||||
### Lead
|
|
||||||
|
|
||||||
Scarlett (`agentId: scarlett`)
|
|
||||||
|
|
||||||
### Support
|
|
||||||
|
|
||||||
Private_Hudson (`agentId: private_hudson`)
|
|
||||||
|
|
||||||
### QA
|
|
||||||
|
|
||||||
Ripley
|
|
||||||
|
|
||||||
### Stack Used
|
|
||||||
|
|
||||||
* React Native
|
|
||||||
* Expo
|
|
||||||
|
|
||||||
### Tasks
|
|
||||||
|
|
||||||
* Mood UI
|
|
||||||
* Emotional categories
|
|
||||||
* Check in interactions
|
|
||||||
* Emotional state display
|
|
||||||
|
|
||||||
### Deliverables
|
|
||||||
|
|
||||||
* Emotional check in system
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
# Batch 3B
|
|
||||||
|
|
||||||
## Reactions & Interaction Layer
|
|
||||||
|
|
||||||
### Lead
|
|
||||||
|
|
||||||
Neo (`agentId: neo`)
|
|
||||||
|
|
||||||
### Support
|
|
||||||
|
|
||||||
Scarlett (`agentId: scarlett`)
|
|
||||||
|
|
||||||
### QA
|
|
||||||
|
|
||||||
Bishop (`agentId: bishop`)
|
|
||||||
|
|
||||||
### Stack Used
|
|
||||||
|
|
||||||
* Supabase Realtime
|
|
||||||
* React Native
|
|
||||||
|
|
||||||
### Tasks
|
|
||||||
|
|
||||||
* Reactions
|
|
||||||
* State syncing
|
|
||||||
* Interaction updates
|
|
||||||
* Lightweight engagement systems
|
|
||||||
|
|
||||||
### Deliverables
|
|
||||||
|
|
||||||
* Realtime interaction layer
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
# Batch 3C
|
|
||||||
|
|
||||||
## Realtime Infrastructure
|
|
||||||
|
|
||||||
### Lead
|
|
||||||
|
|
||||||
Neo (`agentId: neo`)
|
|
||||||
|
|
||||||
### Support
|
|
||||||
|
|
||||||
Bishop (`agentId: bishop`)
|
|
||||||
|
|
||||||
### QA
|
|
||||||
|
|
||||||
Ripley
|
|
||||||
|
|
||||||
### Stack Used
|
|
||||||
|
|
||||||
* Supabase Realtime
|
|
||||||
|
|
||||||
### Tasks
|
|
||||||
|
|
||||||
* Realtime subscriptions
|
|
||||||
* Live sync validation
|
|
||||||
* Event handling
|
|
||||||
* Presence testing
|
|
||||||
|
|
||||||
### Deliverables
|
|
||||||
|
|
||||||
* Stable realtime infrastructure
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
# STAGE 4
|
|
||||||
|
|
||||||
# Memory & Media Systems
|
|
||||||
|
|
||||||
## Goal
|
|
||||||
|
|
||||||
Build emotional memory ecosystem.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
# Batch 4A
|
|
||||||
|
|
||||||
## Memory Vault
|
|
||||||
|
|
||||||
### Lead
|
|
||||||
|
|
||||||
Neo (`agentId: neo`)
|
|
||||||
|
|
||||||
### Support
|
|
||||||
|
|
||||||
Scarlett (`agentId: scarlett`)
|
|
||||||
|
|
||||||
### QA
|
|
||||||
|
|
||||||
Bishop (`agentId: bishop`)
|
|
||||||
|
|
||||||
### Stack Used
|
|
||||||
|
|
||||||
* Supabase
|
|
||||||
* Cloudflare R2
|
|
||||||
* React Native
|
|
||||||
|
|
||||||
### Tasks
|
|
||||||
|
|
||||||
* Memory save systems
|
|
||||||
* Favorites
|
|
||||||
* Memory categories
|
|
||||||
* Browsing UI
|
|
||||||
|
|
||||||
### Deliverables
|
|
||||||
|
|
||||||
* Functional memory vault
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
# Batch 4B
|
|
||||||
|
|
||||||
## Relationship Timeline
|
|
||||||
|
|
||||||
### Lead
|
|
||||||
|
|
||||||
Scarlett (`agentId: scarlett`)
|
|
||||||
|
|
||||||
### Support
|
|
||||||
|
|
||||||
Neo (`agentId: neo`)
|
|
||||||
|
|
||||||
### QA
|
|
||||||
|
|
||||||
Ripley
|
|
||||||
|
|
||||||
### Stack Used
|
|
||||||
|
|
||||||
* React Native
|
|
||||||
* Supabase
|
|
||||||
|
|
||||||
### Tasks
|
|
||||||
|
|
||||||
* Timeline rendering
|
|
||||||
* Milestone systems
|
|
||||||
* Timeline interactions
|
|
||||||
* Timeline UI
|
|
||||||
|
|
||||||
### Deliverables
|
|
||||||
|
|
||||||
* Relationship timeline
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
# Batch 4C
|
|
||||||
|
|
||||||
## Video Messaging Foundation
|
|
||||||
|
|
||||||
### Lead
|
|
||||||
|
|
||||||
Neo (`agentId: neo`)
|
|
||||||
|
|
||||||
### Support
|
|
||||||
|
|
||||||
Scarlett (`agentId: scarlett`)
|
|
||||||
|
|
||||||
### QA
|
|
||||||
|
|
||||||
Bishop (`agentId: bishop`)
|
|
||||||
|
|
||||||
### Stack Used
|
|
||||||
|
|
||||||
* React Native
|
|
||||||
* Expo AV
|
|
||||||
* Cloudflare R2
|
|
||||||
* Supabase
|
|
||||||
|
|
||||||
### Tasks
|
|
||||||
|
|
||||||
* Video recording flow
|
|
||||||
* Upload structure
|
|
||||||
* Metadata storage
|
|
||||||
* Playback system
|
|
||||||
|
|
||||||
### Deliverables
|
|
||||||
|
|
||||||
* Basic video messaging
|
|
||||||
|
|
||||||
### Status
|
|
||||||
|
|
||||||
Advanced video pipeline deferred for future scaling.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
# STAGE 5
|
|
||||||
|
|
||||||
# Admin & Content Systems
|
|
||||||
|
|
||||||
## Goal
|
|
||||||
|
|
||||||
Enable scalable content operations.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
# Batch 5A
|
|
||||||
|
|
||||||
## Admin Dashboard
|
|
||||||
|
|
||||||
### Lead
|
|
||||||
|
|
||||||
Private_Hudson (`agentId: private_hudson`)
|
|
||||||
|
|
||||||
### Support
|
|
||||||
|
|
||||||
Scarlett (`agentId: scarlett`)
|
|
||||||
|
|
||||||
### QA
|
|
||||||
|
|
||||||
Ripley
|
|
||||||
|
|
||||||
### Stack Used
|
|
||||||
|
|
||||||
* React Native Web
|
|
||||||
* Supabase
|
|
||||||
|
|
||||||
### Tasks
|
|
||||||
|
|
||||||
* Admin auth
|
|
||||||
* Content management UI
|
|
||||||
* Moderation queue
|
|
||||||
* Reporting tools
|
|
||||||
|
|
||||||
### Deliverables
|
|
||||||
|
|
||||||
* Admin dashboard
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
# Batch 5B
|
|
||||||
|
|
||||||
## Moderation Systems
|
|
||||||
|
|
||||||
### Lead
|
|
||||||
|
|
||||||
Private_Hudson (`agentId: private_hudson`)
|
|
||||||
|
|
||||||
### Support
|
|
||||||
|
|
||||||
Neo (`agentId: neo`)
|
|
||||||
|
|
||||||
### QA
|
|
||||||
|
|
||||||
Bishop (`agentId: bishop`)
|
|
||||||
|
|
||||||
### Stack Used
|
|
||||||
|
|
||||||
* PostgreSQL
|
|
||||||
* Supabase
|
|
||||||
|
|
||||||
### Tasks
|
|
||||||
|
|
||||||
* Report handling
|
|
||||||
* Approval systems
|
|
||||||
* Moderation APIs
|
|
||||||
* Enforcement logic
|
|
||||||
|
|
||||||
### Deliverables
|
|
||||||
|
|
||||||
* Moderation infrastructure
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
# Batch 5C
|
|
||||||
|
|
||||||
## Official _null Question Packs
|
|
||||||
|
|
||||||
### Lead
|
|
||||||
|
|
||||||
Private_Hudson (`agentId: private_hudson`)
|
|
||||||
|
|
||||||
### Support
|
|
||||||
|
|
||||||
Ripley
|
|
||||||
|
|
||||||
### QA
|
|
||||||
|
|
||||||
Scarlett (`agentId: scarlett`)
|
|
||||||
|
|
||||||
### Stack Used
|
|
||||||
|
|
||||||
* PostgreSQL
|
|
||||||
* Supabase
|
|
||||||
|
|
||||||
### Tasks
|
|
||||||
|
|
||||||
* Pack structure
|
|
||||||
* Metadata standards
|
|
||||||
* Scheduling
|
|
||||||
* Release organization
|
|
||||||
|
|
||||||
### Deliverables
|
|
||||||
|
|
||||||
* Official curated question system
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
# STAGE 6
|
|
||||||
|
|
||||||
# Polish & Growth Systems
|
|
||||||
|
|
||||||
## Goal
|
|
||||||
|
|
||||||
Refine production release quality.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
# Batch 6A
|
|
||||||
|
|
||||||
## Notification Refinement
|
|
||||||
|
|
||||||
### Lead
|
|
||||||
|
|
||||||
Neo (`agentId: neo`)
|
|
||||||
|
|
||||||
### Support
|
|
||||||
|
|
||||||
Ripley
|
|
||||||
|
|
||||||
### QA
|
|
||||||
|
|
||||||
Bishop (`agentId: bishop`)
|
|
||||||
|
|
||||||
### Stack Used
|
|
||||||
|
|
||||||
* Expo Push Notifications
|
|
||||||
|
|
||||||
### Tasks
|
|
||||||
|
|
||||||
* Notification timing
|
|
||||||
* Quiet hours
|
|
||||||
* Reminder refinement
|
|
||||||
* Notification sanity testing
|
|
||||||
|
|
||||||
### Deliverables
|
|
||||||
|
|
||||||
* Balanced notification system
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
# Batch 6B
|
|
||||||
|
|
||||||
## Shareable Recaps
|
|
||||||
|
|
||||||
### Lead
|
|
||||||
|
|
||||||
Scarlett (`agentId: scarlett`)
|
|
||||||
|
|
||||||
### Support
|
|
||||||
|
|
||||||
Private_Hudson (`agentId: private_hudson`)
|
|
||||||
|
|
||||||
### QA
|
|
||||||
|
|
||||||
Ripley
|
|
||||||
|
|
||||||
### Stack Used
|
|
||||||
|
|
||||||
* React Native
|
|
||||||
* Supabase
|
|
||||||
|
|
||||||
### Tasks
|
|
||||||
|
|
||||||
* Anniversary recaps
|
|
||||||
* Story summaries
|
|
||||||
* Share cards
|
|
||||||
* Recap layouts
|
|
||||||
|
|
||||||
### Deliverables
|
|
||||||
|
|
||||||
* Shareable recap systems
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
# Batch 6C
|
|
||||||
|
|
||||||
## Stability & Production Pass
|
|
||||||
|
|
||||||
### Lead
|
|
||||||
|
|
||||||
Bishop (`agentId: bishop`)
|
|
||||||
|
|
||||||
### Support
|
|
||||||
|
|
||||||
Neo (`agentId: neo`)
|
|
||||||
|
|
||||||
* Scarlett (`agentId: scarlett`)
|
|
||||||
|
|
||||||
### QA
|
|
||||||
|
|
||||||
Ripley
|
|
||||||
|
|
||||||
### Stack Used
|
|
||||||
|
|
||||||
* Expo
|
|
||||||
* React Native
|
|
||||||
* Supabase
|
|
||||||
|
|
||||||
### Tasks
|
|
||||||
|
|
||||||
* Crash testing
|
|
||||||
* Performance optimization
|
|
||||||
* Memory leak testing
|
|
||||||
* Offline validation
|
|
||||||
* Final regression testing
|
|
||||||
|
|
||||||
### Deliverables
|
|
||||||
|
|
||||||
* Production ready release candidate
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
# Final Release Gate
|
|
||||||
|
|
||||||
## Launch Requirements
|
|
||||||
|
|
||||||
* Stable onboarding
|
|
||||||
* Stable pairing
|
|
||||||
* Stable question systems
|
|
||||||
* Secure storage
|
|
||||||
* Privacy validation
|
|
||||||
* Notification sanity
|
|
||||||
* Stable realtime systems
|
|
||||||
* Crash free baseline
|
|
||||||
* Performance validation
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
# Execution Principle
|
|
||||||
|
|
||||||
Do not build ahead of current stage.
|
|
||||||
|
|
||||||
Do not solve imaginary scaling problems before real users exist.
|
|
||||||
|
|
||||||
Ship stable emotional experiences incrementally.
|
|
||||||
|
|
||||||
Because developers routinely try to build interplanetary infrastructure for apps with seven users and one emotionally vulnerable beta tester.
|
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
import { registerRootComponent } from 'expo';
|
||||||
|
|
||||||
|
import App from './App';
|
||||||
|
|
||||||
|
// registerRootComponent calls AppRegistry.registerComponent('main', () => App);
|
||||||
|
// It also ensures that whether you load the app in Expo Go or in a native build,
|
||||||
|
// the environment is set up appropriately
|
||||||
|
registerRootComponent(App);
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
# Utilities placeholder
|
||||||
File diff suppressed because it is too large
Load Diff
|
|
@ -0,0 +1,28 @@
|
||||||
|
{
|
||||||
|
"name": "relationship-app",
|
||||||
|
"version": "1.0.1",
|
||||||
|
"main": "index.ts",
|
||||||
|
"scripts": {
|
||||||
|
"start": "expo start",
|
||||||
|
"android": "expo start --android",
|
||||||
|
"ios": "expo start --ios",
|
||||||
|
"web": "expo start --web"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"expo": "~54.0.33",
|
||||||
|
"expo-status-bar": "~3.0.9",
|
||||||
|
"react": "19.1.0",
|
||||||
|
"react-native": "0.81.5"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@types/react": "~19.1.0",
|
||||||
|
"@typescript-eslint/eslint-plugin": "^8.59.3",
|
||||||
|
"@typescript-eslint/parser": "^8.59.3",
|
||||||
|
"eslint": "^10.3.0",
|
||||||
|
"eslint-config-prettier": "^10.1.8",
|
||||||
|
"eslint-plugin-prettier": "^5.5.5",
|
||||||
|
"prettier": "^3.8.3",
|
||||||
|
"typescript": "~5.9.2"
|
||||||
|
},
|
||||||
|
"private": true
|
||||||
|
}
|
||||||
|
|
@ -1,77 +0,0 @@
|
||||||
# Project Requirements — Relationship App
|
|
||||||
|
|
||||||
These requirements apply to all agents working on the Couples Connection app.
|
|
||||||
|
|
||||||
## Project Philosophy
|
|
||||||
|
|
||||||
- Feel private, warm, calm, intentional, and human
|
|
||||||
- Prioritize emotional connection over productivity
|
|
||||||
- Provide smooth, low-friction interactions
|
|
||||||
- Avoid social media patterns, notification spam, and addiction mechanics
|
|
||||||
- Maintain fast perceived performance
|
|
||||||
- 5 meaningful minutes > turning relationships into homework
|
|
||||||
|
|
||||||
## Technology Stack
|
|
||||||
|
|
||||||
- **Framework:** React Native + Expo
|
|
||||||
- **Language:** TypeScript
|
|
||||||
- **Backend:** Supabase (Auth, Database, Realtime, Storage)
|
|
||||||
- **Media Storage:** Cloudflare R2
|
|
||||||
- **Push Notifications:** Expo Push Notifications
|
|
||||||
- **Styling:** NativeWind (Tailwind CSS for React Native)
|
|
||||||
- **UI Components:** shadcn/ui-style primitives adapted for mobile
|
|
||||||
- **NOT Next.js.** NOT a web app. This is a mobile app built with React Native + Expo.
|
|
||||||
|
|
||||||
## Frontend Standards
|
|
||||||
|
|
||||||
- React Native with Expo (cross-platform: iOS + Android)
|
|
||||||
- NativeWind for styling (Tailwind CSS syntax for native)
|
|
||||||
- shadcn/ui-style component primitives adapted for mobile
|
|
||||||
- Responsive to phone form factors only (no desktop layout concerns)
|
|
||||||
- Smooth animations and transitions (haptics where appropriate)
|
|
||||||
- Loading states, error states, accessible interfaces
|
|
||||||
- Warm, intimate, calm design language
|
|
||||||
|
|
||||||
## Backend Standards
|
|
||||||
|
|
||||||
- Supabase for all backend services (auth, database, realtime, storage)
|
|
||||||
- Row Level Security (RLS) on all tables — strict couple access isolation
|
|
||||||
- Validate all input on both client and server side
|
|
||||||
- Supabase Edge Functions for custom logic where needed
|
|
||||||
- Structured error handling, no silent failures
|
|
||||||
|
|
||||||
## Database Standards
|
|
||||||
|
|
||||||
- PostgreSQL via Supabase
|
|
||||||
- Row Level Security (RLS) enforced on all tables
|
|
||||||
- Couples isolation: users can only access their own couple's data
|
|
||||||
- Schema migrations via Supabase dashboard or CLI
|
|
||||||
|
|
||||||
## Auth Standards
|
|
||||||
|
|
||||||
- Supabase Auth with email magic links (initial MVP)
|
|
||||||
- Optional Google/Apple login later
|
|
||||||
- No traditional passwords
|
|
||||||
- No phone auth initially
|
|
||||||
|
|
||||||
## Security & Privacy
|
|
||||||
|
|
||||||
- This app handles intimate personal data — security and privacy are paramount
|
|
||||||
- Supabase Row Level Security on all tables
|
|
||||||
- Private storage buckets with signed URLs
|
|
||||||
- Strict couple access isolation (no cross-couple data leaks)
|
|
||||||
- Encrypted transport (HTTPS/WSS)
|
|
||||||
- No tracking, no surveillance features
|
|
||||||
- Users must trust the app emotionally and privately
|
|
||||||
|
|
||||||
## Code Quality
|
|
||||||
|
|
||||||
- Readable, maintainable, no overengineering
|
|
||||||
- Remove dead code, consistent formatting
|
|
||||||
- Document non-obvious logic
|
|
||||||
- Prefer clarity over cleverness
|
|
||||||
|
|
||||||
## Requirement Change Policy
|
|
||||||
|
|
||||||
Requirements may NOT be modified without explicit approval from `_null`.
|
|
||||||
All proposed changes must include: rationale, technical impact, security implications, affected systems, rollback considerations.
|
|
||||||
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"extends": "expo/tsconfig.base",
|
||||||
|
"compilerOptions": {
|
||||||
|
"strict": true
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue