Create, run, rate, and iterate on your Claude Skills
claude-skills
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`;