Skip to content

Establish sourceos-shell contract boundary and add shell/document provenance schemas #31

@mdheller

Description

@mdheller

Summary

Establish the contract-layer boundary for the planned SourceOS-Linux/sourceos-shell product repo and add the first schema/API backlog required for the shell, document pipeline, provenance ribbons, search-routing, annotations, and run reports.

This issue exists because sourceos-spec is already the canonical machine-readable contract layer for SourceOS/SociOS implementations. The shell work should not redefine object shapes ad hoc in product code.

Why this belongs here

sourceos-spec already defines the shared contract layer consumed by API services, event consumers, validators, generators, and semantic tooling. The shell/document/search/provenance work needs canonical shapes that all implementations can share.

Scope

1. Add schema backlog

Create draft JSON Schemas (and matching examples) for the following objects:

  • ArtifactManifest
  • SignedArtifact
  • PdfValidationReport
  • CommentSignal
  • SearchRouteDecision
  • AnnotationExport
  • RunReport
  • NoetherDiagnostic
  • PublishDecision
  • MirrorReceipt

2. Add API/event surface backlog

Add or queue the corresponding OpenAPI/AsyncAPI shapes for:

  • artifact sign/validate status
  • search routing decision events
  • annotation export events
  • publish/mirror receipts
  • run-report publication events

3. Boundary statement

Document that:

  • product/UI/runtime code belongs in a new SourceOS-Linux/sourceos-shell repo
  • Linux realization belongs in SociOS-Linux/source-os
  • sourceos-spec remains the shared contract canon

Acceptance criteria

  • Each schema above exists under schemas/
  • Each schema has at least one conforming example under examples/
  • OpenAPI and/or AsyncAPI placeholders are added for the new contract surfaces
  • A short architecture note or ADR explicitly states the split:
    • sourceos-shell = product/runtime
    • sourceos-spec = contracts
    • source-os = Linux realization
  • Schema names, IDs, and versioning follow existing repo conventions

Initial notes

Keep the first cut minimal and implementation-oriented. We only need the stable shape of the objects that will be exchanged by the shell, its services, and the publishing/provenance pipeline.

Proposed owner

@mdheller

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions