Skip to content

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 ​

FactCurrent valueSource
Package manageryarn@4.4.1package.json
Mobile app version0.12.0apps/mobile/app.json
Runtime version policyappVersionapps/mobile/app.json
Expo~57.0.33workspace package manifests
React Native0.86.3workspace package manifests
React19.2.3workspace package manifests
Next.js~16.4.3workspace package manifests
Tamagui2.7.7workspace package manifests
Supabase JS^2.117.2workspace package manifests
Supabase migrations770supabase/migrations/*.sql
Latest migration00778_ranking_row_facts_rated_only.sqlsupabase/migrations/*.sql
Web pages105apps/web/app/**/page.tsx
Web route/layout/handler files114apps/web/app/**/{page.tsx,route.ts,layout.tsx}
ESLint project rules112packages/eslint-plugin/index.js
ESLint rule docs112packages/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 ​

AreaCurrent valueSource
ArchUnitTS fitness rules19architecture-archunit.test.ts
AGENTS.md hard constraints73AGENTS.md
Mechanically enforced AGENTS.md constraints71AGENTS.md enforcement column
Mechanical coverage0.97computed from AGENTS.md
DOC-planned AGENTS.md entries2AGENTS.md enforcement column
AGENTS.md byte size28574/28672yarn lint:agents-md budget
Ratchet rules7eslint.ratchet.config.mjs
Ratchet waivers40eslint.ratchet.config.mjs

Ratchet waiver split:

RuleWaivers
@twomore/no-error-toast28
@twomore/no-legacy-badge-and-chip7
@twomore/no-as-never1
@twomore/no-legacy-forms1
@twomore/no-localecompare-sort1
@twomore/no-padding-top-in-features1
@twomore/no-rn-accessibility-props1

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:

bash
yarn docs:check
yarn lint:agents-md
yarn check

Current 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 ​

bash
yarn docs:generate
yarn docs:check

Markdown remains the source of truth. Run yarn docs:check before handoff.