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.

65

1.23x
Quality

47%

Does it follow best practices?

Impact

99%

1.23x

Average score across 3 eval scenarios

SecuritybySnyk

Advisory

Suggest reviewing before use

Optimize this skill with Tessl

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

Quality

Discovery

82%

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

This is a well-crafted description with strong specificity and excellent trigger terms that naturally match user requests. Its main weakness is the lack of an explicit 'Use when...' clause, which would help Claude know precisely when to select this skill. The niche is distinctive and unlikely to cause conflicts with other skills.

Suggestions

Add an explicit 'Use when...' clause, e.g., 'Use when the user asks to pick a random winner, run a raffle, select contest winners, or randomly choose from a list of participants.'

DimensionReasoningScore

Specificity

Lists multiple concrete actions: picking random winners, working with lists/spreadsheets/Google Sheets, handling giveaways/raffles/contests, and ensuring fair/unbiased/transparent selection.

3 / 3

Completeness

The 'what' is clearly stated (picks random winners from various sources for giveaways/raffles/contests), but there is no explicit 'Use when...' clause or equivalent trigger guidance, which caps this at 2 per the rubric.

2 / 3

Trigger Term Quality

Includes strong natural trigger terms users would say: 'random winners', 'giveaways', 'raffles', 'contests', 'lists', 'spreadsheets', 'Google Sheets'. These cover common variations of how users would phrase such requests.

3 / 3

Distinctiveness Conflict Risk

This is a very specific niche — random winner selection for giveaways/raffles/contests — that is unlikely to conflict with other skills. The combination of randomization + contest/giveaway context creates a clear, distinct trigger profile.

3 / 3

Total

11

/

12

Passed

Implementation

12%

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

This skill is primarily a marketing-style description of what a raffle picker should do, rather than actionable instructions for Claude. It lacks any executable code, concrete implementation details, or specific library usage, instead relying on hypothetical prompts and mock outputs. The content is highly verbose with redundant sections (use cases listed three times in different forms) while failing to provide the actual technical guidance Claude would need.

Suggestions

Replace the mock output example with actual executable Python code showing cryptographically secure random selection (e.g., using `secrets.choice()` or `random.SystemRandom()`) from a CSV/list.

Remove redundant sections: merge 'When to Use', 'Common Use Cases', and the feature descriptions into a single concise section, cutting at least 50% of the content.

Add concrete code for reading Google Sheets (via URL export to CSV), parsing CSV/Excel files, and performing weighted selection—these are the core technical tasks Claude needs guidance on.

Add validation steps: verify entry count before selection, check for duplicate entries in source data, and handle common errors like inaccessible URLs or malformed files.

DimensionReasoningScore

Conciseness

Extremely verbose with significant redundancy. The 'What This Skill Does' section, 'Features' section, 'Common Use Cases', 'Tips', and 'Privacy & Fairness' sections all contain information Claude already knows or could infer. The 'When to Use This Skill' and 'Common Use Cases' sections overlap heavily. Much of this is descriptive padding rather than actionable instruction.

1 / 3

Actionability

Despite its length, the skill contains zero executable code or concrete implementation details. There are no actual Python snippets for random selection, no commands to run, no API calls shown. The 'examples' are just hypothetical user prompts and mock output formatting—Claude receives no guidance on HOW to actually perform cryptographically random selection from a spreadsheet.

1 / 3

Workflow Clarity

The 'Example Workflows' section provides reasonable step sequences for social media giveaways, event raffles, and team assignments. However, there are no validation checkpoints (e.g., verifying entry count, checking for duplicate entries in source data, confirming file format) and no error recovery steps for common failure modes like inaccessible Google Sheets or malformed CSVs.

2 / 3

Progressive Disclosure

The content is a monolithic wall of text with no references to external files and no layered structure. Everything is dumped into a single file with many sections that could be condensed or split. There's no bundle to reference, but the content itself doesn't warrant this length and would benefit from significant restructuring.

1 / 3

Total

5

/

12

Passed

Validation

90%

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

Validation10 / 11 Passed

Validation for skill structure

CriteriaDescriptionResult

frontmatter_unknown_keys

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

Warning

Total

10

/

11

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.