feat(slop): issue-side slop triage (#533) - #729
Conversation
Extends anti-slop from PRs to issues — a deterministic, advisory-only maintainer triage signal for clearly low-effort issues. Issues have no gate, so these NEVER block; they just flag issues for the maintainer. - src/signals/slop.ts: buildIssueSlopAssessment with two high-precision, conservative signals — empty_issue_body (empty/whitespace body) and unfilled_issue_template (a body that reduces to nothing after stripping template scaffolding — an opened-but-unfilled template). Mutually exclusive; any real prose -> clean, so a terse-but-real issue stays clean. - processors: the issue webhook path computes issue slop when the repo opted in (slopGateMode != off) and appends the findings to the (maintainer-facing) issue advisory. - MCP: gittensory_check_issue_slop — pure local-metadata (title + body, no repo/auth scope), mirrors gittensory_check_slop_risk; returns slopRisk/band/findings + the issue rubric. Tests: the detector (empty/unfilled/clean/mutual-exclusion + direct guards), the MCP tool, and the webhook wiring (opted-in repo gets the finding, default-off repo does not). 97% coverage held. Closes #533.
|
Note Gittensory Gate skippedPR closed before full evaluation. No late first comment was created.
💰 Earn for open-source contributions like this. Gittensor lets GitHub contributors earn for the work they already do — register to start earning →. Checked by Gittensory, a quiet PR intelligence layer for OSS maintainers. |
|
Superagent didn't find any vulnerabilities or security issues in this PR. |
|
gittensory · advisory review Reviewed 6 changed file(s) — two independent AI reviewers. Suggested action: ✅ Safe to merge — both reviewers found no blocking issues. Reviewer A · Suggestions
Worth double-checking
Reviewer B · Suggestions
Worth double-checking
|
What
Extends the anti-slop pillar from PRs to issues (closes #533) — a deterministic, advisory-only maintainer triage signal for clearly low-effort issues. Issues have no gate, so these never block; they flag issues for the maintainer.
How
src/signals/slop.ts—buildIssueSlopAssessmentwith two high-precision, conservative signals:empty_issue_body— empty/whitespace body.unfilled_issue_template— a body that reduces to nothing after stripping template scaffolding (HTML comments, headings, empty bullets/checkboxes), i.e. an opened-but-unfilled template.processors— the issue webhook path computes issue slop when the repo opted in (slopGateMode != off) and appends the findings to the (maintainer-facing) issue advisory.gittensory_check_issue_slop— pure local-metadata (title + body, no repo/auth scope), mirroringgittensory_check_slop_risk; returns slopRisk / band / findings + the issue rubric. The on-demand surface for a triage agent.Tests
The detector (empty / unfilled / clean / mutual-exclusion + the direct standalone guards), the MCP tool (low-effort vs genuine issue), and the webhook wiring (opted-in repo gets the finding; default-off repo does not). Typecheck + UI lint + OpenAPI clean; 97% coverage held.
Closes #533.