Skip to content

Appendix A: Complete example

This section is informative.

The example follows one feature, “Customers change their address in the portal”, from approved intent to Quality Passport. All digests are illustrative and were not computed from real content.

The bundle holds the actors, the approved intent, four artifacts, one evidence record and the intent approval. Note that the test was written by a different agent, on a different model, that never saw the code, and that the agent runtime, not the agent, recorded what each agent was given. The bundle is exchanged in a DSSE envelope signed under the agent runtime’s identity, so these contexts count as attested (R12).

{
"ois": "0.1",
"type": "bundle",
"id": "https://ois.acme.example/bundles/B-2026-10-20-01",
"createdAt": "2026-10-20T15:00:00Z",
"records": [
{ "ois": "0.1", "type": "actor", "id": "https://ois.acme.example/actors/po-7f3a",
"createdAt": "2026-09-01T08:00:00Z", "kind": "human", "name": "PO 7f3a", "operator": "Team Portal" },
{ "ois": "0.1", "type": "actor", "id": "https://ois.acme.example/actors/requirement-agent",
"createdAt": "2026-09-01T08:00:00Z", "kind": "agent", "name": "Requirement agent", "version": "1.4",
"model": { "provider": "ExampleAI", "name": "model-a", "version": "2026-09" }, "autonomyLevel": 1 },
{ "ois": "0.1", "type": "actor", "id": "https://ois.acme.example/actors/dev-agent",
"createdAt": "2026-09-01T08:00:00Z", "kind": "agent", "name": "Developer agent", "version": "3.0",
"model": { "provider": "ExampleAI", "name": "model-a", "version": "2026-09" }, "autonomyLevel": 2 },
{ "ois": "0.1", "type": "actor", "id": "https://ois.acme.example/actors/qe-agent",
"createdAt": "2026-09-01T08:00:00Z", "kind": "agent", "name": "QE agent", "version": "2.1",
"model": { "provider": "OtherAI", "name": "model-b", "version": "2026-08" }, "autonomyLevel": 2 },
{ "ois": "0.1", "type": "actor", "id": "https://ois.acme.example/actors/agent-runtime",
"createdAt": "2026-09-01T08:00:00Z", "kind": "tool", "name": "Agent runtime and gateway", "version": "4.3",
"identity": { "issuer": "https://oidc.acme.example", "subject": "spiffe://acme.example/agent-runtime" } },
{ "ois": "0.1", "type": "actor", "id": "https://ois.acme.example/actors/testdata-generator",
"createdAt": "2026-09-01T08:00:00Z", "kind": "tool", "name": "Synthetic test data generator", "version": "5.2" },
{ "ois": "0.1", "type": "actor", "id": "https://ois.acme.example/actors/ci-recorder",
"createdAt": "2026-09-01T08:00:00Z", "kind": "tool", "name": "CI evidence recorder", "version": "1.2" },
{
"ois": "0.1", "type": "intent", "id": "https://ois.acme.example/intents/INT-142",
"createdAt": "2026-10-14T09:12:00Z", "version": 1,
"title": "Customers change their address in the portal",
"status": "approved",
"language": "en",
"producedBy": "https://ois.acme.example/actors/requirement-agent@1.4",
"source": "https://jira.acme.example/browse/PORTAL-1187",
"risk": "high",
"criteria": [
{ "key": "AC-1", "notation": "gherkin", "kind": "functional", "criticality": "high",
"statement": "Given a logged-in customer, when they submit a valid Swiss address, then the new address is saved with the chosen effective date",
"digest": { "sha256": "71c4e9a2b5d80f36c1e7a49b2d60f5e38c9a14d7b2e06f5a3c81d9e4b7f20a63" } },
{ "key": "AC-2", "notation": "ears", "kind": "functional", "criticality": "high",
"statement": "WHEN an address cannot be assigned to a canton, THE portal SHALL flag the premium region for manual review",
"digest": { "sha256": "b4e81d3c7a6f09e25d1c84a7b3f60e29d5a8c17b4e03f6a2d9c58e1b7a4f306d" } },
{ "key": "NFR-1", "notation": "ears", "kind": "non-functional", "criticality": "medium",
"statement": "THE portal SHALL confirm an address change within 500 milliseconds at the 95th percentile",
"target": { "metric": "responseTimeP95", "operator": "lte", "value": 500, "unit": "ms" },
"digest": { "sha256": "3d9b7a52e18c4f06b7a2d95e1c38f06a4e7d2b91c5f8a30e6b1d47c9a2e58f17" } }
],
"digest": { "sha256": "2e7d4a91c6b38f05e1a9d72c4b60f83e95a1d7c2b4f06e38a9c15d7b2e40f6a1" }
},
{
"ois": "0.1", "type": "artifact", "id": "https://ois.acme.example/artifacts/ART-301",
"createdAt": "2026-10-15T11:20:00Z", "kind": "contract", "mediaType": "application/yaml",
"location": "git+https://git.acme.example/portal.git@a1b2c3d4e5f60718293a4b5c6d7e8f9012345678",
"path": "api/address.openapi.yaml",
"digest": { "sha256": "5f2b8c41a9e07d36c4b18f92e6a05d7c3b91e48f20a6d5c7b39e81f4a2c60d95" },
"producedBy": "https://ois.acme.example/actors/dev-agent@3.0",
"context": ["https://ois.acme.example/intents/INT-142@1"],
"contextRecordedBy": "https://ois.acme.example/actors/agent-runtime@4.3"
},
{
"ois": "0.1", "type": "artifact", "id": "https://ois.acme.example/artifacts/ART-302",
"createdAt": "2026-10-18T16:40:00Z", "kind": "code",
"location": "git+https://git.acme.example/portal.git@a1b2c3d4e5f60718293a4b5c6d7e8f9012345678",
"digest": { "gitCommit": "a1b2c3d4e5f60718293a4b5c6d7e8f9012345678" },
"producedBy": "https://ois.acme.example/actors/dev-agent@3.0",
"context": ["https://ois.acme.example/intents/INT-142@1", "https://ois.acme.example/artifacts/ART-301"],
"contextRecordedBy": "https://ois.acme.example/actors/agent-runtime@4.3"
},
{
"ois": "0.1", "type": "artifact", "id": "https://ois.acme.example/artifacts/ART-303",
"createdAt": "2026-10-16T08:05:00Z", "kind": "dataset", "classification": "synthetic",
"location": "https://testdata.acme.example/sets/addresses-without-canton-v1",
"digest": { "sha256": "8a41c7e29b05f3d68e17a4c92b6f0d3e5a78c19b42e6f0a3d57c81b9e4f20a6c" },
"producedBy": "https://ois.acme.example/actors/testdata-generator@5.2",
"context": ["https://ois.acme.example/intents/INT-142@1#AC-2"],
"contextRecordedBy": "https://ois.acme.example/actors/agent-runtime@4.3"
},
{
"ois": "0.1", "type": "artifact", "id": "https://ois.acme.example/artifacts/ART-304",
"createdAt": "2026-10-18T17:05:00Z", "kind": "test",
"location": "git+https://git.acme.example/portal.git@a1b2c3d4e5f60718293a4b5c6d7e8f9012345678",
"path": "tests/address.spec.ts",
"digest": { "sha256": "c39e5a17f482b06d9e3c71a5b48f20e6d1a9c74b3e58f02a6d91c4b7e3f05a28" },
"producedBy": "https://ois.acme.example/actors/qe-agent@2.1",
"context": ["https://ois.acme.example/intents/INT-142@1", "https://ois.acme.example/artifacts/ART-301",
"https://ois.acme.example/artifacts/ART-303"],
"contextRecordedBy": "https://ois.acme.example/actors/agent-runtime@4.3"
},
{
"ois": "0.1", "type": "evidence", "id": "https://ois.acme.example/evidence/EV-9021",
"createdAt": "2026-10-20T14:32:05Z",
"criterion": "https://ois.acme.example/intents/INT-142@1#AC-2",
"test": "https://ois.acme.example/artifacts/ART-304",
"subject": "https://ois.acme.example/artifacts/ART-302",
"inputs": ["https://ois.acme.example/artifacts/ART-303"],
"derivedFrom": "intent",
"result": "pass",
"observedAt": "2026-10-20T14:31:58Z",
"recordedBy": "https://ois.acme.example/actors/ci-recorder@1.2",
"measures": [{ "name": "mutationScore", "value": 0.84,
"method": "https://ois.acme.example/methods/mutation-score" }],
"run": "https://ci.acme.example/pipelines/portal/runs/5531"
},
{
"ois": "0.1", "type": "decision", "id": "https://ois.acme.example/decisions/DEC-77",
"createdAt": "2026-10-14T10:05:00Z",
"gate": "intent-approval",
"subject": "https://ois.acme.example/intents/INT-142@1",
"outcome": "approved",
"decidedBy": "https://ois.acme.example/actors/po-7f3a",
"decidedAt": "2026-10-14T10:05:00Z",
"subjectDigest": { "sha256": "2e7d4a91c6b38f05e1a9d72c4b60f83e95a1d7c2b4f06e38a9c15d7b2e40f6a1" },
"policy": { "id": "https://ois.acme.example/policies/definition-of-ready", "version": "4" }
}
]
}

