Harness Thread Id Extension¶
| Canonical | ../StructureDefinition/nexus-emr-thread-id |
|---|---|
| Status | draft · 1.26.0 |
| Base | Extension (constraint) |
| Context | Task (element) |
| Source | FSH · JSON |
The AI-harness thread identifier that produced or owns this Task. An opaque string for traceback from a chart artifact into harness logs; never rendered in the UI. Assigning a Task carrying this extension back to an agent resumes the named thread (the approve/resume contract).
FSH
The authored source of truth: extensions/ThreadIdExtension.fsh (edit on GitHub). One FSH file may define several related artifacts.
// ThreadIdExtension.fsh
// The harness thread linkage (FHIR-29, ratified 2026-08-10 in the AI Harness thread):
// a Task created by the AI harness carries the harness thread id in an extension, so a
// chart artifact can be traced back into harness logs (lawsuit-grade traceback). It is
// NEVER rendered in the UI. `basedOn` keeps its normal FHIR meaning -- the thread link
// is this extension, not a reference.
//
// Context is Task only for now. Whether the thread id ALSO rides Provenance is an open
// FHIR-29 ruling; if it lands there, this extension's context widens rather than a
// second extension being minted.
Extension: NexusEmrThreadId
Id: nexus-emr-thread-id
Title: "Harness Thread Id"
Description: "The AI-harness thread identifier that produced or owns this Task. An opaque string for traceback from a chart artifact into harness logs; never rendered in the UI. Assigning a Task carrying this extension back to an agent resumes the named thread (the approve/resume contract)."
* ^url = "../StructureDefinition/nexus-emr-thread-id"
* ^status = #draft
* ^context[0].type = #element
* ^context[0].expression = "Task"
* value[x] only string
* valueString 1..1
* valueString ^short = "Opaque harness thread id"