- Restore evals/gsm8k_math/train_sample/v1/report.json to pre-#846 pin (6/44/0) The 30/20/0 committed in #846 was generated eval output, not a ratified rebaseline. Historical pin is required until a dedicated rebaseline PR is explicitly authorized. - Delete teaching/proposals/comprehension_failures/34ce9254...json Newly added in #846 without authorization. File did not exist in first parent. HANDOFF claimed teaching paths were untouched — contradicted by the actual diff. Proposal must go through the reviewed teaching lifecycle, not committed PRs. - Add docs/sessions/pr846-reconciliation-audit-2026-06-20.md Full audit note: what #846 was expected vs. what merged, authorization analysis, restoration rationale, what was preserved, remaining risk, next correct step. Tests kept from #846: - tests/test_problem_frame_builder.py (lint fix: _frame_names -> direct accessor) - tests/test_problem_frame_skeleton.py (unused ProblemFrame import removed) Both are valid narrow fixes unrelated to the unauthorized artifacts. Forbidden paths not touched: algebra, field, vault, recall, identity, policy, packs, generate/derivation, generate/math_candidate_graph.py, runtime/serving. |
||
|---|---|---|
| .. | ||
| README.md | ||
Comprehension failure proposals (proposal-only)
This directory is the write-only sink for the contemplation pass (N5/N6). When the loop meets
a growth-surface failure family (proposal_allowed = True in the N4 registry), it may emit one
content-addressed artifact here:
<sha256(failure_family : sha256(problem_text))>.json
Every artifact is deliberately toothless:
{
"status": "proposal_only",
"mounted": false,
"requires_review": true,
"suggested_next_fixture": null,
...
}
Hard rules (enforced by tests)
statusis alwaysproposal_only;mountedis alwaysfalse;requires_reviewis alwaystrue.- Serving never reads these files. No
generate/derivation,core/reliability_gate,generate/stream.py,field/propagate.py, orvault/store.pyreferences this path. - The raw problem text is hashed, never stored (
problem_text_sha256). - The emitter never proposes against a correct wrong=0 boundary (
must_remain_refusedfamilies produce no artifact). - Filenames are content-addressed and deterministic — the same failure writes the same path.
What happens next
A proposal is an input to human review, not a change. The aligned flow is
failure -> classification -> proposal -> review -> ratification
never failure -> self-patch. Ratification (authoring the gold fixture / reader rule) happens
only via a human-reviewed PR through the existing teaching flywheel (ADR-0055/0056/0057). The
engine cannot mount, ratify, or apply anything written here.
Generated artifacts are not committed; this README is the only tracked file in the directory.