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.8.0apps/mobile/app.json
Runtime version policyappVersionapps/mobile/app.json
Expo~55.0.27workspace package manifests
React Native0.83.6workspace package manifests
React19.2.0workspace package manifests
Next.js~15.5.19workspace package manifests
Tamagui1.144.3workspace package manifests
Supabase JS^2.98.0workspace package manifests
Supabase migrations646supabase/migrations/*.sql
Latest migration00654_club_detail_bundle_media_uploader_profiles.sqlsupabase/migrations/*.sql
Web pages89apps/web/app/**/page.tsx
Web route/layout/handler files95apps/web/app/**/{page.tsx,route.ts,layout.tsx}
ESLint project rules82packages/eslint-plugin/index.js
ESLint rule docs82packages/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 rules16architecture-archunit.test.ts
AGENTS.md hard constraints67AGENTS.md
Mechanically enforced AGENTS.md constraints64AGENTS.md enforcement column
Mechanical coverage0.96computed from AGENTS.md
DOC-planned AGENTS.md entries3AGENTS.md enforcement column
AGENTS.md byte size28026/28672yarn lint:agents-md budget
Ratchet rules0eslint.ratchet.config.mjs
Ratchet waivers0eslint.ratchet.config.mjs

Ratchet waiver split:

RuleWaivers

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.