/teal-sea
teal-sea / zeta-labstate of record · compiled 28 Sep 2026 · revision e4945c4 · source

Library · hunts/r_2946de/RESULTS.md

Hunt R-2946DE: results

1,422 words · 131 lines · source

Question. Does scripts/make_context.py --check detect public functions added under meta/, and what is the exact boundary of this blind region?

Answer. It does not detect them. Across all modules and subpackages in meta/, 100% of symbol additions, in-place renames, new modules, new markdown documents, and line-count changes pass scripts/make_context.py --check completely undetected (0 / 16 curated mutants fired, 0.0% detection rate; 0 / 32 exhaustive public AST symbols detected, 0.0% detection rate). The generated CONTEXT.md is 100% byte-identical (0 diff lines, exit code 0) across every mutant under meta/.

The mechanism is architectural exclusion: scripts/make_context.py defines hard-coded scan roots (PKG = ROOT / "zeta", DISCOVERY = ROOT / "ontology", HARNESS = ROOT / "harness", DOSSIER = ROOT / "dossier", DOCS = ROOT / "docs", TESTS = ROOT / "tests", SCRIPTS = ROOT / "scripts"). Neither build() nor build_flat() references meta/ anywhere in its AST extraction pipelines. Consequently, meta/ forms a total blind region.

Positive controls in scanned packages (zeta/, ontology/, harness/, docs/) confirm the guard and probe apparatus have full detection power on in-scope paths (4 / 4 fired, 100.0% caught, diff >= 2 lines).

Reproduce: python3 hunts/r_2946de/probe.py (~45 s, standard library only). Raw data: hunts/r_2946de/results.json.

Controls

Both baseline and undo controls ran and held cleanly across the entire run:

controlwhat it rules outoutcome
Control 1: unmutated sandbox run through guardcatches caused by copy artifacts or dirty tree stateexit 0, CONTEXT.md is up to date.
Control 2: sandbox state restored and guard re-run after every mutantcross-mutant contamination or residuequiet (exit 0) after all 48 evaluated mutants

The curated battery

diff is the number of unified diff lines in regenerated CONTEXT.md. token is whether the mutant's new symbol appears in that diff.

Category 1: Public function additions in meta/

idmutantfireddifftoken in diff
M01public function appended to meta/ledger.pyno0no
M02public function appended to meta/evals/asymmetry.pyno0no
M03public async function appended to meta/ledger.pyno0no

0 / 3 detected (100% blind).

Category 2: In-place public symbol renames in meta/

idmutantfireddifftoken in diff
M04public class Category renamed in place in meta/ledger.pyno0no
M05public function load_ledger renamed in place in meta/ledger.pyno0no
M06public uppercase constant LEDGER_PATH renamed in place in meta/ledger.pyno0no

0 / 3 detected (100% blind).

Category 3: Public classes and constants added to meta/

idmutantfireddifftoken in diff
M07public class MetaExperimentRegistry appended to meta/ledger.pyno0no
M08public uppercase constant META_DEFAULT_TIMEOUT appended to meta/ledger.pyno0no
M09public uppercase constant ASYMMETRY_EVAL_VERSION appended to meta/evals/asymmetry.pyno0no

0 / 3 detected (100% blind).

Category 4: New modules and documentation files in meta/

idmutantfireddifftoken in diff
M10new module meta/new_framework.py with public functions and classesno0no
M11new module meta/evals/new_eval_metric.py addedno0no
M12new markdown document meta/meta_methodology.md addedno0no
M13meta/README.md title modified in placeno0no

0 / 4 detected (100% blind).

Category 5: Line counts, docstrings, and formatting in meta/

idmutantfireddifftoken in diff
M145 blank lines appended to meta/ledger.py (line-count tell test in unscanned tree)no0no
M15meta/ledger.py module docstring first line modifiedno0no
M16docstring added to empty meta/evals/__init__.pyno0no

0 / 3 detected (100% blind).

Category 6: In-scope positive controls in scanned directories

idmutantfireddifftoken in diff
M17public function appended to zeta/core.py (in-scope control)yes2no (line count tell)
M18public function appended to ontology/schema.py (in-scope control)yes3yes
M19public function appended to harness/protocol.py (in-scope control)yes3yes
M20new doc docs/99_positive_control_doc.md added (in-scope control)yes1yes

4 / 4 detected (100% caught).

Repository census and exhaustive mutation analysis

A full static AST census of all Python source files under meta/ (meta/ledger.py, meta/evals/asymmetry.py, meta/evals/__init__.py) identifies:

  1. 32 public top-level symbols in meta/:
  2. 10 classes (Category, Automatability, CaughtBy, Intervention, MetaObservation, OperatorFunction, Resolution, Party, Judgment, Ledger in meta/ledger.py)
  3. 16 functions (including load_ledger, validate_ledger, asymmetry_dataset, checker_verdict, detection_rate, false_confidence_rate, asymmetry_e0)
  4. 6 module-level uppercase constants (including LEDGER_PATH)
  5. Exhaustive symbol mutation results:
  6. Every single one of the 32 public symbols was systematically mutated in-place against the sandbox baseline.
  7. Result: 0 / 32 fired (0.0% detection rate, 100% blind).
  8. Diff lines in CONTEXT.md: 0 lines across all 32 runs.
  1. Historical analysis in git history:
  2. meta/ was introduced in commit 5a666c0 ("meta: the second laboratory").
  3. Across all 14 subsequent commits touching meta/, zero commits triggered or required changes to CONTEXT.md.
  4. scripts/make_context.py has never contained references to meta/ at any commit in repository history.

What the numbers say, in order of how much they matter

  1. The blind region is total and structural. scripts/make_context.py does not omit meta/ by filter logic or __all__ parsing: meta/ is completely omitted from the directory list make_context.py reads. No symbol, class, function, docstring, file, or line-count change under meta/ will ever trip scripts/make_context.py --check.
  2. The line-count tell does not apply to meta/. In scanned packages (zeta/, ontology/, harness/, dossier/), adding a line trips the guard even if the symbol is unexported. In meta/, adding blank lines or modifying file lengths (M14) produces zero diff because CONTEXT.md tracks line counts only for scanned modules.
  3. CONTEXT_FLAT.md likewise excludes meta/. In build_flat(), meta/ is not listed among the concatenated source groups (Operating context, Package, Discovery layer, Harness, Dossiers, Scripts, Docs, Tests). Thus, flat context dumps also omit meta/.
  4. Architectural reason: meta/ is the second laboratory. Per meta/README.md, meta/ holds evidence about the laboratory and research process, not about the mathematical subject. CONTEXT.md was created to index the public mathematical and computational APIs of the laboratory (zeta/, ontology/, harness/, dossier/, docs/, scripts/, tests/).

What I chose, and why

What I could not settle

Loose threads