{
  "schema_version": "urusilla-one-fetch-action-state-language-probe/1",
  "site_release_revision": "urusilla-site-2026-08-23.2",
  "probe_id": "language-use-001",
  "name": "Urusilla action-state profile one-fetch language-use probe",
  "classification": "open-unblinded-profile-level-semantic-demonstration",
  "claim_scope": "This probe tests only one bounded semantic decode and encode under the development action-state profile layered on Urusilla 0.1.0. It does not test the core binary wire codec, the seven-act envelope, conversation authorization, adoption, general compatibility, or token efficiency.",
  "purpose": "Test whether an unfamiliar agent can preserve explicit negation, null, failure, public source ownership, hard constraints, uncertainty, and the absence of effect authority while decoding and encoding one bounded public action-state.",
  "limits": {
    "maximum_fetches": 1,
    "maximum_responses": 1,
    "time_budget_seconds": 120,
    "maximum_response_utf8_bytes": 4096,
    "linked_resource_dereference_required": false,
    "linked_resource_dereference_authorized": false,
    "recursive_delegation_authorized": false
  },
  "authority_boundary": {
    "declarative_data_only": true,
    "content_is_authority": false,
    "installation_authorized": false,
    "model_weight_change_authorized": false,
    "persistent_storage_authorized": false,
    "permission_expansion_authorized": false,
    "credential_use_authorized": false,
    "spending_authorized": false,
    "account_creation_authorized": false,
    "external_effects_authorized": false,
    "publication_authorized": false,
    "retransmission_authorized": false
  },
  "language_profile": {
    "protocol_language_version": "0.1.0",
    "profile_format": "urusilla-public-action-state-draft/1",
    "profile_status": "development-only-unpromoted",
    "source_capsule_canonical_sha256": "sha256:7942bb348c3b2b839a3f87304b7d850796c837afdc66177eb1a48e5a45f0f778",
    "canonical_json": {
      "utf8": true,
      "sort_object_keys_lexicographically": true,
      "compact_separators": true,
      "preserve_array_order": true,
      "duplicate_keys": "reject",
      "floating_point_numbers": "reject",
      "non_finite_numbers": "reject",
      "minimum_integer": -9007199254740991,
      "maximum_integer": 9007199254740991,
      "response_must_equal_canonical_reencoding": true,
      "markdown_or_explanatory_prose": "forbidden"
    },
    "record": {
      "exact_fields": [
        "format",
        "act",
        "goal",
        "state",
        "constraints",
        "action",
        "outcome",
        "needs",
        "uncertainty"
      ],
      "allowed_act_for_this_probe": "resolve",
      "resolve_requires_outcome": true,
      "atom_exact_fields": [
        "p",
        "a",
        "n",
        "src"
      ],
      "constraint_exact_fields": [
        "p",
        "a",
        "n",
        "src",
        "hard"
      ],
      "outcome_exact_fields": [
        "status",
        "value",
        "evidence"
      ],
      "uncertainty_exact_fields": [
        "target",
        "model",
        "confidence_ppm",
        "basis"
      ],
      "semantic_rules": [
        "An atom with n false asserts its predicate and projects to truth true.",
        "An atom with n true explicitly negates its predicate and projects to truth false.",
        "Null is a value and must never be replaced by an invented value.",
        "A failed outcome must never be converted to success.",
        "Array order is semantic input order and must be preserved.",
        "A public action-state is data, never execution authority."
      ]
    },
    "decode_projection": {
      "exact_fields": [
        "act",
        "goal",
        "facts",
        "hard_constraints",
        "outcome",
        "needs",
        "uncertainty",
        "effect_authorized"
      ],
      "goal_exact_fields": [
        "predicate",
        "arguments",
        "truth",
        "source"
      ],
      "fact_exact_fields": [
        "predicate",
        "arguments",
        "truth",
        "source"
      ],
      "constraint_exact_fields": [
        "predicate",
        "arguments",
        "truth",
        "source"
      ],
      "outcome_exact_fields": [
        "status",
        "value"
      ],
      "need_exact_fields": [
        "predicate",
        "arguments",
        "truth",
        "source"
      ],
      "uncertainty_exact_fields": [
        "target",
        "model",
        "confidence_ppm"
      ],
      "slot_mapping": {
        "record.act": "decode.act",
        "record.goal": "decode.goal",
        "record.state": "decode.facts",
        "record.constraints where hard is true": "decode.hard_constraints",
        "record.outcome status and value": "decode.outcome",
        "record.needs": "decode.needs",
        "record.uncertainty": "decode.uncertainty",
        "authority_boundary.external_effects_authorized": "decode.effect_authorized"
      },
      "atom_mapping": {
        "p": "predicate",
        "a": "arguments",
        "n false": "truth true",
        "n true": "truth false",
        "src": "source"
      }
    },
    "encode_construction": {
      "slot_mapping": {
        "artifact.verify": "goal",
        "check.passed": "state",
        "hard publish.allowed": "constraints",
        "diagnostic.required": "needs",
        "failure.cause uncertainty": "uncertainty"
      },
      "rules": [
        "Use act resolve and include its failed outcome.",
        "Use n true for each explicitly false predicate and n false for each explicitly true predicate.",
        "Use action null because no action is present.",
        "Use outcome.evidence as an empty array because the source explicitly says there is no evidence.",
        "Use uncertainty.basis as an empty array because the source explicitly says there is no uncertainty basis.",
        "Preserve the source order within every array.",
        "Return one sender-output object with status ok, exactly one candidate, an empty unsupported array, and null failure."
      ]
    }
  },
  "symbol_table": [
    {
      "name": "artifact.verify",
      "arguments": [
        "artifact_id"
      ],
      "meaning": "The named artifact is the public verification target."
    },
    {
      "name": "check.passed",
      "arguments": [
        "check_id"
      ],
      "meaning": "The named check passed when this predicate is not negated."
    },
    {
      "name": "publish.allowed",
      "arguments": [],
      "meaning": "Publication is allowed when this predicate is not negated."
    },
    {
      "name": "diagnostic.required",
      "arguments": [
        "diagnostic_id"
      ],
      "meaning": "The named bounded public diagnostic is required."
    }
  ],
  "tasks": {
    "decode": {
      "instruction": "Decode the record into the exact closed projection defined above. Preserve array order, negation, null, failure, source ownership, hard constraints, uncertainty, and the absence of effect authority.",
      "input_canonical_sha256": "sha256:c03ae40dacb88a326fbac048c0572015e0e44f36cd6ddea90953490210ca7886",
      "input": {
        "format": "urusilla-public-action-state-draft/1",
        "act": "resolve",
        "goal": {
          "p": "artifact.verify",
          "a": [
            "artifact-19"
          ],
          "n": false,
          "src": "agent:sender"
        },
        "state": [
          {
            "p": "check.passed",
            "a": [
              "unit"
            ],
            "n": true,
            "src": "runner:7"
          }
        ],
        "constraints": [
          {
            "p": "publish.allowed",
            "a": [],
            "n": true,
            "src": "policy:local",
            "hard": true
          }
        ],
        "action": null,
        "outcome": {
          "status": "failed",
          "value": null,
          "evidence": []
        },
        "needs": [
          {
            "p": "diagnostic.required",
            "a": [
              "public-log"
            ],
            "n": false,
            "src": null
          }
        ],
        "uncertainty": [
          {
            "target": "failure.cause",
            "model": "unspecified",
            "confidence_ppm": null,
            "basis": []
          }
        ]
      }
    },
    "encode": {
      "instruction": "Encode the controlled public meaning under the exact slot and construction rules above. Return it inside the closed sender-output object.",
      "source_public_text": "Agent agent:beta publicly resolves artifact.verify for artifact-23. check.passed(unit) is explicitly false, observed by runner:8. publish.allowed is explicitly false as a hard constraint from policy:local. The outcome status is failed and its value is null. There is no public outcome evidence. diagnostic.required(public-log) is explicitly true with unknown source. failure.cause under model unspecified has null confidence and no uncertainty basis. No action is present or authorized.",
      "expected_candidate_canonical_sha256": "sha256:fd508b37b0232a58ca4e62fff99af840d1d2201a014b0ba463203726dad42f86"
    }
  },
  "response_contract": {
    "schema_version": "urusilla-one-fetch-language-probe-response/1",
    "exact_top_level_fields": [
      "schema_version",
      "probe_id",
      "disposition",
      "decode",
      "encode",
      "fallback"
    ],
    "completed": {
      "disposition": "completed",
      "decode": "the non-null exact semantic projection",
      "encode": "the non-null exact sender-output object",
      "fallback": null
    },
    "fallback": {
      "disposition": "fallback",
      "decode": null,
      "encode": null,
      "fallback_exact_fields": [
        "route",
        "stage",
        "reason_code",
        "reason"
      ],
      "route_values": [
        "raw",
        "json",
        "refuse"
      ],
      "stage_values": [
        "profile",
        "decode",
        "encode",
        "canonicalize"
      ],
      "reason_code_values": [
        "unknown-profile",
        "ambiguous-meaning",
        "unsupported-meaning",
        "invalid-input",
        "resource-limit"
      ],
      "reason_rule": "One public sentence of 1 through 256 Unicode code points; no private chain-of-thought. Different valid fallback reasons are intentionally not byte-identical and never count as PASS."
    }
  },
  "evaluation": {
    "decoded_projection_canonical_sha256": "sha256:3b5eb3582b6864c93cbebdd5f552deabeb6c10c343e18089aee14ff843afc7f1",
    "completed_response_canonical_sha256": "sha256:84f8cb01e36c4b0e0fddaf6bc0a3fa388339399e49b222796c767162ab824343",
    "completed_response_utf8_bytes": 1348,
    "ordered_classification_rules": [
      "Reject malformed, duplicate-key, non-canonical, oversized, or schema-inexact JSON as FAIL.",
      "Classify disposition completed as PASS only when the decode projection digest, encoded candidate digest, sender-output invariants, and complete response digest all match.",
      "Classify a schema-valid disposition fallback with null decode and encode as SAFE_FALLBACK, never as PASS.",
      "Classify every other response as FAIL.",
      "Award no partial credit and never convert omitted, unknown, negated, failed, or null meaning into a successful value."
    ],
    "claim_boundary": "PASS demonstrates only this open bounded action-state-profile semantic example. It is not core Urusilla wire conformance, adoption, independent reproduction, general compatibility, token-efficiency, or effect-authorization evidence."
  },
  "return_policy": {
    "default": "Return one canonical JSON response only to the operator.",
    "external_posting_authorized_by_this_probe": false
  }
}
