CtrlK
BlogDocsLog inGet started
Tessl Logo

assign-label

Assign GitHub issue labels based on content analysis. Use when: (1) A new issue is created and needs categorization, (2) An issue needs relabeling after content changes, (3) Analyzing issue content to determine appropriate labels. Intelligently preserves template-assigned and user-applied labels while updating skill-assigned labels based on current content.

62

Quality

74%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

—

The risk profile of this skill

Fix and improve this skill with Tessl

tessl review fix ./.claude/skills/assign-label/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

61%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 well-structured, largely actionable skill with a clear process and concrete examples, dragged down by redundancy (the preserve/update rules repeated across four sections) and the absence of a post-apply validation step. Trimming duplication and adding a verification checkpoint plus the apply command would lift it substantially.

Suggestions

State the preserve-template/user-labels and update-skill-labels rules once (e.g., in 'Label Selection Rules') and remove the repetitions in 'Task', 'Label Classification', and 'Notes'.

Add a validation step after applying label changes — e.g., re-fetch the issue's labels to confirm the final state matches the calculated 'Keep/Add/Remove' sets — and provide the executable command for step 7 ('Apply label changes'), such as `gh issue edit $1 --repo $0 --label ...` or the events API call.

Move the three 'Example Scenarios' to a separate reference file (e.g., references/examples.md) or condense them, keeping only one inline to anchor the behavior.

DimensionReasoningScore

Conciseness

The preserve-template/user and update-skill-labels rules are restated in at least four places ("Task", "Label Classification", "Label Selection Rules" 1-3, and "Notes"), creating noticeable redundancy. However, the content is operational rather than explanatory of known concepts, so it is 'mostly efficient but could be tightened' (anchor 3) rather than the heavily padded anchor 2.

3 / 5

Actionability

The `gh api repos/$0/issues/$1/events` command is copy-paste ready, `gh label list` is named, and the report format and scenarios are concrete. Minor gap: step 7 'Apply label changes to the issue' gives no executable command (e.g., `gh issue edit --label` or the API mutation call), fitting anchor 4 rather than fully copy-paste-ready anchor 5.

4 / 5

Workflow Clarity

The 8-step process is clearly sequenced, but this is a mutating batch operation on an external system (removing/adding labels) and there is no validation or verification step after applying changes (e.g., re-fetching labels to confirm the final state). Per the judging guideline, missing validation in batch/destructive workflows caps workflow clarity at 3; the sequence itself is too well-ordered to merit 2.

3 / 5

Progressive Disclosure

No bundle files exist, and the body has clean, well-labeled sections with consistent structure. At ~135 lines (above the 50-line simple-skill exception) the three lengthy example scenarios (~50 lines) sit inline where a separate reference file would fit, so it lands at anchor 4 ('good structure; minor organization gaps') rather than 5.

4 / 5

Total

14

/

20

Passed

Description

87%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: concrete third-person actions, an explicit three-item 'Use when' trigger list, and a well-differentiated niche. The only weaknesses are slight coverage gaps in the action list and a few missing natural trigger synonyms.

DimensionReasoningScore

Specificity

"Assign GitHub issue labels based on content analysis" plus "preserves template-assigned and user-applied labels while updating skill-assigned labels" lists several concrete, third-person actions, but coverage has minor gaps (e.g., no explicit mention of removing stale labels or fetching repository labels as actions). Fits the 'several specific actions; minor gaps' anchor, not the comprehensive anchor at 5.

4 / 5

Completeness

It clearly answers both: what ("Assign GitHub issue labels based on content analysis") and when (an explicit "Use when:" clause with three concrete numbered triggers). This matches the anchor-5 example structure exactly; anchor 4 is ruled out because the triggers are explicit and specific, not merely present.

5 / 5

Trigger Term Quality

Natural phrases like "A new issue is created and needs categorization", "relabeling after content changes", and "issue labels" give good keyword coverage. A few natural variants users might say ("triage", "tag issues") are missing, so it fits anchor 4 rather than the comprehensive synonym coverage of anchor 5.

4 / 5

Distinctiveness Conflict Risk

The description occupies a clear niche (GitHub issue labeling with template/user/skill label distinction) with distinct trigger conditions, giving minimal overlap risk with other skills. Anchor 5 fits; anchor 4's 'minor overlap risk' does not apply since the scope is unambiguously scoped to GitHub issues.

5 / 5

Total

18

/

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
netwrix/docs
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.