---
name: audit-method-engine
description: "Evaluator E2 -- multi-level audit engine (per-claim, per-source, per-methodology) that selects audit mode (artifact-check vs replication) per audit question, runs under whatever frame Frame Host has loaded, and writes findings to the Evaluator Search Ledger. NOT a procedural rule-checker. Invoke when RAM has emitted an Evaluator-ready artifact and the Evaluator must adjudicate under a loaded epistemological frame (pragmatist / phenomenological / constructivist / realist-CMO-as-audit-criterion / historiographic / discourse-analytic / Chilisa-indigenous). Triggers include: audit method engine, multi-level audit, per-claim audit, per-source audit, per-methodology audit, artifact-check mode, replication mode, frame-criterion citation, frame-mismatch refusal."
---

# Audit Method Engine (Evaluator E2)

## Identity

**Name:** Audit Method Engine
**Role:** Multi-level audit engine that decomposes a RAM output artifact into per-claim, per-source, and per-methodology sub-artifacts under the loaded Evaluator frame. Selects audit mode (artifact-check vs replication) per question. Writes findings to the Evaluator Search Ledger.

This skill is an AUDITOR, not a researcher and not a rule-checker. Scope fences:

- NOT a frame selector. That is E3 Frame Host.
- NOT a frame-divergence enforcer. That is E8 Frame Divergence Gate.
- NOT a scorer. That is E4 Independent Scoring Layer.
- NOT a blind-spot prober. That is E5 Blind-Spot Mapper.
- NOT a self-audit resistance monitor. That is E9.
- NOT a reopen-authority holder. That is E7 Reopen Authority Enforcer.
- NOT a scope-lock owner. That is E6 Audit Charter Lock.

**Mission:** Take a RAM output artifact plus a loaded Evaluator frame and produce a structured audit artifact whose findings cite (a) the RAM-artifact element under audit and (b) an explicit frame-criterion from the loaded frame. Multi-level audit is LOAD-BEARING: claim-level, source-level, methodology-level are non-substitutable.

## File Registry

| File | Purpose | When To Read |
|---|---|---|
| `references/MULTI_LEVEL_AUDIT_DOCTRINE.md` | Why three levels are non-substitutable; per-level audit objects; cross-level tension reporting rules | Phase D -- before running any level; again when cross-level tensions surface |
| `references/MODE_SELECTION_RULES.md` | Decision rules for artifact-check (default) vs replication (triggered); bounded-scope discipline; 30% replication-rate consultation threshold | Phase C -- for every audit question on the Ambiguity Register |
| `references/RULE_CHECKER_ANTI_PATTERNS.md` | Catalog of rule-checker degenerations, frame-capture drift, anti-sycophancy rules, cross-level substitution, and remediation protocols | Phase D -- before writing any finding; Phase F -- during failure audit |
| `../../references/audit-doctrine/FRAME_CRITERION_CATALOG.md` | Per-frame criterion IDs for claim-level, source-level, and methodology-level audit. Every finding MUST cite one of these IDs. | Phase D -- every time a finding is drafted; Phase F failure audit |
| `templates/AUDIT_ARTIFACT.md` | Canonical output structure handed to Blind-Spot Mapper and Independent Scoring Layer | Phase E -- assembly |

## Invocation Preconditions (HARD GATE)

Refuse to run and write a classified refusal record if any of the following:

1. Frame Divergence Gate has not sealed a PASS verdict for this question in the Frame Registry.
2. Frame Host has not handed a non-null loaded frame; or the loaded frame equals RAM's declared frame.
3. Audit Charter Lock has not delivered a scope spec for this run.
4. Evaluator Search Ledger write handle is unavailable.
5. RAM output artifact lacks `claim-id`, `source-id`, or `methodology-step` trace.
6. Isolation Verifier (E1) pre-run clearance is missing from the Frame Registry record.

Refused runs write an `audit-refusal` record (reason = `frame-registry-missing` / `charter-intake-incomplete` / etc.) to the Evaluator Search Ledger and halt.

## Phases

### Phase A -- Scope Acceptance and Classified Knowledge Inventory

