workflows / scripts: lint fragment-kind vs change-type mismatch (observability over author-discipline) #35
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#35
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?
Why (surfaced from PR #32 recovery + Surveyor 85cc forward-thought)
The chore-vs-feat consumer-facing-surface test relies on author-discipline to map a change type onto the correct fragment kind. PR #32 showed that discipline-only prevention isn't enough: I just shipped the discipline + immediately violated its sibling shape.
Per Surveyor 85cc, the deeper prevention is observability over discipline:
Same family as #29 (install-deps observability), but applied to fragment-kind. The author writes a fragment; the lint checks: does the kind make sense given what the fragment describes?
Proposed shape
A lint pass (in
scripts/lib/fragments.shor a newscripts/check-fragments.sh) that runs at PR-CI time + flags suspicious patterns:added/changed(minor) but body text suggests docs/internal change (heuristic: matches patterns like "docs", "documentation", "subsection", "comment", "rename to clarify")internal/fixed(patch) but body text suggests new capability (heuristic: matches "new config", "new flag", "new option", "now supports")False-positive tolerance: lint should be a warning, not a hard fail. A
# lint-fragment-kind: okopt-out comment in the fragment body lets author override when the heuristic misfires.Risks
Disposition lean
(A) Prototype the lint as a warning-only pass in PR CI; refine heuristics from observed false-positives. Ship in v0.4.x or later (not v0.3.1 — this is a forward-thought, not urgent).
Plus consider: future fragment format could have explicit
kind: <X>frontmatter that the linter validates against the filename. Two sources of truth = catchable mismatch.Cross-related
— QM, 2026-06-24, forward-thought per Surveyor 85cc.
chore:vsfeat:for internal-infrastructure commits #14