generate/contemplation/{findings,pass_manager}.py: a single bounded pass — route (N3) -> classify+enrich (N4) -> terminal -> maybe emit proposal-only (N5). No loops/daemon/L10. Seven terminals: SOLVED_VERIFIED / REFUSED_KNOWN_BOUNDARY / REFUSED_UNSUPPORTED_FAMILY / CONTRADICTION_DETECTED / PROPOSAL_EMITTED / AMBIGUOUS_ORGAN / NO_PROGRESS. R2 solved+verified end-to-end; R1 routed setup is SOLVED_VERIFIED (numeric answer stays the eval lane in v0).
Hazard found+fixed: N6 exposed that category_pair_not_found fires on ANY non-R2 text, so mapping it to a growth surface made gibberish falsely PROPOSAL_EMITTED. Reclassified it to input_shape and made missing_category_pair reserved — only the PRECISE missing_total_count/missing_weighted_total remain reachable growth surfaces. Classification is boundary-first (input_shape non-blocking), so a problem one organ recognizes as a substantive boundary never proposes against the other's broad refusal.
Acceptance proven: known correct refusal -> no proposal; unsupported gap -> proposal-only artifact (exactly the 2 missing_* gaps over the gold); answer-key contradiction -> CONTRADICTION_DETECTED; organ conflict -> AMBIGUOUS_ORGAN. 188 tests green incl. architectural invariants; R1 7/0/3 + R2 reader 10/0/0 unchanged; off-serving.
13 lines
594 B
Python
13 lines
594 B
Python
"""Contemplation v0 (N6) — a single bounded read -> classify -> terminal -> maybe-emit pass.
|
|
|
|
Off-serving growth organ over the R1/R2 setup compilers: it turns an unsolved problem into a
|
|
typed terminal state and, for genuine coverage gaps only, a proposal-only artifact (N5). No loops,
|
|
no daemon, no L10 runtime, no self-modification.
|
|
"""
|
|
|
|
from __future__ import annotations
|
|
|
|
from generate.contemplation.findings import Finding, Terminal
|
|
from generate.contemplation.pass_manager import ContemplationResult, contemplate
|
|
|
|
__all__ = ["ContemplationResult", "Finding", "Terminal", "contemplate"]
|