Part of #1126
Scope
The three read tools end to end: list_api_services, list_service_operations, get_operation_schema — contracts in tool-contracts.ts, flows (one file per tool), registry wiring (14 → 17), receipts. Operation counts computed from the parsed spec of the liveness GET or absent — never defaulted (S-14; the rev-1 "HEAD-style" mechanism cannot work: HEAD carries no body). Flows self-cap arrays below the central truncator and compute truncated after their own caps (S-13a). curlExample is an explicitly unauthenticated request template with authNote — executability never inferred from absent security metadata (S-24). Failure envelopes per the single status mapping.
Blocked by S2's verdict artifact; receipt semantics depend on S8 landing (receipts written only after output validation).
Design source: RFC #1123 (rfc.md §3) + design/canonical/01-tool-surface.md (rev 2).
Acceptance
Part of #1126
Scope
The three read tools end to end:
list_api_services,list_service_operations,get_operation_schema— contracts intool-contracts.ts, flows (one file per tool), registry wiring (14 → 17), receipts. Operation counts computed from the parsed spec of the liveness GET or absent — never defaulted (S-14; the rev-1 "HEAD-style" mechanism cannot work: HEAD carries no body). Flows self-cap arrays below the central truncator and computetruncatedafter their own caps (S-13a).curlExampleis an explicitly unauthenticated request template withauthNote— executability never inferred from absent security metadata (S-24). Failure envelopes per the single status mapping.Blocked by S2's verdict artifact; receipt semantics depend on S8 landing (receipts written only after output validation).
Design source: RFC #1123 (
rfc.md§3) +design/canonical/01-tool-surface.md(rev 2).Acceptance
truncated: trueappears whenever any row was dropped, and never coexists with removed rowslist_api_servicesoutput