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.12.0 | apps/mobile/app.json |
| Runtime version policy | appVersion | apps/mobile/app.json |
| Expo | ~57.0.33 | workspace package manifests |
| React Native | 0.86.3 | workspace package manifests |
| React | 19.2.3 | workspace package manifests |
| Next.js | ~16.4.3 | workspace package manifests |
| Tamagui | 2.7.7 | workspace package manifests |
| Supabase JS | ^2.117.2 | workspace package manifests |
| Supabase migrations | 770 | supabase/migrations/*.sql |
| Latest migration | 00778_ranking_row_facts_rated_only.sql | supabase/migrations/*.sql |
| Web pages | 105 | apps/web/app/**/page.tsx |
| Web route/layout/handler files | 114 | apps/web/app/**/{page.tsx,route.ts,layout.tsx} |
| ESLint project rules | 112 | packages/eslint-plugin/index.js |
| ESLint rule docs | 112 | 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 | 19 | architecture-archunit.test.ts |
| AGENTS.md hard constraints | 73 | AGENTS.md |
| Mechanically enforced AGENTS.md constraints | 71 | AGENTS.md enforcement column |
| Mechanical coverage | 0.97 | computed from AGENTS.md |
| DOC-planned AGENTS.md entries | 2 | AGENTS.md enforcement column |
| AGENTS.md byte size | 28574/28672 | yarn lint:agents-md budget |
| Ratchet rules | 7 | eslint.ratchet.config.mjs |
| Ratchet waivers | 40 | eslint.ratchet.config.mjs |
Ratchet waiver split:
| Rule | Waivers |
|---|---|
@twomore/no-error-toast | 28 |
@twomore/no-legacy-badge-and-chip | 7 |
@twomore/no-as-never | 1 |
@twomore/no-legacy-forms | 1 |
@twomore/no-localecompare-sort | 1 |
@twomore/no-padding-top-in-features | 1 |
@twomore/no-rn-accessibility-props | 1 |
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