vendkit docs

Design records

Durable rationale for load-bearing decisions. A DR records why, so future contributors change decisions knowingly rather than accidentally. DRs are immutable once accepted; a reversal is a new DR that supersedes the old one.

Format: see TEMPLATE.md. IDs are DR-NNNN, allocated sequentially, never reused.

ID Title Status
DR-0001 Vendored identity copies, not package distribution accepted
DR-0002 Slice identity lives in the declaration, not the tools accepted
DR-0003 Two-lane distribution: sync PRs + PR-time gate accepted
DR-0004 Normalised content hashing accepted
DR-0005 The tag is the release: immutable, SHA-anchored, retractable accepted
DR-0006 Pull reconciliation with optional push hints accepted
DR-0007 ADO and GitHub Actions as peer backends behind a port interface accepted; service ops superseded by DR-0014/15
DR-0008 Declarative migrations with deterministic verification accepted
DR-0009 Content adapters: identity copy by default, named transforms by declaration accepted
DR-0010 Scope changes are reviewed PR events, never automatic accepted
DR-0011 One CLI; dependency-free consumer gate path accepted
DR-0012 One consumer config file per slice under .vendkit/ accepted
DR-0013 Seeded files: a scaffold-once lifecycle class accepted
DR-0014 Detection and delivery split by an exec handler protocol accepted
DR-0015 SCM and CI axes; formats not services accepted
DR-0016 The engine becomes a pinned, checksummed artefact (INV-6 revision) accepted (effective with DR-0017)
DR-0017 Single engine implementation in Go; scenario kit as parity ratchet accepted
DR-0018 Versioned docs site from a pure-Go static generator accepted
DR-0019 .vendkit/ splits into consumer/ and publisher/; publisher paths become defaults accepted
DR-0020 Slim the machinery slice: the engine ships as artefact only accepted