Detect cross-author issue reposts as spam - #14285
Draft
williammartin wants to merge 1 commit into
Draft
Conversation
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 01f95841-8600-480f-a657-1c25b43dbb9f
Contributor
There was a problem hiding this comment.
Copilot review overview
Review tier: Balanced
Findings: 1
New issues introduced by this change (1)
| Severity | Finding |
|---|---|
.github/workflows/shared/spam-criteria.md — 🛑 Requirement: Cover both non-spam exception branches in the evaluator This criterion requires… |
What changed in this PR
Updates issue triage to detect cross-author reposts like #14284 as spam while preserving contextual quotations.
Changes:
- Adds cross-author repost spam criteria.
- Adds a regression evaluator fixture.
- Regenerates workflow metadata.
| File | Description |
|---|---|
.github/workflows/shared/spam-criteria.md |
Defines the new spam rule and exceptions. |
.github/workflows/scripts/spam-detection/eval-prompts.yml |
Tests the detected spam case. |
.github/workflows/issue-triage.lock.yml |
Updates the generated body hash. |
💡 Configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Comment on lines
+61
to
+65
| "_Originally posted by @..._" attribution to an account other than the current | ||
| issue author, when the current author adds no original context outside the | ||
| copied material. Treat this as spam even when the copied material is relevant, | ||
| detailed, or asks a sensible question. Do not apply this criterion when the | ||
| current author adds their own problem statement or explains why the quotation |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Related: #14284
Description
Issue triage treated a copied GitHub Discussion post as a genuine question because the copied content was relevant and detailed. Update the shared spam criteria to classify unattributed-context cross-author reposts as spam when GitHub's original-post attribution names a different account and the current author adds no original context.
The criterion preserves legitimate quotations when the issue author adds their own problem statement or explains the quotation's relevance. A regression fixture based on #14284 covers the missed case.
How did you test this change?
Given the cross-author repost fixture based on #14284, when I ran the spam-detection evaluator filtered to that case, I saw it return the expected spam verdict. I also compiled
issue-triage.mdwith its declared non-strict policy and reviewed the generated lockfile change.Key points
The rule requires both a different attributed author and no added original context. This avoids treating ordinary quotations or issue authors moving their own Discussion content as spam.
Notes for reviewers
Start with
.github/workflows/shared/spam-criteria.md, then review the #14284 regression fixture in.github/workflows/scripts/spam-detection/eval-prompts.yml.Authorship and follow-up
Who wrote this:
Who answers review comments: