Jurisdiction rules engine §1
The most important correction to the earlier source hierarchy
The blueprint changes the earlier “Tier 1 federal, Tier 2 state” hierarchy before it is coded, because coded as written it produces a wrong answer. EAC, CISA and NIST are extraordinarily important authoritative sources for election administration, security and technical standards. That does not mean an EAC recommendation automatically outranks controlling Arizona law.
The system should not reason
NIST is federal, therefore NIST overrides Arizona.
It should reason
Arizona law/EPM controls the procedure; NIST/EAC/CISA informs cybersecurity and administrative safeguards unless incorporated into controlling requirements.
The blueprint’s assessment of the difference: “That distinction will prevent a major future legal and procurement problem.”
Two axes, never one
Authority is resolved on two axes here — who issued it and what domain the question sits in — and never on federal-versus-state altitude alone. A federal advisory does not outrank controlling state law on procedure. State law does not make a cybersecurity framework irrelevant. Both halves of that sentence have to be true at once, and a single ranked list of issuers cannot express it.
For Arizona specifically, the Secretary of State identifies the 2025 Elections Procedures Manual, approved December 22, 2025, as the current manual and states that the EPM has the force of law. Arizona Secretary of State — EPM. NIST, for its part, describes the Election Infrastructure Profile as a voluntary, risk-based approach. NIST — Cybersecurity Framework Election Infrastructure Profile. A resolver that ranks the second above the first on procedure has misread both documents.
Axis one
Instruments, ranked by binding force — not by the issuer’s altitude
| Key | Instrument | Force | Effect | Note |
|---|---|---|---|---|
CONSTITUTION |
Constitutional provision | 100 | Controlling | — |
STATUTE |
Statute | 90 | Controlling | — |
COURT_ORDER |
Court order | 88 | Controlling | May override otherwise-controlling text for the matter and period it covers. |
REGULATION |
Regulation / administrative rule | 80 | Controlling | — |
BINDING_MANUAL |
Binding manual | 75 | Controlling | A manual that its own authority states has the force of law. |
DIRECTIVE |
Directive / order from a supervising authority | 60 | Controlling | — |
SOP |
Local standard operating procedure | 40 | Controlling | Binding on staff, subordinate to law. |
GUIDANCE |
Advisory guidance | 20 | Informing | Informative. Not controlling unless incorporated by a binding instrument. |
FRAMEWORK |
Voluntary framework / profile | 15 | Informing | Risk-based and voluntary by its own terms. |
Controlling instruments sort by more specific jurisdiction first, then by binding force, then by the later effective date. Issuer altitude never enters the sort at all.
Axis two
The domain the question sits in
| Key | Domain | Control | Note |
|---|---|---|---|
PROCEDURE |
Election procedure | The jurisdiction controls | — |
ELIGIBILITY |
Voter eligibility | The jurisdiction controls | — |
RETENTION |
Records retention | The jurisdiction controls | — |
PUBLIC_RECORDS |
Public records | The jurisdiction controls | — |
CERTIFICATION |
System certification | Mixed | Federal certification programmes and state approval regimes both apply; neither alone is the answer. |
CYBERSECURITY |
Cybersecurity safeguards | Informed, not controlled | Framework guidance informs; it becomes controlling only where a binding instrument incorporates it. |
ACCESSIBILITY |
Accessibility | Mixed | — |
Where a domain is controlled by the jurisdiction and no current controlling instrument can be established, the honest output is a refusal — not a best guess assembled out of advisory guidance. Advisory guidance does not control procedure, and saying so is the whole point of the second axis.
The resolver
Seven questions, asked in this order
- What jurisdiction?
- What authority issued the rule?
- Is it law, court order, regulation, binding manual, directive, SOP or advisory guidance?
- What is its effective date?
- What election does it apply to?
- Has it been superseded?
- Does a more specific controlling authority apply?
Note what the resolver returns and what it does not. It returns which instruments control and which inform, and it names every source it excluded and why. It does not return an answer to a legal question, and it does not rank a federal issuer above a state one.
Election Knowledge Currency Engine
The page was fetched today. The page was official. And part of it was stale.
The trap that makes freshness a per-section problem
During the research behind this blueprint, an Arizona Secretary of State resources page serving current resources also returned legacy text referring to 2020 registration deadlines. Arizona Secretary of State — Resources. The fetch succeeded. The host was right. The page was official. One section of it was years out of date.
The blueprint draws the conclusion directly: “That is exactly why BB2G needs section-level dates, source versioning and human verification rather than a simplistic ‘scrape official websites every night and trust whatever came back’ model.”
So a fetch is RETRIEVED. It is never VERIFIED. A successful retrieval records only that bytes arrived. Moving a section to VERIFIED requires a named human reviewer and a date, and the currency check has no code path that can promote anything on its own.
Freshness is tracked per section, with a hash of that section’s own text — which is how the stale paragraph is caught while the page around it keeps fetching cleanly. A source is reported at the state of its worst section, because averaging would hide exactly the paragraph that is wrong.
| State | Meaning | May a procedure be quoted from it? |
|---|---|---|
VERIFIED |
Verified current by a named reviewer | Quotable operationally |
RETRIEVED |
Retrieved, not yet verified by a human | Not quotable |
STALE |
Past its review interval | Not quotable |
CHANGED |
Source content changed since last verification | Not quotable |
SUPERSEDED |
Superseded by a later instrument | Not quotable |
UNREACHABLE |
Source could not be retrieved | Not quotable |
Only one of these states is usable operationally. That is the intended ratio.
Never hard-code a certification count
The EAC’s certified-systems list changes, and its systems-under-test page continues to change as new systems progress through testing. EAC — Certified Voting Systems. The blueprint’s instruction is blunt: never hard-code a fixed certification count, or a claim about how many systems exist under any guideline version.
A count is a measurement with a timestamp, never a constant. The certification surface asks a source for its records and reports what it got back, including when what it got back was nothing. The required interface shape is the one the blueprint specifies:
EAC source last checked: 2026-08-15
Current status: VERIFIED
Certification record: [source record]
Previous state: retained
Four lines, and every one of them is load-bearing. The timestamp says when. The status says whether a human has confirmed it. The record is a pointer to the source, so the figure is read rather than retyped. And the previous state is retained rather than overwritten, so a change is visible as a change instead of appearing as though the new value had always been there.
One further caveat travels with every count: migration to a newer guideline version does not by itself decertify systems certified under an earlier one, and state law may impose its own requirements. EAC — Voluntary Voting System Guidelines.
The copilot inherits all of this. A procedural question is answered only when current authority can be established. If the resolver abstains, or the controlling source is not currently verified, the answer is withheld and the operator is told to escalate — with the explicit instruction not to treat the absence of an answer as permission to improvise. There is no “here is my best guess” path, because that is what an abstention rule is.