skills/lab-experiment/SKILL.md
Use this skill whenever the user wants to isolate a piece of code, animation, or 3D experiment into a standalone JOYCO Lab experiment and publish it. Triggers include: "isolate this", "publish this to the lab", "create a lab experiment", "extract this animation/effect/scene", "submit to JOYCO lab", "make this an experiment". Also trigger when the user shows you a self-contained visual effect, animation, 3D scene, canvas sketch, or interactive component and wants to share or showcase it. Even if they don't say "lab" explicitly — if there's isolatable creative/technical code and a desire to share it, use this skill.
npx skillsauth add joyco-studio/skills joyco-labInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Automates the full workflow of extracting a self-contained experiment from any codebase, scaffolding it with the right JOYCO template, installing dependencies, deploying to Vercel, and publishing to the JOYCO Lab registry.
Before starting, confirm these are available in the user's environment:
joyco CLI installed (joyco --version)vercel CLI installed (vercel --version)joyco lab to open PRs)vercel whoami)If any are missing, tell the user and stop — the workflow depends on all of them.
Read the code the user is pointing at. Identify:
| Signals in the code | Template to use |
|---|---|
| three, @react-three/fiber, @react-three/drei, WebGLRenderer, OrbitControls, canvas 3D | 3d |
| gsap, ScrollTrigger, @studio-freight/lenis, framer-motion, CSS keyframes, SVG animation, canvas 2D drawing | motion |
If the experiment mixes both (e.g. GSAP animating a Three.js scene), prefer 3d and note the GSAP dependency.
If genuinely ambiguous, ask the user before proceeding.
Derive a human-readable name from what the experiment does. Rules:
Cool Animation ✅ Magnetic Cursor Trail)Suggest a name and confirm with the user before running any commands.
joyco create --template <template-value> <experiment-name>
Example:
joyco create --template motion "Magnetic Cursor Trail"
This creates a new directory <experiment-name>/ with the template scaffolded inside. cd into it before the next steps.
src/ or app/)src/main.ts, src/index.tsx, or app/page.tsx — check the template)Compare the experiment's imports against what the template already includes.
Check which lockfile the scaffolded template contains and use the matching package manager:
| Lockfile found | Package manager |
|---|---|
| bun.lockb or bun.lock | bun |
| pnpm-lock.yaml | pnpm |
| yarn.lock | yarn |
| package-lock.json | npm |
If multiple lockfiles exist, prefer the first match in the table above. If none exist, default to npm.
For each missing package, install with the detected package manager:
cd <experiment-name> && <pm> install <package>
# e.g. bun add three, pnpm add three, yarn add three, npm install three
Then run the dev server to confirm no import errors:
<pm> run dev
Fix any issues before proceeding. Common ones:
@types/three, etc.)Ask the user if they want to deploy to Vercel now. If they decline, skip to Step 7 — they can deploy later and provide the URL manually when running joyco lab.
If they confirm, run from inside the experiment directory:
vercel --prod
Follow prompts if it's a first-time deploy (link to org, set project name = experiment slug). Copy the production URL — you'll need it for the Lab entry.
Run the publish command and follow the interactive prompts:
joyco lab
The CLI will ask for:
| Field | What to provide |
|---|---|
| Name | Human-readable title (e.g. "Magnetic Cursor Trail") |
| Description | One or two sentences about what it is and what's interesting technically |
| Tags | Comma-separated (e.g. gsap, cursor, magnetic, interaction) — see tag guide below |
| Preview link | The Vercel production URL from Step 6 |
| Preview image | Optional — URL to an OG/screenshot image if one was generated |
The CLI will open a PR in joyco-studio/lab adding the entry to experiments.json. Review the PR URL it outputs and share it with the user.
Use these consistently:
3d, animation, interaction, shader, canvas, scroll, physics, generativethree, gsap, r3f, framer-motion, lenis, matter-jstypography, cursor, particles, geometry, noise, fluidPick 3–6 tags. Don't over-tag.
Tell the user:
Experiment uses a private/internal package: Stop and tell the user. Either the dependency needs to be made public, inlined, or replaced before the experiment can be a standalone public repo.
Experiment requires a backend/API: Scope it down to the frontend-only visual part, or ask the user if they want to mock the data. Lab experiments should be fully static/client-side.
User wants to skip Vercel deploy: They can provide a different href to joyco lab — just note that the Hub will render it in an iframe so it must be a publicly accessible URL.
No clear template match: Ask the user. Don't guess if it's truly ambiguous — a wrong template wastes setup time.
development
Maintainer-only workflow for handling GitHub Secret Scanning alerts on OpenClaw. Use when Codex needs to triage, redact, clean up, and resolve secret leakage found in issue comments, issue bodies, PR comments, or other GitHub content.
development
Maintainer workflow for OpenClaw releases, prereleases, changelog release notes, and publish validation. Use when Codex needs to prepare or verify stable or beta release steps, align version naming, assemble release notes, check release auth requirements, or validate publish-time commands and artifacts.
development
Run, watch, debug, and extend OpenClaw QA testing with qa-lab and qa-channel. Use when Codex needs to execute the repo-backed QA suite, inspect live QA artifacts, debug failing scenarios, add new QA scenarios, or explain the OpenClaw QA workflow. Prefer the live OpenAI lane with regular openai/gpt-5.4 in fast mode; do not use gpt-5.4-pro or gpt-5.4-mini unless the user explicitly overrides that policy.
development
End-to-end Parallels smoke, upgrade, and rerun workflow for OpenClaw across macOS, Windows, and Linux guests. Use when Codex needs to run, rerun, debug, or interpret VM-based install, onboarding, gateway smoke tests, latest-release-to-main upgrade checks, fresh snapshot retests, or optional Discord roundtrip verification under Parallels.