Flowchart · archy
One change, three surfaces
One change, three surfaces
Every new gate or payload field must reach the CLI text output, the CLI JSON output, and the MCP payload; wiring only some of them is the defect three consecutive review rounds of #371 each found again.
A new gate or field
one change
CLI text
_x_to_text
CLI JSON
_x_to_dict
MCP payload
@computed_field
All three, or it is not shipped
assert on model_dump(), not the attribute
WHY IT MATTERS
Wiring two of three is the defect three consecutive review rounds of #371 each found again. The surface left out was the MCP payload, the one agents call, so it reported
passed=true for the exact case the gate existed to catch. FastMCP drops a plain @property, which is why the third box names @computed_field.