ADR-011 Policy-Trace ATO Evidence Statement (Closes #413)
On this page
Posture statement
Canopy’s eligibility-determination logic depends on hundreds of policy values — federal income thresholds, jurisdiction-specific deduction percentages, time limits, operational windows. Under ADR-011 every such value MUST be:
-
(a) in
rulesets/{jurisdiction}/jurisdiction.tomlwith a matching entry inrulesets/{jurisdiction}/citations.tomlpointing at an authoritative source (PAMMS section, federal CFR / USC citation, agency operational tunable), OR -
(b) in
rulesets/federal/*.jsonwith an inline_citationfield on the value, OR -
(c) in
compliance/adr-011-literal-allowlist.tomlwith a written rationale (e.g. "constant required by RFC X", "test fixture", "doc string").
There is no fourth case. A policy value that does not match (a), (b), or (c) fails the build. The four gates listed below collectively prove this.
This posture is the official ATO evidence for ADR-011. Every PR that touches a policy value re-runs the gates; CI rejects drift before it lands on main.
The four gates
| Gate | What it does | Proves part of | How to regenerate |
|---|---|---|---|
|
Walks every key in |
(a) |
|
|
Compiles every JDM ruleset under |
(b) |
|
|
Greps |
(c) — surfaces values that escaped (a) and (b) |
|
|
Companion gate: scans |
(a) — closes the loophole where a missing TOML key would silently default to a hardcoded value |
|
End-to-end regeneration
Producing a fresh evidence pack for an ATO submission:
# 1. Refresh PAMMS source repos (PolicySource trait — Georgia uses GitLab clones).
cargo xtask policy sync-cache
# 2. Run all four gates.
cargo xtask policy audit
cargo xtask rules check
cargo xtask policy audit-literals
cargo xtask policy audit-unwraps
# 3. Snapshot the citation manifest for the evidence binder.
cp rulesets/georgia/citations.toml evidence/adr-011-citations-$(date +%Y-%m-%d).toml
All four commands exit 0 on a clean tree. Non-zero exits are the failure modes — every emitted line names the offending key / file / pattern.
What this does NOT prove
Per the scoping in ADR-011 §6, this evidence statement covers policy traceability only. It does not certify:
-
The accuracy of the cited value — a PAMMS section may have been amended after the citation’s
verified_date. The audit emits staleness warnings (configurable threshold) but does not block on them; periodic re-verification is a separate operational process tracked in the evidence binder’s "currency review" log. -
The semantic correctness of the JDM ruleset —
cargo xtask rules checkproves a ruleset compiles, not that it implements the cited policy correctly. Per-program unit + integration tests cover semantics; the JDM rewrite plan documents the determination-flow coverage. -
The downstream use of FTI / IEVS / SSA data — those are covered by ADR-004 and the
compliance-data-tenancyaudit, not by ADR-011.
Allowlist hygiene
compliance/adr-011-literal-allowlist.toml is a narrow exception list. The audit rejects:
-
Empty
reasonfields. -
Rows that match unbounded patterns (
*alone). -
Rows older than the freshness window without a
verified_daterefresh.
Per ADR-011 §5, every allowlist row is reviewed at each compliance currency cycle. Allowlist size on main as of {{revdate}} (regenerate via wc -l compliance/adr-011-literal-allowlist.toml).
Cross-references
-
ADR-013 — Plan Lifecycle (the precommit Q4 / Q6 enforcement that keeps plan deviations off the audit list)
-
ATO Readiness & Compliance Matrix (cross-control mapping — Pub 1075, HIPAA, IEVS, NIST 800-53)
-
Auditor Handbook (sister document for the per-handler audit gates)