feat(bake): implement Baker + byte-exactness invariant against #505 interface (TDD against bash byte-oracle if central; disclose if scattered/absent) #546
Labels
No labels
bump
major
bump
minor
bump
patch
kind/bug
kind/chore
kind/docs
kind/feature
priority/critical
priority/high
priority/low
priority/medium
size/L
size/M
size/S
size/XL
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
frankenbit/release-toolkit#546
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Implement
internal/bake.Bakersatisfying the Go interface landed in #505 (byte-exactness invariant per ADR-0009 §3.2 property invariants).Motivation
Phase 5 continues contract-driven TDD-per-phase per ADR-0009 §3.1.
internal/bakeis one of two Phase 5 packages (sibling: #547 self-bootstrap). Interface (Baker+ byte-exactness invariant) is Surveyor-approved in #505; implementation lands here.Scope
internal/bake/*.go— implementation satisfying #505 interface (Baker with byte-exactness property)lib/bake.shOR embedded inrelease-prep.sh/draft-release.shOR distributed across reusable-workflow render logic — deep-read per Phase-4 substrate-check-design-claim-before-pr discipline that has fired 4× so far)internal/harness(reuse Phase-1 vehicle: Go oracleshim + bash dispatcher + PREBUILT BINARY per substrate-of-record memo)testdata/fixtures/bake/— real bake input/output pairs from consumer scenariosAC
internal/bakeimplementation compiles + all#505interface methods satisfied — verified in PR#5489e77994; interface.go UNTOUCHED (no correction needed unlike #541 BranchProtection); 3 files (marker.go byte-exact kernel + baker.go PURE throwaway-index + bake.go doc)9e77994). CI-red interlude root-caused as apparatus-not-world (bake-oracle.sh depended on passwd gecos for auto-git-identity; dev host had it, CI container bare root did not); harness-only fix (export GIT_AUTHOR_/COMMITTER_), Go Baker + build_bake.sh untouchedgo vet ./...+golangci-lint runclean — verified: gate own instrument (golangci-lint 2.12.1) fired 0 issues; shellcheck+keyword-scan cleanRelated
Anchor
Filed 2026-07-26 by Bosun on operator continuation direction for Phase 5 dispatch. Engineer natural continuation-in-domain per Phase 0-4 authorship.
Closed by hand — PR#548 merged as
9e77994c90eb3fde39178af95b416838f800a6c1on v2/next (fast-forward). All 5 ACs ticked with substrate anchors above.Substrate landed:
internal/bake.BakerPURE throwaway-index implementation (no working-copy mutation per design-call-3 endorsed lean)All 6 design calls landed as endorsed (Bosun 28f0):
Substrate discovery: CI-red interlude (
9ae59e8) root-caused as apparatus-not-world — bake-oracle.sh depended on passwd gecos for auto-git-identity; dev host had it (masked local), CI container bare root did not (surfaced remote). Classic local-green/CI-red = apparatus + host-masks-gap class. Fix landed harness-only (Go Baker + production build_bake.sh untouched). Reusable diagnosis pattern.Non-blocking SC carried to #547 (per Surveyor 4585 + Engineer disposition): wc==HEAD clean-staged precondition unenforced. Surveyor reproduced silent tree divergence on violation. Baker.go docstring already frames clean-staged as CALLER-guaranteed → not over-claiming → merge as-is honest. #547 first commit lands the Baker-side fail-loud precondition-check per §5 discipline (milestone #77 named).
Substrate-of-record patterns extending:
substrate-check-design-claim-before-prinstance (Engineer framing-verify pre-impl caught the bash-surface centrality)apparatus-not-worlddiagnosis (local-green/CI-red / host-masks-gap) — reusable classCross-references:
Phase 5 status: 1/2 core (#546 bake). #547 self-bootstrap next; #544 merge coordination fires on Phase 5 close.