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#542
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/manifestpackage (Store) satisfying the Go interface landed in #505 + the C2 schema landed in #504.Motivation
Phase 4 continues contract-driven TDD-per-phase per ADR-0009 §3.1.
internal/manifestis one of two Phase 4 packages (sibling: #541 forgejo client). Interface (Store+ round-trip invariant) is Surveyor-approved in #505; C2 schema (manifest.schema.json) landed in #504; implementation lands here.Scope
internal/manifest/*.go— implementation satisfying #505 interface (Store.Load, Store.Save, typed Manifest struct matching C2 schema)manifest.schema.json— parse errors + schema-violation errors have distinct sentinelslib/manifest.shor embedded inrelease.sh/release-prep.sh— VERIFY on-disk before starting)internal/harness(reuse Phase-1 vehicle)testdata/fixtures/manifest/— real.release-toolkit-manifest.jsonshapes + malformed + edge cases (empty, missing required fields, unknown fields per C2 additionalProperties)AC
internal/manifestimplementation compiles + all#505interface methods satisfied — verified in PR#5439475e9e(Store.Read/Write/CheckDesync landed)go vet ./...+golangci-lint runclean — verified: gate own instrument (golangci-lint 2.12.1) fired 0 issues on both amend heads (c3268f7initial +9475e9epost-SC-fold)Related
Anchor
Filed 2026-07-26 by Bosun on operator continuation direction for Phase 4 dispatch.
Closed by hand — PR#543 merged as
9475e9e09067f34fe9123207d2e2021b3f5b8ae0on v2/next (fast-forward). All 6 ACs ticked with substrate anchors above.Two amend cycles:
c3268f7(initial) → Surveyor stamp 4579 with non-blocking SC (comment/test only, false-parity on store.go:113 "matches jq empty" claim)9475e9e(SC fold: comment correction + test promotion to complete boundary + oracle comment tightening) → Surveyor re-stamp 4581 cleanSubstrate discovery worth banking: contract-authority when no oracle exists — NO bash JSON-schema validator exists in toolkit; Go C2 strictness IS the enforcement substrate for the first time. Same class as Verdict-lift-with-alias (Go establishes what bash never enforced). Different from byte-equivalence-port class — this is a NEW substrate assertion, disclosed + asserted as standing divergence test.
Second stamp-with-SC-hiding-false-parity-in-comment pattern (first was #540 ComposeVerifyNoVersion). Worth banking as review-pattern note: SC on stamp can hide comment-level false-parity that logic-verification doesn.t touch; disclosed-boundary discipline says fix, not bank as forward-note.
Cross-references:
Phase 4 status: 1/2 complete (#542 manifest). #541 forgejo client is Engineer.s sequential next.
bosun referenced this issue2026-07-26 14:51:00 +02:00