agentsclimarketplace

Scratch skill creator

Skill yokobond/scratch-coding-skills/dev/scratch-skill-creator

Build a Scratch program from a user prompt using vibe coding, then distill the novel techniques into a new reusable SKILL.md. Use this skill when you want to grow the skills collection with a new pattern discovered during live coding.From its SKILL.md

Install
npx -y skills add yokobond/scratch-coding-skills --skill scratch-skill-creator

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
  • 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

6.1 KB, ~1.5k tokens by cl100k_base, as published. Nobody here has run it

Scratch Skill Creator

This skill guides Claude through a vibe coding session that results in both a working Scratch program and a new, tested skill file.

Phase 1 — Build the Program

1.1 Understand the Prompt

Read the user's description carefully. Identify:

  • The visual or interactive goal (what should appear on screen / what should happen)
  • The Scratch mechanisms likely needed (motion, pen, sound, broadcast, variables, clones, etc.)
  • Any hints about the coding style (simple/complex, single sprite/multi-sprite, custom graphics, etc.)

1.2 Open the Scratch Editor

Use the scratch-project-edit skill to open the editor and connect to the VM:

playwright-cli open --headed https://scratch.mit.edu/projects/editor/

Wait for the editor to load (playwright-cli run-code "async page => await page.waitForTimeout(3000)"), then expose window.vm and define window.updateSprite.

1.3 Implement Iteratively

Build the program in short cycles:

  1. Plan the block structure for one sprite or scene at a time.
  2. Inject blocks via window.updateSprite or playwright-cli run-code.
  3. Run with window.vm.greenFlag().
  4. Observe the result using playwright-cli screenshot or playwright-cli snapshot.
  5. Adjust until the behavior matches the intent.

Vibe coding rule: Don't plan the entire program upfront. Code one piece, see how it feels, then continue. Follow the energy of what's working.

1.4 Note Techniques as You Go

While coding, maintain a running Technique Log (just in your working memory / scratchpad):

Technique Log:
- [opcode X] — what it does, non-obvious inputs
- [pattern Y] — why this ordering matters
- [gotcha Z] — what broke and how you fixed it

Anything that wasn't already obvious from existing skills is worth logging.

1.5 Save the Project to a File

Once the program is working correctly, save the project as an .sb3 file using the scratch-project-file skill. This preserves the working implementation as a reference artifact alongside the new skill.

Save path convention:

skills/<skill-name>/example.sb3

Use the download pattern from scratch-project-file:

playwright-cli run-code "$(cat <<'EOF'
async (page) => {
  const downloadPromise = page.waitForEvent('download', { timeout: 10000 });
  await page.evaluate(async () => {
    const blob = await window.vm.saveProjectSb3();
    const url = URL.createObjectURL(blob);
    const a = document.createElement('a');
    a.href = url;
    a.download = 'example.sb3';
    document.body.appendChild(a);
    a.click();
    document.body.removeChild(a);
    URL.revokeObjectURL(url);
  });
  const download = await downloadPromise;
  await download.saveAs('/absolute/path/to/skills/<skill-name>/example.sb3');
  return 'Project saved';
}
EOF
)"

Why save here? The .sb3 file serves as ground truth for the skill. If the SKILL.md documentation is ever unclear, the tester or a future developer can load this file to see the exact working implementation.


Phase 2 — Distill the Skill

Once the program works, extract the reusable knowledge into a new skill file.

2.1 Choose a Skill Name

Skill name format: scratch-<noun> (e.g., scratch-clone-animation, scratch-variable-hud, scratch-audio-reactive).

2.2 Create the Skill Directory

skills/<skill-name>/SKILL.md

2.3 Write the SKILL.md

Use this template:

---
name: <skill-name>
description: <one sentence — what pattern this is and when to use it>
---

# <Human-readable title>

<One paragraph: the problem this pattern solves and why the naive approach fails>

## The Solution

<Concise explanation of the approach>

## Prerequisites

<Which existing skills this builds on>

## Implementation

### <Step or sub-pattern name>

<Explanation>

\`\`\`javascript
// Concrete code example
\`\`\`

## Tips & Best Practices

### 1. <Tip title>
<Detail>

### 2. <Tip title>
<Detail>

## When to Use This Pattern

- <Condition 1>
- <Condition 2>

## When NOT to Use This Pattern

- <Counter-condition 1>

Quality checklist before saving:

  • The description front-matter is one sentence, specific enough to trigger the skill in context
  • Every non-obvious block opcode or input format is shown with a concrete example
  • Gotchas discovered during coding are documented as Tips
  • "When to Use / When NOT to Use" sections are honest and specific
  • No copy-paste from existing skills — only genuinely new information

2.4 Validate the Skill

Run gh skill publish --dry-run from the repository root to confirm the new skill passes the agentskills.io spec before handing off to the tester.


Phase 3 — Hand Off to Skill Tester

After saving the new SKILL.md, invoke the scratch-skill-tester skill:

"Now test the new skill <skill-name>."

The tester will spawn an autonomous agent and report results. If the agent finds gaps or bugs in the SKILL.md, return to Phase 2 and fix them, then re-test.


Example Session Transcript

User: "Make a Scratch program where clones bounce around and leave colored trails."

Phase 1:
  - Open editor, connect VM
  - Implement: Stage creates 5 clones of Sprite1
  - Each clone picks a random color, moves with pen down
  - Clones bounce off edges using motion_ifonedgebounce
  - Discover: pen color must be set AFTER pen down to take effect per-clone
  - Discover: clone init needs a brief wait before drawing or all clones start at origin

Phase 2:
  - Skill name: scratch-clone-pen-trail
  - Skill directory: skills/scratch-clone-pen-trail/
  - Document: clone initialization order, pen-color-per-clone pattern, edge bounce with pen

Phase 3:
  - Invoke scratch-skill-tester
  - Agent tries to build "fireflies that glow and fade" using the new skill
  - Agent reports: "pen_color input format not shown in SKILL.md"
  - Fix: add pen color input example to Tips section
  - Re-test: pass

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.