Decision record
Architecture decision records.
Each record captures one significant decision, its context, the options
considered, and its consequences. Every record applies the decision test in
docs/ARCHITECTURE.md.
Records are numbered and never renumbered. A superseded record stays in place and is marked with the record that replaces it.
| Record | Title | Status |
|---|---|---|
| 0001 | Local-first, file-based moderation workspace | Accepted; amended by 0004 and 0012 |
| 0002 | Python core with a TypeScript UI and one data contract | Superseded by 0004 |
| 0003 | Provider boundary, prompt versioning, and spend control | Accepted; key and spend in the proxy under 0004 |
| 0004 | TypeScript browser core, folder workspace, and a local thin proxy | Accepted; amended by 0008 |
| 0005 | Reducing model cost: prompt caching, batching, and exact-match reuse | Accepted |
| 0006 | What the AI may be sent when drafting feedback | Accepted; amended 2026-10-05 (suggesting an edit) and by 0011 |
| 0007 | Sending a submission's figures to the AI | Accepted |
| 0008 | Workspaces made by name, in one folder, and a home screen that shows them | Accepted; amended by 0010 and 0013 |
| 0009 | Sending the image of a rubric to the AI, to propose a transcription | Accepted |
| 0010 | Modules group assessments, and hold once what they share | Accepted |
| 0011 | Suggesting a comment for the moderator's verdict | Accepted |
| 0012 | Approving many anonymised texts by exception, in one recorded action | Accepted |
| 0013 | A workspace kept elsewhere can be moved into the workspaces folder | Accepted |
This page is generated from docs/decisions/README.md in the code, so the two are the same words.