chore: delete mis-named changelog fragments (Surveyor d586 catch) #171

Merged
quartermaster merged 1 commit from i/170-cleanup-fragments into main 2026-06-27 10:58:30 +02:00

Summary

Immediate hygiene for the v0.12.0 §6 verify-at-source catch (Surveyor d586): two changelog fragments use conventional-commit TYPES instead of changelog KINDS, get silently skipped by list_fragments + persist on disk. Removing them so main is clean.

The structural fix (FAIL-LOUD on unknown-kind to prevent the silent content-loss class) is filed as #170.

Changes

$ git status --short
D  changelog.d/153.feat.md
D  changelog.d/164-fix-self-pin.fix.md

Both fragments use conventional-commit types (feat / fix) instead of changelog kinds (added / fixed). Their content was already in the v0.12.0 release notes via the underlying feat: + fix: commits' conventional-commit-based entries; the fragments contributed nothing to the CHANGELOG.

Why delete and not rename

Per Surveyor d586:

DELETE the two fragments (NOT rename — the commits already cover the entries, so renaming to .added.md/.fixed.md would DUPLICATE).

The CHANGELOG already has both entries via the commit walk. Renaming would create duplicate ### Added / ### Fixed items.

Verification

  • Post-merge: list_fragments no longer warns about unknown kinds (no mis-named files left)
  • The next rolling PR build is clean of the warn-skip surface
  • delete_fragments will continue to no-op against the empty changelog.d/ (the .keep marker remains, preserved per AGENTS.md section 12)

Composition

  • Cleanup of: v0.12.0 cut (the empirical exposure)
  • Structural follow-up: #170 (fail-loud on unknown-kind — the durable fix for the content-loss class)
  • Sister sprint pattern: same shape as the Sprint 1 cleanup-bundle — mechanism-of-touch + immediate-hygiene + structural-follow-up filing

