Summary
Add explicit catch-all labels for ClawSweeper-owned impact and merge-risk taxonomy gaps:
impact:other
merge-risk: 🚨 other
These labels should be real, searchable GitHub labels, but they should not carry the explanation themselves. The explanation must live in labelJustifications, just like the existing ClawSweeper-managed labels.
Problem
ClawSweeper currently supports a strict set of owned impact labels and merge-risk labels.
Impact labels are issue-only and currently limited to:
impact:data-loss
impact:security
impact:crash-loop
impact:message-loss
impact:session-state
impact:auth-provider
Merge-risk labels are PR-only and currently limited to:
merge-risk: 🚨 compatibility
merge-risk: 🚨 message-delivery
merge-risk: 🚨 session-state
merge-risk: 🚨 auth-provider
merge-risk: 🚨 security-boundary
merge-risk: 🚨 availability
merge-risk: 🚨 automation
The current fallback for “no label applies” is [], which is correct for true absence of an owned signal. However, there is no searchable way to represent a real maintainer-visible impact or merge risk that does not fit the current taxonomy.
That makes two distinct cases look the same:
- no meaningful owned impact or merge risk exists
- meaningful impact or merge risk exists, but the taxonomy lacks a specific bucket
Those should not collapse into the same [] output.
Desired behavior
Add two catch-all labels:
impact:other
Use for issues only.
Meaning:
This issue has a meaningful maintainer-visible impact, but it does not fit the current owned impact taxonomy.
Rules:
- Use only for issues.
- Count toward the existing
impactLabels max of 3.
- Prefer a specific impact label when one fits.
- Use
[] when there is no meaningful owned impact signal.
- Require a matching
labelJustifications entry explaining the actual impact.
merge-risk: 🚨 other
Use for pull requests only.
Meaning:
Merging this PR has a meaningful risk that green CI does not settle, but it does not fit the current owned merge-risk taxonomy.
Rules:
- Use only for PRs.
- Count toward the existing
mergeRiskLabels max of 3.
- Prefer a specific merge-risk label when one fits.
- Use
[] when there is no meaningful merge-risk signal.
- Require a matching
labelJustifications entry explaining the actual risk.
- When selected,
risks should describe the risk in maintainer-facing prose.
- When selected,
mergeRiskOptions should still provide 1-3 concrete maintainer options.
Non-goals
- Do not add
impact:n/a.
- Do not add
merge-risk: n/a.
- Do not use
other as a replacement for [].
- Do not allow
other to bypass labelJustifications.
- Do not allow
other to be preferred over a more specific existing label.
Implementation notes
Likely touchpoints:
-
schema/clawsweeper-decision.schema.json
- Add
impact:other to impactLabels.items.enum.
- Add
merge-risk: 🚨 other to mergeRiskLabels.items.enum.
- Add both labels to
labelJustifications.items.properties.label.enum.
- Update descriptions to define the catch-all behavior and clarify that
other counts toward max 3.
-
prompts/review-item.md
- Add prompt guidance for both catch-all labels.
- Make clear that specific labels win over
other.
- Make clear that
[] still means no meaningful owned label applies.
- Make clear that
labelJustifications must explain the actual impact/risk when other is selected.
- Make clear that
merge-risk: 🚨 other still requires risks and mergeRiskOptions.
-
Any label sync, generated label list, tests, fixtures, or docs if present.
Acceptance criteria
- ClawSweeper schema accepts
impact:other.
- ClawSweeper schema accepts
merge-risk: 🚨 other.
labelJustifications accepts both new labels.
- Prompt guidance distinguishes:
[] = no meaningful owned label signal
other = meaningful signal exists, but no specific taxonomy bucket fits
- Prompt guidance says specific labels should be preferred over
other.
- Prompt guidance says both
other labels count toward the existing max of 3.
- Prompt guidance requires
labelJustifications to explain the concrete impact or merge risk.
- Existing issue-only and PR-only boundaries remain:
- impact labels are issue-only
- merge-risk labels are PR-only
Summary
Add explicit catch-all labels for ClawSweeper-owned impact and merge-risk taxonomy gaps:
impact:othermerge-risk: 🚨 otherThese labels should be real, searchable GitHub labels, but they should not carry the explanation themselves. The explanation must live in
labelJustifications, just like the existing ClawSweeper-managed labels.Problem
ClawSweeper currently supports a strict set of owned impact labels and merge-risk labels.
Impact labels are issue-only and currently limited to:
impact:data-lossimpact:securityimpact:crash-loopimpact:message-lossimpact:session-stateimpact:auth-providerMerge-risk labels are PR-only and currently limited to:
merge-risk: 🚨 compatibilitymerge-risk: 🚨 message-deliverymerge-risk: 🚨 session-statemerge-risk: 🚨 auth-providermerge-risk: 🚨 security-boundarymerge-risk: 🚨 availabilitymerge-risk: 🚨 automationThe current fallback for “no label applies” is
[], which is correct for true absence of an owned signal. However, there is no searchable way to represent a real maintainer-visible impact or merge risk that does not fit the current taxonomy.That makes two distinct cases look the same:
Those should not collapse into the same
[]output.Desired behavior
Add two catch-all labels:
impact:otherUse for issues only.
Meaning:
Rules:
impactLabelsmax of 3.[]when there is no meaningful owned impact signal.labelJustificationsentry explaining the actual impact.merge-risk: 🚨 otherUse for pull requests only.
Meaning:
Rules:
mergeRiskLabelsmax of 3.[]when there is no meaningful merge-risk signal.labelJustificationsentry explaining the actual risk.risksshould describe the risk in maintainer-facing prose.mergeRiskOptionsshould still provide 1-3 concrete maintainer options.Non-goals
impact:n/a.merge-risk: n/a.otheras a replacement for[].otherto bypasslabelJustifications.otherto be preferred over a more specific existing label.Implementation notes
Likely touchpoints:
schema/clawsweeper-decision.schema.jsonimpact:othertoimpactLabels.items.enum.merge-risk: 🚨 othertomergeRiskLabels.items.enum.labelJustifications.items.properties.label.enum.othercounts toward max 3.prompts/review-item.mdother.[]still means no meaningful owned label applies.labelJustificationsmust explain the actual impact/risk whenotheris selected.merge-risk: 🚨 otherstill requiresrisksandmergeRiskOptions.Any label sync, generated label list, tests, fixtures, or docs if present.
Acceptance criteria
impact:other.merge-risk: 🚨 other.labelJustificationsaccepts both new labels.[]= no meaningful owned label signalother= meaningful signal exists, but no specific taxonomy bucket fitsother.otherlabels count toward the existing max of 3.labelJustificationsto explain the concrete impact or merge risk.