Picks random winners from lists, spreadsheets, or Google Sheets for giveaways, raffles, and contests. Ensures fair, unbiased selection with transparency.
Install with Tessl CLI
npx tessl i github:Lingjie-chen/MT5 --skill raffle-winner-picker72
Does it follow best practices?
If you maintain this skill, you can automatically optimize it using the tessl CLI to improve its score:
npx tessl skill review --optimize ./path/to/skillValidation for skill structure
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 users would naturally use. The main weakness is the absence of an explicit 'Use when...' clause, which limits Claude's ability to know exactly when to select this skill over others. Adding explicit trigger guidance would elevate this to an excellent description.
Suggestions
Add a 'Use when...' clause with trigger phrases like 'Use when the user needs to pick winners, run a raffle, select random entries, or conduct a fair drawing from a list of participants.'
| Dimension | Reasoning | Score |
|---|---|---|
Specificity | Lists multiple specific concrete actions: 'Picks random winners', 'from lists, spreadsheets, or Google Sheets', 'for giveaways, raffles, and contests', and mentions 'fair, unbiased selection with transparency'. | 3 / 3 |
Completeness | Clearly answers 'what does this do' (picks random winners from various sources for contests), but lacks an explicit 'Use when...' clause or equivalent trigger guidance to indicate when Claude should select this skill. | 2 / 3 |
Trigger Term Quality | Excellent coverage of natural terms users would say: 'random winners', 'lists', 'spreadsheets', 'Google Sheets', 'giveaways', 'raffles', 'contests' - all common phrases users would naturally use when needing this functionality. | 3 / 3 |
Distinctiveness Conflict Risk | Very clear niche with distinct triggers - the combination of 'random winners', 'giveaways', 'raffles', and 'contests' creates a unique domain unlikely to conflict with other skills like general spreadsheet processing or data analysis. | 3 / 3 |
Total | 11 / 12 Passed |
Implementation
50%Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
This skill provides a good conceptual overview of raffle winner selection with helpful example prompts and expected outputs. However, it lacks executable code implementations, includes some redundant explanatory content that Claude doesn't need, and misses validation checkpoints for ensuring fair selection. The skill would benefit from being more concise and providing actual implementation details.
Suggestions
Add executable Python code showing how to implement cryptographically secure random selection (e.g., using `secrets.choice()` or `random.SystemRandom()`)
Remove or significantly trim sections like 'What This Skill Does', 'Privacy & Fairness', and 'Common Use Cases' that explain concepts Claude already understands
Add explicit validation steps in workflows, such as verifying entry count before selection and confirming winner eligibility before announcement
Include error handling guidance for common issues like inaccessible Google Sheets or malformed CSV files
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | The skill contains some unnecessary sections like 'What This Skill Does' that explain obvious capabilities, and the 'Privacy & Fairness' section states things Claude would inherently understand. However, the examples and workflows are reasonably efficient. | 2 / 3 |
Actionability | Provides good example prompts and expected outputs, but lacks actual executable code. The skill describes what Claude should do but doesn't provide concrete implementation details like which libraries to use or actual code snippets for random selection. | 2 / 3 |
Workflow Clarity | The example workflows list steps but lack validation checkpoints. For a raffle (where fairness is critical), there's no explicit verification step to confirm the random selection was unbiased or how to handle errors when accessing external data sources. | 2 / 3 |
Progressive Disclosure | Content is reasonably organized with clear sections, but it's somewhat monolithic at ~150 lines. Some content like 'Common Use Cases' and 'Tips' could be trimmed or moved to a separate reference file. No external file references are used. | 2 / 3 |
Total | 8 / 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 | |
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.