3.0 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.
Proposed Stages
Stage 1: Bootstrap Go Project
Create:
go.mod;cmd/notarius/main.go;internal/cli;- a minimal CLI command surface that compiles.
Expected validation:
go test ./...
go build ./cmd/notarius
Stage 2: Source Core Types
Create internal/core/source.
Initial types:
SourceDocument;SourceUnit;SourceRef;- source validation helpers for document ID, ordered units, unique unit IDs, and non-empty text.
Keep the model generic. Do not introduce transcript-specific field names into core source types.
Stage 3: Artifact Core Types
Create internal/core/artifacts.
Initial types:
- artifact candidate;
- approved artifact envelope;
- rejected artifact record;
- run manifest;
- source-reference-bearing helper interfaces or conventions if useful.
Keep the artifact model extractor-neutral. D&D-specific fields should wait until the D&D spells extractor checkpoint.
Stage 4: Framework Contract Types
Create internal/framework/contracts.
Initial contracts:
InputAdapter;Extractor;Validator;- structured LLM client interface placeholder;
- parse, extraction, and validation request/response types.
Interfaces should be small and should depend on core source/artifact types, not on concrete adapter or extractor packages.
Stage 5: Contract Tests With Fakes
Add tests using fake adapter, extractor, and validator implementations.
These tests should prove:
- fake components can satisfy the interfaces;
- source documents can flow into extraction requests;
- artifact candidates can flow into validation requests;
- the contracts are not forcing transcript or D&D assumptions.
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?