Theory Fidelity Audit

SkillDev tools

Audit whether the theories/methodologies a project claims to implement are faithfully operationalized — or name-dropped, partially built, distorted, or over-claimed. Source-grounds the load-bearing theories; tags the rest provisional. Run periodically alongside /framework-health.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the Theory Fidelity Audit skill

What this skill tells your AI

The instructions your AI receives, as published by haabe/mycelium in plugins/mycelium/skills/theory-fidelity/SKILL.md and read by ahel’s review.

Most framework checks evaluate process (cycle health, gates) or artifact performance (evals, DORA). None of them ask the question this skill exists for: for every theory a project claims to represent, is the mapped mechanism actually faithful to what the theory says — or is it theatre? This is the audit of the theory→mechanism mapping itself.

The framework's own stated bar (docs/theories.md): "every theory is mechanism-mapped … citations without mechanism-mapping are theatre." This skill holds the project to that bar — including holding the theory doc to it.

When to Use

  • Quarterly, alongside /mycelium:framework-health (process health) — this is the theory-fidelity half.
  • After adding/citing a new theory, or after editing a theory's mechanism (skill/gate/schema).
  • When a citation looks decorative, or when a doc claims a mechanism you suspect doesn't exist.

The Grading Rubric (three axes)

For each claimed theory, record:

  1. RepresentationMechanized (a skill/gate/schema/canvas applies it) · Prose-only (cited + described, no mechanism) · Absent.
  2. Fidelity (only if Mechanized):
    • Faithful — the mechanism matches the theory's real claims.
    • Justified-Adaptation — the mechanism deliberately diverges and the rationale is documented in-repo. Divergence with no documented rationale is Distorted, not Justified.
    • Partial — a faithful subset, with a named gap.
    • Distorted — diverges without rationale, or misrepresents the theory.
    • Over-claim — the theory doc claims more than the mechanism delivers (the project's own "theatre" failure mode).
    • Name-only — cited but not actually mechanized.
  3. Evidence-basissource-grounded (verified against the author's canonical work) · model-knowledge (from the agent's training — provisional / consistency-only).

Workflow

  1. Rule on the PREVIOUS audit's findings — before producing any new ones. Per ${CLAUDE_PLUGIN_ROOT}/engine/canvas-guidance.yml#prior_findings_first.

    Locate the most recent .claude/evals/theory-audit-*.md. For every finding it raised, write one of three rulings into the new report, and say what grounds it:

    • CLOSED — name the mechanism, version or commit that closed it.
    • STILL-OPEN — carry it forward WITH A HORIZON. An open finding with no date is how a ranking becomes archaeology.
    • DECLINED — a reason AND a re-open trigger. Declining is a first-class outcome; a gap not worth closing for this project should be declined in writing rather than re-proposed every audit or silently dropped.

    If no prior audit exists, say so and continue — a first audit has nothing to score.

    WHY THIS IS STEP 0 AND NOT STEP 9. theory-audit-2026-04-17.md graded Wardley fidelity and ranked its gaps correctly: climatic patterns zero of ~30 HIGH, gameplay 4-5 of 64+ HIGH, inertia not modelled. Nothing consumed that ranking for four months, while the map was repeatedly described as strategy. It surfaced on 2026-08-05 only because an agent happened to search before proposing — and had it not, the next audit would have re-derived the same list and called it new. The failure is not dishonesty: grading theories is interesting and scoring last quarter's grades is not, so anything placed after the interesting work is what a long session drops. Ordering is the mechanism.

  2. Build the claimed-theory inventory. Read the project's theory doc (docs/theories.md for Mycelium). Tier it by load-bearing-ness if the doc does (Mycelium: Tier 1 load-bearing / Tier 2 integrated / Tier 3 citation-only). If no theory doc exists, report that absence and stop — you cannot audit fidelity against an unstated standard.

  3. Set the grounding standard (cost gate). Source-grounding every theory is expensive; grading from model-knowledge alone is the anti-pattern #7 trap at the meta-level — you would be grading the project against your own paraphrase of the theory, which is consistency-as-evidence (see harness/anti-patterns.md #7). Default split:

    • Load-bearing theories → source-grounded. Use WebSearch/WebFetch to confirm the author's actual canonical claims; cite the source. Distortion in a load-bearing theory is the expensive failure.
    • The rest → model-knowledge, every grade tagged provisional, plus a promotion candidate flag for any that turn out load-bearing but under-mechanized.
    • Surface the chosen split to the user before a large run (this can fan out many agents).
  4. Map each theory to its mechanism — and READ the mechanism. Open the cited skill/gate/schema/canvas before grading. A claim in the theory doc is not evidence of the mechanism's state; only reading the artifact is (anti-pattern #7 Read-before-claim). To grade Justified-Adaptation, search the repo (theory doc, philosophy doc, changelog, decision-log, the skill itself) for the documented rationale — absent rationale ⇒ Distorted.

  5. Grade on the three axes. For each: the mechanism + path, representation, fidelity grade, evidence-basis, a 2–4 sentence justification citing both the theory's real claim and the repo mechanism, the specific gap/distortion, and a one-line fix.

  6. Premortem (how is THIS audit wrong?). State it explicitly: model-knowledge grades inherit the same fidelity risk they measure; subagents may anchor on the project's own framing; single-pass grades have no adversarial second opinion. Name the lowest-regret findings (self-contradictions in-repo are unimpeachable regardless of theory knowledge).

  7. Devil's-advocate. Challenge your own calls: is an "over-claim" really infidelity, or just doc imprecision? (By the project's own "no theatre" standard, an inaccurate mechanism-map is the failure.) Is a schema-absence a fidelity gap, or just a validation gap? (Usually the latter — say so.)

  8. Attribution-fix discipline (the Lopopolo rule). When the audit finds a wrong citation, do not blind-sweep the name across the repo. Ground-truth every occurrence first — the same name is often attached to a different, correct claim elsewhere. A blind find-replace of a mis-attributed Reflexion citation once would have corrupted ~16 valid citations of the same author for an unrelated concept. Fix only the occurrences that actually carry the wrong claim.

  9. Log + recommend — to a PREDICTABLE, DATED PATH. Write the report to .claude/evals/theory-audit-YYYY-MM-DD.md, and append a one-paragraph summary plus that path to the decision-log. The path is pinned because an instrument that cannot LOCATE its previous output cannot score it — this step previously read "the decision-log (or a report file)", and that vagueness is why the 2026-04-17 audit was findable only by accident. Include the Step 0 rulings in the report so the NEXT audit can score this one.

    Separate cheap doc-fidelity fixes from mechanism/schema builds; gate the latter on real need (JiT), not on the audit's enthusiasm.

    Every finding ranked HIGH must leave this skill with a HOME — tag an existing opportunity or create one on the FRAMEWORK-side root of the OST (opportunities.yml, rolls_up_to: <framework root id>), or decline it explicitly with a re-open trigger. Per ${CLAUDE_PLUGIN_ROOT}/engine/canvas-guidance.yml#prior_findings_first.route_high_findings.

    This is the half that actually closes the loop, and Step 0 alone does not. Step 0 fires only when someone RUNS this skill again — so on an annual cadence, findings sleep for a year, and the rule merely moves the trigger from "somebody re-reads the report" to "somebody re-runs the audit". An opportunity is read by instruments on their own cadence (/canvas-health, /ost-render, /diamond-assess), so the finding stops depending on anyone remembering this audit exists.

    NOT human-tasks.yml. That canvas is scoped by its own schema to "offline human tasks (interviews, observations, outreach)" and its type enum is entirely human-contact activities. A finding like "encode the climatic patterns" is agent-executable engineering work, and filing it as an interview would be a finding wearing a human-task's clothes.

