Ab Testing
coreyhaines31/marketingskills
When the user wants to plan, design, or implement an A/B test or experiment, or build a growth experimentation program.
The standard way to run a listening test in HOT-Step - a local HTML score sheet next to the renders where Rob plays each track, scores it 1-5 on named criteria, and the page charts the two score…
$ npx skills add scragnog/HOT-Step-CPP --skill ear-test-scoresheet -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install scragnog/HOT-Step-CPP ear-test-scoresheet --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/scragnog/HOT-Step-CPP.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/ear-test-scoresheet .claude/skills/ear-test-scoresheet && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "ear-test-scoresheet" agent skill from https://github.com/scragnog/HOT-Step-CPP/tree/master/.claude/skills/ear-test-scoresheet into .claude/skills/ear-test-scoresheet/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ear-test-scoresheet", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/scragnog/HOT-Step-CPP/tree/master/.claude/skills/ear-test-scoresheetType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add scragnog/HOT-Step-CPP --skill ear-test-scoresheet -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install scragnog/HOT-Step-CPP ear-test-scoresheet --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/scragnog/HOT-Step-CPP.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/ear-test-scoresheet .agents/skills/ear-test-scoresheet && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "ear-test-scoresheet" agent skill from https://github.com/scragnog/HOT-Step-CPP/tree/master/.claude/skills/ear-test-scoresheet into .agents/skills/ear-test-scoresheet/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ear-test-scoresheet", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add scragnog/HOT-Step-CPP --skill ear-test-scoresheet -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install scragnog/HOT-Step-CPP ear-test-scoresheet --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/scragnog/HOT-Step-CPP.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/ear-test-scoresheet .cursor/skills/ear-test-scoresheet && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "ear-test-scoresheet" agent skill from https://github.com/scragnog/HOT-Step-CPP/tree/master/.claude/skills/ear-test-scoresheet into .cursor/skills/ear-test-scoresheet/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ear-test-scoresheet", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/scragnog/HOT-Step-CPP.git --path .claude/skills/ear-test-scoresheet--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add scragnog/HOT-Step-CPP --skill ear-test-scoresheet -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install scragnog/HOT-Step-CPP ear-test-scoresheet --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/scragnog/HOT-Step-CPP.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/ear-test-scoresheet .gemini/skills/ear-test-scoresheet && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "ear-test-scoresheet" agent skill from https://github.com/scragnog/HOT-Step-CPP/tree/master/.claude/skills/ear-test-scoresheet into .gemini/skills/ear-test-scoresheet/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ear-test-scoresheet", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install scragnog/HOT-Step-CPP ear-test-scoresheetInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add scragnog/HOT-Step-CPP --skill ear-test-scoresheet -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/scragnog/HOT-Step-CPP.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/ear-test-scoresheet .github/skills/ear-test-scoresheet && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "ear-test-scoresheet" agent skill from https://github.com/scragnog/HOT-Step-CPP/tree/master/.claude/skills/ear-test-scoresheet into .github/skills/ear-test-scoresheet/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ear-test-scoresheet", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add scragnog/HOT-Step-CPP --skill ear-test-scoresheet -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install scragnog/HOT-Step-CPP ear-test-scoresheet --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/scragnog/HOT-Step-CPP.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/ear-test-scoresheet .opencode/skills/ear-test-scoresheet && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "ear-test-scoresheet" agent skill from https://github.com/scragnog/HOT-Step-CPP/tree/master/.claude/skills/ear-test-scoresheet into .opencode/skills/ear-test-scoresheet/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ear-test-scoresheet", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
ear-test-scoresheetThe standard way to run a listening test in HOT-Step - a local HTML score sheet next to the renders where Rob plays each track, scores it 1-5 on named criteria, and the page charts the two score…
Ear Test Scoresheet is an agent skill from scragnog/HOT-Step-CPP. The standard way to run a listening test in HOT-Step - a local HTML score sheet next to the renders where Rob plays each track, scores it 1-5 on named criteria, and the page charts the two score groups by rung so the point where likeness and quality cross is visible. Use whenever renders need judging by ear - checkpoint ladders, recipe A/B tests, sampler or quant comparisons - and whenever you are about to ask Rob to "listen to these files and tell me".
Its SKILL.md is about 1.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files.
It sits in Marketing & SEO, covering A/B testing. The repository describes itself as: Turn dials. Summon bangers! NOW WITH MORE C++! Local AI music generation powered by GGML. The licence is MIT.
4 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit eeeded6. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships script files (JavaScript), which the agent can run.
Shell commands in SKILL.md call:
nodeFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Ear Test Scoresheet loads about 1.9k tokens when it runs. Until then it costs about 119 tokens; SKILL.md has 839 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from scragnog/HOT-Step-CPP at commit eeeded6, republished under its MIT licence (© scragnog). 839 words, ~1,914 tokens.
.claude/skills/ear-test-scoresheet/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.Rob's verdict (2026-09-23): "the best way so far we've had to score tests like this". Use it instead of asking for free-text impressions of a folder of WAVs.
What it gives you:
scores.json beside the page, which is how you read them.Files in this folder:
template.html — the page (local file; the default).make-scoresheet.mjs — writes index.html from a study.json.template-artifact.html — the claude.ai-hosted variant, only for when Rob
can't open files on this machine (see the end).Put renders under _experiments/_LISTENING/<date>-<study>/ (the listening-hub
convention), e.g. round1/<group>/NN-<label>.wav. The page lives at the top
of that folder and refers to tracks by relative path.
{
"id": "yue2-decoder-long-2026-09-23",
"title": "YuE2 Decoder Ladder",
"intro": "Play each render, score it 1–5 on each criterion. Scores save as you go.",
"criteria": [
{"key": "voice", "name": "Voice", "desc": "the singer sounds like the artist", "series": "likeness"},
{"key": "writing", "name": "Songwriting", "desc": "melodies, hooks and structure feel like theirs", "series": "likeness"},
{"key": "sound", "name": "Sound", "desc": "guitar, drum and production tone match the album", "series": "likeness"},
{"key": "diction", "name": "Diction", "desc": "every word intelligible, nothing garbled", "series": "quality"},
{"key": "audio", "name": "Audio", "desc": "clean: no hiss, phasing, crackle or clipping", "series": "quality"},
{"key": "coherence", "name": "Coherence", "desc": "holds together, no loops, ends properly", "series": "quality"}
],
"series": {"likeness": {"name": "Likeness", "color": "var(--accent)"},
"quality": {"name": "Quality", "color": "var(--warn)"}},
"roundNames": {"1": "Round 1 · decoder sweep"},
"axis": {"1": "Decoder step"},
"pickLabel": "Last good rung",
"tracks": [
{"id": "r1-rbf-01", "round": 1, "group": "rbf_whyrockhard", "order": 1,
"label": "Base", "sublabel": "no adapter", "reference": true, "file": "round1/rbf_whyrockhard/01-base.wav"},
{"id": "r1-rbf-02", "round": 1, "group": "rbf_whyrockhard", "order": 2,
"label": "Decoder 300", "sublabel": "planner frozen at 240", "x": 300, "file": "round1/rbf_whyrockhard/02-nar300.wav"}
]
}node .claude/skills/ear-test-scoresheet/make-scoresheet.mjs <study-folder>/study.jsongroup becomes a tab; x is the chart position; order sorts rows.reference: true marks a control (base model, no adapter): scorable, but
off the chart and out of the picker. Always include one; it anchors the scale.Give him the path to index.html. On first use he clicks Save scores to a
file… and saves scores.json next to the page. After that every change
writes to it; the browser remembers the file and asks once per session to
reconnect. Scores are also kept in the browser either way. Browsers without
file saving (Firefox) get Export scores instead: he exports and drops
scores.json in the folder.
scores.json: {scores: {<track id>: {<criterion>: 1-5, verdict?, note?}}, picks: {"r<round>-<group>": {lastGood, note}}}.
Scores alone are enough. On the first study Rob skipped verdicts and picks and the criteria still answered the question. Average each series per rung, lay the groups side by side, and read the trend, not single rungs.
/api/generate gave different songs of different lengths.
Every rung is a fresh take, so plan two renders per rung when a decision
rests on it.server/scripts/yue2-ladder.mjs <config.json> renders planner (AR) and decoder
(NAR) checkpoints from different steps through the app's own generate path,
scores diction with /yue2/align, writes numbered WAVs plus results.jsonl,
and restores the user's adapter picks at the end. It skips WAVs that already
exist, so re-running after a failure only fills the gaps. Config:
{runDir, outDir, caption, lyrics, seed, pairs: [[arStep, narStep], ...]};
[0, 0] is the base-model reference.
/api/generate needs a bearer token: GET /api/auth/auto returns one.
/api/backends/models does not, so a script can change the picks and then
fail to render. The ladder script handles both.server/src restarts the dev server and kills any running training
batch. Put tools in server/scripts/ (tracked, not watched); tools/yue2-*
is gitignored.generations table in server/data/hotstep.db: caption,
lyrics). The same prompt and seed for every rung of a group.template-artifact.html is the same page published as a claude.ai artifact,
for scoring away from this machine. It keeps rows and scores in the artifact's
database (capabilities: {"db": {}, "assets": {}}; config in a CONFIG block
at the top of its script; rows seeded with ArtifactData into tracks).
Audio must be uploaded: the asset store refuses .wav/.mp3 but takes an
audio-only AAC .mp4 (ffmpeg -i in.wav -vn -codec:a aac -b:a 256k -movflags +faststart out.mp4), then each track gets {url: "/_blob/<id>"} via a pinned
(if_version) ArtifactData batch update. Much more work than the local page.
© scragnog, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 3 other files in .claude/skills/ear-test-scoresheet of scragnog/HOT-Step-CPP.
Open the folder on GitHubat commit eeeded6
Ear Test Scoresheet next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Ear Test Scoresheet this skillscragnog/HOT-Step-CPP | 174 | — | ~1.9k | Automated safety check: Pass | MIT | |
| Ab Testingcoreyhaines31/marketingskills | 54k | 3 repos | ~3.1k | Automated safety check: Pass | MIT | |
| AnalyticsNexus-JPF/note-companion | 870 | 7 repos | ~2.2k | Automated safety check: Pass | MIT | |
| Ad Test Designeraaron-he-zhu/aaron-marketing-skills | 2.9k | 2 repos | ~2.8k | Automated safety check: Pass | Apache-2.0 | |
| Ab Test Analyzeririnabuht12-oss/marketing-skills | 4.1k | — | ~1.4k | Automated safety check: Pass | None | |
| Ab Test Store Listingappeeky/aso-skills | 2.2k | — | ~1.8k | Automated safety check: Pass | MIT |
coreyhaines31/marketingskills
When the user wants to plan, design, or implement an A/B test or experiment, or build a growth experimentation program.
Nexus-JPF/note-companion
When the user wants to set up, improve, or audit analytics tracking and measurement.
aaron-he-zhu/aaron-marketing-skills
A skill your agent uses when the user asks to "design an A/B test", "set up a creative/landing test", "run an incrementality test", or "is this result statistically and practically material?"…
irinabuht12-oss/marketing-skills
Statistical significance calculator for A/B test results with sample size requirements, segment breakdowns, and hypothesis generation.
appeeky/aso-skills
When the user wants to A/B test App Store product page elements to improve conversion rate.
freekmurze/dotfiles
When the user wants to plan, design, or implement an A/B test or experiment.
scragnog/HOT-Step-CPP
Explains where HOT-Step generation time goes (LM/DiT/VAE), how the TensorRT paths activate, how to benchmark from logs, and which knobs trade quality for speed.
scragnog/HOT-Step-CPP
Maps HOT-Step's native MiniMax-Music3 backend — engine port modules, endpoints, server/UI integration, parity/fixture infrastructure, and the hard-won trap list.
scragnog/HOT-Step-CPP
The validated recipe for training MiniMax-Music3 planner-LM style adapters (artist/album clones) with ace-train mm3-lm-train and the Training Studio.
scragnog/HOT-Step-CPP
Runbook for cutting and publishing a HOT-Step CPP release via a v git tag that triggers the multi-platform CI build and drafts a GitHub Release.
scragnog/HOT-Step-CPP
Safely pulls upstream acestep.cpp changes into the HOT-Step engine fork without destroying its integration hooks.
scragnog/HOT-Step-CPP
Diagnoses HOT-Step CPP generation failures, engine crashes, hangs, and startup problems from the logs/ session folders.
Categories
The standard way to run a listening test in HOT-Step - a local HTML score sheet next to the renders where Rob plays each track, scores it 1-5 on named criteria, and the page charts the two score…. Ear Test Scoresheet is an agent skill from scragnog/HOT-Step-CPP. The standard way to run a listening test in HOT-Step - a local HTML score sheet next to the renders where Rob plays each track, scores it 1-5 on named criteria, and the page charts the two score groups by rung so the point where likeness and quality cross is visible.
Ear Test Scoresheet fits situations like: renders need judging by ear - checkpoint ladders; recipe A/B tests; quant comparisons - and whenever you are about to ask Rob to listen to these files and tell me.
Run `npx skills add scragnog/HOT-Step-CPP --skill ear-test-scoresheet -a claude-code`. Or copy the skill folder (.claude/skills/ear-test-scoresheet in scragnog/HOT-Step-CPP) into .claude/skills/ear-test-scoresheet in your project. Claude Code loads it when a task matches its description.
Run `npx skills add scragnog/HOT-Step-CPP --skill ear-test-scoresheet -a codex`. Or copy the skill folder (.claude/skills/ear-test-scoresheet in scragnog/HOT-Step-CPP) into .agents/skills/ear-test-scoresheet in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add scragnog/HOT-Step-CPP --skill ear-test-scoresheet -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/ear-test-scoresheet, .gemini/skills/ear-test-scoresheet, .github/skills/ear-test-scoresheet and .opencode/skills/ear-test-scoresheet in your project.
Going by SKILL.md and its folder, Ear Test Scoresheet needs JavaScript for the scripts in its folder and the command-line tools its instructions call (node). Our summary lists: Node.js.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Ear Test Scoresheet is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.9k tokens (SKILL.md is roughly 7.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Ear Test Scoresheet: Ab Testing (coreyhaines31/marketingskills, 54k stars), Analytics (Nexus-JPF/note-companion, 870 stars), Ad Test Designer (aaron-he-zhu/aaron-marketing-skills, 2.9k stars) and Ab Test Analyzer (irinabuht12-oss/marketing-skills, 4.1k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
scragnog (a GitHub user) maintains it in scragnog/HOT-Step-CPP, which has 174 GitHub stars. The repository holds 18 skills in this directory. The repository was last updated on October 9, 2026.
Source: scragnog/HOT-Step-CPP on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.