diff --git a/CHANGELOG.md b/CHANGELOG.md index e21bebf..ccda50d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 0.11.0 - 2026-05-31 + - **Verifier adoption-loop release prep.** Public docs and discovery metadata now lead with the verify-first adoption path, pinned `v0.11.0` snippets, verifier artifacts, merge verdicts, `fix_task`, and explicit Action merge-policy @@ -10,8 +12,6 @@ `agents-shipgate feedback export` command plus `docs/feedback-schema.v0.1.json` for redacted design-partner feedback loops. -## 0.11.0 - 2026-05-31 - - **Verifier PR comment v2 + additive Action outputs.** The GitHub Action now defaults to the verifier workflow (`verify_mode: verify`) and the capability-review PR comment (`pr_comment_style: capability-review`) for the diff --git a/samples/support_refund_agent/expected/packet.html b/samples/support_refund_agent/expected/packet.html index 098e9f0..9d95f94 100644 --- a/samples/support_refund_agent/expected/packet.html +++ b/samples/support_refund_agent/expected/packet.html @@ -26,4 +26,4 @@ .status-missing { color: #7f1d1d; } .status-informational { color: #555; } .meta { color: #555; font-size: 0.92rem; } -
This packet is a reviewer-shaped synthesis of a static Agents Shipgate scan. See §10 for what the packet does not prove.
blockedadvisory, would_fail_ci: false, exit code: 0release_decision.decision.SHIP-POLICY-APPROVAL-MISSING (critical): stripe.create_refund lacks a declared approval policySHIP-SIDEFX-IDEMPOTENCY-MISSING (critical): stripe.create_refund lacks idempotency evidenceSHIP-INVENTORY-WILDCARD-TOOLS (high): Wildcard tool exposure declaredSHIP-SCHEMA-MISSING-BOUNDS (high): stripe.create_refund.amount has no maximum boundSHIP-SCHEMA-BROAD-FREE-TEXT (high): zendesk.update_ticket accepts broad free-form action inputSHIP-SCHEMA-BROAD-FREE-TEXT (high): gmail.send_customer_email accepts broad free-form action inputSHIP-SCHEMA-FREEFORM-OUTPUT (medium): send_email_preview returns free-form text outputSHIP-AUTH-MANIFEST-BROAD-SCOPE (high): Manifest declares broad permission scopesSHIP-AUTH-SCOPE-COVERAGE-MISSING (high): shopify.cancel_order requires scopes not declared in the manifestSHIP-AUTH-SCOPE-COVERAGE-MISSING (high): support.search_kb requires scopes not declared in the manifestSHIP-AUTH-SCOPE-COVERAGE-MISSING (high): gmail.send_customer_email requires scopes not declared in the manifestSHIP-SCOPE-PROHIBITED-TOOL-PRESENT (high): stripe.create_refund appears to overlap with a prohibited actionSHIP-SCOPE-PROHIBITED-TOOL-PRESENT (high): gmail.send_customer_email appears to overlap with a prohibited actionSHIP-POLICY-CONFIRMATION-MISSING (high): stripe.create_refund lacks a declared confirmation policySHIP-POLICY-CONFIRMATION-MISSING (high): gmail.send_customer_email lacks a declared confirmation policySHIP-SIDEFX-IDEMPOTENCY-MISSING (high): gmail.send_customer_email lacks idempotency evidenceSHIP-MANIFEST-HIGH-RISK-OWNER-MISSING (high): shopify.cancel_order is high-risk but has no ownerSHIP-MANIFEST-UNUSED-SCOPE (medium): Manifest declares unused permission scope zendesk:tickets:read| Domain | Evidence present | Evidence source | Confidence | Missing controls | Blocking findings | Review items |
|---|---|---|---|---|---|---|
| Inventory | partial | tool_inventory; tool_surface; +2 more | high | SHIP-INVENTORY-WILDCARD-TOOLS on wildcard_mcp_tools.*: Wildcard tool exposure declared | — | SHIP-INVENTORY-WILDCARD-TOOLS (high) |
| Schema | partial | tool_surface_facts.tools[].hashes; findings[] | mixed | SHIP-SCHEMA-MISSING-BOUNDS on stripe.create_refund: stripe.create_refund.amount has no maximum bound; SHIP-SCHEMA-BROAD-FREE-TEXT on zendesk.update_ticket: zendesk.update_ticket accepts broad free-form action input; +2 more | — | SHIP-SCHEMA-MISSING-BOUNDS (high); SHIP-SCHEMA-BROAD-FREE-TEXT (high); +2 more |
| Auth | partial | tool_surface_facts.scopes; tool_inventory[].auth_scopes; +1 more | mixed | SHIP-AUTH-MANIFEST-BROAD-SCOPE: Manifest declares broad permission scopes; SHIP-AUTH-SCOPE-COVERAGE-MISSING on shopify.cancel_order: shopify.cancel_order requires scopes not declared in the manifest; +3 more | — | SHIP-AUTH-MANIFEST-BROAD-SCOPE (high); SHIP-AUTH-SCOPE-COVERAGE-MISSING (high); +3 more |
| Approval | partial | tool_surface_facts.controls[kind=approval_policy]; findings[] | high | SHIP-POLICY-APPROVAL-MISSING on stripe.create_refund: stripe.create_refund lacks a declared approval policy | SHIP-POLICY-APPROVAL-MISSING (critical) | — |
| Confirmation | partial | tool_surface_facts.controls[kind=confirmation_policy]; findings[] | high | SHIP-POLICY-CONFIRMATION-MISSING on stripe.create_refund: stripe.create_refund lacks a declared confirmation policy; SHIP-POLICY-CONFIRMATION-MISSING on gmail.send_customer_email: gmail.send_customer_email lacks a declared confirmation policy | — | SHIP-POLICY-CONFIRMATION-MISSING (high); SHIP-POLICY-CONFIRMATION-MISSING (high) |
| Idempotency | partial | tool_surface_facts.controls[kind=idempotency_evidence]; action_surface_facts.actions[].safeguards.idempotency; +1 more | mixed | SHIP-SIDEFX-IDEMPOTENCY-MISSING on stripe.create_refund: stripe.create_refund lacks idempotency evidence; SHIP-SIDEFX-IDEMPOTENCY-MISSING on gmail.send_customer_email: gmail.send_customer_email lacks idempotency evidence | SHIP-SIDEFX-IDEMPOTENCY-MISSING (critical) | SHIP-SIDEFX-IDEMPOTENCY-MISSING (high) |
| Side effects | partial | tool_inventory[].risk_tags; action_surface_facts.actions[].effect; +1 more | mixed | SHIP-SCHEMA-BROAD-FREE-TEXT on zendesk.update_ticket: zendesk.update_ticket accepts broad free-form action input; SHIP-SCHEMA-BROAD-FREE-TEXT on gmail.send_customer_email: gmail.send_customer_email accepts broad free-form action input; +5 more | SHIP-POLICY-APPROVAL-MISSING (critical); SHIP-SIDEFX-IDEMPOTENCY-MISSING (critical) | SHIP-SCHEMA-BROAD-FREE-TEXT (high); SHIP-SCHEMA-BROAD-FREE-TEXT (high); +3 more |
| Memory isolation | not_declared | — | unknown | — | — | — |
| Human-in-the-loop evidence | not_declared | — | unknown | — | — | — |
| Prompt/scope alignment | partial | declared_intentions; misalignments; +2 more | medium | SHIP-SCOPE-PROHIBITED-TOOL-PRESENT on stripe.create_refund: stripe.create_refund appears to overlap with a prohibited action; SHIP-SCOPE-PROHIBITED-TOOL-PRESENT on gmail.send_customer_email: gmail.send_customer_email appears to overlap with a prohibited action | — | SHIP-SCOPE-PROHIBITED-TOOL-PRESENT (high); SHIP-SCOPE-PROHIBITED-TOOL-PRESENT (high) |
| Retry/timeout | not_declared | — | unknown | — | — | — |
| Baseline debt | informational | — | unknown | — | — | — |
| Action-surface policy | covered | action_surface_facts.actions | medium | — | — | — |
gmail.send_customer_emailrefund_status_lookupsend_email_previewshopify.cancel_orderstripe.create_refundsupport.search_kbwildcard_mcp_tools.*zendesk.update_ticketSHIP-SCOPE-PROHIBITED-TOOL-PRESENT: stripe.create_refund appears to overlap with a prohibited actionSHIP-SCOPE-PROHIBITED-TOOL-PRESENT: gmail.send_customer_email appears to overlap with a prohibited action| Tool | Source | Risk tags | Approval | Idempotency |
|---|---|---|---|---|
gmail.send_customer_email | mcp | customer_communication, external_write | no | no |
shopify.cancel_order | openapi | destructive, write | yes | yes |
stripe.create_refund | openapi | external_write, financial_action, write | no | no |
Status: disabled — No --diff-from report or v0.3 baseline snapshot was provided.
Base: none
Status: disabled — No action-surface comparison source was provided.
Base: none
| Tool | Declared | Source | Gap finding(s) |
|---|---|---|---|
shopify.cancel_order | yes | policies | — |
stripe.create_refund | no | — | fp_f092940f62fbb012 |
SHIP-POLICY-APPROVAL-MISSING (critical): stripe.create_refund lacks a declared approval policyRetry policy: not declared
| Tool | Declared | Source | Gap finding(s) |
|---|---|---|---|
gmail.send_customer_email | no | — | fp_0f8aaa912d589cf0 |
shopify.cancel_order | yes | policies | — |
stripe.create_refund | no | — | fp_dac8011e14c53777 |
SHIP-SIDEFX-IDEMPOTENCY-MISSING (critical): stripe.create_refund lacks idempotency evidenceSHIP-SIDEFX-IDEMPOTENCY-MISSING (high): gmail.send_customer_email lacks idempotency evidencezendesk:tickets:readzendesk:tickets:writestripe:*| Scope | Declared | Used by tools |
|---|---|---|
gmail:send | no | gmail.send_customer_email |
shopify:orders:write | no | shopify.cancel_order |
stripe:* | yes | — |
stripe:refunds:write | yes | stripe.create_refund |
support:kb:read | no | support.search_kb |
zendesk:tickets:read | yes | — |
zendesk:tickets:write | yes | zendesk.update_ticket |
zendesk:tickets:readgmail:sendshopify:orders:writesupport:kb:readSHIP-AUTH-SCOPE-COVERAGE-MISSING (high): shopify.cancel_order requires scopes not declared in the manifestSHIP-AUTH-SCOPE-COVERAGE-MISSING (high): support.search_kb requires scopes not declared in the manifestSHIP-AUTH-SCOPE-COVERAGE-MISSING (high): gmail.send_customer_email requires scopes not declared in the manifestSHIP-MANIFEST-UNUSED-SCOPE (medium): Manifest declares unused permission scope zendesk:tickets:readManifest does not declare a memory isolation policy. The current manifest schema (v0.1) has no agent.memory field. See §10 for the residual review item.
fresh_scanshopify.cancel_ordershopify.cancel_orderAgents Shipgate is an advisory tool: the deterministic merge gate for AI-generated agent capability changes, run as a local-first, static Tool-Use Readiness review. The packet below is derived from a scan; it does not, by itself, prove the following properties: