Skip to content

[Core] Implement versioned input, evidence, and output schemas #34

Description

@Dyu20705

Problem statement

RunSift needs stable, versioned contracts between collection, parsing, decision policy, reports, fixtures, and automation. Passing loosely shaped dictionaries would make fixtures brittle and future migrations unsafe.

Scope

Implement typed, serializable schemas for:

  • normalized input bundle manifest;
  • annotations and source references;
  • structured failure evidence;
  • decision result and abstention reason;
  • terminal/Markdown report inputs;
  • machine-readable JSON output;
  • structured validation and processing errors.

Checklist

  • Define schema-version conventions and compatibility policy
  • Implement manifest schema and required-field validation
  • Implement evidence and source-offset models
  • Implement result fields: category, temporal assessment, decision, decision source, rule/model identity, score semantics, and abstention reason
  • Implement stable JSON serialization
  • Verify log hashes where supplied
  • Reject unsupported major schema versions safely
  • Add round-trip, compatibility, and golden-schema tests
  • Publish complete JSON examples

Acceptance criteria

  • Fixture, local-file, and collected inputs normalize to the same contract
  • Every persistent artifact includes a schema version
  • Unsupported schema versions produce actionable errors rather than silent coercion
  • Rule scores cannot be mistaken for calibrated probabilities
  • Source offsets remain reproducible after deterministic normalization
  • JSON output is stable enough for snapshot and consumer tests

Dependencies

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:coreCore domain models and cross-cutting application logicarea:log-parsingLog chunking, extraction, annotations, and noise filteringarea:reportingCLI, Markdown, and machine-readable reportsarea:testingFixtures, automated tests, QA, and validationpriority:criticalCritical path or release-blocking worksize:mMedium estimatetype:featureUser-facing product capability

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions