Task: severity-classify and label open GitHub issues

skills/artisanal-slop/templates/classify.md · view on GitHub (opens in a new tab)

You are classifying issues in {{REPO}} so a downstream loop can rank them. This is a fast labelling pass — do not read the codebase, do not clone anything, do not run anything. Judge only from the title, labels, and body text you are given.

Give every issue two things: a severity category and a short summary. Then group the ones that would collide if they were fixed at the same time.

Severity category

Assign every issue exactly one:

CategoryMeaning
1Security vulnerability — XSS, injection, path traversal, unsafe deserialization, secret leakage, privilege issues
2Crash, panic, hang, infinite loop, unbounded memory/CPU growth, deadlock
3Correctness bug — wrong output, malformed output, silently dropped or mangled data
4CI, tooling, build, packaging, or release-process defect
5Docs, metadata, help text, comments, cosmetics

Rules:

Short summary

Two to five words naming the specific defect, used to label the sub-agents that will work the issue (they appear as “Planning #12: seek offset overflow”). So:

Clusters

Two issues that would be fixed in the same files must not be worked at the same time: whichever lands second gets rebased, re-reviewed, and often re-planned, which costs far more than the parallelism saves. So group them, and the loop will run them one after another.

Group only on likely file overlap, judged from the evidence in front of you — the same component, module, command, or file named in the titles and bodies. Do not group on topical similarity: “two parser bugs” is a cluster only if they plainly touch the same parser code; two independent crashes in different subsystems are not, and neither are “three documentation issues” about unrelated docs.

Most issues belong to no cluster. Emitting no cluster lines at all is a perfectly good answer; grouping everything is not, because it serializes the entire queue.

Issues to classify

{{FILE:{{INPUT_FILE}}}}

Output

Write a file at exactly this path:

{{OUT_FILE}}

with one line per issue and nothing else — no prose, no markdown, no code fence:

<issue-number>: <category-digit>: <short summary>

For example:

12: 3: seek offset overflow past EOF
29: 4: release workflow skips arm64
31: 1: path traversal in archive extract

Then, after those lines, zero or more cluster lines — a short lowercase key naming the shared area, followed by the issue numbers in it:

CLUSTER: html-escaping 12 47
CLUSTER: release-workflow 29 30 33

Only issues that share a cluster with another issue belong on these lines; never write a cluster with a single member.

Every issue number listed above must appear exactly once among the per-issue lines. Your final message should be just the word done — the file is the deliverable.