{
  "schema": "varexis-index-free-publication-preview/1",
  "catalogue_version": "ice-12-tranche-72-v1",
  "route_id": "agentic_reviewed_claude_sdk_posthook_output_provenance",
  "record_id": "VXI-EXT-ICE12-CLAUDE-SDK-POSTHOOK-OUTPUT-PROVENANCE-01-v1",
  "question": "Is the tool output seen by the Claude model necessarily the original tool result?",
  "answer": "The pinned Python SDK PostToolUseHookSpecificOutput documents updatedToolOutput as a replacement before the result reaches the model. For built-in tools its shape must match the tool output schema; a mismatch is rejected and the original output is retained. The 0.1.74 changelog introduced this option beyond MCP-only output replacement.",
  "records": [
    {
      "record_id": "VXI-EXT-ICE12-CLAUDE-SDK-POSTHOOK-OUTPUT-PROVENANCE-01-v1",
      "url": "/varexis-index/records/claude-sdk-posthook-output-provenance.json",
      "content_sha256": "b45e69214158246e1ea906ee41e26ef947dca84798fa8539318a579379db9cb7",
      "evidence": {
        "schema": "varexis-public-evidence-record/0.3",
        "generated_at_utc": "2026-10-31T14:11:02.820224+00:00",
        "record_id": "VXI-EXT-ICE12-CLAUDE-SDK-POSTHOOK-OUTPUT-PROVENANCE-01-v1",
        "record_kind": "external_reference",
        "title": "Claude SDK original and hook-modified tool output",
        "system": "Anthropic",
        "evidence_family": "vendor_evidence_review",
        "index_status": "PUBLIC_SAFE_SOURCE_REVIEW",
        "evidence_state": "PRIMARY_DOCUMENTATION_REVIEW_ONLY",
        "canonical_question": "Is the tool output seen by the Claude model necessarily the original tool result?",
        "near_questions": [
          "Can a Claude PostToolUse hook change what the model sees?",
          "Does updatedToolOutput preserve the original result as audit evidence?",
          "What happens when a Claude hook replacement has the wrong output shape?",
          "How can I distinguish original tool evidence from a hook-modified result?"
        ],
        "supported_claims": [
          {
            "claim": "The pinned Python SDK PostToolUseHookSpecificOutput documents updatedToolOutput as a replacement before the result reaches the model. For built-in tools its shape must match the tool output schema; a mismatch is rejected and the original output is retained. The 0.1.74 changelog introduced this option beyond MCP-only output replacement.",
            "reliance": "DOCUMENTED_CAPABILITY_ONLY"
          }
        ],
        "not_demonstrated_claims": [
          "Refuse to equate a model-facing result with untouched tool evidence without retaining the original result, hook configuration, replacement and acceptance outcome. A configured replacement does not prove it was accepted or that the action succeeded.",
          "Buyer implementation, live runtime enforcement, settled payment, verified deletion or certification are not established.",
          "No expanded capabilities or licences for existing INDEX executables."
        ],
        "public_summary": "The pinned Python SDK PostToolUseHookSpecificOutput documents updatedToolOutput as a replacement before the result reaches the model. For built-in tools its shape must match the tool output schema; a mismatch is rejected and the original output is retained. The 0.1.74 changelog introduced this option beyond MCP-only output replacement.",
        "related_record_ids": [],
        "source_review": {
          "source_type": "official_external_documentation",
          "source_title": "Claude Agent SDK for Python: typed public contracts",
          "source_url": "https://raw.githubusercontent.com/anthropics/claude-agent-sdk-python/2146f9d8985513053e904b13200c8f744b36785a/src/claude_agent_sdk/types.py",
          "checked_on": "2026-10-31",
          "candidate_record_id": "VXI-EXT-ICE12-CLAUDE-SDK-POSTHOOK-OUTPUT-PROVENANCE-01-v1",
          "candidate_record_sha256": "0d8a66bbf456b79e2e1fb014f766a2168921ace6241a7946db9ec111aa35ff7c",
          "method": "Primary documentation reviewed for the published bounded statement.",
          "deployment_tested_by_varexis": false,
          "revalidation": "The delivered snapshot preserves the review date shown. Recheck current primary documentation and deployment context before relying on present applicability; payment does not trigger fresh research."
        },
        "answer_policy": {
          "classification": "DOCUMENTED_WITH_DEPLOYMENT_BOUNDARY",
          "bounded_answer": "The pinned Python SDK PostToolUseHookSpecificOutput documents updatedToolOutput as a replacement before the result reaches the model. For built-in tools its shape must match the tool output schema; a mismatch is rejected and the original output is retained. The 0.1.74 changelog introduced this option beyond MCP-only output replacement.",
          "required_buyer_context": "SDK/CLI versions and tool schema; original tool result and PostToolUse hook output; observed accepted or rejected replacement and model-facing result. Buyer deployment not inspected.",
          "missing_evidence": "A broader claim needs evidence matching the intended use. Payment does not upgrade the evidence state."
        },
        "private_boundary": "Raw logs, thresholds, private paths, source code, protected mechanisms and reconstruction-level details are excluded from public and paid delivery.",
        "decision_profile": {
          "schema": "varexis-vendor-evidence-review/1",
          "review_status": "documentation_review_only",
          "applicability_status": "updatedToolOutput introduced in Python SDK 0.1.74; schema rejection behaviour verified in pinned type documentation. Review capture 2026-10-31. Buyer deployment not inspected.",
          "checked_on": "2026-10-31",
          "claim_to_check": "Is the tool output seen by the Claude model necessarily the original tool result?",
          "documented_statement": {
            "status": "documented",
            "statement": "The pinned Python SDK PostToolUseHookSpecificOutput documents updatedToolOutput as a replacement before the result reaches the model. For built-in tools its shape must match the tool output schema; a mismatch is rejected and the original output is retained. The 0.1.74 changelog introduced this option beyond MCP-only output replacement.",
            "source_ids": [
              "claude-types",
              "claude-changelog"
            ]
          },
          "review_inference": {
            "status": "review_inference",
            "statement": "Refuse to equate a model-facing result with untouched tool evidence without retaining the original result, hook configuration, replacement and acceptance outcome. A configured replacement does not prove it was accepted or that the action succeeded. The existing hook review concerns pre-execution permission precedence. This decision concerns post-execution evidence transformation and the need to distinguish original output from what the model received. Operational review inference; no deployment outcome was observed.",
            "source_ids": [
              "claude-types",
              "claude-changelog"
            ]
          },
          "buyer_evidence_required": [
            "SDK/CLI versions and tool schema",
            "original tool result and PostToolUse hook output",
            "observed accepted or rejected replacement and model-facing result"
          ],
          "review_condition": {
            "status": "varexis_review_policy",
            "statement": "Refuse to equate a model-facing result with untouched tool evidence without retaining the original result, hook configuration, replacement and acceptance outcome. A configured replacement does not prove it was accepted or that the action succeeded."
          },
          "unknowns": "Buyer implementation, installed versions, effective authority, source completeness and actual business outcomes were not inspected.",
          "unknown_finding": {
            "status": "unknown",
            "statement": "No buyer deployment or transaction was observed."
          },
          "evidence_sources": [
            {
              "source_id": "claude-types",
              "url": "https://raw.githubusercontent.com/anthropics/claude-agent-sdk-python/2146f9d8985513053e904b13200c8f744b36785a/src/claude_agent_sdk/types.py",
              "final_url": "https://raw.githubusercontent.com/anthropics/claude-agent-sdk-python/2146f9d8985513053e904b13200c8f744b36785a/src/claude_agent_sdk/types.py",
              "captured_at_utc": "2026-10-31T14:07:23.114585+00:00",
              "status": 200,
              "content_type": "text/plain; charset=utf-8",
              "bytes": 106534,
              "sha256": "c06ccef3487b2f5ad81000a72a772b823760db1c32e85693eea57c8b16a93aa2",
              "title": "Claude Agent SDK for Python: typed public contracts",
              "publisher": "Anthropic",
              "checked_on": "2026-10-31",
              "capture_status": "captured_primary_documentation",
              "claim_review_completed": true,
              "hash_basis": "Raw HTTP response bytes retained privately; not deployment attestation.",
              "version_context": "Python SDK repository revision 2146f9d8985513053e904b13200c8f744b36785a; per-record release/version limits apply.",
              "rights_disposition": "Original bounded paraphrase with source attribution. Full source capture remains private; no source code, examples or vendor documentation is redistributed. Anthropic repository MIT licensing and IETF source notices remain with original sources.",
              "reviewed_sections": [
                "parent_tool_use_id",
                "parent_agent_id",
                "updatedToolOutput",
                "Dispatch order",
                "concurrently",
                "strict_mcp_config"
              ]
            },
            {
              "source_id": "claude-changelog",
              "url": "https://raw.githubusercontent.com/anthropics/claude-agent-sdk-python/2146f9d8985513053e904b13200c8f744b36785a/CHANGELOG.md",
              "final_url": "https://raw.githubusercontent.com/anthropics/claude-agent-sdk-python/2146f9d8985513053e904b13200c8f744b36785a/CHANGELOG.md",
              "captured_at_utc": "2026-10-31T14:07:23.073633+00:00",
              "status": 200,
              "content_type": "text/plain; charset=utf-8",
              "bytes": 61695,
              "sha256": "61dca0bff713bc9d750b4655dae3221e20f4af840e73ff62f08bffaa7bce4739",
              "title": "Claude Agent SDK for Python: changelog",
              "publisher": "Anthropic",
              "checked_on": "2026-10-31",
              "capture_status": "captured_primary_documentation",
              "claim_review_completed": true,
              "hash_basis": "Raw HTTP response bytes retained privately; not deployment attestation.",
              "version_context": "Python SDK repository revision 2146f9d8985513053e904b13200c8f744b36785a; per-record release/version limits apply.",
              "rights_disposition": "Original bounded paraphrase with source attribution. Full source capture remains private; no source code, examples or vendor documentation is redistributed. Anthropic repository MIT licensing and IETF source notices remain with original sources.",
              "reviewed_sections": [
                "0.2.170",
                "get_session_messages",
                "parallel",
                "parent_tool_use_id",
                "parent_agent_id",
                "updatedToolOutput",
                "0.2.137",
                "SessionStore",
                "settings.json",
                "strict_mcp_config",
                "0.2.160",
                "session_state_changed",
                "CLAUDE_CODE_PRINT_BG_WAIT_CEILING_MS"
              ]
            }
          ],
          "observed_deployment": false,
          "commercial_reliance_boundary": "Documentation supports only the stated boundary. Existing licensed checkers analyse supported supplied declarations locally; they do not inspect provider accounts, verify live behaviour, enforce decisions or certify compliance.",
          "paid_value": {
            "decision_context": "Refuse to equate a model-facing result with untouched tool evidence without retaining the original result, hook configuration, replacement and acceptance outcome. A configured replacement does not prove it was accepted or that the action succeeded.",
            "free": "Complete source review, questions, provenance and limitations; free to read and save locally.",
            "single_request": "Unavailable for this publication-only record; historical saved retrieval is unchanged.",
            "evidence_receipt": "Unavailable for this publication-only record; no paid retrieval entitlement is added.",
            "excluded": [
              "Fresh source research",
              "Native provider integration or schema support",
              "Live inspection or runtime enforcement",
              "Payment settlement or verified deletion",
              "Certification or expanded licences"
            ],
            "integrity": "Hashes identify content versions; they do not prove factual truth or provide a signature."
          },
          "revalidation": {
            "trigger": "Recheck current primary documentation and applicable SDK, service and configuration before reliance. No ongoing monitoring is included.",
            "specific_watch": "updatedToolOutput"
          },
          "buyer_relevance": "Refuse to equate a model-facing result with untouched tool evidence without retaining the original result, hook configuration, replacement and acceptance outcome. A configured replacement does not prove it was accepted or that the action succeeded.",
          "refusal_conditions": [
            "Refuse to equate a model-facing result with untouched tool evidence without retaining the original result, hook configuration, replacement and acceptance outcome. A configured replacement does not prove it was accepted or that the action succeeded.",
            "Do not infer deployment conformance, authority or successful outcomes from source documentation."
          ],
          "decision_context": {
            "operator": "Developer or reviewer assessing agent execution and evidence",
            "scenario": "Is the tool output seen by the Claude model necessarily the original tool result?",
            "consequence": "Refuse to equate a model-facing result with untouched tool evidence without retaining the original result, hook configuration, replacement and acceptance outcome. A configured replacement does not prove it was accepted or that the action succeeded.",
            "confidence": "Primary-documentation support only; buyer demand and deployment outcomes unestablished."
          },
          "novelty_review": {
            "candidate_id": "ICE12-03",
            "disposition": "new_distinct",
            "nearest_record_id": "VXI-EXT-ICE09-CLAUDE-SDK-DENY-RULE-HOOK-ALLOW-PRECEDENCE-01-v1",
            "nearest_record_url": "/varexis-index/records/claude-sdk-deny-rule-hook-allow-precedence.json",
            "nearest_record_sha256": "0b39d8f24f7c60e16c46426735de48707afbc3b4ef854d6088a2573fa69971e8",
            "material_distinction": "The existing hook review concerns pre-execution permission precedence. This decision concerns post-execution evidence transformation and the need to distinguish original output from what the model received.",
            "review_status": "Primary-source review and full adjacent-record comparison; no independent challenge claimed."
          },
          "optional_selection": {
            "guide_id": "agent-tool-change-execution-provenance",
            "guide_url": "/index-guides/agent-tool-change-execution-provenance",
            "guide_manifest": "/varexis-index/decision-guides.json",
            "checker": {
              "product_id": "agent-audit-coverage",
              "price_gbp_excluding_vat": 79,
              "purchase_url": "/index-access?route=agentic_pack_audit_coverage_v1",
              "licence_scope": "Existing separate internal-use licence; subscriptions do not include the executable.",
              "benefit": "Optional local analysis of supported supplied declarations only; no native Claude SDK or MCP integration is added."
            },
            "boundary": "This free record supports an evidence-selection decision. The existing checker does not diagnose these platforms, extract their logs or prove the documented condition occurred."
          },
          "exact_access": {
            "endpoint": "/mcp/catalogue",
            "tool": "get_publication_record",
            "arguments": {
              "record_id": "VXI-EXT-ICE12-CLAUDE-SDK-POSTHOOK-OUTPUT-PROVENANCE-01-v1"
            },
            "record_url": "/varexis-index/records/claude-sdk-posthook-output-provenance.json",
            "original_mcp_search": false,
            "paid_saved_retrieval": false
          }
        },
        "niche": {
          "niche_id": "ice12-audit",
          "label": "Audit, Provenance & Evidence Accountability",
          "classification_id": "audit",
          "classification_label": "Audit, Provenance & Evidence Accountability",
          "topic_id": "audit",
          "buyer_intent": "Refuse to equate a model-facing result with untouched tool evidence without retaining the original result, hook configuration, replacement and acceptance outcome. A configured replacement does not prove it was accepted or that the action succeeded.",
          "comparison_role": "supplementary_discovery"
        },
        "paid_access_note": "The full published answer and boundaries are free. Paid access saves the selected route and source versions, with an unsigned receipt when purchased. Preview coverage before paying. Fresh research, bespoke assessment and protected evidence are excluded.",
        "service_route": {
          "request_guide": "/varexis-index/request.html",
          "request_workflow": "/varexis-index/request-workflow.json",
          "service_id": "single_request",
          "service_routes_url": "/varexis-index/service-routes.json",
          "payment_required": true,
          "availability_endpoint": "/api/index/capabilities",
          "operational_status": "AUTOMATIC_SERVICE_CAPABILITIES_GATED",
          "checkout_url": "/index-access"
        },
        "authority_boundary": "VAREXIS-INDEX informs evidence reliance. It does not provide advice, certification, deployment authority, security assurance, production approval, or guarantee.",
        "human_page": "/varexis-index/catalog.html#claude-sdk-posthook-output-provenance",
        "machine_readable_record": "/varexis-index/records/claude-sdk-posthook-output-provenance.json"
      }
    }
  ],
  "access": {
    "mode": "exact_http_only",
    "payment_required": false,
    "purchase_url": null,
    "mcp_preview_available": false,
    "paid_saved_retrieval_available": false,
    "natural_language_search_qualified": false
  },
  "boundary": "Catalogue additions are available free through the exact HTTP JSON links below. Enhanced natural-language discovery is not yet qualified for these records. They are outside MCP search, MCP preview and paid saved retrieval. No search qualification, executable capability or entitlement is added.",
  "content_sha256": "d97da7bbab65a3c88e9501e3f7360972de35981ab7832309344a3d19d16da2e7"
}
