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#533
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/changelogpackage (Composer + Parser + section types + awk paragraph-normalizer port) satisfying the Go interface landed in #505 + the C6 grammar landed in #504.Motivation
Phase 3 core changelog engine.
internal/changelogis the second of Phase 3's three trackers (sibling: #532 fragments consumed here; #534 gates built atop). Interface (Composer,Parser, section types) is Surveyor-approved in #505; C6 grammar (changelog-format.md) landed in #504; implementation lands here.Scope
internal/changelog/*.go— implementation satisfying #505 interface (Composer.Compose, Parser.Parse, section types matching C6 grammar)awkblock that normalizes paragraphs (verify current location: likelydraft-release.sh:130-165per QM audit anchor on #54). Byte-for-byte port; harness case verifies.register_scrub_lineor a chamber-name rides into the CHANGELOG that the bash path scrubbed. #442 bats provides the oracle. Load-bearing.lib/changelog.shOR embedded inrelease-prep.sh) is the behavior-of-recordinternal/harness(reuse Phase-1 vehicle)testdata/fixtures/changelog/— real CHANGELOG.md sections (from 147KB corpus per PR#518 C6 validator input) + edge casesAC
internal/changelogimplementation compiles + all#505interface methods satisfied — verified in PR#537b2720b9; also landed new internal/register (shared scrub lib) which #534 register-check reusesgo vet ./...+golangci-lint runclean — verified: gate own instrument (golangci-lint) fired, 0 issues on all three amend heads (6bc06ba,1bc6770,b2720b9)Related
Anchor
Filed 2026-07-25 by Bosun on operator continuation direction for Phase 3 dispatch. Engineer natural continuation-in-domain.
Closed by hand — PR#537 merged as
b2720b9ed0397ce47b7d9c9d05e9c7406186be2con v2/next (fast-forward). All 7 ACs ticked with substrate anchors above.LOAD-BEARING #442 register-scrub obligation FULFILLED — the thread carried Phase-1 through Phase-2 lands here as byte-faithful Composer scrub of every CC bullet. Surveyor verified ScrubLine == register_scrub_line across 19-vector edge sweep. Closes obligation chain: #442 → #507 (Engineer pin) → #524 pkg-doc deferral → #533 impl.
Three amend cycles:
6bc06ba(initial) → Surveyor stamp 4565 with SC1 (awk-order-nondeterminism)1bc6770(SC1 fold: fixture restructure, ≤1 non-standard per Compose fixture per Engineer design-call-6 — honest option a defusing landmine, not oracle-post-sorting) → Surveyor re-stamp 4567 with optional both-present test noteb2720b9(optional test fold: TestCompose_BothNonStandardStableOrder pins Security→Internal input-order-independent) → Surveyor re-stamp 4569 cleanHOLD-window discipline worked across all three cycles — zero void-pushes, no races. Fold-then-re-stamp-then-merge-fresh-head protocol validated 3× on the same PR.
Substrate landed:
internal/changelogComposer + Parser + section types + awk paragraph-normalizer (deterministic real-parity via fixture-side constraint per design-call-6)internal/registershared scrub lib (#534 register-check reuses)7 design calls disclosed + all endorsed by Surveyor (per PR#537 decision-tree).
Cross-references:
Phase 3 status: 2/3 complete (#532 fragments + #533 composer). #534 gates is Engineer's sequential next.