The passport for the release adds four records: a build artifact, the release decision, the QE lead who made that decision and the issuing actor. Its records array contains every record from A.1 plus these four; the build artifact and the release decision are shown.

{
"_type": "https://in-toto.io/Statement/v1",
"subject": [
{ "name": "customer-portal",
"digest": { "sha256": "0d4f7a2c9e15b83d6a0c47e91f5b28d3c6e09a4f71b2d58e3a96c0f4d7b12e85" } }
],
"predicateType": "https://ois.example/passport/v0.1",
"predicate": {
"ois": "0.1",
"release": { "name": "customer-portal", "version": "2026.10.3" },
"intents": ["https://ois.acme.example/intents/INT-142@1"],
"scope": ["https://ois.acme.example/intents/INT-142@1#AC-1", "https://ois.acme.example/intents/INT-142@1#AC-2"],
"records": [
{
"ois": "0.1", "type": "artifact", "id": "https://ois.acme.example/artifacts/ART-305",
"createdAt": "2026-10-20T16:10:00Z", "kind": "build",
"location": "pkg:oci/customer-portal@sha256%3A0d4f7a2c9e15b83d6a0c47e91f5b28d3c6e09a4f71b2d58e3a96c0f4d7b12e85?repository_url=registry.acme.example",
"digest": { "sha256": "0d4f7a2c9e15b83d6a0c47e91f5b28d3c6e09a4f71b2d58e3a96c0f4d7b12e85" },
"producedBy": "https://ois.acme.example/actors/ci-recorder@1.2",
"inputs": ["https://ois.acme.example/artifacts/ART-302"]
},
{
"ois": "0.1", "type": "decision", "id": "https://ois.acme.example/decisions/DEC-81",
"createdAt": "2026-10-21T08:45:00Z",
"gate": "release",
"subject": "https://ois.acme.example/artifacts/ART-305",
"subjectDigest": { "sha256": "0d4f7a2c9e15b83d6a0c47e91f5b28d3c6e09a4f71b2d58e3a96c0f4d7b12e85" },
"outcome": "approved",
"decidedBy": "https://ois.acme.example/actors/qe-2c9d",
"decidedAt": "2026-10-21T08:45:00Z",
"evidence": ["https://ois.acme.example/evidence/EV-9021"],
"assessments": [{ "name": "intentCoverage", "value": 0.5,
"method": "https://ois.example/methods/basic-intent-coverage/v0.1" }]
}
],
"assessments": [{ "name": "intentCoverage", "value": 0.5,
"method": "https://ois.example/methods/basic-intent-coverage/v0.1" }],
"issuedBy": "https://ois.acme.example/actors/passport-issuer@1.0",
"issuedAt": "2026-10-21T09:00:00Z"
}
}

The intent coverage of 0.5 follows the reference method of Appendix D: of the two criteria in scope, only AC-2 has counted evidence. Its method URI tells consumers how it was computed; OIS does not define the method.