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 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.'

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

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.

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 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.

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.