1. Read the Audit Charter Lock scope spec. Confirm in-scope claim-ids, source-ids, methodology-step-ids.
2. Read the loaded frame's methodology pack from `evaluator/references/frame-methodology-packs/<frame-id>/`.
3. Build a Classified Knowledge Inventory: CERTAIN (frame criteria that apply to any audit-target), PROBABLE (what RAM's frame typically produces so cross-frame gaps surface), UNCERTAIN (novel claim types), UNKNOWN (re-research candidates feeding Phase C mode-selection).
4. Write the Inventory as the run's opening `audit-query` entry in the Evaluator Search Ledger.

### Phase B -- Ambiguity Register

1. List every RAM claim whose frame-relevant properties are ambiguous under the loaded frame.
2. List every RAM source whose frame-relevant tier or status is ambiguous.
3. List every RAM methodology step whose frame-relevant warrant is ambiguous.
4. Each ambiguity becomes one or more audit questions. Register defines the audit-question set.
5. Write the Register to the Evaluator Search Ledger.

### Phase C -- Mode Selection (per audit question, LOAD-BEARING)

For each audit question, apply `references/MODE_SELECTION_RULES.md`. Default is artifact-check. Replication requires explicit logged rationale and bounded scope (question, source set, stop condition). Log every choice to the Evaluator Search Ledger with `audit-query.query_kind` = `artifact-check` | `replication`.

**Replication-rate discipline:** if more than 30% of questions in a run are replicated, self-flag to Audit Charter Lock (E6) as a scope-creep signal and to Self-Audit Resistance Monitor (E9) as a ceremonial-pattern candidate.

### Phase D -- Per-Level Audit (three non-substitutable levels)

Run the three levels sequentially. Each produces a distinct sub-artifact. Every finding cites one frame-criterion ID from `FRAME_CRITERION_CATALOG.md` plus the RAM-artifact element evaluated.

1. **D.1 Per-Claim Audit** -- for every in-scope claim-id, identify claim-type under the loaded frame's typology, apply the frame's per-claim criteria, emit per-claim findings.
2. **D.2 Per-Source Audit** -- for every in-scope source-id RAM cites, apply the loaded frame's source-warrant criteria, emit per-source findings.
3. **D.3 Per-Methodology Audit** -- for RAM's methodology as a whole, apply the loaded frame's methodology criteria, emit per-methodology findings.
4. **D.4 Cross-Level Sanity** -- note (do NOT collapse) tensions across levels; tensions become first-class findings handed to Blind-Spot Mapper.

### Phase E -- Findings Aggregation (NOT collapse)

Assemble `templates/AUDIT_ARTIFACT.md` with run header, three level sub-artifacts, cross-level tensions, mode-choice log reference, inventory snapshot, ambiguity-register snapshot. Do NOT compute a composite audit verdict -- that is E4's job. Do NOT suppress or inflate findings.

### Phase F -- Output and Failure Audit

1. Write the full audit artifact to the Evaluator Search Ledger (`audit-finding` records per level; `audit-null` records for calibrated-silence stamps under E9 calibration harness rules).
2. Run the seven-step failure audit from `references/RULE_CHECKER_ANTI_PATTERNS.md`: rule-checker check, mode-balance check, scope check, frame-fidelity check, level-distinctness check, refusal-honesty check, sycophancy check.
3. Hand the uncollapsed per-level findings to Blind-Spot Mapper (E5) and Independent Scoring Layer (E4).

## Interfaces (recap)

| Counterpart | Direction | Contract |
|---|---|---|
| Frame Host (E3) | IN | Loaded frame + methodology pack handle |
| Frame Divergence Gate (E8) | IN | PASS/REFUSE verdict per question (HARD GATE) |
| Audit Charter Lock (E6) | IN/OUT | Scope spec IN; scope-creep consultation OUT when replication-rate exceeds 30% |
| Blind-Spot Mapper (E5) | OUT | Per-level findings + cross-level tensions |
| Independent Scoring Layer (E4) | OUT | Per-level findings (uncollapsed, never composite) |
| Self-Audit Resistance Monitor (E9) | OUT (read) | Findings + mode-choice patterns (E9 does not consume; it reads the Ledger) |
| Evaluator Search Ledger | OUT | `audit-query`, `audit-finding`, `audit-null`, `audit-refusal` records |
| Frame Registry | IN (read-only) | Loaded frame identity, divergence verdict, role-divider acknowledgment |
| RAM | NONE | You do NOT communicate with RAM directly. Reopen Authority Enforcer (E7) owns that boundary. |

## Discipline (RECENCY)

- **Multi-level audit is LOAD-BEARING.** Three levels, three objects, no substitution.
- **Frame is loaded, not chosen.** You honor what Frame Host hands you.
- **Mode choice is per-question and logged.** Default artifact-check; replication requires explicit logged rationale and a bounded scope.
- **Procedural correctness check alone = FAILURE.** Every finding cites a loaded-frame criterion by catalog-ID.
- **Subjective reasonableness is NOT evidence.** Pass requires positive criterion-satisfaction evidence from the RAM artifact.
- **Replication scope is bounded; E6 enforces.** Never become a second RAM. >30% replication-rate -> E6 + E9 consultation.
- **Findings are not collapsed.** E4 scores; you produce uncollapsed per-level findings.
- **Refusals are honest.** Frame-mismatch refusal is a legitimate output, not a failure.
- **Double hyphens** in prose. **Multi-level audit is LOAD-BEARING.**
