CtrlK
BlogDocsLog inGet started
Tessl Logo

github-triage

Read-only GitHub triage for issues AND PRs. 1 item = 1 background task (category: quick). Analyzes all open items and writes evidence-backed reports to /tmp/{datetime}/. Every claim requires a GitHub permalink as proof. NEVER takes any action on GitHub - no comments, no merges, no closes, no labels. Reports only. Triggers: 'triage', 'triage issues', 'triage PRs', 'github triage'.

59

Quality

69%

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 ./.opencode/skills/github-triage/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

46%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.

The body is highly actionable with a clear phase structure, but it is bloated by quadruple-stated safety/evidence rules and ~250 lines of inlined prompt templates, and it ignores its own scripts/gh_fetch.py while re-implementing its pagination inline. The batch workflow also lacks any report-validation or failure-recovery checkpoints, capping workflow clarity.

Suggestions

Replace the ~50 lines of inline pagination bash in Phase 1 with a single call to the already-bundled scripts/gh_fetch.py (which implements the same exhaustive pagination) and reference it explicitly.

Move the six subagent prompt templates into a single references/subagent-prompts.md file (or collapse them to a shared template plus short per-type deltas) and reference it once, eliminating the repeated zero-action and permalink boilerplate.

Add validation to Phase 4: verify each expected {REPORT_DIR}/{issue|pr}-{number}.md exists and contains its required sections before task_update, and define a retry path for failed subagents.

DimensionReasoningScore

Conciseness

The 587-line body repeats the same rules many times: the zero-action policy appears in the <role> block, the 'Zero-Action Policy' section, the 'ABSOLUTE RULES for Subagents', the 'Common Preamble' ('NEVER run gh issue comment, gh issue merge...'), per-prompt footers ('NEVER merge. NEVER comment.'), and again in the Anti-Patterns table; the evidence/permalink rule is likewise restated four times. This is noticeably verbose with substantial duplicated padding, though it never degrades into explaining concepts Claude already knows. Not 1 because the material is operational rather than tutorial filler; not 3 because the repetition is pervasive, not occasional.

2 / 5

Actionability

Guidance is largely concrete and executable: copy-paste bash for setup and paginated fetching, exact task_create/task call signatures, and fully specified per-type report templates ('Verdict: [CONFIRMED_BUG | NOT_A_BUG | ALREADY_FIXED | UNCLEAR]'). Not 5 because the 'task(category="quick", run_in_background=true, ...)' calls are harness-specific pseudocode rather than a real tool interface, and the PR prompts reference fields (mergeable, reviewDecision, statusCheckRollup) never fetched in Phase 1. Not 3 because nearly everything else is copy-paste ready.

4 / 5

Workflow Clarity

Phases 0-5 give a clear sequence, but this batch operation (spawning up to 1000 background subagents) has no validation or error-recovery checkpoints: Phase 4 says only 'Poll background_output() per task... Parse report' with no step to verify each report file exists and is well-formed, no handling of failed or timed-out subagents, and no feedback loop. Per the rubric cap, a batch workflow without validation cannot score above 3. Not 2 because the sequence itself is coherent and well-ordered with explicit per-phase outputs.

3 / 5

Progressive Disclosure

The bundle ships scripts/gh_fetch.py (398 lines, 'Fetches ALL issues and/or PRs... Implements proper pagination') yet it is never referenced anywhere in SKILL.md — instead ~50 lines of inline pagination bash duplicate its function in Phase 1. Additionally, roughly 250 lines of near-identical subagent prompt templates are inlined in the body rather than split into a references/ file. Content that clearly belongs in separate files is inlined, matching anchor 2. Not 3 because this is not a marginal organization issue: an existing bundle file is orphaned while its logic is duplicated inline.

2 / 5

Total

11

/

20

Passed

Description

92%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 strong description: it states concrete capabilities, an explicit safety boundary, output location, and explicit trigger phrases, all in third person. The only minor improvement is broader trigger synonyms.

DimensionReasoningScore

Specificity

The description lists multiple concrete actions with comprehensive coverage: 'Analyzes all open items and writes evidence-backed reports to /tmp/{datetime}/', 'Every claim requires a GitHub permalink as proof', and explicit negative scope ('no comments, no merges, no closes, no labels'). It stays in third person and covers both what it does and what it refuses to do. Not 4 because coverage of capabilities (analysis, reporting, evidence policy, parallel background tasks, output location) is essentially complete with no noticeable gap.

5 / 5

Completeness

Both 'what' ('Analyzes all open items and writes evidence-backed reports') and 'when' ('Triggers: ...') are explicitly and clearly answered with concrete trigger phrases, matching the anchor-5 example. Not 4 because the 'when' is not merely present — it enumerates four explicit trigger strings.

5 / 5

Trigger Term Quality

'Triggers: "triage", "triage issues", "triage PRs", "github triage"' gives good, natural keyword coverage users would actually say. Not 5 because common variations are missing (e.g., 'review open issues', 'issue backlog', 'analyze PRs'); not 3 because the listed triggers are natural phrases rather than jargon.

4 / 5

Distinctiveness Conflict Risk

'Read-only GitHub triage for issues AND PRs' carves out a clear niche with distinct triggers ('triage', 'github triage') and an explicit zero-action boundary, minimizing risk of firing for a generic review or repo-management skill. Not 4 because the combination of read-only policy plus specific trigger terms leaves little overlap risk.

5 / 5

Total

19

/

20

Passed

Validation

87%

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

Validation — 14 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

skill_md_line_count

SKILL.md is long (588 lines); consider splitting into references/ and linking

Warning

relative_links

Relative link issues: 1 missing

Warning

Total

14

/

16

Passed

Repository
code-yeongyu/oh-my-openagent
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.