Problem
The kubestellar-hive app opens PRs titled with a bracketed prefix:
The validate workflow runs a Validate PR title (Conventional Commits) step, which rejects these:
ERROR: PR title does not follow Conventional Commits.
validate is a required status check in the main — merge queue ruleset, so these PRs are born unmergeable. They sit in the queue accumulating red CI until a human notices the failure is about the title rather than the code, and manually runs gh pr edit --title.
Why it's worth fixing at the source
- The failure is indistinguishable from a real failure in the check rollup —
validate is one job with several steps, so a title violation and a genuine test failure both surface as validate: FAILURE. Triage cost is paid on every bot PR.
- It burns reviewer attention on a mechanical rename that the bot could have gotten right.
- It contributed to the impression that the PR backlog was full of broken changes when the underlying code was fine.
Fix
Have the bot emit a Conventional Commits title. The [quality] marker maps naturally onto existing types:
| Current |
Suggested |
[quality] add BATS regression coverage for theming hook |
test: add BATS regression coverage for theming hook |
[quality] add docs skill validator regression tests |
test(docs): add check-skill-index regression tests |
If the [quality] marker carries meaning for Hive routing, move it to a label or the PR body rather than the title.
Verification
# Reproduce: inspect which validate step failed on a bot PR
gh run view "$(gh pr checks 926 --json name,link \
--jq '.[]|select(.name=="validate")|.link' | grep -oP '(?<=runs/)\d+')" --log-failed \
| grep -i "conventional"
Surfaced while triaging the PR backlog. #924 was retitled by hand to unblock it; #926 still has the problem.
Problem
The
kubestellar-hiveapp opens PRs titled with a bracketed prefix:[quality] add BATS regression coverage for theming hook[quality] add docs skill validator regression testsThe
validateworkflow runs a Validate PR title (Conventional Commits) step, which rejects these:validateis a required status check in themain — merge queueruleset, so these PRs are born unmergeable. They sit in the queue accumulating red CI until a human notices the failure is about the title rather than the code, and manually runsgh pr edit --title.Why it's worth fixing at the source
validateis one job with several steps, so a title violation and a genuine test failure both surface asvalidate: FAILURE. Triage cost is paid on every bot PR.Fix
Have the bot emit a Conventional Commits title. The
[quality]marker maps naturally onto existing types:[quality] add BATS regression coverage for theming hooktest: add BATS regression coverage for theming hook[quality] add docs skill validator regression teststest(docs): add check-skill-index regression testsIf the
[quality]marker carries meaning for Hive routing, move it to a label or the PR body rather than the title.Verification
Surfaced while triaging the PR backlog. #924 was retitled by hand to unblock it; #926 still has the problem.