16 failing, 1,346 passing, 1,377 skipped — and what each of those numbers actually means.
The reset destroyed the publisher text layer, the runner, the safety configuration and every bar snapshot the forward claims were priced against. None of that was recoverable from this side. What follows is each failure and the thing it is waiting for.
One loud failure that names the missing corpus, instead of 1,377 silent skips. It goes green on its own when the text layer is restored.
| test | what it says |
|---|---|
test_the_corpus_is_actually_missingtests/test_corpus_present.py | corpus/ IS MISSING. This is not a code defect and not a flaky test. |
The safety configuration that governs the autonomy ladder. Destroyed in the 2026-09-07 container reset. It is deliberately NOT reconstructed: writing a plausible one would be inventing a safety config.
| test | what it says |
|---|---|
test_autonomy_declares_the_gate_as_implemented_and_well_formedtests/test_cluster_posterior.py | KeyError: 'gates' |
test_autonomy_thresholds_are_the_ones_the_code_readstests/test_cluster_posterior.py | KeyError: 'gates' |
test_the_registered_check_runs_and_returns_a_reasontests/test_cluster_posterior.py | KeyError: 'gates' |
test_paper_is_still_blocked_and_no_run_promotes_anythingtests/test_cluster_posterior.py | AssertionError: a registered check that has not been run is never a pass |
test_the_real_gate_declarations_are_well_formedtests/test_protocol.py | AssertionError: autonomy.yaml: no gate declarations could be read: /home/claude/oppollo/autonomy.yaml does not exist, so no gate is declared and none can be evaluated. Every rung is blocked: an unreadable ladder is not a |
test_the_gate_that_used_to_be_unfailable_now_has_codetests/test_protocol.py | KeyError: 'gates' |
test_paper_is_blocked_by_the_cluster_posteriortests/test_protocol.py | AssertionError: assert 'cluster_posterior_min' in {'autonomy_config_readable'} |
The runner. Lost in the same reset, and present on the collaborating machine.
| test | what it says |
|---|---|
test_run_py_exposes_the_modetests/test_cluster_posterior.py | assert 'clusters' in '' |
test_no_production_path_prices_a_rule_on_its_claim_count[run.py]tests/test_effective_sample.py | FileNotFoundError: [Errno 2] No such file or directory: '/home/claude/oppollo/run.py' |
test_no_evaluation_path_reads_bars_without_the_sealtests/test_protocol.py | FileNotFoundError: [Errno 2] No such file or directory: '/home/claude/oppollo/run.py' |
test_no_accuracy_is_reported_without_its_familytests/test_protocol.py | ModuleNotFoundError: No module named 'run' |
test_weekly_is_built_and_says_what_is_still_missingtests/test_protocol.py | ModuleNotFoundError: No module named 'run' |
test_weekly_exits_zero_and_never_promotestests/test_protocol.py | AssertionError: /usr/bin/python3: can't open file '/home/claude/oppollo/run.py': [Errno 2] No such file or directory |
A record naming a market-data snapshot that no longer exists. The bars were destroyed in the reset; the record was not re-stamped, because that would make it lie about its own provenance.
| test | what it says |
|---|---|
test_the_wheat_snapshot_the_q471_record_names_is_actually_theretests/test_backlog_med_tail_edges.py | FileNotFoundError: [Errno 2] No such file or directory: '/home/claude/oppollo/data/bars_research/20260811T114646Z/ZW_F.json' |
Lecture notes that are not in this checkout and not on the collaborating host either.
| test | what it says |
|---|---|
test_a_declared_ocr_anchor_must_actually_be_on_the_pagetests/test_doctrine_graph.py | AssertionError: nirenstein_notes#page_033 |
Tests that assert an exact string from the destroyed text layer cannot run. They could have been made to fail, or made to pass, and both would have been dishonest — so they skip with the reason attached, and a single test fails on purpose to name the cause.
The skip is decided at the moment a test actually touches the missing layer, not by grepping the test's own source. That distinction was learned the hard way: the first version of the guard read each test file looking for the corpus path, and missed 49 tests whose dependency arrived through an import. Widening the pattern would have been the same defect with a longer list, so the readers now raise at the point of access and the harness converts that into a skip.
Published here because a test suite presented only as a pass count is the green-check-on-the-wrong-object failure this project keeps finding, and these are the two clearest instances of it happening inside the tests.
| guard | what was wrong |
|---|---|
| the corpus skip filter | Called a method with the wrong
signature; every call raised TypeError and the guard's own bare
except swallowed all of them. It reported a confident count while
doing nothing. |
| a verbatim-quote test | Carried its own
pytest.skip for the missing-corpus case — placed after
the call that raises first. The guard was unreachable. |
The whole suite, from a restored checkout:
pip install -r requirements.txt --break-system-packages python3 -m pytest tests/ -q