What's wrong
README.md points readers at it directly:
See ARCHITECTURE.md §4 for the full system design.
And it's cited by section number throughout the codebase as the source of truth for real design decisions, e.g.:
CONTRIBUTING.md — "see ARCHITECTURE.md §4 for the intended shape of apps/* and packages/*"
apps/badge/src/index.ts — "Framework-free by design (ARCHITECTURE.md §4.1)", "a cached 'verified' image becomes a forgery vector (ARCHITECTURE.md §4.2)"
packages/api-client/src/client.ts — "Thin typed fetch wrapper... (ARCHITECTURE.md §2.1)", "Latency budget: ≤150ms (ARCHITECTURE.md §2.3)"
packages/api-client/src/types.ts — "the frontend never computes trust logic (ARCHITECTURE.md §1's golden rule)"
apps/extension/src/background/index.ts — "Mirrors the backend's Redis-first cache strategy (ARCHITECTURE.md §2.3)"
apps/dashboard/app/project/[id]/*.tsx — "(ARCHITECTURE.md §2.3)", "(ARCHITECTURE.md §4.2)"
.github/workflows/ci.yml — "Playwright e2e per ARCHITECTURE.md §6"
The file does not exist anywhere in the repo (checked at root and searched the full tree).
Impact
Every one of these comments is currently an unverifiable claim — there's no way to check whether "§2.3" actually says what the comment implies, and new contributors have no single doc explaining the golden rule ("frontend never computes trust logic"), the cache strategy, latency budgets, or the intended app/package boundaries.
Suggested fix
Write ARCHITECTURE.md at the repo root with (at minimum) the sections already cited by section number in code comments:
- §1 — core principles (frontend never holds keys / never computes trust logic)
- §2.1, §2.3 — backend API contract & caching/latency strategy
- §4, §4.1, §4.2, §4.3 — app/package boundaries, badge constraints, dashboard project page spec
- §5.1 — API client generation strategy
- §6 — testing strategy (Playwright e2e)
What's wrong
README.mdpoints readers at it directly:And it's cited by section number throughout the codebase as the source of truth for real design decisions, e.g.:
CONTRIBUTING.md— "seeARCHITECTURE.md§4 for the intended shape ofapps/*andpackages/*"apps/badge/src/index.ts— "Framework-free by design (ARCHITECTURE.md §4.1)", "a cached 'verified' image becomes a forgery vector (ARCHITECTURE.md §4.2)"packages/api-client/src/client.ts— "Thin typed fetch wrapper... (ARCHITECTURE.md §2.1)", "Latency budget: ≤150ms (ARCHITECTURE.md §2.3)"packages/api-client/src/types.ts— "the frontend never computes trust logic (ARCHITECTURE.md §1's golden rule)"apps/extension/src/background/index.ts— "Mirrors the backend's Redis-first cache strategy (ARCHITECTURE.md §2.3)"apps/dashboard/app/project/[id]/*.tsx— "(ARCHITECTURE.md §2.3)", "(ARCHITECTURE.md §4.2)".github/workflows/ci.yml— "Playwright e2e per ARCHITECTURE.md §6"The file does not exist anywhere in the repo (checked at root and searched the full tree).
Impact
Every one of these comments is currently an unverifiable claim — there's no way to check whether "§2.3" actually says what the comment implies, and new contributors have no single doc explaining the golden rule ("frontend never computes trust logic"), the cache strategy, latency budgets, or the intended app/package boundaries.
Suggested fix
Write
ARCHITECTURE.mdat the repo root with (at minimum) the sections already cited by section number in code comments: