CtrlK
BlogDocsLog inGet started
Tessl Logo

raffle-winner-picker

Picks random winners from lists, spreadsheets, or Google Sheets for giveaways, raffles, and contests. Ensures fair, unbiased selection with transparency.

73

1.23x
Quality

60%

Does it follow best practices?

Impact

99%

1.23x

Average score across 3 eval scenarios

SecuritybySnyk

Low

Low-risk findings worth noting

Fix and improve this skill with Tessl

tessl review fix ./plugins/all-skills/skills/raffle-winner-picker/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

60%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 a well-organized, prompt-style skill with concrete usage examples and sequenced workflows, but it relies on Claude filling in the execution details (randomness method, Google Sheets access, seed verification) and duplicates content across several sections. Tightening the redundant sections and specifying the core selection mechanism would substantially improve it.

Suggestions

Consolidate 'When to Use This Skill', 'What This Skill Does', 'Features', and 'Common Use Cases' into one or two sections and drop the 'Inspired by' line — roughly a third of the body is duplicated content.

Add concrete execution guidance for the core mechanism, e.g. an executable snippet using Python's `secrets` module for winner selection and a command or method for reading Google Sheets/CSV/Excel input.

Show how the 'repeatable with seed (for verification)' claim works in practice — a one-line example of seeding and re-verifying a selection, which would also turn implicit workflow validation into an explicit checkpoint.

DimensionReasoningScore

Conciseness

The body is mostly efficient prompt-style content, but it duplicates itself: 'When to Use This Skill' (6 bullets) repeats 'Common Use Cases' (6 more), 'What This Skill Does' overlaps 'Features', and the 'Inspired by: Lenny's use case' line is pure padding. It is tighter than anchor 2 (no over-explanation of concepts Claude knows) but clearly needs consolidation rather than earning a 4.

3 / 5

Actionability

Concrete example invocations and a full expected-output sample are provided, but the actual execution method is missing: nothing on how to access a Google Sheet, how to perform cryptographically random selection, or how to make selection 'repeatable with seed (for verification)'. This matches anchor 3 (some concrete guidance but incomplete, missing key details) rather than the mostly-executable level of 4.

3 / 5

Workflow Clarity

The example workflows (Social Media Giveaway, Event Raffle, Team Assignment) are clearly numbered and include verification steps ('Verify winner details', 'Review assignments') plus eligibility checking in Tips. Validation is implicit rather than an explicit checkpoint, so it sits between anchors 3 and 4, noticeably above the midpoint.

4 / 5

Progressive Disclosure

The single file is well-sectioned with clear headers, one level deep, and no nested, buried, or broken references (no bundle files exist and none are referenced). This matches anchor 4 (good structure, minor organization gaps); the redundant 'Common Use Cases' and 'Features' sections keep it from a 5.

4 / 5

Total

14

/

20

Passed

Description

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

The description communicates a clear niche with decent natural trigger terms, but it lacks an explicit 'Use when...' clause and lists only one truly concrete action. Adding explicit trigger guidance and one or two more specific actions would move it into the top tier.

Suggestions

Append an explicit trigger clause, e.g. 'Use when the user mentions a giveaway, raffle, contest, prize drawing, or asks to pick a winner or randomly select participants.'

Add one or two more concrete actions (e.g. 'picks single or multiple winners without duplicates, with runner-ups and weighted entries') to raise specificity beyond a single action.

Include common user synonyms such as 'sweepstakes', 'prize drawing', or 'random selection' to broaden natural keyword coverage.

DimensionReasoningScore

Specificity

The description names the domain ('random winners from lists, spreadsheets, or Google Sheets') with one concrete action ('Picks random winners'); 'Ensures fair, unbiased selection with transparency' is a quality claim rather than an additional action, so it does not reach the several-distinct-actions level of 4.

3 / 5

Completeness

The 'what' is clear ('Picks random winners from lists, spreadsheets, or Google Sheets') but there is no 'Use when...' clause or equivalent explicit trigger guidance; 'for giveaways, raffles, and contests' only weakly implies when, so completeness is capped at 3 per the judging guidelines.

3 / 5

Trigger Term Quality

Natural keywords like 'giveaways', 'raffles', 'contests', 'winners', 'spreadsheets', and 'Google Sheets' are phrases users would actually say, but common variations such as 'prize drawing', 'sweepstakes', or 'random selection' are missing, falling short of the comprehensive synonym coverage of a 5.

4 / 5

Distinctiveness Conflict Risk

The raffle/giveaway winner-picking niche is mostly distinct with domain-specific triggers, but generic terms ('lists', 'random', 'fair selection') create minor overlap risk with generic random-sampling or data-selection skills, keeping it below the minimal-conflict case of a 5.

4 / 5

Total

14

/

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
davepoon/buildwithclaude
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.