Problem
Our OCR posting path renders content/location for every finding but does not display or apply category/severity policy. Every line-addressable finding becomes an inline comment regardless of value, creating reviewer noise.
Production evidence from run https://github.com/vybestack/llxprt-code/actions/runs/29946076923 (75 findings):
- 22 low-severity maintainability findings (nits: hardcoded constants, diagnostic verbosity, naming)
- 5 low-severity test findings
- 1 info-severity other finding
- Only 4 high-severity findings (2 bug, 2 correctness)
A conservative policy routing only low maintainability/test/other/info to the sticky summary would reduce inline candidates from 75 to 47 (37% reduction) while preserving every finding in durable output.
Proposed solution
Implement severity-based publication routing locally in our custom workflow, in shadow mode first.
Phase 1: Shadow mode
- After OCR completes, parse each finding's category/severity (depends on fail-open metadata validation).
- Apply a conservative routing policy:
- Inline: high, medium, all security, all bug/correctness, all unknown values (fail-safe).
- Summary-only: low maintainability, low test, info/other.
- In shadow mode, post ALL findings as inline (current behavior) but log what would have been routed to summary.
- Track: how many would have been suppressed, what categories, any high-value findings that would have been missed.
Phase 2: Go live after shadow validation
- Route low maintainability/test/other/info findings to the sticky summary instead of inline.
- Render category and severity labels in both inline and summary findings.
- Every finding and its routing reason remains in the redacted artifact.
- Make the routing thresholds configurable via repository variable.
Routing policy (initial, conservative)
| Category |
Severity |
Destination |
| bug, correctness, security |
any |
inline |
| maintainability, test, style |
high, medium |
inline |
| maintainability, test, style |
low |
summary |
| other, unknown |
any |
inline (fail-safe) |
| any |
info |
summary |
This is deliberately conservative. It can be tuned after shadow-mode data proves it does not reduce high-value recall.
Acceptance criteria
Relationship to other issues
Problem
Our OCR posting path renders content/location for every finding but does not display or apply category/severity policy. Every line-addressable finding becomes an inline comment regardless of value, creating reviewer noise.
Production evidence from run https://github.com/vybestack/llxprt-code/actions/runs/29946076923 (75 findings):
A conservative policy routing only low maintainability/test/other/info to the sticky summary would reduce inline candidates from 75 to 47 (37% reduction) while preserving every finding in durable output.
Proposed solution
Implement severity-based publication routing locally in our custom workflow, in shadow mode first.
Phase 1: Shadow mode
Phase 2: Go live after shadow validation
Routing policy (initial, conservative)
This is deliberately conservative. It can be tuned after shadow-mode data proves it does not reduce high-value recall.
Acceptance criteria
Relationship to other issues