Current Project State
Status: Generated Last reviewed: Generated from repository state by yarn docs:generateScope: Local repository truth for the TwoMore codebase. This is not a live-production audit unless a linked source explicitly says a remote environment was verified.
This page is a generated read model. When it disagrees with a dated milestone, roadmap, or rebuild-log entry, trust this page for current repository facts and treat the older file as historical context.
Snapshot Source
| Fact | Current value | Source |
|---|---|---|
| Package manager | yarn@4.4.1 | package.json |
| Mobile app version | 0.7.0 | apps/mobile/app.json |
| Runtime version policy | appVersion | apps/mobile/app.json |
| Expo | ~55.0.27 | workspace package manifests |
| React Native | 0.83.6 | workspace package manifests |
| React | 19.2.0 | workspace package manifests |
| Next.js | ~15.5.19 | workspace package manifests |
| Tamagui | 1.144.3 | workspace package manifests |
| Supabase JS | ^2.98.0 | workspace package manifests |
| Supabase migrations | 431 | supabase/migrations/*.sql |
| Latest migration | 00439_dues_confirm_overpay_hint.sql | supabase/migrations/*.sql |
| Web pages | 71 | apps/web/app/**/page.tsx |
| Web route/layout/handler files | 77 | apps/web/app/**/{page.tsx,route.ts,layout.tsx} |
| ESLint project rules | 53 | packages/eslint-plugin/index.js |
| ESLint rule docs | 53 | packages/eslint-plugin/docs/rules/*.md |
Product Shape
- Mobile: Expo Router app with iOS, Android, and EAS update support.
- Web: Next App Router shell mounting shared feature screens through router-agnostic packages.
- Backend: Supabase Postgres, RLS, Edge Functions, storage buckets, and migrations under
supabase/. - Runtime freshness: zero persistent Supabase Realtime WebSocket channels. Current freshness uses stale-time contracts, focus/foreground refetch, bounded polling on volatile surfaces, push-triggered invalidation, and mutation invalidation.
- Payments: manual session-fee flow and mock checkout exist for debugging. Real PortOne production flow remains external-credential/runtime gated.
- Auth: Kakao native dependency/scaffold and dev login exist. Production IdP onboarding remains external-credential gated.
Architecture And Enforcement
| Area | Current value | Source |
|---|---|---|
| ArchUnitTS fitness rules | 16 | architecture-archunit.test.ts |
| AGENTS.md hard constraints | 43 | AGENTS.md |
| Mechanically enforced AGENTS.md constraints | 40 | AGENTS.md enforcement column |
| Mechanical coverage | 0.93 | computed from AGENTS.md |
| DOC-planned AGENTS.md entries | 3 | AGENTS.md enforcement column |
| AGENTS.md byte size | 16708/28672 | yarn lint:agents-md budget |
| Ratchet rules | 4 | eslint.ratchet.config.mjs |
| Ratchet waivers | 75 | eslint.ratchet.config.mjs |
Ratchet waiver split:
| Rule | Waivers |
|---|---|
@twomore/no-inline-style-with-vars | 29 |
@twomore/no-padding-top-in-features | 28 |
@twomore/no-stylesheet-create | 16 |
@twomore/no-raw-rn-pressable-in-features | 2 |
Verification Commands
This generated doc intentionally does not embed the latest command results or commit hash. Those values either become stale immediately or belong in CI output. Use:
yarn docs:check
yarn lint:agents-md
yarn checkCurrent Launch Blockers
Launch blockers are not generated from source files. Keep the actionable owner/external gates in Pre-launch Checklist and the readiness ledger in Production Readiness.
Refresh Procedure
yarn docs:generate
yarn docs:check