Spike, not a build. Time-boxed investigation to decide whether this belongs to Vera at all, and if so what v1 is.
The issues webhook event is being subscribed on the GitHub App alongside issue_comment and pull_request_review_comment (which the summon surface needs — pr-reviewer-plugin#28). So the events will arrive; nothing consumes them yet. Until a handler exists they drop as not-a-pr-event, which is harmless but should be silenced once this is decided either way.
The idea
When an admin files an issue, Vera triages it: proposes labels, flags likely duplicates, maybe asks for a repro.
Why it is not just "the panel, but for issues"
The review panel is five finders reading a diff, deduped, adversarially verified, mapped to a verdict. An issue has no diff. None of that machinery transfers — triage is a different recipe with a different shape.
What should transfer is the discipline, which is hard-won and repo-specific:
- identity and permission resolved server-side, never from the webhook payload
- typed drops, every decision telemetered (including declining — see pr-reviewer-plugin#34)
- fail-closed on unreadable state
- the chokepoint, so a burst of issue edits doesn't spawn N runs
summon.is_admin() is reusable as-is.
The stakes argument (this shapes v1)
A wrong label is reversible and costs seconds. A wrong FAIL blocks a merge. So triage can afford to be more liberal than review.
But the inverse matters more: auto-close, auto-assign, and auto-transfer should be out of scope for v1. Those are the actions that hurt when a model is confidently wrong, and 2026-07-22/23 produced three separate cases of exactly that — a hallucinated blocker confirmed twice, a fabricated prefix claim, and a real finding downgraded by an over-eager filter. Label + comment are recoverable; closing someone's issue is not.
The genuinely valuable question is dedupe
"Has this been filed before?" is the highest-value triage question and the one humans are worst at. Concretely: projectBoard-plugin#88's eight-round loop and the later PRs rhymed, and nobody noticed until it was analysed by hand.
The fleet already has the infrastructure — qwen3-embedding is on the gateway — so this is plausible rather than speculative.
What the spike should answer
Refs
pr-reviewer-plugin#28 (the summon surface and its App-event requirement), pr-reviewer-plugin#34 (guard-decision telemetry — the observability posture any new surface should inherit), protoLab#24 (the hand-grounded findings dataset, as a model for how a new surface would be evaluated).
Spike, not a build. Time-boxed investigation to decide whether this belongs to Vera at all, and if so what v1 is.
The
issueswebhook event is being subscribed on the GitHub App alongsideissue_commentandpull_request_review_comment(which the summon surface needs — pr-reviewer-plugin#28). So the events will arrive; nothing consumes them yet. Until a handler exists they drop asnot-a-pr-event, which is harmless but should be silenced once this is decided either way.The idea
When an admin files an issue, Vera triages it: proposes labels, flags likely duplicates, maybe asks for a repro.
Why it is not just "the panel, but for issues"
The review panel is five finders reading a diff, deduped, adversarially verified, mapped to a verdict. An issue has no diff. None of that machinery transfers — triage is a different recipe with a different shape.
What should transfer is the discipline, which is hard-won and repo-specific:
summon.is_admin()is reusable as-is.The stakes argument (this shapes v1)
A wrong label is reversible and costs seconds. A wrong FAIL blocks a merge. So triage can afford to be more liberal than review.
But the inverse matters more: auto-close, auto-assign, and auto-transfer should be out of scope for v1. Those are the actions that hurt when a model is confidently wrong, and 2026-07-22/23 produced three separate cases of exactly that — a hallucinated blocker confirmed twice, a fabricated prefix claim, and a real finding downgraded by an over-eager filter. Label + comment are recoverable; closing someone's issue is not.
The genuinely valuable question is dedupe
"Has this been filed before?" is the highest-value triage question and the one humans are worst at. Concretely: projectBoard-plugin#88's eight-round loop and the later PRs rhymed, and nobody noticed until it was analysed by hand.
The fleet already has the infrastructure —
qwen3-embeddingis on the gateway — so this is plausible rather than speculative.What the spike should answer
issues.openedby an admin only? Alsoedited? Does a@vera triagesummon make more sense than automatic (reuses pr-reviewer-plugin#28's surface and is opt-in per issue)?Refs
pr-reviewer-plugin#28 (the summon surface and its App-event requirement), pr-reviewer-plugin#34 (guard-decision telemetry — the observability posture any new surface should inherit), protoLab#24 (the hand-grounded findings dataset, as a model for how a new surface would be evaluated).