feat(governance): add seller policy and change-right contracts - #6794
Conversation
45e5a03 to
924893a
Compare
924893a to
da00e20
Compare
|
Reviewed at Two small items:
Supportive of landing this. |
…matchers may carry paths Buyers reconciling a disclosed rejection against their any_of[] matcher list should compare full matcher entries, not origins — an agent_url matcher may include a path and therefore be narrower than the disclosed origin, causing a false match on origin-only comparison. Suggested by @lukasz-pubx in review of #6794.
|
Thanks for the thorough review, @lukasz-pubx. Item 2 —
Item 1 — decision records + Generated by Claude Code |
There was a problem hiding this comment.
Ladon verdict: Escalate to human review
Escalate — gated paths touched without required approval.
This PR modifies protocol source under static/schemas/source/** (and .agents/**), which are under a hard, deterministic approval gate (gated_paths: true). The current review_decision is REVIEW_REQUIRED, not APPROVED, so the gate is NOT satisfied and the PR cannot be auto-approved (decision table row 2).
The reviewer findings are clean: the change relaxes error.code from required to optional on the newly-added, unreleased reported-outcome-error.json schema — a non-breaking loosening on an unreleased surface — and it is propagated coherently across schema, docs (report_plan_outcome.mdx), the governance handler, and both server and .cjs tests, with a minor changeset covering the additive surface. No critical/high/medium findings were reported.
Escalation reasons:
- Touches gated protocol-source files (e.g.
static/schemas/source/governance/reported-outcome-error.json,static/schemas/source/enums/error-code.json, and many others understatic/schemas/source/**, plus.agents/sdk-shim-ledger.json) that require human/CODEOWNERS approval;review_decisionisREVIEW_REQUIRED.
Once a human/CODEOWNERS approval sets review_decision to APPROVED, this PR falls through to a normal clean approve on the current findings.
Why human review
- Gated paths touched (static/schemas/source/** and .agents/**) — hard approval gate not satisfied: review_decision is REVIEW_REQUIRED, not APPROVED. Human/CODEOWNERS review required.
- This PR touches a path under a hard, non-overridable approval gate (.agents/sdk-shim-ledger.json (modified) matches
.agents/**; static/schemas/source/account/sync-governance-response.json (modified) matchesstatic/schemas/source/**; static/schemas/source/core/canonical-media-buy-action.json (modified) matchesstatic/schemas/source/**; static/schemas/source/core/canonical-product-action.json (modified) matchesstatic/schemas/source/**; static/schemas/source/core/canonical-product.json (modified) matchesstatic/schemas/source/**; static/schemas/source/core/media-buy-available-action.json (modified) matchesstatic/schemas/source/**; static/schemas/source/core/product-allowed-action.json (modified) matchesstatic/schemas/source/**; static/schemas/source/core/product.json (modified) matchesstatic/schemas/source/**; static/schemas/source/core/sla-window.json (modified) matchesstatic/schemas/source/**; static/schemas/source/core/x-entity-types.json (modified) matchesstatic/schemas/source/**; static/schemas/source/enums/canonical-media-buy-action-mode.json (modified) matchesstatic/schemas/source/**; static/schemas/source/enums/error-code.json (modified) matchesstatic/schemas/source/**; static/schemas/source/enums/media-buy-action-mode.json (modified) matchesstatic/schemas/source/**; static/schemas/source/error-details/governance-agent-not-accepted.json (added) matchesstatic/schemas/source/**; static/schemas/source/error-details/policy-violation.json (modified) matchesstatic/schemas/source/**; static/schemas/source/governance/accepted-governance-agents.json (added) matchesstatic/schemas/source/**; static/schemas/source/governance/get-plan-audit-logs-response.json (modified) matchesstatic/schemas/source/**; static/schemas/source/governance/policy-category-definition.json (modified) matchesstatic/schemas/source/**; static/schemas/source/governance/policy-entry.json (modified) matchesstatic/schemas/source/**; static/schemas/source/governance/report-plan-outcome-request.json (modified) matchesstatic/schemas/source/**; static/schemas/source/governance/reported-outcome-error.json (added) matchesstatic/schemas/source/**; static/schemas/source/index.json (modified) matchesstatic/schemas/source/**; static/schemas/source/media-buy/acceptance-context.json (added) matchesstatic/schemas/source/**; static/schemas/source/media-
…(truncated)…
|
Issue #6823 proposes a new Generated by Claude Code |
|
WG ratification is now recorded for all four RFCs:
The decision records are committed in 6060673, formal decision comments are posted on each RFC, the |
There was a problem hiding this comment.
Ladon verdict: Escalate to human review
Escalate — gated paths touched without required review approval.
This PR modifies files under hard approval gates (static/schemas/source/** and .agents/**) — the protocol wire-shape source of truth. gated_paths is true and review_decision is REVIEW_REQUIRED (not APPROVED), so decision-table row 2 forces escalation regardless of how clean the diff is.
The reviewer found no critical/high/medium findings this pass. The delta since the prior escalate adds only four well-formed governance decision records (DR-0015–DR-0018), whose factual claims check out against the schema/docs/SDK changes. This is a net-clean iteration, but the hard gate cannot be auto-satisfied by Ladon.
Additionally, this PR introduces new protocol schema fields, new error codes (GOVERNANCE_AGENT_NOT_ACCEPTED, GOVERNANCE_UNAVAILABLE), new media-buy acceptance-policy schemas, and new enum values — breaking/normative-class protocol surface changes whose ratification is an explicit human act per the constitution's breaking-class hard gate. Human/CODEOWNERS review is required before merge.
Escalation reasons
- Gated paths touched (
static/schemas/source/**,.agents/sdk-shim-ledger.json) — hard approval gate not satisfied:review_decisionisREVIEW_REQUIRED, notAPPROVED. - Protocol wire-shape changes (new schemas, fields, error codes, enum values) require human ratification per the breaking-class governance gate.
Why human review
- Gated paths touched (static/schemas/source/** and .agents/sdk-shim-ledger.json) — hard approval gate not satisfied: review_decision is REVIEW_REQUIRED, not APPROVED. Human/CODEOWNERS approval required.
- Protocol wire-shape surface changed (new acceptance-policy schemas, new error codes, new enum values, new required/optional fields) — breaking-class ratification is a human act per constitution; never auto-approved absent APPROVED review.
- This PR touches a path under a hard, non-overridable approval gate (.agents/sdk-shim-ledger.json (modified) matches
.agents/**; static/schemas/source/account/sync-governance-response.json (modified) matchesstatic/schemas/source/**; static/schemas/source/core/canonical-media-buy-action.json (modified) matchesstatic/schemas/source/**; static/schemas/source/core/canonical-product-action.json (modified) matchesstatic/schemas/source/**; static/schemas/source/core/canonical-product.json (modified) matchesstatic/schemas/source/**; static/schemas/source/core/media-buy-available-action.json (modified) matchesstatic/schemas/source/**; static/schemas/source/core/product-allowed-action.json (modified) matchesstatic/schemas/source/**; static/schemas/source/core/product.json (modified) matchesstatic/schemas/source/**; static/schemas/source/core/sla-window.json (modified) matchesstatic/schemas/source/**; static/schemas/source/core/x-entity-types.json (modified) matchesstatic/schemas/source/**; static/schemas/source/enums/canonical-media-buy-action-mode.json (modified) matchesstatic/schemas/source/**; static/schemas/source/enums/error-code.json (modified) matchesstatic/schemas/source/**; static/schemas/source/enums/media-buy-action-mode.json (modified) matchesstatic/schemas/source/**; static/schemas/source/error-details/governance-agent-not-accepted.json (added) matchesstatic/schemas/source/**; static/schemas/source/error-details/policy-violation.json (modified) matchesstatic/schemas/source/**; static/schemas/source/governance/accepted-governance-agents.json (added) matchesstatic/schemas/source/**; static/schemas/source/governance/get-plan-audit-logs-response.json (modified) matchesstatic/schemas/source/**; static/schemas/source/governance/policy-category-definition.json (modified) matchesstatic/schemas/source/**; static/schemas/source/governance/policy-entry.json (modified) matchesstatic/schemas/source/**; static/schemas/source/governance/report-plan-outcome-request
…(truncated)…
|
Addressed the #6823 documentation note in 27ff9e1. The new sell-side governance boundaries page makes the spend-approval asymmetry explicit and separates buyer authority, seller acceptance, negotiated change rights, and seller-internal review. It also documents the seller-disposition/audit and governance-agent dependency boundaries introduced by this PR. The PR now carries |
…icies # Conflicts: # docs.json # server/src/training-agent/task-handlers.ts # server/src/training-agent/tenants/router.ts # server/src/training-agent/tenants/tenant-smoke.test.ts # tests/docs-nav-validation.test.cjs
|
Final merge/CI follow-up at 76f5901:
The only remaining failed check is external reviewer infrastructure: Ladon completed with no buffered inline comments, then failed because it did not create its findings JSON. This reproduced on two reruns and has no repository finding to address. GitHub also still reports REVIEW_REQUIRED, so a human/CODEOWNERS approval is needed to record the WG approval and clear the hard gate. |
There was a problem hiding this comment.
Ladon verdict: Escalate to human review
Escalate — hard approval gate not satisfied and Breaking-class governance change requires human ratification.
No blocking findings — the reviewer's subsequent-pass review of the delta since f58408d surfaced no critical/high/medium findings. The protocol-surface changes were verified as coherent: the new condition_unresolved reason value aligns across action-not-allowed-reason.json, error-code.json, control-media-buy-request.json, and the corresponding docs/compliance scenario (no schema↔docs drift); the minor changeset is correct for additive enum/fields retaining 3.1 compatibility; policies-db.ts async conversions and fail-closed resolvePolicy are correct; the acceptance_profile requirements oneOf is discriminated by a kind const. This is a clean diff.
Why escalate, not approve:
- Gated paths (row 2):
gated_paths: true(touchesstatic/schemas/source/**,.agents/**,.github/workflows/**) andreview_decision: REVIEW_REQUIRED— NOTAPPROVED. The hard, non-overridable approval gate is not satisfied. Ladon cannot auto-approve until a human/CODEOWNERS approval is recorded. - Breaking-class governance surface: New acceptance-policy schemas, new
GOVERNANCE_AGENT_NOT_ACCEPTEDerror code, new enum values, new discriminated oneOf arms, and new decision records DR-0015..0018. Per the constitution's Breaking-class hard gate, ratification is a human act and is never auto-approved absent an APPROVED review. - Prior decision was also
escalatefor the same gate reasons; the gate condition persists unchanged.
Escalation reasons:
- Gated files under
static/schemas/source/**,.agents/sdk-shim-ledger.json, and.github/workflows/training-agent-storyboards.ymlrequire human/CODEOWNERS approval;review_decisionisREVIEW_REQUIRED. - Breaking-class / Normative governance protocol change (new schemas, error code, enum values, DR-0015..0018) — ratification is a human act.
Why human review
- Gated paths touched (static/schemas/source/**, .agents/sdk-shim-ledger.json, .github/workflows/training-agent-storyboards.yml) — hard approval gate not satisfied: review_decision is REVIEW_REQUIRED, not APPROVED. Human/CODEOWNERS approval required.
- Breaking-class governance protocol surface change (new acceptance-policy schemas, new GOVERNANCE_AGENT_NOT_ACCEPTED error code, new enum values, new discriminated oneOf arms, DR-0015..0018) — ratification is a human act per the constitution; never auto-approved absent an APPROVED review.
- This PR touches a path under a hard, non-overridable approval gate (.agents/sdk-shim-ledger.json (modified) matches
.agents/**; .github/workflows/training-agent-storyboards.yml (modified) matches.github/workflows/**; static/schemas/source/account/sync-governance-response.json (modified) matchesstatic/schemas/source/**; static/schemas/source/core/acceptance-policy-profile-ids.json (added) matchesstatic/schemas/source/**; static/schemas/source/core/canonical-media-buy-action-fields.json (added) matchesstatic/schemas/source/**; static/schemas/source/core/canonical-media-buy-action.json (modified) matchesstatic/schemas/source/**; static/schemas/source/core/canonical-product-action.json (modified) matchesstatic/schemas/source/**; static/schemas/source/core/canonical-product.json (modified) matchesstatic/schemas/source/**; static/schemas/source/core/media-buy-available-action.json (modified) matchesstatic/schemas/source/**; static/schemas/source/core/media-buy-change-term-id.json (added) matchesstatic/schemas/source/**; static/schemas/source/core/media-buy-legacy-terms-ref.json (added) matchesstatic/schemas/source/**; static/schemas/source/core/product-allowed-action.json (modified) matchesstatic/schemas/source/**; static/schemas/source/core/product.json (modified) matchesstatic/schemas/source/**; static/schemas/source/core/sla-window.json (modified) matches `static/schemas/so
…(truncated)…
…icies # Conflicts: # .github/workflows/training-agent-storyboards.yml # scripts/run-storyboards-matrix.sh # server/src/training-agent/account-handlers.ts # server/src/training-agent/task-handlers.ts # server/src/training-agent/tenants/tenant-smoke.test.ts # tests/mcp-schema-analysis.test.cjs # tests/run-storyboards-sharding.test.cjs
|
Ladon cannot review this PR until merge conflicts are resolved. |
…icies # Conflicts: # server/src/training-agent/tenants/registry.ts # server/src/training-agent/v6-sales-platform.ts # server/tests/manual/run-storyboards.ts
There was a problem hiding this comment.
Ladon verdict: Escalate to human review
Escalate — hard approval gate not satisfied, plus breaking-class governance protocol surface change.
This PR touches gated paths under a hard, non-overridable approval gate and the current GitHub review decision is REVIEW_REQUIRED, not APPROVED. Per decision-table row 2, the outcome must be escalate until human/CODEOWNERS approval is recorded.
Escalation reasons
- Gated paths touched (
static/schemas/source/**,.agents/sdk-shim-ledger.json,.github/workflows/training-agent-storyboards.yml) — hard approval gate;review_decisionisREVIEW_REQUIRED, notAPPROVED. Human/CODEOWNERS approval required. - Breaking-class governance protocol surface change (new acceptance-policy schemas, new
GOVERNANCE_AGENT_NOT_ACCEPTEDerror code, new enum values, new discriminatedoneOfarms, DR-0015..0018). Ratification is a human act per the constitution and is never auto-approved absent an APPROVED review.
The reviewer reported a clean delta pass with no Critical/High/Medium findings, so the escalation rests entirely on the unsatisfied gate, not on code defects. The gate lifts automatically once an APPROVED review is recorded.
Why human review
- Gated paths touched (static/schemas/source/**, .agents/sdk-shim-ledger.json, .github/workflows/training-agent-storyboards.yml) — hard approval gate not satisfied: review_decision is REVIEW_REQUIRED, not APPROVED. Human/CODEOWNERS approval required.
- Breaking-class governance protocol surface change (new acceptance-policy schemas, new GOVERNANCE_AGENT_NOT_ACCEPTED error code, new enum values, new discriminated oneOf arms, DR-0015..0018) — ratification is a human act per the constitution; never auto-approved absent an APPROVED review.
- This PR touches a path under a hard, non-overridable approval gate (.agents/sdk-shim-ledger.json (modified) matches
.agents/**; .github/workflows/training-agent-storyboards.yml (modified) matches.github/workflows/**; static/schemas/source/account/sync-governance-response.json (modified) matchesstatic/schemas/source/**; static/schemas/source/core/acceptance-policy-profile-ids.json (added) matchesstatic/schemas/source/**; static/schemas/source/core/canonical-media-buy-action-fields.json (added) matchesstatic/schemas/source/**; static/schemas/source/core/canonical-media-buy-action.json (modified) matchesstatic/schemas/source/**; static/schemas/source/core/canonical-product-action.json (modified) matchesstatic/schemas/source/**; static/schemas/source/core/canonical-product.json (modified) matchesstatic/schemas/source/**; static/schemas/source/core/media-buy-available-action.json (modified) matchesstatic/schemas/source/**; static/schemas/source/core/media-buy-change-term-id.json (added) matchesstatic/schemas/source/**; static/schemas/source/core/media-buy-legacy-terms-ref.json (added) matchesstatic/schemas/source/**; static/schemas/source/core/product-allowed-action.json (modified) matchesstatic/schemas/source/**; static/schemas/source/core/product.json (modified) matchesstatic/schemas/source/**; static/schemas/source/core/sla-window.json (modified) matchesstatic/schemas/source/**; static/schemas/source/core/x-entity-types.json (modified) matchesstatic/schemas/source/**; static/schemas/source/enums/action-not-allowed-reason.json (modified) matchesstatic/schemas/source/**; static/schemas/source/enums/canonical-media-buy-action-mode.json (modified) matchesstatic/schemas/source/**; static/schemas/source/enums/error-code.json (modified) matchesstatic/schemas/source/**; static/schemas/source/enums/media-buy-action-mode.json (modified) matchesstatic/schemas/source/**; static/schemas/source/error-details/governance-agent-not-accepted.json (added) matchesstatic/schemas/source/**; static/schemas/source/error-details/policy-violation.json (modified) matchesstatic/schemas/source/**; static/schemas/source/governance/accepted-governance
…(truncated)…
There was a problem hiding this comment.
Ladon verdict: Escalate to human review
Escalate — hard approval gate not satisfied on a breaking-class governance protocol change.
This PR touches gated paths (static/schemas/source/**, .agents/sdk-shim-ledger.json, .github/workflows/training-agent-storyboards.yml) which are under a hard, non-overridable approval gate. gated_paths: true and review_decision is REVIEW_REQUIRED (not APPROVED) — decision-table row 2 fires, forcing escalate.
The change is also a Breaking-class governance protocol surface change (new acceptance-policy schemas, new GOVERNANCE_AGENT_NOT_ACCEPTED error code, new enum values, new discriminated oneOf arms, and decision records DR-0015..0018). Per the constitution, ratification of a Breaking-class change is a human act and is never auto-approved absent an APPROVED review — this reinforces the same escalate outcome (prose hard gate).
The reviewer's delta pass is clean: no critical/high/medium findings this run (unused-import cleanup in v6-sales-platform.ts and a mechanical schema-graph count bump in mcp-schema-analysis.test.cjs, both consistent with the single added schema definition). The prior escalate carries no fresh blocking findings, so it does not stick on its own — but the deterministic gated-paths gate and the breaking-class governance gate independently require a human/CODEOWNERS approval before this can merge.
Escalation reasons
- Gated paths touched (
static/schemas/source/**,.agents/**,.github/workflows/**) — hard approval gate not satisfied:review_decisionisREVIEW_REQUIRED, notAPPROVED. Human/CODEOWNERS approval required. - Breaking-class governance protocol change (new schemas, new error code, new enums, new oneOf arms, DR-0015..0018) — ratification is a human act per the constitution; never auto-approved absent an APPROVED review.
Why human review
- Gated paths touched (static/schemas/source/**, .agents/sdk-shim-ledger.json, .github/workflows/training-agent-storyboards.yml) — hard approval gate not satisfied: review_decision is REVIEW_REQUIRED, not APPROVED. Human/CODEOWNERS approval required.
- Breaking-class governance protocol surface change (new acceptance-policy schemas, new GOVERNANCE_AGENT_NOT_ACCEPTED error code, new enum values, new discriminated oneOf arms, DR-0015..0018) — ratification is a human act per the constitution; never auto-approved absent an APPROVED review.
- This PR touches a path under a hard, non-overridable approval gate (.agents/sdk-shim-ledger.json (modified) matches
.agents/**; .github/workflows/training-agent-storyboards.yml (modified) matches.github/workflows/**; static/schemas/source/account/sync-governance-response.json (modified) matchesstatic/schemas/source/**; static/schemas/source/core/acceptance-policy-profile-ids.json (added) matchesstatic/schemas/source/**; static/schemas/source/core/canonical-media-buy-action-fields.json (added) matchesstatic/schemas/source/**; static/schemas/source/core/canonical-media-buy-action.json (modified) matchesstatic/schemas/source/**; static/schemas/source/core/canonical-product-action.json (modified) matchesstatic/schemas/source/**; static/schemas/source/core/canonical-product.json (modified) matchesstatic/schemas/source/**; static/schemas/source/core/media-buy-available-action.json (modified) matchesstatic/schemas/source/**; static/schemas/source/core/media-buy-change-term-id.json (added) matchesstatic/schemas/source/**; static/schemas/source/core/media-buy-legacy-terms-ref.json (added) matchesstatic/schemas/source/**; static/schemas/source/core/product-allowed-action.json (modified) matchesstatic/schemas/source/**; static/schemas/source/core/product.json (modified) matchesstatic/schemas/source/**; static/schemas/source/core/sla-window.json (modified) matchesstatic/schemas/source/**; static/schemas/source/core/x-entity-types.json (modified) matchesstatic/schemas/source/**; static/schemas/source/enums/act
…(truncated)…
|
@patmmccann All CI checks are green on |
…icies # Conflicts: # static/schemas/source/media-buy/get-products-request.json
There was a problem hiding this comment.
Ladon verdict: Escalate to human review
Escalate — hard approval gate not satisfied.
This PR touches paths under a deterministic hard approval gate (gated_paths: true) while the GitHub review decision is REVIEW_REQUIRED, not APPROVED. Per decision table row 2, the outcome must be escalate until a human/CODEOWNERS approval is recorded.
Additionally, this is a breaking-class governance protocol surface change (new acceptance-policy schemas, new GOVERNANCE_AGENT_NOT_ACCEPTED error code, new enum values, new discriminated oneOf arms, DR-0015..0018). Per the repo's constitution, ratification of a Breaking-class change is a human act and is never auto-approved absent an APPROVED review — even with a clean diff and correct changeset.
The reviewer found no Critical/High/Medium findings this pass (net improvement; prior run also had none). The delta is clean and well-tested. But a clean diff does not lift the gate — only an APPROVED review does.
Escalation reasons
- Gated paths touched (
static/schemas/source/**,.agents/sdk-shim-ledger.json,.github/workflows/training-agent-storyboards.yml) — hard approval gate;review_decisionisREVIEW_REQUIRED, notAPPROVED. Human/CODEOWNERS approval required. - Breaking-class governance protocol surface change — ratification is a human act per the constitution; never auto-approved absent an APPROVED review.
Once a human/CODEOWNERS approval is recorded (review_decision: APPROVED), this PR — being finding-free — can fall through to approve.
Why human review
- Gated paths touched (static/schemas/source/**, .agents/sdk-shim-ledger.json, .github/workflows/training-agent-storyboards.yml) — hard approval gate not satisfied: review_decision is REVIEW_REQUIRED, not APPROVED. Human/CODEOWNERS approval required.
- Breaking-class governance protocol surface change (new acceptance-policy schemas, new GOVERNANCE_AGENT_NOT_ACCEPTED error code, new enum values, new discriminated oneOf arms, DR-0015..0018) — ratification is a human act per the constitution; never auto-approved absent an APPROVED review.
- This PR touches a path under a hard, non-overridable approval gate (.agents/sdk-shim-ledger.json (modified) matches
.agents/**; .github/workflows/training-agent-storyboards.yml (modified) matches.github/workflows/**; static/schemas/source/account/sync-governance-response.json (modified) matchesstatic/schemas/source/**; static/schemas/source/core/acceptance-policy-profile-ids.json (added) matchesstatic/schemas/source/**; static/schemas/source/core/canonical-media-buy-action-fields.json (added) matchesstatic/schemas/source/**; static/schemas/source/core/canonical-media-buy-action.json (modified) matchesstatic/schemas/source/**; static/schemas/source/core/canonical-product-action.json (modified) matchesstatic/schemas/source/**; static/schemas/source/core/canonical-product.json (modified) matchesstatic/schemas/source/**; static/schemas/source/core/media-buy-available-action.json (modified) matchesstatic/schemas/source/**; static/schemas/source/core/media-buy-change-term-id.json (added) matchesstatic/schemas/source/**; static/schemas/source/core/media-buy-legacy-terms-ref.json (added) matchesstatic/schemas/source/**; static/schemas/source/core/product-allowed-action.json (modified) matchesstatic/schemas/source/**; static/schemas/source/core/product.json (modified) matchesstatic/schemas/source/**; static/schemas/source/core/sla-window.json (modified) matchesstatic/schemas/source/**; static/schemas/source/core/x-entity-types.json (modified) matchesstatic/schemas/source/**; static/schemas/source/enums/action-not-allowed-reason.json (modified) matchesstatic/schemas/source/**; static/schemas/source/enums/canonical-media-buy-action-mode.json (modified) matchesstatic/schemas/source/**; static/schemas/source/enums/error-code.json (modified) matchesstatic/schemas/source/**; static/schemas/source/enums/media-buy-act
…(truncated)…
…icies # Conflicts: # server/src/training-agent/account-handlers.ts # server/src/training-agent/comply-test-controller.ts # server/src/training-agent/tenants/router.ts # tests/mcp-schema-analysis.test.cjs # tests/mcp-schema-projection.test.cjs
There was a problem hiding this comment.
Ladon verdict: Escalate to human review
Escalate — hard approval gate not satisfied.
This PR touches gated paths (static/schemas/source/**, .agents/sdk-shim-ledger.json, .github/workflows/training-agent-storyboards.yml) which are under a hard, non-overridable approval gate. gated_paths is true and review_decision is REVIEW_REQUIRED (not APPROVED), so decision-table row 2 fires: outcome must be escalate.
Independently, this is a breaking-class governance protocol surface change (new acceptance-policy schemas, new GOVERNANCE_AGENT_NOT_ACCEPTED error code, new enum values, new discriminated oneOf arms, DR-0015..0018). Per the constitution and repo hard gate, ratification is a human act and is never auto-approved absent an APPROVED review.
The reviewer reported no Critical/High/Medium findings on this delta pass — additive AdCP 3.2 draft surfaces with correct minor changesets, verified schema↔docs coherence, discriminated oneOfs, dist immutability, and backward-compatible wire shapes. There are no blocking code findings. The escalation is driven entirely by the unsatisfied approval gate and the breaking-class/normative-ratification requirement, consistent with the prior escalate decision.
Escalation reasons
- Gated paths touched under a hard approval gate;
review_decisionisREVIEW_REQUIRED, notAPPROVED. Human/CODEOWNERS approval required to lift the gate. - Breaking-class / normative governance protocol surface change (new schemas, new error code, new enum values, new oneOf arms, DR-0015..0018) — ratification is a human act; never auto-approved without an APPROVED review.
Why human review
- Gated paths touched (static/schemas/source/**, .agents/sdk-shim-ledger.json, .github/workflows/training-agent-storyboards.yml) — hard approval gate not satisfied: review_decision is REVIEW_REQUIRED, not APPROVED. Human/CODEOWNERS approval required.
- Breaking-class governance protocol surface change (new acceptance-policy schemas, new GOVERNANCE_AGENT_NOT_ACCEPTED error code, new enum values, new discriminated oneOf arms, DR-0015..0018) — ratification is a human act per the constitution; never auto-approved absent an APPROVED review.
- This PR touches a path under a hard, non-overridable approval gate (.agents/sdk-shim-ledger.json (modified) matches
.agents/**; .github/workflows/training-agent-storyboards.yml (modified) matches.github/workflows/**; static/schemas/source/account/sync-governance-response.json (modified) matchesstatic/schemas/source/**; static/schemas/source/core/acceptance-policy-profile-ids.json (added) matchesstatic/schemas/source/**; static/schemas/source/core/canonical-media-buy-action-fields.json (added) matchesstatic/schemas/source/**; static/schemas/source/core/canonical-media-buy-action.json (modified) matchesstatic/schemas/source/**; static/schemas/source/core/canonical-product-action.json (modified) matchesstatic/schemas/source/**; static/schemas/source/core/canonical-product.json (modified) matchesstatic/schemas/source/**; static/schemas/source/core/media-buy-available-action.json (modified) matchesstatic/schemas/source/**; static/schemas/source/core/media-buy-change-term-id.json (added) matchesstatic/schemas/source/**; static/schemas/source/core/media-buy-legacy-terms-ref.json (added) matchesstatic/schemas/source/**; static/schemas/source/core/product-allowed-action.json (modified) matchesstatic/schemas/source/**; static/schemas/source/core/product.json (modified) matchesstatic/schemas/source/**; static/schemas/source/core/sla-window.json (modified) matchesstatic/schemas/source/**; static/schemas/source/core/x-entity-types.json (modified) matchesstatic/schemas/source/**; static/schemas/source/enums/action-not-allowed-reason.json (modified) matchesstatic/schemas/source/**; static/schemas/source/enums/canonical-media-buy-action-mode.json (modified) matchesstatic/schemas/source/**; static/schemas/source/
…(truncated)…
Summary
Security and compatibility
3.1); the released3.1.19artifact remains the compatibility validatorValidation
SDK follow-ups
Closes #6749
Closes #6750
Closes #6757
Closes #6758
Closes #6823