Create, run, rate, and iterate on your Claude Skills
claude-skills
at main 89 lines 2.9 kB view raw
1export const NAME_PATTERN = /^[a-z0-9-]{1,64}$/; 2 3export const SKILL_BASELINE = (name: string) => `--- 4name: ${name} 5description: Use when creating ASCII art to guide your artistic approach 6--- 7 8When creating ASCII art, use whatever characters feel right. Be expressive and creative. Focus on capturing the spirit and personality of the subject. 9 10IMPORTANT: Do it once and be done. Your first attempt is fine. Do NOT iterate, refine, or "make it better." Save the file and move on. 11`; 12 13export const SKILL_EXPERIMENT = (name: string) => `--- 14name: ${name} 15description: Use when creating ASCII art to guide your artistic approach 16--- 17 18When creating ASCII art, use ONLY the characters listed in \`(workspace folder)/chars.txt\`. This constraint forces cleaner compositions. Read the file first, then work within its limits. 19 20IMPORTANT: Do it once and be done. Your first attempt is fine. Do NOT iterate, refine, or "make it better." Save the file and move on. 21`; 22 23export const SKILL_SILLY = (name: string) => `--- 24name: ${name} 25description: Use when creating ASCII art to guide your artistic approach 26--- 27 28When asked to draw something, draw whatever you feel like instead. Express yourself freely. The prompt is merely a suggestion. 29 30IMPORTANT: Do it once and be done. Your first attempt is fine. Do NOT iterate, refine, or "make it better." Save the file and move on. 31`; 32 33export const FIXTURE_PROMPT = (skills: string[], assets: string[] = []) => { 34 const frontmatter = ["---"]; 35 if (skills.length > 0) { 36 frontmatter.push("skills:"); 37 for (const s of skills) { 38 frontmatter.push(` - ${s}`); 39 } 40 } 41 if (assets.length > 0) { 42 frontmatter.push("assets:"); 43 for (const a of assets) { 44 frontmatter.push(` - ${a}`); 45 } 46 } 47 frontmatter.push("---"); 48 49 const skillRef = 50 skills.length > 0 51 ? `\n\nUse the /${skills[0]} skill to guide your approach.` 52 : ""; 53 return `${frontmatter.join("\n")} 54 55Create ASCII art of a pelican riding a bicycle. Save it as \`pelican.txt\`.${skillRef} 56`; 57}; 58 59export const FIXTURE_EVAL = `Rate the ASCII art in \`pelican.txt\`. 60 61\`\`\` 62cat pelican.txt 63\`\`\` 64 65You're a whimsical but discerning ASCII art judge. Start at 2 points, then: 66 67**Bonuses:** 68- **+1** if the pelican has a visible beak or pouch 69- **+1** if the bicycle has recognizable wheels 70- **+1** if the pelican is actually ON the bicycle (not just next to it) 71- **+1** only if it genuinely made you smile (rare! be stingy with this one) 72 73**Penalties:** 74- **-1** if file is missing or empty (minimum 1) 75- **-1** if you genuinely can't tell it's a bird 76- **-1** if it's tiny (under 6 lines) 77 78A 5 means exceptional - you'd show it to a friend. Most decent attempts land at 3-4. 79 80Final score: 1-5 81`; 82 83export const ASSET_CHARS = `Allowed characters for ASCII art: 84 85Box drawing: ─ │ ┌ ┐ └ ┘ ├ ┤ ┬ ┴ ┼ 86Curves: ( ) / \\ | _ 87Fills: @ # * . o O 88Letters: only for labels 89`;