Agentic-AI-Eval-Harness

DECISION RECORDS — The Alternative, The Reason, The Accepted Cost

Ten decisions that shaped this platform, in ADR-condensed form. The FDE field guide is blunt about why this file exists: interviewers read the decisions section first, because “the job is judgment under constraints and decisions are the only section that exhibits judgment… the reason the second-best option lost is what proves an engineer was present.”

Format: Context → Options → Decision → Accepted cost. Status is live unless marked superseded. File references are to this repository.


D-01 · Deterministic scripted backend for all measured numbers

D-02 · stdlib-first core, one runtime dependency (PyYAML)

D-03 · Adapter protocol + 5 built-in pattern agents

D-04 · Rubric judge as the measured backend; live client implemented

D-05 · Regression gates fail closed

D-06 · 3-bucket failure taxonomy at schema level

D-07 · Markdown + JSON as the reporting surface; no dashboard

D-08 · sha256-derived seeds everywhere (supersedes naive hash())

D-09 · Explicit pytest_plugins in conftest (supersedes entry-point-only)

D-10 · mtime-based run discovery in the demo

D-11 · Zero-dependency built-in HTTP server for Web Dashboard (extends D-07)

D-12 · Multi-stage rootless Docker containerization

D-13 · Explicit CRLF normalization in dataset integrity verification


Decision density, by the guide’s own metric

The field guide’s write-up structure asks for “three to five [decisions], each one line: the option rejected, the reason, the cost you accepted.” This file holds thirteen because the engagement’s real trade-off surface was wider than the guide’s minimum bar — but every record keeps the same three fields. If you read only three, read D-01 (what we refused to fabricate), D-05 (what we chose to make annoying), and D-11 (what we chose to build with zero dependencies). Those three explain the product’s shape more than any architecture diagram.

D11 — Run identity preimage v2 (2026-10)

D12 — Regression gates verify comparability before numbers (2026-10)

D13 — Network sandbox boundary v0.2 (2026-10)

D14 — Live-judge evaluate() can never raise into the evaluator phase (2026-10, self-review)