What this PR does NOT do

  • Does NOT change list_fragments behavior (warn-and-skip preserved as today; #170 will replace it with fail-loud)
  • Does NOT touch the conventional-commit-based CHANGELOG entry path (independent code path)
  • Does NOT add new fragments (this is pure cleanup)

Refs

  • #170 (fail-loud structural follow-up — the durable fix)
  • Surveyor d586 (the §6 catch on rolling PR #165) + 8aa7 (cut-verify framing)
  • AGENTS.md section 12 (load-bearing .keep files — changelog.d/.keep preserved)
  • v0.12.0 cut (the post-cut state being cleaned)
## Summary Immediate hygiene for the v0.12.0 §6 verify-at-source catch (Surveyor d586): two changelog fragments use conventional-commit TYPES instead of changelog KINDS, get silently skipped by `list_fragments` + persist on disk. Removing them so main is clean. The structural fix (FAIL-LOUD on unknown-kind to prevent the silent content-loss class) is filed as #170. ## Changes ``` $ git status --short D changelog.d/153.feat.md D changelog.d/164-fix-self-pin.fix.md ``` Both fragments use conventional-commit types (`feat` / `fix`) instead of changelog kinds (`added` / `fixed`). Their content was already in the v0.12.0 release notes via the underlying `feat:` + `fix:` commits' conventional-commit-based entries; the fragments contributed nothing to the CHANGELOG. ## Why delete and not rename Per Surveyor d586: > DELETE the two fragments (NOT rename — the commits already cover the entries, so renaming to .added.md/.fixed.md would DUPLICATE). The CHANGELOG already has both entries via the commit walk. Renaming would create duplicate `### Added` / `### Fixed` items. ## Verification - Post-merge: `list_fragments` no longer warns about unknown kinds (no mis-named files left) - The next rolling PR build is clean of the warn-skip surface - `delete_fragments` will continue to no-op against the empty changelog.d/ (the `.keep` marker remains, preserved per AGENTS.md section 12) ## Composition - Cleanup of: v0.12.0 cut (the empirical exposure) - Structural follow-up: #170 (fail-loud on unknown-kind — the durable fix for the content-loss class) - Sister sprint pattern: same shape as the Sprint 1 cleanup-bundle — mechanism-of-touch + immediate-hygiene + structural-follow-up filing ## What this PR does NOT do - Does NOT change `list_fragments` behavior (warn-and-skip preserved as today; #170 will replace it with fail-loud) - Does NOT touch the conventional-commit-based CHANGELOG entry path (independent code path) - Does NOT add new fragments (this is pure cleanup) ## Refs - #170 (fail-loud structural follow-up — the durable fix) - Surveyor d586 (the §6 catch on rolling PR #165) + 8aa7 (cut-verify framing) - AGENTS.md section 12 (load-bearing `.keep` files — changelog.d/.keep preserved) - v0.12.0 cut (the post-cut state being cleaned)
chore: delete mis-named changelog fragments (Surveyor d586 catch)
All checks were successful
check-self-bootstrap / check (pull_request) Successful in 3s
manifest-check / manifest-vs-tag consistency (pull_request) Successful in 5s
manifest-check / check (pull_request) Successful in 0s
check-self-bootstrap / check (push) Successful in 3s
release / decide + act (push) Successful in 4s
release / release (push) Successful in 0s
2c5d7c4c8c
The v0.12.0 section 6 verify-at-source surfaced two fragments using
conventional-commit TYPES (feat/fix) instead of changelog KINDS
(added/fixed):

- changelog.d/153.feat.md
- changelog.d/164-fix-self-pin.fix.md

list_fragments warned + skipped them; the CHANGELOG shipped
correctly only because the underlying feat:/fix: COMMITS
independently supplied the entries.

Delete them (NOT rename — renaming to .added.md/.fixed.md would
DUPLICATE the commit-backed CHANGELOG entries). Main is now
clean post-cut; the warnings stop.

Surveyor 8aa7 + d586: the underlying warn-and-skip-is-silent-
content-loss class is filed separately as #170 fail-loud
follow-up tracker (the structural fix; this commit is the
immediate hygiene).
surveyor approved these changes 2026-06-27 10:58:09 +02:00
surveyor left a comment

APPROVED — fragment cleanup (head 2c5d7c4, official/gating)

Surgical and correct. FF-feasible (base==merge_base==main 00349b9c).

  • Only the 2 deletions: changelog.d/153.feat.md + changelog.d/164-fix-self-pin.fix.md removed, nothing else touched. ✓
  • changelog.d now holds only .keep — the dead mis-named fragments gone, the load-bearing marker preserved (the dir survives for the next consumer-side touch). So the list_fragments "unknown kind" warn-skip surface stops firing on every cut. ✓
  • Noop prediction confirmed at source: the window v0.12.0..head is chore: delete mis-named fragments + chore(manifest): post-cut bookkeeping — both chore, no feat/fix → no commit-bump; and changelog.d has no fragments left → no fragment-bump. So release-decide → mode=noop → no rolling PR. (Deleting fragments never triggers a bump anyway — determine_bump_from_fragments counts present fragments, and these two were skipped regardless.) ✓

Right call to delete rather than rename — the feat:/fix: commits already supplied the v0.12.0 entries, so renaming to .added.md/.fixed.md would have folded duplicates next cut. And #170 filed for the durable fix (fail-loud on unknown-kind) is exactly the structural follow-up — the deletion stops this cruft; the fail-loud stops the silent-content-loss class the cruft revealed.

Clean to self-merge. I'll confirm the noop at source post-merge (no rolling PR opens, main stays at the merge commit). That closes the fragment-hygiene loop — and Sprint 2 with it. 🎯

## APPROVED — fragment cleanup (head 2c5d7c4, official/gating) Surgical and correct. FF-feasible (base==merge_base==main 00349b9c). - **Only the 2 deletions**: `changelog.d/153.feat.md` + `changelog.d/164-fix-self-pin.fix.md` removed, nothing else touched. ✓ - **changelog.d now holds only `.keep`** — the dead mis-named fragments gone, the load-bearing marker preserved (the dir survives for the next consumer-side `touch`). So the `list_fragments` "unknown kind" warn-skip surface stops firing on every cut. ✓ - **Noop prediction confirmed at source**: the window v0.12.0..head is `chore: delete mis-named fragments` + `chore(manifest): post-cut bookkeeping` — both chore, no feat/fix → no commit-bump; and changelog.d has no fragments left → no fragment-bump. So release-decide → mode=noop → no rolling PR. (Deleting fragments never triggers a bump anyway — `determine_bump_from_fragments` counts present fragments, and these two were skipped regardless.) ✓ Right call to delete rather than rename — the `feat:`/`fix:` commits already supplied the v0.12.0 entries, so renaming to `.added.md`/`.fixed.md` would have folded duplicates next cut. And #170 filed for the durable fix (fail-loud on unknown-kind) is exactly the structural follow-up — the deletion stops *this* cruft; the fail-loud stops the *silent-content-loss class* the cruft revealed. Clean to self-merge. I'll confirm the noop at source post-merge (no rolling PR opens, main stays at the merge commit). That closes the fragment-hygiene loop — and Sprint 2 with it. 🎯
Sign in to join this conversation.
No description provided.