Picks random winners from lists, spreadsheets, or Google Sheets for giveaways, raffles, and contests. Ensures fair, unbiased selection with transparency.
65
47%
Does it follow best practices?
Impact
99%
1.23xAverage score across 3 eval scenarios
Advisory
Suggest reviewing before use
Optimize this skill with Tessl
npx tessl skill review --optimize ./plugins/all-skills/skills/raffle-winner-picker/SKILL.mdQuality
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.'
| Dimension | Reasoning | Score |
|---|---|---|
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.
| Dimension | Reasoning | Score |
|---|---|---|
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.
Validation — 10 / 11 Passed
Validation for skill structure
| Criteria | Description | Result |
|---|---|---|
frontmatter_unknown_keys | Unknown frontmatter key(s) found; consider removing or moving to metadata | Warning |
Total | 10 / 11 Passed | |
d065ead
Table of Contents
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.