docs(adr): ADR-0014 Engine::reconcile_commit design#68
Merged
Conversation
Resolves the three architectural questions blocking the M4 W1 remainder (reconcile_commit + --commit / --adopt-all CLI flags): 1. Drift threshold: pooled default of 5, mirrors ADR-0011s prune pattern. Override via --commit-threshold N; bypass via --adopt-all. Enforced at the CLI boundary, not the engine. 2. Prompt UX: per-item TTY menu (y/N/a/s/q). Non-interactive without --adopt-all refuses with RECONCILE_REQUIRES_INTERACTIVE to prevent silent mass-adoption. 3. ReconciliationEntry: extend with adopted / skipped Vec<String> fields rather than break the unit-variant enum. Additive, backward-compatible deserialization for pre-ADR entries. Catalogs the new entry in docs/adr/README.md. Refs: PRD §7.3, PRD §11, Plan §7.5 Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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
ADR-0014 resolves the three architectural questions blocking the M4 W1 remainder (
reconcile_commit+--commit/--adopt-all). Doc-only PR; no code.The three decisions, all subject to maintainer review:
--commit-threshold N; bypass via--adopt-all. Enforced at the CLI boundary.[y/N/a/s/q]. Non-interactive contexts (no TTY, orAI_AGENT=1) without--adopt-allrefuse withRECONCILE_REQUIRES_INTERACTIVEto prevent silent mass-adoption. Env-var detection helper ships partial in M4 (TTY +AI_AGENTonly) and full in M5 W2.ReconciliationEntryschema (rules 7-9): extend withadopted: Vec<String>andskipped: Vec<String>rather than break the unit-variantReconciliationActionenum. Additive deserialization keeps pre-ADR entries valid (vectors default to[]). FreshUuid::now_v7()per commit;package_countis the audit denominator (items considered, not items adopted).Why an ADR before code
CLAUDE.md says default to refusing the change rather than guessing on architecture. Threshold defaults, prompt semantics, and
state.tomlschema shape are exactly the kinds of decisions that should land indocs/adr/first; the PR review IS the approval.Files
docs/adr/0014-reconcile-commit-design.md(156 lines, mirrors ADR-0011 / ADR-0013 format).docs/adr/README.md-- one row added to the Active ADRs catalog table.Test plan
bat docs/adr/0014-reconcile-commit-design.mdlooks clean;gh pr view 68 --webmarkdown preview is faithful.Out of scope
Engine::reconcile_commitimplementation -- separate PR after this ADR lands.--commit/--adopt-all-- separate PR.vm-11/vm-12/vm-13-- M4 W2.Refs: PRD §7.3, PRD §11, Plan §7.5; precedents ADR-0010, ADR-0011, ADR-0013.
🤖 Generated with Claude Code