docs: ADR-0013/0015 status corrections + ADR-0023/0024/0025/0026 drafts#330
Merged
Destynova2 merged 1 commit intomainfrom Apr 28, 2026
Merged
docs: ADR-0013/0015 status corrections + ADR-0023/0024/0025/0026 drafts#330Destynova2 merged 1 commit intomainfrom
Destynova2 merged 1 commit intomainfrom
Conversation
ADR hygiene pass identified two zombie statuses where designs were marked `done` but production code does not match the design yet. Reverts both to `accepted` with inline status notes recording the correction: - ADR-0013 — storage refactor on atomic files + JSONL: redb persistence (`GrobStore` in `src/storage/mod.rs`) is still the live code path; `~/.grob/spend/*.jsonl` has not yet been written. A-7 deferred. - ADR-0015 — indirect prompt injection coverage: A-6 implementation deferred; framework design final but no production code merges yet. Adds four new ADRs as `status: proposed`, formalising decisions that have been operating informally: - ADR-0023 — Preset Naming and Composition Strategy. Adds the `[meta] tier` taxonomy (base/audience-specific/experimental), kebab-case naming convention, the rule that presets do not nest, and the `grob preset info` shippability gate. Compliance overlays are a separate `kind = "overlay"` concept. - ADR-0024 — Preset-as-Compliance-Template. Treats compliance presets as packaged decisions bundling topology + policies + ADR-0022 `[endpoints.compliance]` metadata + `[meta] compliance_reviewed` attestation. Customer overlays may tighten but never loosen; documents the certification-renewal lifecycle. - ADR-0025 — RPC Mutation Transactionality and In-Flight Visibility. Resolves issue #228: in-flight requests see pre-mutation snapshots, persistence is atomic with the in-memory swap (rollback on disk-write failure), per-namespace mutex permits parallel writes, every mutation emits an `AuditEvent::RpcMutation` with before/after hashes. - ADR-0026 — Model Name Canonicalization Policy. Records the fixed rule set landed in PR #307 (lowercase, strip `-latest`, strip 8-digit date suffix, dot-to-dash version on a known-prefix gate, Anthropic family-version reorder), the idempotence guarantee, the operator escape hatches (per-endpoint `actual_model` mapping or table patch), and the 2-minor-release deprecation window for renamed models. CHANGELOG `[Unreleased]` records the additions under a `Documentation` heading. No code changes — doc only. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
e0aa275 to
5508c1d
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Doc-only PR covering two ADR-status corrections and four new ADR drafts.
Part 1 — Status corrections (zombie statuses)
Audit found two ADRs marked
donewhose implementations are deferred. Bothflip back to
acceptedwith inline status notes; designs remain final andbinding, only the implementation flag has been corrected.
remains active in v0.36.x (
GrobStoreinsrc/storage/mod.rsstill inuse; no
~/.grob/spend/*.jsonlfiles written). A-7 deferred to v0.37+.deferred; framework design final but no production code merges yet.
Part 2 — Four new ADRs (status: proposed)
shipped catalogue:
[meta] tiertaxonomy (base,audience-specific,experimental), kebab-case naming convention,presets do not nest, and
grob preset infovalidation gate beforeshipping built-in. Compliance overlays declared as separate
[meta] kind = "overlay"concept.packaged decisions bundling routing topology, policies, ADR-0022
[endpoints.compliance]metadata, and[meta] compliance_reviewedattestation. Customer overlays may tighten but never loosen the base
posture. Update lifecycle covers routine review, certification
renewal, and major posture change.
Resolves the open question on issue Runtime config mutation for RPC namespaces (7 TODOs) #228. In-flight requests see
pre-mutation snapshots (reusing ADR-0001's
snapshot()); persistenceis atomic with the in-memory swap (rollback on disk-write failure);
per-namespace mutex permits parallel writes across namespaces; every
mutation emits an
AuditEvent::RpcMutation { namespace, action, before_hash, after_hash }to the Sokolsky pipeline.rule set landed in PR feat(routing): canonicalize model names before [[models]] lookup #307 (lowercase, strip
-latest, strip 8-digitdate suffix, dot-to-dash version on a known-prefix gate, Anthropic
family-version reorder), idempotence guarantee, operator escape
hatches (per-endpoint
actual_modelmapping or table patch), and2-minor-release deprecation window for renamed model aliases.
CHANGELOG
[Unreleased]records the additions under aDocumentationheading. No code changes.
Test plan
markdownlintpasses on all six modified/added fileslycheeresolves all internal cross-references ([ADR-NNNN](NNNN-*.md))no-hardcoded-versionCI guard passes (novX.Y.Zliterals innew ADRs; existing
v0.34.0reference in ADR-0015 alreadywhitelisted by the guard)
+ Considered Options + Decision Outcome + Consequences structure
matching ADR-0018's style