docs(contract): document consent event + reconcile cask auto-routing (bootstrap follow-ups)#127
Merged
Merged
Conversation
…ing (bootstrap follow-ups) Two post-merge reconciliations of the engine-backend-bootstrap arc (#125): 1. docs/contracts/event-contract.md — document the `consent` event type (added to the event-type table + a new "Consent Event" section with fields, the combined-set /one-event-per-run guarantees, apply-only emission, and consumer notes). It is a contract-sanctioned non-breaking addition (new event type, no version bump); the engine already emits it, this records it in the contract. 2. openspec/changes/macos-brew-driver — reconcile the "Per-app driver selection" requirement with the shipped Cask auto-routing: a `cask:` darwin ref now routes to brew by DEFAULT (no driver:"brew" needed), so the old "A Cask reference without the brew driver is rejected" scenario becomes "auto-routes to brew". The auto-routing default is owned by engine-backend-bootstrap-impl; this requirement composes with it. No engine code changes. openspec validate --all --strict 74/74; affected Go packages (events/manifest/commands) still pass. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Artexis10
added a commit
that referenced
this pull request
Jun 11, 2026
…ve 6 changes) (#128) The engine work shipped across #95-#127; this closes the spec ledger: - Archive nix-realizer-backend -> new main spec nix-package-backend (realizer selection, atomic generation apply, event fan-out, pinned refs, error codes) - Archive platform-backend-foundation -> new main spec platform-backend-selection - Archive macos-brew-driver (design-only): duplicated requirements drop out; its closing delta reconciles macos-brew-apply-wiring - cask auto-route replaces the stale reject-at-load requirement (per #125/#127), verify gains the no-downgrade-on-advisory-pin clause - Archive engine-backend-bootstrap (design-only, --skip-specs; superseded by impl) - Archive engine-backend-bootstrap-impl -> new main spec engine-backend-bootstrap (cask auto-routing rehomed to macos-brew-apply-wiring; read-only sentence tightened to shipped behavior) - Archive nix-home-manager-secrets-scope: boundary tier already specced; the implemented capture-side redaction graduates into nix-home-manager-secrets-boundary; managed tier (agenix/sops-nix) recorded as deferred - Reconcile tasks.md in all six (decisions RATIFIED-by-implementation, spec hardening graduated, non-goals annotated); fill Purpose lines on touched specs - docs: platform support matrix in COMPATIBILITY.md, index pointer, roadmap S6 marks the arc complete and records the deferred scope durably Verification: openspec validate --all --strict 71/71; go test ./... green; real-Nix smoke green locally; CI green on main incl. scheduled Nix smoke. Co-authored-by: Claude Fable 5 <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.
Two post-merge reconciliations of the engine-backend-bootstrap arc (#125). No engine code changes.
1. Document the
consentevent (docs/contracts/event-contract.md)The bootstrap pre-step emits a
consentevent (combined absent-backend set + product-neutral message + inspectable installer-command details). It shipped in #125 but wasn't yet recorded in the contract. Adds it to the event-type table + a new Consent Event section (fields, guarantees — one event per run / apply-only / never-install-without-consent, and consumer notes). Contract-sanctioned non-breaking addition (new event type, no version bump).2. Reconcile cask auto-routing (
openspec/changes/macos-brew-driver)PR3 of the arc made a
cask:darwin ref auto-route to the brew lane by default (nodriver: "brew"needed). The macos-brew-driver design still said such a manifest is rejected at load. Updates the "Per-app driver selection" requirement + flips the "A Cask reference without the brew driver is rejected" scenario to "auto-routes to brew". The auto-routing default is owned byengine-backend-bootstrap-impl; this requirement now composes with it instead of contradicting it.Verification
openspec validate --all --strict→ 74/74. No Go changed; affected packages (events/manifest/commands) still pass. No conformance test parses the contract doc.🤖 Generated with Claude Code