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 language. Its main weakness is the absence of an explicit 'Use when...' clause, which would help Claude more confidently select this skill from a large pool. The domain is distinctive enough to avoid conflicts with other skills.
Suggestions
Add an explicit 'Use when...' clause, e.g., 'Use when the user asks to pick winners, run a raffle, select random entries from a list, or conduct a giveaway drawing.'
| 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 | Clearly answers 'what does this do' (picks random winners from various data sources for giveaways/raffles/contests), but lacks an explicit 'Use when...' clause specifying when Claude should select this skill. The 'when' is only implied by the described functionality. | 2 / 3 |
Trigger Term Quality | Includes strong natural trigger terms users would actually 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 | Highly distinctive niche combining random selection with giveaways/raffles/contests from specific data sources. Unlikely to conflict with general spreadsheet or data processing skills due to the specific use case framing. | 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 reads more like a marketing page or product description than actionable instructions for Claude. It lacks any executable code, concrete implementation details, or specific technical guidance—instead describing desired outputs and listing features. The content is highly redundant with multiple sections covering the same ground, and it explains concepts Claude already understands (what randomness is, why fairness matters).
Suggestions
Replace the mock output example with actual executable Python code showing how to perform cryptographically random selection from a list/CSV/spreadsheet using specific libraries (e.g., `secrets.choice()`, `pandas.read_csv()`).
Consolidate redundant sections: merge 'When to Use' with 'Common Use Cases', merge 'What This Skill Does' with 'Features', and remove the 'Tips' and 'Privacy & Fairness' sections which state things Claude already knows.
Add concrete implementation for Google Sheets access (e.g., specific MCP tool calls or API patterns) rather than just showing 'Accessing Google Sheet...' in a mock output.
Include validation steps: how to handle empty datasets, duplicate entries, malformed input, and how to verify the selection was truly random.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | Extremely verbose with significant redundancy. The 'What This Skill Does' section restates obvious capabilities, 'Common Use Cases' duplicates 'When to Use This Skill', 'Features' repeats information from earlier sections, and 'Tips' and 'Privacy & Fairness' sections state things Claude already knows. The skill could be cut by 60%+ without losing actionable content. | 1 / 3 |
Actionability | No executable code or concrete implementation details. The skill describes what Claude should do conceptually (e.g., 'uses cryptographically random selection') but provides zero actual code for random selection, no specific library usage, no commands to run. The 'example output' is a mock display, not executable guidance. This is a description of desired behavior, not instructions Claude can act on. | 1 / 3 |
Workflow Clarity | The 'Example Workflows' section provides numbered steps for social media giveaway, event raffle, and team assignment scenarios, which gives some sequential structure. However, there are no validation checkpoints, no error handling, and no feedback loops for verifying results or handling edge cases like empty sheets or malformed data. | 2 / 3 |
Progressive Disclosure | Monolithic wall of text with no bundle files or external references. All content is inline in a single long document with many sections that could be consolidated or separated. Multiple sections are redundant ('When to Use', 'Common Use Cases'; 'What This Skill Does', 'Features') creating a disorganized feel. | 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 | |
c911a92
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.