Skip to content

feat(slop): issue-side slop triage (#533) - #729

Merged
JSONbored merged 1 commit into
mainfrom
feat/issue-slop-triage
Jun 14, 2026
Merged

feat(slop): issue-side slop triage (#533)#729
JSONbored merged 1 commit into
mainfrom
feat/issue-slop-triage

Conversation

@JSONbored

Copy link
Copy Markdown
Owner

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.tsbuildIssueSlopAssessment with 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.
    • Mutually exclusive; any real prose → clean, so a terse-but-real issue ("Typo on line 12") stays clean. Conservative by design — the bar is "clearly low-effort."
  • 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), mirroring gittensory_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.

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.
@ghost

ghost commented Jun 14, 2026

Copy link
Copy Markdown

Note

Gittensory Gate skipped

PR closed before full evaluation. No late first comment was created.

Signal Result Evidence Action
Gate result ⚠️ Skipped #729 is no longer open. No action.

💰 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.

@ghost ghost added the gittensory:reviewed label Jun 14, 2026
@superagent-security

Copy link
Copy Markdown
Contributor

Superagent didn't find any vulnerabilities or security issues in this PR.

@ghost

ghost commented Jun 14, 2026

Copy link
Copy Markdown

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 · gpt-oss-120b — recommends ✅ merge
The PR introduces issue‑side slop triage: new assessment functions, a public MCP tool, integration into issue advisory processing, and comprehensive tests. The implementation follows existing patterns, respects the public/private boundary, and compiles cleanly.

Suggestions

  • Add a brief comment to the exported constants (ISSUE_SLOP_RUBRIC_MARKDOWN, ISSUE_SLOP_WEIGHTS) for future maintainers.
  • Consider adding a test case where the issue body is undefined to confirm the assessment treats it as empty.
  • Verify that the advisory findings added by buildIssueSlopAssessment are never exposed via any public API endpoint.

Worth double-checking

  • Ensure the new issue‑slop findings remain internal‑only and are not inadvertently rendered in public comment surfaces.
  • Confirm that the added MCP tool respects input size limits and does not introduce performance regressions.

Reviewer B · mistral-small-3.1-24b-instruct — recommends ✅ merge
This PR adds a new feature for issue-side slop triage, introducing signals to identify low-effort issues. The implementation is thorough, with comprehensive tests and clear documentation. The changes are well-integrated into the existing codebase.

Suggestions

  • Consider adding a comment in the buildIssueSlopAssessment function explaining why the emptyBodyFinding check is done before the unfilledTemplateFinding check.
  • Ensure that the ISSUE_SLOP_RUBRIC_MARKDOWN is kept up-to-date if any new signals are added in the future.
  • Add a test case for the edge scenario where the issue body contains only whitespace characters but is not entirely empty (e.g., multiple spaces or tabs).

Worth double-checking

  • Verify that the new signals do not introduce any false positives or negatives in real-world scenarios.
  • Ensure that the checkIssueSlop method handles edge cases where the input is malformed or incomplete.
  • Double-check that the new feature does not inadvertently expose any sensitive information in public comments.

@ghost ghost added the gittensory-review label Jun 14, 2026
@JSONbored
JSONbored merged commit 30526d7 into main Jun 14, 2026
10 checks passed
@JSONbored
JSONbored deleted the feat/issue-slop-triage branch June 14, 2026 16:24
@github-project-automation github-project-automation Bot moved this from Todo to Done in gittensory - v1 roadmap Jun 14, 2026
@github-actions github-actions Bot mentioned this pull request Jun 14, 2026
12 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

No open projects
Status: Done

Development

Successfully merging this pull request may close these issues.

feat(github-app): issue-side slop triage

1 participant