Skip to content

Oversight architecture: reviewer≠corrector, modern component taxonomy, methodology - #31

Open
crbazevedo wants to merge 8 commits into
feat/cold-start-priorsfrom
feat/oversight-architecture-redesign
Open

Oversight architecture: reviewer≠corrector, modern component taxonomy, methodology#31
crbazevedo wants to merge 8 commits into
feat/cold-start-priorsfrom
feat/oversight-architecture-redesign

Conversation

@crbazevedo

Copy link
Copy Markdown
Owner

Responds to the feedback batch on the cockpit. Stacked on #30 (cold-start priors) — base retargets to main once #30 merges.

What changed

1. Reviewer ≠ corrector (detection × fix-success). Equation 6 generalized to σ_corr = σ_raw + (1−σ_raw)·c·f: a reviewer detects (catch rate c), a corrector repairs (fix rate f). The paper's single-number model is the f=1 special case (parity preserved). Threaded through formulae, Node, capacity, estimation (estimate_fix_rate from the reviewer flag log), and the JS core.

2. "LLMs do not do retrieval" — corrected. Retrieval is an embedder + vector search, not an LLM. The cockpit palette now groups Generate / Retrieve / Govern: retrievers & rerankers are drawn as non-LLM components; an LLM's retrieval roles are reranking (post-ranking) and grounded generation (RAG reader). The RAG template was rebuilt: embedder → reranker → grounded reader → groundedness judge.

3. Model reviewer (LLM-as-judge) vs human reviewer; correctors that consume feedback. New Model reviewer and Corrector components; new lesson "Reviewer ≠ corrector" — a judge that detects but a corrector that can't repair leaves quality stuck until you raise f.

4. Priors table v2 (78 → 120 cells, 43 models, 9 task types). New frontier models from the Vectara HHEM faithfulness leaderboard (incl. the confirmed reasoning-vs-faithfulness penalty), embedders (MTEB/BEIR), rerankers (cross-encoder + listwise LLM), LLM-judge catch rates (RewardBench-2), corrector fix rates (self-correction papers). User-named models with no public benchmark (Fable 5, exact GPT-5.5 / Opus 4.8 / Kimi 2.6) are flagged INTERPOLATED, never invented. priors.yaml is now the single source of truth; web/mso-priors.js is generated by scripts/gen_priors_js.py and drift-guarded by a test.

5. Methodology disclosed. New docs: How the Priors Are Built (the γ fixed-point inversion, c/f definitions, normalization rules, confidence proxy, taxonomy, caveats) and a Priors Evidence Ledger (every band cited, tagged CONFIRMED / SOURCED / INTERPOLATED).

6. Concept-first vocabulary. "Capacity ceiling (C_op)", "Autonomy buffer (B_eff)", "Worst masking (M*)", "Quality target (p_min)", "Process complexity (H(W))", and the inspector sliders — concept first, symbol in parentheses.

7. Every paper question → a cockpit lever. Prescriptions reframed to the allocation questions (keep review / intervene upstream / block autonomy / expand autonomy), plus a guide — The Questions It Answers — mapping each claim to its metric/lever/lesson.

Test plan

  • 98 passed, 1 skipped (uv run pytest) — incl. JS↔Python parity for the new fix_rate and all v2 component types, and the JS-bundle drift guard.
  • mkdocs build --strict clean (no broken links/anchors).
  • Cockpit browser-verified: 20-component palette, corrected RAG architecture, fix-rate lever (C_op 0.33→0.46), seeder task-filtering, all four prescriptions — zero console errors.

🤖 Generated with Claude Code

crbazevedo and others added 8 commits June 18, 2026 10:22
…er ≠ corrector)

Equation 6 previously folded detection and repair into one number c
(catch_rate), implicitly assuming every caught error is perfectly fixed.
This generalizes it:

    σ_corr = σ_raw + (1 − σ_raw) · c_eff,   c_eff = catch_rate × fix_rate

- catch_rate (c): the REVIEWER's probability of *detecting* an error
  (a human reviewer, or a model acting as LLM-as-judge — verdict only).
- fix_rate (f): the CORRECTOR's probability of *repairing* a flagged error
  by re-doing the task or patching, using the reviewer's feedback.

The paper's single-number model is exactly the special case fix_rate=1, so
all existing values are unchanged (parity preserved by default).

Changes:
- _formulae.sigma_corr_fixed_point gains fix_rate=1.0; threaded through
  recursive_chain_quality, corrector_capacity_threshold, max_pipeline_depth.
