CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

github-issue-triage

Use this skill when you want to automatically triage GitHub issues — classify type, add labels, route to teams, and draft initial responses.

Quality

74%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Low

Low-risk findings worth noting

Fix and improve this skill with Tessl

tessl review fix ./external/goose-recipes/github-issue-triage/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

68%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

A tight, code-first recipe that is immediately actionable: real classification logic with tool-use, label creation, commenting, and a FastAPI webhook. Its weaknesses are the absence of any validation or error-recovery in a batch automation pipeline (the rubric's hard cap) and small executability defects such as a missing import and a dated model pin.

Suggestions

Add validation checkpoints: verify the classification result is non-empty and has a valid type before labeling or commenting, and verify the GitHub webhook signature (X-Hub-Signature-256) before processing — with an explicit skip/retry path on failure.

Fix executability gaps: add the missing 'import os' to the classifier snippet and show the file layout that ties client, gh, classify_issue, and process_issue together so the code is fully copy-paste ready.

Trim redundancy: drop or shrink the Quick Reference table that repeats the code's own enums, and move the pinned model ID ('claude-opus-4-6') out of the code or into a clearly marked config variable.

DimensionReasoningScore

Conciseness

The body is lean and code-dominated with no explanation of concepts Claude already knows, but contains minor trimmable redundancy: the Overview restates the frontmatter description, the Quick Reference table repeats the enums already evident in the code, and the dated model pin 'claude-opus-4-6' is time-sensitive information not placed in an old-patterns section.

4 / 5

Actionability

The skill provides concrete, near copy-paste-ready code for classification, processing, and the webhook, but has minor executability gaps — the classifier snippet uses os.environ['GITHUB_TOKEN'] without ever importing os, and the two snippets depend on shared module-level state (client, gh) that is never shown being assembled into one file.

4 / 5

Workflow Clarity

The pipeline order (webhook → process_issue → classify → label → respond) is discernible from the sections, but this batch automation over real GitHub issues has no validation or feedback loop: classify_issue silently returns {} on failure and is never checked, comments and labels are posted unconditionally, and the webhook handler performs no payload signature verification. Per the rubric, a batch operation without validation is capped at 3.

3 / 5

Progressive Disclosure

With no bundle files at all, the skill is a single well-organized file with clear section headers and no reference indirection; the content is cohesive for a single-purpose recipe. It exceeds 50 lines and the inlined webhook/deployment section is a plausible candidate for a separate reference, matching the good-structure-with-minor-gaps anchor rather than a clean 5.

4 / 5

Total

15

/

20

Passed

Description

70%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

A solid description with a clear what and an explicit when-clause, grounded in a distinctive GitHub-triage niche. Its main weaknesses are second-person phrasing and trigger coverage that stops at the title task's own vocabulary. Rewriting in third person with enumerated categories and broader trigger phrases would lift it to top marks.

Suggestions

Rewrite in third person, e.g. 'Automatically triages incoming GitHub issues: classifies them as bug/feature/question/docs/security, adds labels, routes to teams, and drafts initial responses' — enumerating the concrete categories also improves specificity.

Add natural trigger variations users would actually say, such as 'Use when the user mentions triaging, labeling, or categorizing GitHub issues, or wants auto-responses to new issues'.

Make the when-clause add distinct trigger conditions beyond restating the title task (e.g., new issues opened, issue backlog, missing labels) rather than only 'when you want to automatically triage GitHub issues'.

DimensionReasoningScore

Specificity

The description lists four concrete actions ('classify type, add labels, route to teams, and draft initial responses') which matches the several-specific-actions anchor, but it is written in second person ('Use this skill when you want to...'), which the judging guidelines penalize by reducing the specificity score by 1; the classification categories and label scheme are also not enumerated.

3 / 5

Completeness

Both the what (classify, label, route, draft responses) and an explicit when ('Use this skill when you want to automatically triage GitHub issues') are present, but the when-clause merely restates the title task rather than adding distinct, concrete trigger conditions, so it falls short of the fully explicit anchor.

4 / 5

Trigger Term Quality

Natural phrases like 'triage GitHub issues', 'add labels', and 'route to teams' are present and would be said by users, but common variations such as 'categorize issues', 'label issues', or 'issue backlog' are missing, matching the good-coverage-with-a-few-gaps anchor.

4 / 5

Distinctiveness Conflict Risk

'GitHub issues' defines a clear niche with distinct triggers (triage, labeling, team routing) and minimal conflict risk, though 'classify type, add labels' slightly overlaps with generic GitHub-automation or labeling skills, matching the mostly-distinct anchor.

4 / 5

Total

15

/

20

Passed

Validation

93%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

frontmatter_unknown_keys

Unknown frontmatter key(s) found; consider removing or moving to metadata

Warning

Total

15

/

16

Passed

Repository

ProwlrBot/prowlr-marketplace

Path

external/goose-recipes/github-issue-triage/SKILL.md

Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.