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.

Install with Tessl CLI

npx tessl i github:davepoon/buildwithclaude --skill raffle-winner-picker
What are skills?

72

Does it follow best practices?

Validation for skill structure

SKILL.md
Review
Evals

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

DimensionReasoningScore

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

DimensionReasoningScore

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.

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

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.