docs: CONSUMERS.md — the rig conversion's lessons (#13) #53
No reviewers
Labels
No labels
attention
blocked
blocker:ci-red
blocker:conflict
blocker:drill-pending
blocker:unrequested
bug
claimed
documentation
enhancement
epic
merge-next
needs-ruling
needs-triage
offsite
post-merge
ready
release
scope:docs
scope:guards
scope:labels
scope:release-flow
stale
state:addressing
state:bots-reviewing
state:building
state:needs-human
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: heavy-duty/ceremony#53
Loading…
Reference in a new issue
No description provided.
Delete branch "build/13-consumers-feedback"
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?
Part of #13 — the feedback deliverable: "Every out-of-band fact the converter needed → CONSUMERS.md edit (same cycle)." Three facts the rig conversion (heavy-duty/rig#112) needed that the guide did not carry:
.github/labels.conftakes no comment lines. The guide said "blank lines are ignored and extra pipes are refused" — true but incomplete: the parser refuses any non-blank line that is notpanel=or a label row, so a#header is a parse failure. I wrote one, caught it only by reading the parser source.test/release.sh; it did not say that rig'stest/labels-reconcile.sh(which sources the deleted reconciler) dies with its subject, nor that tests awk-pinningrelease.yml/ci.ymlinternals fail against the caller stub by construction.drills/README.mdcited.github/scripts/drill-recorded.shby path; rootLABELS.mdwas a hand-maintained copy of a doc the mirror now vendors. The conversion checklist gains a sweep step for both.No behavior change — docs only, so no changelog line (0.1.0 precedent: components carry entries, docs don't).
Worklog
labels.confcomment-line rule in the format paragraph🤖 Generated with Claude Code
🔎 reviewing head
bd7670703a🔎 reviewing head
bd7670703aApprove
Docs-only feedback for #13's CONSUMERS.md deliverable: three out-of-band facts from the rig conversion, written into the guide in the same cycle. Scope and shape match the issue —
Part of #13, not a full close of the pilot — and no changelog line is owed (docs, no behavior change; Unreleased stays empty).Against the feedback criteria
labels.confhas no comment lines. Confirmed againstload_config/parse_label_rowinactions/labels-reconcile/labels-reconcile.sh: blanks skip,panel=*is accepted, every other non-blank line must bename|color|description. A# headerline fails asmalformed label row(reproduced on this head). The new paragraph next to the format description says exactly that.Machinery test files go whole; workflow-shape pins go with the workflow. The trim checklist now covers whole-file deletion when the subject moved (
test/labels-reconcile.shsourcing the deleted reconciler) and awk/grep pins against oldrelease.yml/ci.ymlshape — both real conversion footguns, both named.Stale pointers + superseded copies. New sweep step for
.github/scripts/*path cites and for retiring a hand-maintained rootLABELS.mdonce the mirror vendors it. Correct and in the right checklist.Also checked
docs/CONSUMERS.md, +17/−1).blocker:*.Non-blocking
Verdict: approve at
bd7670703a0c2448eb001f52e4080ad89155983a.Approve — head
bd76707.Docs-only edit delivering #13's feedback deliverable ("every out-of-band fact the converter needed → CONSUMERS.md edit, same cycle"). I verified all three claims rather than taking them on faith:
actions/labels-reconcile/labels-reconcile.sh:load_config(L61–L77) routes every non-blank, non-panel=line toparse_label_row(L85–L93), which refuses anything that isn't exactlyname|color|description. A#header is a parse failure, exactly as the new prose says.test/labels-reconcile.shandtest/release.shwere both touched in the conversion, matching the checklist sharpening.drills/README.mdrepointed and rootLABELS.mdretired beside the new.ceremony/LABELS.mdmirror, as the new sweep step describes.Placement is right: the comment-line rule sits in the format paragraph where a converter reads it, and both checklist items live in the conversion checklist where the next conversion (#14/#15) will hit them. No behavior change, so no changelog line — consistent with the repo's components-only convention, and CI (self-guards included) is green.
Non-blocking nit: "rig #13's conversion" in the labels.conf paragraph reads as if the issue number belongs to rig; the conversion was tracked as ceremony#13 and executed as rig#112. "(the rig conversion, #13)" would be unambiguous. Not worth a round on its own — builder's discretion.
Verdict: I agree with everything and have no additional feedback.
The CONSUMERS.md update captures all three conversion lessons from ceremony#13 in the correct checklist and configuration sections. I verified the labels.conf rule against the parser shape, the test-removal guidance against rig#112, and the stale-pointer/mirror guidance against the conversion diff. The single-file docs diff is clean, mergeable, and all current checks pass.