- models.Node gains fix_rate field; docstring reframes reviewer vs corrector.
- capacity.compute_node_capacity / compute_pipeline_capacity read node.fix_rate.
- estimation: estimate_catch_rate now documented as estimating the *effective*
  correction c_eff (outcomes alone can't separate detect from repair); new
  estimate_fix_rate(flagged, repaired) recovers f from the reviewer's flag log.
- web/mso-core.js mirrors the generalization (fixRate defaults to 1).
- Parity: scorr cases gain 3-arg form; new PIPE_FIX pipeline with fix_rate<1.
- New tests: TestCorrectorDecomposition (formulae) + tests/test_estimation.py.

All 95 tests pass; JS↔Python parity verified through Node incl. fix_rate.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Provenance for every cold-start σ band, with confidence tags
(CONFIRMED / SOURCED / INTERPOLATED) and citations. Discloses sources per
operator request. Covers the five research gaps:

1. Frontier-model faithfulness — Vectara HHEM-2.3 leaderboard (CONFIRMED):
   reasoning-vs-faithfulness tradeoff (DeepSeek-R1 11.3% vs V3 6.1%),
   top tier (GPT-5.4-nano 3.1%, Gemini-2.5-flash-lite 3.3%, Llama-3.3-70B 4.1%).
   Honest "no public benchmark" for Fable / exact GPT-5.5 / Opus 4.8.
2. Embedding/retrieval models (MTEB/BEIR) — retrieval is embedder + vector
   search, NOT an LLM. Qwen3-Embedding, OpenAI-3, BGE-M3, mGTE, Granite.
3. Rerankers — cross-encoder vs listwise-LLM uplift; recency penalty.
4. Reviewer catch_rate (RewardBench-2) + corrector fix_rate (self-correction
   papers): intrinsic self-correction without external feedback is unreliable
   — validates the detection × fix-success split.
5. Modern RAG + agentic component taxonomy (Berkeley compound-AI, ReAct).

Added to mkdocs nav under a new Methodology section.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…ectors

78 → 120 cells, 43 models, 9 task types. Single source of truth is now
priors.yaml; web/mso-priors.js is generated by scripts/gen_priors_js.py and
pinned by a drift-guard test. Provenance for every band: priors-evidence.md.

Architecture corrections (per operator feedback):
- LLMs do NOT do retrieval. The 13 LLM "retrieval" cells were grounded-
  generation (RAG reader) faithfulness proxies → moved to a new
  `grounded_generation` task. `retrieval` is now embedder-only.
- Reviewer ≠ corrector: new `review` (catch_rate, detection) stays; new
  `correction` task (fix_rate, repair) added with the seed_node + schema
  support (schema_version 2).

New task types: grounded_generation, retrieval (embedders), reranking,
correction. New models:
- Frontier faithfulness (Vectara HHEM-2.3, CONFIRMED): gpt-5.4-nano,
  gemini-2.5-flash-lite/pro, phi-4, qwen3-8b, kimi-k2.5, o3-pro, o4-mini-high
  (reasoning models carry the CONFIRMED faithfulness penalty).
- User-named-but-unbenchmarked (INTERPOLATED, flagged, NOT invented):
  gpt-5.5, claude-opus-4.8, kimi-2.6, fable-5 (no public benchmark).
- Embedders (MTEB/BEIR): qwen3-embedding-8b, openai-3-large/small,
  cohere-embed-v3, e5-mistral-7b, bge-m3, granite-embedding-r2.
- Rerankers (cross-encoder + listwise LLM): qwen3-reranker, cohere-rerank-3,
  bge-reranker-v2-m3, rankzephyr-7b, rankgpt-gpt4.
- Reviewers: llm-judge-single / llm-judge-ensemble / human-reviewer.
- Correctors: corrector-no-feedback (low fix_rate — self-correction without
  external feedback is unreliable) / with-feedback / with-oracle.

Adds gen_priors_js.py (--check drift mode), tasksForModel/modelsForTask JS
helpers, and tests: correction-seed, no-feedback<with-feedback fix_rate,
JS-bundle-drift guard, parity for all v2 component types. 97 pass.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Clean, reader-facing methodology page (operator request). Explains, concept-
first with symbols in parentheses:
- the three distinct competences (raw σ_raw / catch rate c / fix rate f) and
  why detection and repair must be separated (σ_corr = σ_raw + (1−σ_raw)·c·f);
- corrected ≠ autonomous competence → the masking index;
- how a benchmark becomes a seed: σ_skill = clamp(σ_raw_mid/γ, .05, .98) so the
  node reproduces the prior at the return-operator fixed point; reviewers seed c,
  correctors seed f directly;
- band width → confidence (humility meter);
- normalization rules (absolute→σ with discount; relative→ranking only, never
  inverted; widen on doubt; INTERPOLATED never invented);
- the component taxonomy (LLM does NOT retrieve; reviewer ≠ corrector);
- honest caveats (judge catch softest, retrieval corpus-dependent, reasoning≠
  faithful, self-correction-without-feedback unreliable).

Linked from mkdocs nav under Methodology, alongside the evidence ledger.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Reworks the node palette to match real RAG/agentic architecture and adds the
detection×fix-success oversight model to the UI (per operator feedback).

Taxonomy (palette now grouped Generate / Retrieve / Govern / Human / Tools):
- GENERATE: LLM drafter, Code generator, Extractor, Classifier/router,
  RAG reader (grounded generation).
- RETRIEVE (NOT language models — drawn as parallelograms, cyan): Embedder /
  retriever, Reranker (post-rank). Fixes "LLMs do not do retrieval": an LLM's
  only retrieval roles are reranking and grounded generation.
- GOVERN: Model reviewer (LLM-as-judge) and Corrector (re-do/patch) as SEPARATE
  components — reviewer detects (catch rate c), corrector repairs (fix rate f).
- RAG template rebuilt: embedder → reranker → grounded reader → groundedness
  judge → answer (was a chain of mislabeled "rag"/llm nodes).

Oversight model:
- Every node gets a fix-rate (f) slider; σ_corr uses c·f end-to-end. Catch-rate
  floor lowered to 0 (embedders/retrievers don't self-correct).
- New lesson "Reviewer ≠ corrector": a judge that detects but a corrector that
  can't repair leaves quality stuck; raising f crosses B_eff above zero.
  Verified: C_op 0.331 → 0.459 when f→0.8.
- Seeder defaults the model to one that actually has the node's task, filters the
  task dropdown to valid (model,task) combos, and seeds fix_rate for correction
  cells. Prior chip + preview label catch-rate / fix-rate / σ_skill distinctly.

Vocabulary (concept-first, symbol in parentheses):
- Toolbar: "Quality target (p_min)", "Process complexity (H(W))".
- Cards: "Capacity ceiling (C_op)", "Autonomy buffer (B_eff)", "Worst masking
  (M*)", "Fragile motifs" — each with an explanatory tooltip.
- Inspector sliders renamed; legend updated (generator / retriever-not-an-LLM /
  reviewer-corrector / human / tool-data). Footer links the methodology page;
  package pin bumped to 0.1.3.

Browser-verified: 20-component palette, RAG architecture, fix lever, seeder
defaulting, inspector fix slider — no console errors.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Reframes the Prescriptions panel to answer the paper's allocation questions
directly, and adds the missing positive direction of the Minimum Sufficient
Oversight principle — where autonomy can EXPAND:

- "Block autonomy / redesign" when infeasible (check feasibility before
  expanding autonomy).
- "Keep review here" at high-masking, central nodes (where oversight has the
  highest marginal value; corrected ≠ autonomous competence).
- "Intervene upstream" on a diamond's shared source (early intervention
  prevents downstream correction load).
- NEW "Autonomy can expand here" when a reviewed node's M*≈1 and the pipeline
  has buffer — reclaim that oversight for higher-masking nodes (the
  water-filling reallocation; minimize governance burden).

Verified in-browser: all four fire on the right conditions; "expand" gated on
feasible && B_eff>0 && reviewed node with low masking.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
"The Questions It Answers" — ties each allocation question and prescription
from the paper/LinkedIn framing to the exact metric, lever, prescription, or
lesson that answers it: where autonomy expands, where review remains, intervene-
upstream, feasibility-before-autonomy, fragile motifs, process entropy vs the
autonomy cliff, and corrected≠autonomous competence. Added to mkdocs nav.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
`mkdocs` deploy (docs.yml) stages web/ → docs/app so the cockpit serves at
/app/widgets/. Mirror that locally for an integrated preview where in-page
links (e.g. the methodology link) resolve exactly as in production:

    cp -r web docs/app && rm -f docs/app/README.md
    mkdocs serve -a 127.0.0.1:8055   # → http://127.0.0.1:8055/delegation-lab/

Ignore the staged copy so it never lands in git.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant