Docs · Architecture decisions

Architecture decision records

Who this is for: Contributors who need the short index before reading a full ADR.

When you finish: You know which decision covers decimals, K constants, PDOC rounding, API keys, and metering.

Full text lives beside this folder as docs/ADR-001-decimal.md through docs/ADR-007-pdoc-binary64-cpp.md. Thin stubs in this folder point to those files.

  • ADR-001: Wrap rust_decimal in string-constructed newtypes; no floats in the engine.
  • ADR-002: Use CRA published whole-dollar K; accept bracket threshold discontinuity.
  • ADR-003: Reserve rounding_compat (t4127 default; pdoc failed closed until finding 003 named the rule).
  • ADR-004: Store API key SHA-256 digests, not password KDFs.
  • ADR-005: Refuse calculations when D1 metering read/write fails.
  • ADR-006: Defer Stripe billing for free early access; withdraw kill-test route C.
  • ADR-007: Implement rounding_compat: pdoc as integer-emulated binary64 CPP; default stays exact decimal.

Last reviewed: 2026-10-22
Engine: 0.1.0

Source: docs/adr/README.md in the Takehome repository, rendered as written.