Skip to content

Core domain invariants for TaskStream authority #239

@devkade

Description

@devkade

Summary

Implement the first domain model and invariant tests for the #236 TaskStream kernel.

Parent: #236

Scope

Implement core domain objects:

TaskStream
Run
RuntimeSession
TaskStreamContract
RunContract
EvidenceRecord
VerificationResult
CompletionDecision
ArtifactRef
EventEnvelope

Implement domain errors and value objects:

StreamId
RunId
RuntimeSessionId
EvidenceId
VerificationId
CompletionDecisionId
ArtifactId
ContractVersion
DecisionAuthority

Required invariants

  • Runtime output cannot complete a Run.
  • CompletionDecision requires kernel authority.
  • CompletionDecision requires non-empty evidence refs.
  • CompletionDecision requires accepted/passing verification.
  • Run uses an immutable contract snapshot.
  • ArtifactRef requires stable path/URI plus digest.
  • EventEnvelope carries bounded accountability facts, not raw transcripts by default.

Non-goals

  • No SQLite.
  • No MCP.
  • No Pi adapter.
  • No CLI.
  • No GitHub/Discord semantics.

Acceptance criteria

  • Domain invariant tests exist.
  • Domain errors are explicit and typed.
  • Core has no adapter dependencies.
  • cargo test -p ilchul-core passes.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions