Add category/structure and an os-backlog categorize gate #1105
Labels
No labels
P0
P1
P2
P3
bug
category/code-change
category/cross-repo
category/eval-run
category/investigation
category/no-test-target
category/owner-ruling
category/prose-artifact
category/recurring-chore
category/structure
category/umbrella
crc-refactor
create
delete
enhancement
filed-by/agent
filed-by/user
frozen
lint-rule
needs-info
needs-triage
next
plugin/cc-architect
plugin/os
plugin/os-adr
plugin/os-aidd-lint
plugin/os-backlog
plugin/os-context
plugin/os-doc-hygiene
plugin/os-sdlc
plugin/os-vault
project/cc-os
ready-for-agent
ready-for-human
recurring
review
rule-proposal
update
waiting
wayfinder:grilling
wayfinder:map
wayfinder:map
wayfinder:research
wayfinder:task
wayfinder:task
wontfix
worklist/deviations
worklist/lint-rule
worklist/new-implement-build
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
jared/cc-os#1105
Loading…
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?
Problem
The category label vocabulary is written in five places:
Backlog::IssueCreate::CategoryLabels::NAMES,OsSdlc::Tracker::Ticket::CATEGORY_PREFIX, the capture skill, the route skill, and ADR-0287.No
os-backlogcommand can correct a category after create, so a wrong category stays wrong.Our ticket generators label structure-only work
category/code-changebecause nostructurecategory exists.Reproduce
n/a: design ticket; the gap is the missing category and the missing command.
Approach
Add a tenth category,
structure: "rename, move, or split with no behavior change; the existing suite is the proof".The names stay in
Backlog::IssueCreate::CategoryLabelsin os-backlog; the shared-gem move is ticket #1108.Add
os-backlog categorize NUMBER CATEGORY. It swaps the singlecategory/*label on the issue and refuses an unknown name, through the same check thatissue-createuses (ADR-0234).Delete the change-type section from
docs/agents/triage-labels.md. It is doc only and no ADR backs it.Required work:
change-type labelindocs/agents/triage-labels.mdcategory/structurein the capture skill — check: presentcategory/structureinplugins/os-backlog/skills/capture/SKILL.mdcategory/structurein the route skill — check: presentcategory/structureinplugins/os-backlog/skills/route/SKILL.mdstructureinplugins/os-backlog/tests/issue_create/category_labels_test.rbOrchestrator work: amend ADR-0287 with the tenth category through
/os-adr:create.structureis parsed vocabulary, so it is a one-way door. Its consequence "only code-change enters the pipeline" changes.Acceptance criteria
os-backlog categorize 12 structureon an issue labeledcategory/code-change, when it runs, then the issue carriescategory/structureand no othercategory/*label.os-backlog categorize 12 bogus, when it runs, then it exits nonzero, names the valid categories, and changes no label.os-backlog issue-createwith--label category/structure, when it runs, then it accepts the label.Owner sketch
Origin
VERDICT: CREATE
Work started on branch ticket-1105 via /os-sdlc:implement.
Implementation 65 escalated at the test-reviewer bound because AC4 is os-sdlc work outside the os-backlog target. AC4 and the shared-gem move are split to #1108. The body was edited and the run will be rerouted.
Resolution
Done: os-backlog categorize NUMBER CATEGORY swaps the single category/* label and refuses unknown names via CategoryLabels.known?; category/structure added as the tenth name with its meaning; ADR-0287 amended in place via os-adr:create; capture and route skill lists updated; change-type section removed from docs/agents/triage-labels.md; nine-name test pins updated.
Evidence: main
b78ac8de(and tidyd1feee9d); os-backlog suite 314 runs 0 failures; rubocop clean on changed files; design audit: no must-fix, five should-fix applied. Implementation 65 escalated twice (reviewer bound on a two-target ticket, then unexpected_pass from a verifier brief lacking test_changes) and was hand-finished per the escalation procedure.Follow-ups: #1108 shared-gem move and os-sdlc read of NAMES (split from AC4); #1109 two-target ticket check; #1110 writer classification not recorded; #1111 verifier brief omits test_changes. ADR-0287 text about a crc-refactor category list was already wrong before this change; left as is.