Master doc: docs/shaping/acs-reference-impl-slices.md — authoritative for scope, slice order, and contracts. docs/shaping/acs-reference-impl-shaping.md is authoritative for requirements, shapes, fit check, and breadboard.
Outcome: Microsoft AGT's policy engine runs unforked beneath the ACS wire contract across two structurally different coding agent hosts, with a machine-checked mapping proving all eight intervention points and five verdicts round-trip without loss.
Stops at: V10. ⚠️ Was "V8, upstream drift watch. Extension work beyond the surface AGT consumes stays parked." Reopened by the V9/V10 spike (docs/shaping/spike-unreached-gates.md), which measured the parked work and found the premise wrong in both directions:
- V9 is not extension work at all. Only three of AGT's nine stock gate classes were reachable in this deployment.
egress is the fourth, and for a tool whose ACS arguments already name a destination it needs one data.json key and no code — the strongest form of R2.1 in the project, parked as if it were headroom. What it does cost is real and was invisible until measured: AGT's intervention_point carries exactly one policy_target, so this deployment could only ever govern one tool shape, and a benign second-shape call is denied on runtime_error:path_missing.
- V10 is extension work, and it earns the slot by driving an unforked AGT rule.
steps/skillLoad carries a digest whose semantics hooks/skill-load.json spells out clause for clause as what policy/lib/content_hash.rego decides, and no AGT host package has a hook for it. That answers R8.3 by building it rather than by showing a surface exists.
R5.4 and D3 close with V10: three steps/* hooks of nineteen.
Master doc:
docs/shaping/acs-reference-impl-slices.md— authoritative for scope, slice order, and contracts.docs/shaping/acs-reference-impl-shaping.mdis authoritative for requirements, shapes, fit check, and breadboard.Outcome: Microsoft AGT's policy engine runs unforked beneath the ACS wire contract across two structurally different coding agent hosts, with a machine-checked mapping proving all eight intervention points and five verdicts round-trip without loss.
Stops at: V10.⚠️ Was "V8, upstream drift watch. Extension work beyond the surface AGT consumes stays parked." Reopened by the V9/V10 spike (
docs/shaping/spike-unreached-gates.md), which measured the parked work and found the premise wrong in both directions:egressis the fourth, and for a tool whose ACS arguments already name a destination it needs onedata.jsonkey and no code — the strongest form of R2.1 in the project, parked as if it were headroom. What it does cost is real and was invisible until measured: AGT'sintervention_pointcarries exactly onepolicy_target, so this deployment could only ever govern one tool shape, and a benign second-shape call is denied onruntime_error:path_missing.steps/skillLoadcarries adigestwhose semanticshooks/skill-load.jsonspells out clause for clause as whatpolicy/lib/content_hash.regodecides, and no AGT host package has a hook for it. That answers R8.3 by building it rather than by showing a surface exists.R5.4 and D3 close with V10: three
steps/*hooks of nineteen.