Architecture decision records¶
Each architectural decision in this project came with a short ADR
capturing the context, alternatives considered, and the consequences.
Files live at
docs/adr/
in the repo.
| # | Decision |
|---|---|
| 0001 | Stack choice — Textual + SQLite + XDG paths |
| 0002 | Single SQLite connection — no writer thread |
| 0003 | Layered screen architecture and the AppScreen contract |
| 0004 | Working-hours quiet — config-driven notification suppression |
| 0005 | Project → sprint → task hierarchy and inline assignment syntax |
| 0006 | PombanEngine facade for timer + session orchestration |
When to write a new one¶
Add docs/adr/NNNN-<slug>.md whenever you change:
- A persistence schema (any
core/db.pymigration). - A protocol between layers (
core/↔screens/). - A dependency choice (adding / removing a runtime dep).
- A user-visible behaviour that's not obvious from the code.
Pattern is Context · Decision · Consequences · Usage. The Usage section is for the next contributor: how to extend this decision, what patterns to follow, what to avoid.