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.7.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 migrations431supabase/migrations/*.sql
Latest migration00439_dues_confirm_overpay_hint.sqlsupabase/migrations/*.sql
Web pages71apps/web/app/**/page.tsx
Web route/layout/handler files77apps/web/app/**/{page.tsx,route.ts,layout.tsx}
ESLint project rules53packages/eslint-plugin/index.js
ESLint rule docs53packages/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 constraints43AGENTS.md
Mechanically enforced AGENTS.md constraints40AGENTS.md enforcement column
Mechanical coverage0.93computed from AGENTS.md
DOC-planned AGENTS.md entries3AGENTS.md enforcement column
AGENTS.md byte size16708/28672yarn lint:agents-md budget
Ratchet rules4eslint.ratchet.config.mjs
Ratchet waivers75eslint.ratchet.config.mjs

Ratchet waiver split:

RuleWaivers
@twomore/no-inline-style-with-vars29
@twomore/no-padding-top-in-features28
@twomore/no-stylesheet-create16
@twomore/no-raw-rn-pressable-in-features2

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.