Output Format

## Theory-Fidelity Report

> **Verdict: [N theories · X Faithful · Y Partial · Z Distorted/Over-claim]** — [one-line headline; e.g. "engine faithful, theory doc is the weakest artifact"]

### Scorecard
| Theory (Author) | Representation | Fidelity | Basis | Mechanism / path |
|---|---|---|---|---|
| ... | Mechanized | **Distorted** | source-grounded | ... |

(Render Distorted / Over-claim / Name-only rows so they POP — leading bold — per Von Restorff; they are the rows the reader must not scroll past.)

### Findings (per flagged theory)
- <Theory>: <gap/distortion>, citing theory claim + repo mechanism. Evidence: source-grounded|provisional. Fix: <one line>.

### Cross-cutting patterns
- [e.g. doc-fidelity weaker than engine-fidelity; schema-gap cluster; citation errors]

### Premortem + Devil's-advocate
- [how this audit could be wrong; which grades are provisional; lowest-regret findings]

### Recommended actions (ranked; cheap doc fixes vs mechanism builds)
- ...

Rules

  • Never grade a load-bearing theory from model-knowledge alone — source-ground it, or tag the grade provisional and say so.
  • Never blind-sweep an attribution fix — ground-truth every occurrence (step 7).
  • A deliberate adaptation with documented rationale is Justified-Adaptation, not a failure — do not flag conscious divergence as infidelity.
  • Surface large fan-outs for re-authorization before spending (scope checkpoint, G-P9).
  • Never open a fresh audit without ruling on the previous one (Step 0). An audit that ranks work and is never re-read is the same shape as a check that runs and is never looked at — and this skill produced exactly that on 2026-04-17.

Theory Citations

  • Argyris: triple-loop learning (the framework evaluating how faithfully it represents its own foundations).
  • Goodhart: a cited theory becomes decoration the moment the citation, not the mechanism, is the target.
  • Lanham et al. (2023): citations must be faithful, not after-the-fact rationalization — the discipline this skill enforces on the project.
  • Mycelium anti-pattern #7 (consistency-as-evidence): grading a mechanism against one's own recollection of a theory is the meta-level instance; source-grounding is the escape.

Signals

GitHub stars
45
Forks
3
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
theory-fidelity
Source
github.com/haabe/mycelium