symfonic.agent.cutover.prompting_rows¶
prompting_rows ¶
The shape of one TA8.38 row: recommended, applied, and the argument (C1 lane).
Split from :mod:~symfonic.agent.cutover.prompting_surfaces when that module
passed its line budget, and split the way settings_contract and
retired_settings are: the shape and its reasons here, the twenty-five
rows next door. The trusted surface should be readable end to end without the
validation that enforces it in the way.
The rule this type exists to make un-forgettable: the triage is a
recommendation, and a lane may override it but may not ignore it silently.
:attr:PromptingSurface.override_argument is required exactly when
:attr:~PromptingSurface.applied is not what
:attr:~PromptingSurface.recorded asks for, so the one state that cannot be
expressed is the one this programme kept producing: a row that quietly did
something other than what was filed.
PromptingSurface
dataclass
¶
PromptingSurface(path: str, subgroup: str, owner: str, recorded: str, applied: str, served_by: tuple[str, ...], refused_by: tuple[str, ...], inert_on: tuple[str, ...], consumer: str, observable: str, condition: str | None = None, override_argument: str | None = None)
One TA8.38 row: what the triage recommended, and what this lane did.
served_by / refused_by / inert_on partition
:data:~symfonic.agent.cutover.lifecycle_contract.PUBLIC_ENTRY_POINTS
exactly, for the reason
:class:~symfonic.agent.cutover.admission_surfaces.AdmissionSurface gives:
an unmeasured third entry point is the gap that made two thirds of this
programme's earlier evidence unusable, and a row with a hole in its surface
would reintroduce it as a data structure.
recorded and applied are separate fields, and that is the whole
point of the type. Every row must carry the disposition this lane actually
applied; a row whose applied disposition differs from the recorded
recommendation must carry an argument as well. Silence is the one state that
cannot be expressed.
overridden
property
¶
True when this lane did not apply the recorded recommendation.
NORMALISED_PER_ROW and REPLACE name a decision; the inventory
vocabulary names an outcome, so the two are compared through the one
pairing that means "applied as written" for each.