Render A-series sheets in landscape (√2:1), size them off a single --sheet-base variable so A2/A3/A4 keep exact ISO ratios while leaving room for labels (which now wrap). Load Playfair Display + Cutive Mono via the coollabs fonts API: Playfair Display for headings, Cutive Mono for the board.
Andon — Weak Point Visualisation
A digital twin of the company's physical Lean/TPS project Board. Team members pull the Andon on a board section to file a Defect about the board itself; a dashboard aggregates those defects into a red-dot map that reveals the board's Weak Points, so the standard can be radically improved as it rolls out company-wide (Dantotsu).
Two apps, one codebase, behind Google SSO (@theodo.com):
andon.apoena.dev— the reporting view: click an ASCII board section, pick your project, describe the problem.dashboard.andon.apoena.dev— the same board as a red-dot defect map, a reverse-chronological feed, and verbatims in a modal.
Status
Design phase. No code yet — the documentation below captures the agreed language, decisions, and goal-driven design. Build order is driven by the House of Quality: F1 board definition → F2/F3 filing → F4/F5 weak-point map.
Documentation
| Document | What it holds |
|---|---|
| CONTEXT.md | Ubiquitous language — the glossary (Board, Block, Section, Defect, Weak Point, Andon, Verbatim, Project, Reporter) that code, tests, and docs use verbatim. |
| DESIGN.md | Goal-driven design (QFD): Goals → Functions → How → Components, the importance/conflict matrices, the critical performance budget, and the trade-off ledger. |
| docs/house-of-quality.md | TikZ "House of Quality" — a visual rendering of the DESIGN.md matrices for review/slides. |
| docs/adr/0001 | Why a Defect is feedback about the Board artifact, not the reporter's project work. |
| docs/adr/0002 | Why attribution is transparent rather than blameless. |
| docs/adr/0003 | Why the data store is Coolify-managed Postgres, not SQLite. |
| tasks/plan.md | Implementation plan — phased, dependency-ordered tasks with acceptance criteria. |
Stack
Nuxt 3 (full-stack Vue) · PostgreSQL + Drizzle (Coolify-managed, auto-backups) ·
Google OAuth (hd=theodo.com + server-side domain recheck) · Web Push (PWA) ·
Docker Compose on Coolify.
Deployment notes
- Use Coolify's managed Postgres (with scheduled backups); the app connects
via
DATABASE_URL. See ADR 0003. - Don't auto-deploy from
main— every merge would deploy. Use a tagged release or manual trigger. - Don't trust the OAuth
hdclaim alone — verify the email domain server-side.