Architecture Decision Records¶
An ADR records a decision that was expensive to make and would be expensive to reverse: a dependency, a wire format, a policy that other code now assumes. Routine implementation choices do not get one.
Format: context → decision → consequences → alternatives considered. Written once, then amended only with a superseding record; an ADR is a historical document, not living documentation.
Index¶
| # | Title | Status |
|---|---|---|
| 0001–0002 | Open knowledge-representation layer; planner ↔ codec separation | Accepted — recorded inline in src/FFOccamMcp.Core/Codecs/ and Knowledge/ |
| 0005 | Access classification | Accepted — docs/architecture/semantic-contract.md |
| 0006 | Structure-aware focus | Accepted — docs/architecture/semantic-contract.md |
| 0007 | Projection-first budget | Accepted — docs/architecture/semantic-contract.md |
| 0010 | Proof-of-read via HMAC time-bucket sentinels | Accepted |
| 0011 | Test stack: xunit, FsCheck, coverlet | Accepted |
| 0012 | Central package management and SDK pinning | Accepted |
| 0013 | Warnings-as-errors per project, not repo-wide | Accepted |
| 0014 | TimeProvider with an in-product manual clock |
Accepted |
| 0015 | Cross-platform claims require committed artefacts | Accepted |
| 0016 | Capability exam and behaviour-derived tool tiers | Accepted (engine); administration partially implemented |
| 0017 | Cascade facade occam(url, task, budget) |
Accepted |
| 0018 | Env-gated crawl MCP (OCCAM_CRAWL_MCP) |
Accepted — MVP shipped |
Numbers 0001–0009 predate this directory. They were recorded in the documents listed above and in source comments; they are indexed here so the numbering line stays single and unambiguous. New records start at 0010.