2.2 KiB
Checkpoint 1: Core Contracts And Skeleton
Status
This document describes planned work, not implemented behavior.
Goal
Define the stable vocabulary and core interfaces that adapters, extractors, validators, and runners will build against.
This checkpoint should produce a compileable Go repository with a minimal CLI shell and contract-level tests. It does not need to process real input or produce useful artifacts.
Scope
In scope:
- Go module bootstrap;
- executable entrypoint;
- minimal CLI package;
- core source, artifact, manifest, and contract types;
- fake implementation tests proving the interfaces are usable.
Out of scope:
- real input adapters;
- real extractors;
- LLM provider calls;
- prompt or response-schema assets;
- diagnostics run directory;
- production config loading.
Target End State
The repository should contain a compileable Go application shell and stable core contract packages:
cmd/notariusprovides the executable entrypoint.internal/cliprovides a minimal CLI shell.internal/core/sourcedefines generic source documents, source units, source references, and source validation helpers.internal/core/artifactsdefines extractor-neutral artifact candidate, approved artifact, rejected artifact, and run manifest types.internal/framework/contractsdefines the adapter, extractor, validator, and structured LLM interfaces used by later checkpoints.
The contracts should be proven with fake implementations in tests. Those tests should demonstrate composition without real source adapters, real extractors, LLM provider calls, prompt assets, or diagnostics infrastructure.
Implementation staging belongs in
implementation.md.
Done Criteria
go test ./...passes.go build ./cmd/notariuspasses.- Core types and contracts exist in stable package locations.
- Tests prove fake implementations can compose at the type-contract level.
- No real Seriatim, D&D, LLM, or Audita-specific behavior has been added yet.
Review Questions
- Are the interfaces small enough?
- Are source-format details absent from core packages?
- Are D&D concepts absent from framework and core packages?
- Is the shell compileable without placeholder behavior that will be hard to unwind?