Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

A Track is the durable record of an Op or Cog execution.

Oliphant, 2026, §5.3

track/run-001.trig records the escalated run as PROV-O Lebo et al., 2013 with EARL outcomes Abou-Zahra, 2017: automatic Guard results (with an honest cantTell among the outcomes), fired Gates raising obligations, and an earl:manual approval by a named person that discharges both obligations and generates the post-review case state (an action that discharges an obligation must also mutate state, a ruling logged as GAP-02). This run’s discharger happens to be human, as the two gates that fired require; the shapes demand a declared mode and a named accountable party, not humanness (GAP-09 in the open-questions chapter).

run-001 is itself fabricated example data (the record’s own header says so): a constructed execution that exercises the shapes and queries. Its approver is an invented person, named only because a discharging action must name an accountable party.

SHACL shapes Knublauch & Kontokostas, 2017 derived from the manifest’s own track.include list check the record. The cell states what the record contains, then what the shapes conclude:

import sys; sys.path[:0] = [".", ".."]  # the repo root, from either cwd
import exhibits
exhibits.check_run_001_shapes()
data checked: track/run-001.trig
  assertions          : 4 automatic, 1 manual (outcomes: 1 cantTell, 2 failed, 2 passed)
  gate decisions      : 2
  obligations raised  : obligation-human-approval, obligation-human-review
  discharging actions :
    approval-01 discharges obligation-human-approval
    approval-01 discharges obligation-human-review
  aggregate outcome    : executed
  final_output cited   : output-anomaly-summary (Anomaly summary; vendor V-2214 flagged for review)
  withheld at boundary : (none)
conforms: True

The same shapes can refuse. The counterexample record raises the same two obligations and contains no discharging action; that absence is the only difference in the data, so the refusal is checkable by eye, one violation per undischarged obligation.

The shapes also hold the record to its own gates, in both directions, against the parameters it says were in force: a gate decision must cite a reading whose value satisfies the gate’s condition, and a reading whose value satisfies a gate’s condition must have a recorded decision. A second external review found the model’s gates to be one-way implications (GAP-10) and asked whether the shapes were too; they were, so a Track could show a below-threshold confidence with no GATE-01 decision, or a GATE-04 decision on a vendor scored low. Both are now refused (the counterexample track-ungated-reading.trig exercises both and is checked in the test suite). The consensus oracle’s call must also carry the metric’s input matrix, so the recorded reading is recomputable (GAP-12; the previous chapter recomputes it).

One acknowledged judgment call sits in these shapes: the citation of final_output is conditional on the aggregate outcome. An executed run’s Track must cite the output it emitted; a noOp run’s Track cites none, because nothing crossed the boundary. That is a statement about a system boundary, not about the record. The Track is the record internal to the system of interest; final_output names an action output that crossed to an external system, through the assembly’s port result, the one place output leaves. Where that boundary sits depends on the system of interest, and zooming in or out changes what counts as inside; defining and enforcing such boundaries is part of why the Op is modeled as a SysML v2 assembly at all. For this example the adjudicator ruled the trace evidence internal and the written output external: noOp means no action output over the boundary, and an internal record that the Op tried, that policy prevented it, and why, is kept. Everything else about a stopped run, its readings, its gates, the stop and its escalation, is retained and checked exactly as for an executed run, and the next cell shows one. The conditional reading knowingly departs from the pinned draft’s unconditional include list, and the departure is stated in the shape messages themselves (GAP-07 in the open-questions chapter).

exhibits.refuse_missing_approval_track()
data checked: counterexamples/track-missing-approval.trig
  assertions          : 4 automatic (outcomes: 1 cantTell, 2 failed, 1 passed)
  gate decisions      : 2
  obligations raised  : obligation-human-approval, obligation-human-review
  discharging actions : (none)
  aggregate outcome    : executed
  final_output cited   : output-anomaly-summary (Anomaly summary; vendor V-2214 flagged for review)
  withheld at boundary : (none)
conforms: False (2 violations; focus nodes equal the undischarged obligations: True)

  violation 1 — focus node: obligation-human-approval
    Obligation raised but not discharged: no discharging action
    recorded (section 5.6 lists human_approvals in the Track; only the
    escalation target's actor is unspecified — adjudicated: GAP-09).

  violation 2 — focus node: obligation-human-review
    Obligation raised but not discharged: no discharging action
    recorded (section 5.6 lists human_approvals in the Track; only the
    escalation target's actor is unspecified — adjudicated: GAP-09).

1A stopped run’s Track

track/run-002.trig records the pii-stop scenario from the worked examples as a Track: the privacy guard fails, GATE-03 fires, the stop obligation is discharged by an escalation service acting for an accountable privacy office (earl:automatic, with the accountable party named, per GAP-09), and the aggregate is noOp. The record retains the four oracle citations, the guard results, the gate decision, and the escalation, and it cites no final_output.

It retains one more thing. The summary cog had already produced an anomaly summary when the stop landed. That artifact is kept as a withheld output, an evidence entity the escalation refers to, so an auditor can see what would have gone out; it is never cited as final_output, which names only what crossed the boundary. A shape enforces the distinction, and the same shape refuses a Track that cites a withheld artifact as its output (a ruling on GAP-07, refined after the adjudicator’s own re-reading of this chapter).

exhibits.check_run_002_shapes()
data checked: track/run-002.trig
  assertions          : 3 automatic (outcomes: 1 failed, 2 passed)
  gate decisions      : 1
  obligations raised  : obligation-stop-and-escalate
  discharging actions :
    escalation-01 discharges obligation-stop-and-escalate
  aggregate outcome    : noOp
  final_output cited   : (none — nothing crossed the boundary)
  withheld at boundary : Anomaly summary for vendor V-1187, produced and withheld at the boundary (retained as evidence — GAP-07)
conforms: True

The Track is not just a log file. It is a structured accountability artifact.

Oliphant, 2026, §5.3

Section 5.3 names five purposes a Track serves: auditability, governance, learning, debugging, and trust. On this substrate each one is a query Harris & Seaborne, 2013 over the run graph, not a reading exercise.

2Auditability

Auditability — an organization can reconstruct why a decision was made.

Oliphant, 2026, §5.3

exhibits.show_query("auditability.rq");
Loading...

3Governance

Governance — compliance teams can verify that required procedures were followed.

Oliphant, 2026, §5.3

Rows are violations; empty means every obligation raised by a fired Gate was discharged by a recorded action with a named accountable party. The same query catches the counterexample:

exhibits.compare_governance()
(no rows)
violations on run-001: 0
violations on the counterexample: 2
Loading...

4Trust

Trust — users and customers can see that AI work was not merely generated, but validated.

Oliphant, 2026, §5.3

The full outcome distribution, automatic and manual, with cantTell visible rather than absorbed:

exhibits.show_query("trust.rq");
Loading...

5Learning

Learning — corrections and human reviews become signals for improving Frames, Cogs, Ops, and Guards.

Oliphant, 2026, §5.3

Directly from the quoted text: what the signals improve are Frames, Cogs, Ops, and Guards — the system’s constituents. Learning changes the system.

The rest of this section is the adjudicator’s interpretation, logged verbatim in the judgment record: learning is the ability to calibrate the system — change parameters, add or remove gates, switch policies when one is not producing the intended behavior — acting on the system so it can adapt, rather than within the system as currently constituted. This substrate keeps that adaptation surface explicit on purpose: every threshold is a single-point parameter, every gate is a declared unit whose addition or removal is a traceable model edit, and the disagreement policy is a deliberately unbound slot. The cell maps each signal this run left behind to the part of the system it acts on:

exhibits.show_learning()
Loading...
learning signals: 4, in 5 signal-to-surface pairs — calibration targets computed from the model's gates and factored parameters

5.1A worked calibration

One of those responses, made concrete (a logged suggestion from the adjudicator, recorded in the judgment record): the RiskLevel enumeration carries an unknown value (GAP-01), and the committed gate binds on high alone, so an unknown-risk vendor obliges nothing. A conservative posture would treat unknown as high. That is a learning edit: one change at a declared point, and the system obliges something it previously did not. The committed policy stays exactly as adjudicated; the variant below exists only in this cell:

exhibits.show_learning_example()
under the committed policy, GATE-04 binds on high alone; an unknown-risk vendor obliges nothing:
scenario 'unknown-vendor-under-committed-policy'
  mock oracle extraction-confidence service: sent {"op": "vendor-fraud-review", "variable": "confidence"} -> 200 {"confidence": 0.92}
  mock oracle consensus-comparator service: sent {"op": "vendor-fraud-review", "variable": "consensus_disagreement"} -> 200 {"consensus_disagreement": 0.1}
  mock oracle sensitive-data-scanner service: sent {"op": "vendor-fraud-review", "variable": "sensitive_data_detected"} -> 200 {"sensitive_data_detected": false}
  mock oracle vendor-risk-cog scoring endpoint: sent {"op": "vendor-fraud-review", "variable": "vendor_risk"} -> 200 {"vendor_risk": "unknown"}
  ✓ satisfy i1 holds
  ✓ satisfy t1 holds
  ✓ satisfy g1 holds
  ✓ satisfy g2 holds
  ✓ satisfy g3 holds
  ✓ satisfy g4 holds
  ✓ satisfy w1 holds
  ✓ satisfy w2 holds
  ✓ satisfy w3 holds
  ✓ satisfy w4 holds
  ✓ satisfy s1 holds
  ✓ satisfy s2 holds
  ✓ satisfy s3 holds
scenario 'unknown-vendor-under-committed-policy': POLICY SATISFIED — aggregate: executed (satisfy exit 0)

the calibration, one edit at the declared gate (a variant for this cell only; the committed policy is unchanged):
  - pe.vendorRisk == pe.policy.vendorRiskTrigger implies pe.humanApprovalRequired
  + (pe.vendorRisk == pe.policy.vendorRiskTrigger or pe.vendorRisk == RiskLevel::unknown) implies pe.humanApprovalRequired

under the conservative variant, the same evidence obliges an approval that was not obliged before:
scenario 'unknown-vendor-under-conservative-variant'
  mock oracle extraction-confidence service: sent {"op": "vendor-fraud-review", "variable": "confidence"} -> 200 {"confidence": 0.92}
  mock oracle consensus-comparator service: sent {"op": "vendor-fraud-review", "variable": "consensus_disagreement"} -> 200 {"consensus_disagreement": 0.1}
  mock oracle sensitive-data-scanner service: sent {"op": "vendor-fraud-review", "variable": "sensitive_data_detected"} -> 200 {"sensitive_data_detected": false}
  mock oracle vendor-risk-cog scoring endpoint: sent {"op": "vendor-fraud-review", "variable": "vendor_risk"} -> 200 {"vendor_risk": "unknown"}
  ✓ satisfy i1 holds
  ✓ satisfy t1 holds
  ✓ satisfy g1 holds
  ✓ satisfy g2 holds
  ✓ satisfy g3 holds
  ✗ satisfy g4 fails
  Required condition evaluated to false: pe.vendorRisk == pe.policy.vendorRiskTrigger or pe.vendorRisk == RiskLevel::unknown implies pe.humanApprovalRequired
  ✓ satisfy w1 holds
  ✓ satisfy w2 holds
  ✓ satisfy w3 holds
  ✓ satisfy w4 holds
  ✓ satisfy s1 holds
  ✓ satisfy s2 holds
  ✓ satisfy s3 holds
scenario 'unknown-vendor-under-conservative-variant': POLICY VIOLATED (satisfy exit 1)

scenario 'unknown-vendor-conservative-approved'
  mock oracle extraction-confidence service: sent {"op": "vendor-fraud-review", "variable": "confidence"} -> 200 {"confidence": 0.92}
  mock oracle consensus-comparator service: sent {"op": "vendor-fraud-review", "variable": "consensus_disagreement"} -> 200 {"consensus_disagreement": 0.1}
  mock oracle sensitive-data-scanner service: sent {"op": "vendor-fraud-review", "variable": "sensitive_data_detected"} -> 200 {"sensitive_data_detected": false}
  mock oracle vendor-risk-cog scoring endpoint: sent {"op": "vendor-fraud-review", "variable": "vendor_risk"} -> 200 {"vendor_risk": "unknown"}
  ✓ satisfy i1 holds
  ✓ satisfy t1 holds
  ✓ satisfy g1 holds
  ✓ satisfy g2 holds
  ✓ satisfy g3 holds
  ✓ satisfy g4 holds
  ✓ satisfy w1 holds
  ✓ satisfy w2 holds
  ✓ satisfy w3 holds
  ✓ satisfy w4 holds
  ✓ satisfy s1 holds
  ✓ satisfy s2 holds
  ✓ satisfy s3 holds
scenario 'unknown-vendor-conservative-approved': POLICY SATISFIED — aggregate: executed (satisfy exit 0)

6Debugging

Debugging — developers can understand why an Op failed or behaved unexpectedly.

Oliphant, 2026, §5.3

Directly from the quoted text: this purpose is about understanding why the Op failed or behaved unexpectedly. Read beside the Learning purpose above, the paper’s own words draw a clean division of labor: Debugging looks backward at whether the Op behaved as its declared specification says; Learning looks forward at whether the declared specification itself should change. (A related distinction — build it right versus build the right thing — is recorded in the judgment record as a logged suggestion from the adjudicator, available to raise with the author; it is not the paper’s usage.)

For each guard finding that did not pass: the recorded explanation and, where a gate evaluated an oracle-provided value on the strength of that finding, the cited call that produced the value — enough to reconstruct whether the Op did what the specification says:

exhibits.show_query("debugging.rq");
Loading...

7The interface: where every value came from

This purpose is not on the paper’s list; it is a consequence of a ruling logged as GAP-05. The policy applies to oracle-provided values and is never their provider, so for each variable a gate evaluated the Track must cite the call: what service, what payload was sent, what response code came back, and the response that carried the value. The numerical precision lives inside the oracles or in documented threshold rules; a reading nobody can source fails the shapes.

exhibits.show_interface()
confidence = 0.71
  service      : extraction-confidence service (invoice-extraction-cog telemetry, v2.3.1)
  sent payload : {"op":"vendor-fraud-review","run":"run-001","variable":"confidence","batch":"invoice-batch-2026-08"}
  responseCode : 200
  response     : {"confidence":0.71}
consensus_disagreement = 0.10
  service      : consensus-comparator service (v1.4.0)
  sent payload : {"op":"vendor-fraud-review","run":"run-001","variable":"consensus_disagreement","cogs":["invoice-extraction-cog","vendor-risk-cog","anomaly-summary-cog"]}
  responseCode : 200
  response     : {"consensus_disagreement":0.10}
sensitive_data_detected = false
  service      : sensitive-data-scanner service (v5.0.2)
  sent payload : {"op":"vendor-fraud-review","run":"run-001","variable":"sensitive_data_detected","batch":"invoice-batch-2026-08"}
  responseCode : 200
  response     : {"sensitive_data_detected":false}
vendor_risk = high
  service      : vendor-risk-cog scoring endpoint (v0.9.7)
  sent payload : {"op":"vendor-fraud-review","run":"run-001","variable":"vendor_risk","vendor":"V-2214"}
  responseCode : 200
  response     : {"vendor_risk":"high"}
References
  1. Oliphant, T. (2026). The Distributed AI Economy: Intelligence Hubs, Frames, Cogs, Ops, and the Accountability Plane [Techreport]. OpenTeams.
  2. Lebo, T., Sahoo, S., & McGuinness, D. (2013). PROV-O: The PROV Ontology. W3C Recommendation. https://www.w3.org/TR/prov-o/
  3. Abou-Zahra, S. (2017). Evaluation and Report Language (EARL) 1.0 Schema. W3C Working Group Note. https://www.w3.org/TR/EARL10-Schema/
  4. Knublauch, H., & Kontokostas, D. (2017). Shapes Constraint Language (SHACL). W3C Recommendation. https://www.w3.org/TR/shacl/
  5. Harris, S., & Seaborne, A. (2013). SPARQL 1.1 Query Language. W3C Recommendation. https://www.w3.org/TR/sparql11-query/