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

Content

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 library/tool guidance, instead describing desired outputs in abstract terms. The content is highly redundant with multiple sections covering the same ground, and 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 random selection using `secrets.choice()` or `random.SystemRandom()`, including CSV/Excel reading with pandas.

Remove redundant sections: merge 'When to Use' and 'Common Use Cases', merge 'What This Skill Does' and 'Features', and eliminate the 'Privacy & Fairness' checklist which states things Claude already knows.

Add concrete validation steps: verify entry count before selection, check for duplicate entries in source data, validate that required columns exist in spreadsheets.

Provide a specific, complete code example for at least one source type (e.g., CSV) that Claude can directly execute, rather than showing prompt templates and mock outputs.

DimensionReasoningScore

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 to a third of its length without losing actionable content.

1 / 3

Actionability

No executable code or concrete implementation details. The skill describes what Claude should do in vague terms ('uses cryptographically random selection') but provides no actual code for random selection, no specific library usage, no commands to run. The 'example output' is a mock-up, not executable guidance. This is a description of desired behavior, not actionable instructions.

1 / 3

Workflow Clarity

The 'Example Workflows' section provides numbered steps for social media giveaways, event raffles, and team assignments, giving a reasonable sequence. However, there are no validation checkpoints (e.g., verifying entry count, confirming no duplicates in source data) and no error recovery steps for common failure modes like inaccessible sheets or malformed CSVs.

2 / 3

Progressive Disclosure

Monolithic wall of text with no references to external files and no bundle files. Content that could be separated (examples, feature details, use cases) is all inline. Multiple sections are redundant ('When to Use', 'Common Use Cases'; 'What This Skill Does', 'Features') creating a bloated single file with poor organization.

1 / 3

Total

5

/

12

Passed

Description

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 cover natural user language around giveaways and random selection. Its main weakness is the absence of an explicit 'Use when...' clause, which caps the completeness score. The niche is clearly defined and unlikely to conflict 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.'

DimensionReasoningScore

Specificity

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

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. Unlikely to conflict with general spreadsheet or data processing skills due to the specific use case of winner selection.

3 / 3

Total

11

/

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.