core/tests/test_determination_surface.py
Shay 310aed9ff0
chore: Refactor CLI and Governance Anchors (#926)
* docs: consolidate governance anchors and clean up test registries

* refactor(cli): decompose cli into dedicated modules

* test: fix broken test baselines and formatting

* docs: add domain boundary READMEs for governance anchors

* test: update baseline for determination lane

* test: fix capability_pass expectation

* test: fix CORE_SHOWCASE_SKIP_BUDGET enforcement

* chore: cleanup CLI extraction and unreachable code
2026-07-03 12:34:56 -07:00

94 lines
4 KiB
Python

"""Step B-2 — surface the determination: the engine answers from accrued knowledge.
When a question turn is Determined over realized knowledge, the user-facing ``surface``
IS that answer (rendered honestly: "as I was told", never "verified"). The realizer's
``articulation_surface`` is retained as evidence — the determination is a selection, not
a rewrite. Undetermined and flag-off keep the default surface. This is the contract test
for the selection policy in docs/specs/runtime_contracts.md.
"""
from __future__ import annotations
from dataclasses import replace
import pytest
from chat.runtime import ChatRuntime
from core.config import RuntimeConfig
from generate.determine import Determined, render_determination
# --------------------------------------------------------------------------- #
# render_determination — deterministic, honest basis (unit, no runtime)
# --------------------------------------------------------------------------- #
def test_render_member_reads_naturally() -> None:
d = Determined(answer=True, basis="as_told", predicate="member",
subject="truth", object="concept", grounds=())
assert render_determination(d) == "Yes — as I was told, truth is a concept."
def test_render_relational_predicate_is_legible() -> None:
d = Determined(answer=True, basis="as_told", predicate="parent_of",
subject="alice", object="bob", grounds=())
assert render_determination(d) == "Yes — as I was told, alice parent of bob."
def test_render_basis_is_honest_never_overclaims() -> None:
# SPECULATIVE grounds → "as I was told" (today's only case); COHERENT would be the
# only thing that renders "verified". The render must never overclaim.
as_told = Determined(True, "as_told", "member", "truth", "concept", ())
assert "as I was told" in render_determination(as_told)
assert "verified" not in render_determination(as_told)
# --------------------------------------------------------------------------- #
# Surface selection in the live turn (integration)
# --------------------------------------------------------------------------- #
@pytest.fixture(scope="module")
def accrued_runtime() -> ChatRuntime:
rt = ChatRuntime(
config=replace(RuntimeConfig(), accrue_realized_knowledge=True),
no_load_state=True,
)
rt.chat("Truth is a concept.") # accrue the fact this module's questions probe
return rt
def _default_surface(text: str) -> str:
rt = ChatRuntime(config=RuntimeConfig(), no_load_state=True)
rt.chat("Truth is a concept.")
return rt.chat(text).surface
def test_determined_question_surfaces_the_answer(accrued_runtime) -> None:
response = accrued_runtime.chat("Is truth a concept?")
assert response.surface == "Yes — as I was told, truth is a concept."
# the realizer surface is retained as evidence, distinct from the selection
assert response.articulation_surface
assert response.surface != response.articulation_surface
def test_determined_surface_does_not_rewrite_articulation(accrued_runtime) -> None:
# The determination SELECTS the surface; the articulation_surface is the same
# evidence the default (flag-off) turn produces.
response = accrued_runtime.chat("Is truth a concept?")
off = ChatRuntime(config=RuntimeConfig(), no_load_state=True)
off.chat("Truth is a concept.")
off_response = off.chat("Is truth a concept?")
assert response.articulation_surface == off_response.articulation_surface
def test_undetermined_question_keeps_default_surface(accrued_runtime) -> None:
response = accrued_runtime.chat("Is truth a virtue?") # never told → Undetermined
# not an affirmation; the honest default surface (== the flag-off surface)
assert not response.surface.startswith("Yes — as I was told")
assert response.surface == _default_surface("Is truth a virtue?")
def test_flag_off_never_surfaces_a_determination() -> None:
surface = _default_surface("Is truth a concept?")
assert not surface.startswith("Yes — as I was told")