diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 22ca7e966dc..3570b4744a9 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -4,9 +4,9 @@ Fixes # ## Test plan -- [ ] YAML tests whose expected values come from an external source (statute, official form or worksheet, official calculator) +- [ ] For policy changes: YAML tests whose expected values come from an external source (statute, official form or worksheet, official calculator); otherwise mark not applicable. - [ ] `make format` - [ ] Changelog fragment in `changelog.d/` - + axiom: encoded-correct | encoded | queued | n/a: diff --git a/CLAUDE.md b/CLAUDE.md index a1563390363..b5dd7352e10 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -132,8 +132,9 @@ changelog.d/medicaid-ce-exclusions.md ## Axiom Parity (required for policy changes) - Any PR that adds, updates or fixes policy must also leave the same provision correct in rulespec-us. Put one line in the PR body: `axiom: encoded-correct | encoded | queued | n/a: `. -- A `queued` rulespec-us issue must be dispatch-ready and labelled `pe-parity`. It needs the module path and corpus citation, the verbatim law, the required outputs, and companion tests from the same external source as your YAML tests. See `CONTRIBUTING.md#axiom-parity`. +- Use `queued` only when the signed encoder is blocked; record the blocker in the issue. Each billed encoder run requires separate approval. A `queued` rulespec-us issue must be dispatch-ready and labelled `pe-parity`. It needs the module path and corpus citation, the verbatim law, the required outputs, and companion tests from the same external source as your YAML tests. See `CONTRIBUTING.md#axiom-parity`. - Never hand-write RuleSpec. Modules come from the signed encoder. +- If you are an external contributor and cannot complete the Axiom work, use `axiom: needed`; a maintainer will follow up. ## Code Integrity - **BEFORE DELETING ANY CODE, VERIFY IT IS ACTUALLY UNUSED** diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 7a81e3041b3..84f0488c726 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -54,7 +54,7 @@ Every policy change here must also be correct in [rulespec-us](https://github.co - Federal modules live under `us/` (for example `us/statutes/26/32.yaml` for the EITC and `us/policies/irs/rev-proc-2025-32/` for annual IRS amounts). State modules live under `us-/` (for example `us-nj/statutes/54a:4-7.yaml`). Search `main` there before opening a new issue. - An `encoded-correct` claim names the module and a companion case in its `.test.yaml` that exercises the same situation as your YAML test. -- Label `queued` issues `pe-parity`. Reuse your YAML test's external expected values as the companion tests; don't copy values computed by policyengine-us. +- Use `queued` only when the signed encoder is blocked; record the blocker in the issue. Each billed encoder run requires separate approval. Label `queued` issues `pe-parity`. Reuse your YAML test's external expected values as the companion tests; don't copy values computed by policyengine-us. ## Repo-specific anti-patterns diff --git a/changelog.d/axiom-parity-review-followups.changed.md b/changelog.d/axiom-parity-review-followups.changed.md new file mode 100644 index 00000000000..049351c2611 --- /dev/null +++ b/changelog.d/axiom-parity-review-followups.changed.md @@ -0,0 +1 @@ +Documented that `axiom: queued` is allowed only when the signed encoder is blocked, and that external contributors may write `axiom: needed`.