@@ -180,9 +180,10 @@ mathematical result and from verification authority.
180180
181181` CapabilityResult ` is a wire projection, not an in-process return type. Domain
182182functions, operation executors, artifact services, and checker services return
183- their owned typed values or terminal states. The final capability adapter
184- constructs the wire envelope once, after publication has returned the complete
185- artifact closure. Artifact-producing operations must not move storage writes
183+ their owned typed values or terminal states. The public dispatcher constructs
184+ the wire envelope once, after publication has returned the complete artifact
185+ closure; installed adapters return a typed projection rather than constructing
186+ the envelope themselves. Artifact-producing operations must not move storage writes
186187into ` OperationSpec.execute ` ; a domain-specific publisher may preserve an
187188established durable schema and parent closure without expanding the generic
188189publication policy.
@@ -214,6 +215,19 @@ subject, candidate, evidence, protocol, semantics, scope, certificate format,
214215and checker identity. Independent checker execution does not import or call the
215216producer, proposal, search, or evaluation path it certifies.
216217
218+ Checker identity comes from a versioned manifest for that checker, not from a
219+ digest of the whole Jacobian package. The manifest binds its exact entry point,
220+ separate checker and worker source closures, exact Python distributions, Python
221+ and provider runtime, passive contracts, and bounded-process policy. The worker
222+ admits only the declared first-party closure and manifest-bound third-party
223+ distributions, including imports requested dynamically during checker
224+ execution, and remeasures the complete
225+ manifest—including the current bytes of every indexed dependency file—around
226+ execution. Authorization performs the same measurement once; catalog and
227+ compatibility reads do not repeat that filesystem scan. A producer or unrelated
228+ checker edit therefore cannot change the identity, while a changed executable
229+ dependency cannot retain it.
230+
217231` VerificationResult ` is the internal typed outcome of that checker execution,
218232not a generic mathematical result envelope. Capability adapters project it
219233once into the ordinary operation response. Ordinary producers do not use it,
@@ -299,6 +313,13 @@ and checker authority. Remote authentication, tenants, admission, leases,
299313eviction, and quarantine belong to a separate remote host and do not enter the
300314local mathematical server.
301315
316+ Local artifact storage retains one concrete filesystem CAS with SQLite metadata.
317+ ` ArtifactRepository ` is its public aggregate; explicit transaction, blob, and
318+ metadata collaborators own the implementation. They are not interchangeable
319+ backend interfaces, and new storage abstractions require new workload evidence.
320+ The aggregate coordinates lifecycle and transactions; it does not mirror
321+ collaborator-private blob or recovery APIs.
322+
302323MCP uses SDK-derived typed schemas and structured output. Pydantic result models
303324are returned directly unless a genuine ` ResourceLink ` , custom metadata, or
304325deliberate text projection requires an explicit MCP result. The two fixed tools
0 commit comments