Final Review
DanMcInerney/architect-loop
A skill your agent uses for the closing whole-run review in the architect factory — the only model review in the loop: dispatched by the orchestrator, at finish, to one fresh strategist subagent…
Reviews the scripts' user-facing terminal output by running it past subagent reviewers role-playing a first-time user, then reports severity-ranked findings.
$ npx skills add antoinecellerier/speaker-tuning-to-easyeffects --skill user-review -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install antoinecellerier/speaker-tuning-to-easyeffects user-review --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/antoinecellerier/speaker-tuning-to-easyeffects.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/user-review .claude/skills/user-review && 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 "user-review" agent skill from https://github.com/antoinecellerier/speaker-tuning-to-easyeffects/tree/master/.claude/skills/user-review into .claude/skills/user-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "user-review", 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/antoinecellerier/speaker-tuning-to-easyeffects/tree/master/.claude/skills/user-reviewType 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 antoinecellerier/speaker-tuning-to-easyeffects --skill user-review -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install antoinecellerier/speaker-tuning-to-easyeffects user-review --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/antoinecellerier/speaker-tuning-to-easyeffects.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/user-review .agents/skills/user-review && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "user-review" agent skill from https://github.com/antoinecellerier/speaker-tuning-to-easyeffects/tree/master/.claude/skills/user-review into .agents/skills/user-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "user-review", 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 antoinecellerier/speaker-tuning-to-easyeffects --skill user-review -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install antoinecellerier/speaker-tuning-to-easyeffects user-review --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/antoinecellerier/speaker-tuning-to-easyeffects.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/user-review .cursor/skills/user-review && 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 "user-review" agent skill from https://github.com/antoinecellerier/speaker-tuning-to-easyeffects/tree/master/.claude/skills/user-review into .cursor/skills/user-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "user-review", 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/antoinecellerier/speaker-tuning-to-easyeffects.git --path .claude/skills/user-review--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 antoinecellerier/speaker-tuning-to-easyeffects --skill user-review -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install antoinecellerier/speaker-tuning-to-easyeffects user-review --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/antoinecellerier/speaker-tuning-to-easyeffects.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/user-review .gemini/skills/user-review && 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 "user-review" agent skill from https://github.com/antoinecellerier/speaker-tuning-to-easyeffects/tree/master/.claude/skills/user-review into .gemini/skills/user-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "user-review", 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 antoinecellerier/speaker-tuning-to-easyeffects user-reviewInstalls 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 antoinecellerier/speaker-tuning-to-easyeffects --skill user-review -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/antoinecellerier/speaker-tuning-to-easyeffects.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/user-review .github/skills/user-review && 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 "user-review" agent skill from https://github.com/antoinecellerier/speaker-tuning-to-easyeffects/tree/master/.claude/skills/user-review into .github/skills/user-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "user-review", 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 antoinecellerier/speaker-tuning-to-easyeffects --skill user-review -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install antoinecellerier/speaker-tuning-to-easyeffects user-review --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/antoinecellerier/speaker-tuning-to-easyeffects.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/user-review .opencode/skills/user-review && 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 "user-review" agent skill from https://github.com/antoinecellerier/speaker-tuning-to-easyeffects/tree/master/.claude/skills/user-review into .opencode/skills/user-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "user-review", 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.
user-reviewReviews the scripts' user-facing terminal output by running it past subagent reviewers role-playing a first-time user, then reports severity-ranked findings.
User Review is an agent skill from antoinecellerier/speaker-tuning-to-easyeffects. Reviews the scripts' user-facing terminal output by running it past subagent reviewers role-playing a first-time user, then reports severity-ranked findings. Use after changing any message a user reads — end-of-run blocks, warnings, flag menus, asks, phase banners — and whenever the user asks to "review the output", "check how this reads", "run it past a user", or wants to know whether a message is understandable and actionable. The test suite traps structure; this catches copy that is confusing, contradictory…
Its SKILL.md is about 4.3k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Agent Workflows, covering Test generation and Subagents. The repository describes itself as: Convert OEM Dolby Atmos speaker tuning data to EasyEffects presets or PipeWire filter-chains for Linux. The licence is MIT.
4 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 37cf91b. 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.
Shell commands in SKILL.md call:
justpython3From 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.
User Review loads about 4.3k tokens when it runs. Until then it costs about 138 tokens; SKILL.md has 1,621 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 antoinecellerier/speaker-tuning-to-easyeffects at commit 37cf91b, republished under its MIT licence (© antoinecellerier). 1,621 words, ~4,327 tokens.
.claude/skills/user-review/SKILL.md (or your agent's skills folder).The suite pins structure: one sentence per ask, no stray URL, a clean run collapsing to the ask alone. None of that catches a sentence that reads as gibberish, two messages that contradict each other, or an ask nobody can act on. Only a reader who doesn't already know the answer finds those.
Re-run this after fixing. Each round so far has found faults introduced by the previous round's fixes.
One command produces every reviewer file:
tools/user_review_capture.py <corpus-xml>tools/preview_output.py --list prints candidate XMLs. The helper captures
at 80 columns under a pty with script -qec, and redacts the preview harness
framing. When the kernel allows it, the helper runs inside a fake-home
namespace. The repo is then mounted at the persona's clone location and the
XML staged in their home, so paths in the captures read /home/user/….
Reviewers then see an authentic user's world with no path disclosures.
The files, in its --out-dir:
cap_ee_full.txt: one full real run, whose sandboxed writes vanish
with the namespace. Reviewers see the real closing, which is what most
actual users read, so no flag disclosure is needed.cap_pw_full.txt: the wrapper with --no-activate, since a real run
restarts PipeWire. It writes real confs into the fake home and prints
genuine to-finish steps. The one remaining disclosure is the skipped
activation. Its reader chose it to avoid EasyEffects, so findings do not
transfer between entry points.--no-sandbox, it fell back to --dry-run against real paths. Then
disclose both the flag and that paths show the harness machine, under the
§2 exception.slice_ee_tail26.txt: the EE run's last terminal screen, for reviewer A.slice_preview_blocks.txt: per-message coverage. preview_output.py
finds a corpus XML for each finding pattern and prints the resulting
closing block. It drives dolby_to_easyeffects.py only, so nothing but
the wrapper's full run covers the wrapper.slice_doctor_blocks.txt: the same idea for --doctor, from
tools/preview_doctor.py, with one whole report per scenario. What a
diagnostic says is decided by the machine it runs on, and the states worth
reviewing are the ones this laptop can't be in. Scenarios stub the probes
only. The checks, wording, summary and verdict are the shipped ones, so a
new doctor check earns a scenario there rather than a hand-made sample.
tools/preview_doctor.py --list prints the scenarios. These blocks are
captured outside the sandbox on purpose: the fake home has no
EasyEffects install, so a sandboxed report would review "nothing is set up
here" instead of the checks. doctor.tilde and doctor.no_bt_address
redact paths and Bluetooth identifiers on the way out. The blocks still
carry the capture machine's own hardware inventory: DMI product, kernel,
sound cards, attached USB devices. That inventory is the maintainer's, and
it is not what a reviewer is being asked about. It stays in gitignored
localresearch/, so don't paste these blocks anywhere else.<name>.color.txt: each capture with the terminal's colors kept as
⟦color⟧…⟦/⟧ markers, such as ⟦yellow⟧, ⟦faint⟧ or ⟦bold-cyan⟧.
The markers name what the screen shows, never what we mean by it. The
meaning would be comprehension granted (§2), and the color choices
themselves are something reviewers can fault. Reviewers A, C and D read
these, and reviewer B reads plain as the color-blind control. Plain files
are the verbatim-quoting source.meta.txt: which pattern each block came from, and the patterns with no
corpus match. It is orchestrator-only (§2).Two helper options cover a run whose copy depends on more than the XML:
--beside DIR, repeatable, stages a folder, such as a vendor APO package,
next to the XML's package for a run that looks there. Then say in the
PERSONA that they copied the tuning file's whole folder and the vendor
folder next to it. It stages only inside the sandbox; on a fallback
capture, pass an XML that already sits in its real package.--generator-args "…" appends flags to both full runs. They are the
persona's own command, so add them to the python3 … command in the
PERSONA given to reviewers A and B. Leave C's and D's PERSONA as it is,
since their slices run without them.Run the helper once per variant into its own --out-dir, such as a flag off
and then on.
Never hand-write or paraphrase samples. Reviewers must see exactly what a user sees, wrapping included. To capture something the helper doesn't cover:
COLUMNS=80;script -qec "…" /dev/null, because piping reorders
stdout against stderr and a terminal does not;dolby_to_pipewire.py only with --dry-run or --no-activate;--output-dir at scratch only with --no-activate. Under
--dry-run keep the defaults, so the printed paths are the ones a user
sees.Do not read the captures into your own context. The helper's summary is the validity check: exit code, line count and last line per file. If in doubt, tail at most ~30 lines. Read capture lines during triage only, and only the lines a claim is about.
This rule makes the result worth anything, and it is the easiest to break.
Do not name the sections, say which lines print mid-run versus at the end, explain that a bracketed tag is a handle for reports, or define any term the output uses. A user has none of that. Every hint is comprehension granted rather than measured, and it turns a finding into a pass.
If the reviewer has to work out what a [tag] is, that is the finding.
meta.txt exists so you never have to guess which block is which. It
never reaches a reviewer.
Exception: name flags the harness passed that a user would not, such as the
--dry-run forced by the capture, so reviewers don't report those as faults.
Dispatch three reviewers in parallel, one slice each, with the prompts below
verbatim. Fill in absolute paths and <N>, the block count from the
helper's summary or meta.txt. A fourth, reviewer D, joins them for a round
that touched --doctor. Run them at model: sonnet: a less capable reader
is a more faithful proxy for a first-time user, and far cheaper. Revert to
the session model only if finding quality drops. Fixes come later, one at a
time.
Reviewer A gets the last screen before the scrollback. That order is how "the success line scrolled off the top and the last screen looked like a failure" surfaces, which reading top-to-bottom hides. Whether they would scroll at all is itself a finding.
Keep the prompts' list of unknown terms in sync with the jargon the output actually uses. Without that list the model supplies the expertise itself and reports that everything is clear.
Each prompt below starts with PERSONA and ends with FORMAT, verbatim:
PERSONA (EE variant, for reviewers A and C):
ROLE-PLAY. You are NOT a developer on this project. Stay in character, and do
not read any source code. Do not open any file other than the capture file(s)
named below. Do not run any commands other than reading those files.
You own a Linux laptop and wanted better speaker sound. You found
speaker-tuning-to-easyeffects on GitHub, cloned it, and ran
`python3 dolby_to_easyeffects.py` with the path to a tuning file the README
helped you find on your Windows partition (you copied it into your home
folder first). You can use a terminal, copy-paste commands, and file a
GitHub issue. You are NOT an audio engineer. You have never heard of Dolby
DAX3, "the regulator", "volmax", "IEQ", "audio optimizer", "PEQ", "MBC",
"smart amp", or "volume leveler". Any other signal-processing jargon (FIR,
Nyquist, crossover, biquad, high-shelf) is equally unknown to you. You just
want your laptop to sound good.Sandboxed captures need no dry-run note for reviewer A, because the run is real. On a fallback capture, re-add the old disclosure: "--dry-run was forced by our capture tooling; judge the wording, not the flag." Reviewer C always gets the preview-blocks disclosure in its own body below.
COLOR NOTE. Append it to PERSONA for reviewers A, C and D, whose files are
the .color.txt variants:
Color note: your terminal shows colors, and the capture preserves them as
markers — text between ⟦yellow⟧ and ⟦/⟧ is yellow on screen, ⟦faint⟧ text
is dimmed, ⟦bold-cyan⟧ / ⟦bold-magenta⟧ / ⟦bold-red⟧ are bold in that
color, ⟦green⟧ is green, unmarked text is the normal color. Read the screen
the way your eyes would — including whether the colors themselves help you
or steer you wrong; that is fair game for findings. The ⟦…⟧ markers are our
capture notation, not program output: never report them as faults, and
strip them when quoting THE LINE.PERSONA (wrapper variant, for reviewer B): the same, with the second paragraph replaced by:
You own a Linux laptop and wanted better speaker sound. You found
speaker-tuning-to-easyeffects on GitHub, cloned it, and ran
`python3 dolby_to_pipewire.py` with the path to a tuning file the README
helped you find on your Windows partition (you copied it into your home
folder first). You deliberately chose this script
instead of the EasyEffects one because you do NOT want to install EasyEffects
— you just use plain PipeWire like every modern Linux distro ships. You can
use a terminal, copy-paste commands, and file a GitHub issue. You are NOT an
audio engineer. You have never heard of Dolby DAX3, "the regulator",
"volmax", "IEQ", "audio optimizer", "PEQ", "MBC", "smart amp", or "volume
leveler". Any other signal-processing jargon (FIR, Nyquist, crossover,
biquad, high-shelf, filter-chain internals) is equally unknown to you. You
just want your laptop to sound good.
Harness note (do not report this as a fault): the capture passed
--no-activate, so the final PipeWire restart was skipped — judge whether
the skipped-activation wording is clear, not that it was skipped. (On a
fallback capture the flag is --dry-run instead; disclose that.)FORMAT, for all reviewers:
REPORT FORMAT:
First, one line: would you keep using this tool, and would you file the
report it asks for?
Then ONE list of findings, numbered 1..N, worst first, no grouping. For each:
SEVERITY: CRITICAL | HIGH | MEDIUM | LOW
THE LINE: <quoted verbatim>
WHAT'S WRONG: one or two sentences, from your point of view as the user
THE FIX: your rewrite, one sentence
- CRITICAL — misleads, contradicts itself, or asks the impossible
- HIGH — can't act on it, or would act wrongly
- MEDIUM — gets there eventually at a cost, or would skip it
- LOW — wording nit
After the list: at most five bullets on what you expected to be a problem
and isn't.
Be harsh but fair. No praise. Do not propose code changes. Do not invent
filler findings — say so if a severity level is empty.PERSONA (EE), then:
THIS IS A TWO-STEP EXERCISE. Follow the order strictly.
STEP 1 — the screen. Your terminal window shows 26 lines. After the run
finished, this is what is on your screen — everything earlier has scrolled
off the top. Read ONLY this file first:
<abs path>/slice_ee_tail26.color.txt
Answer, in character, before reading anything else:
a) What just happened — did it work?
b) What would you do next, concretely?
c) Would you bother scrolling up? Why or why not?
STEP 2 — the scrollback. Now you scroll up and read the whole run:
<abs path>/cap_ee_full.color.txt
Judge as the user: do you understand it, do you know what to do, would you
bother.then FORMAT, with this line inserted after its first line: "Then your STEP 1 answers (a/b/c) verbatim."
PERSONA (wrapper), then:
Read the whole run top to bottom:
<abs path>/cap_pw_full.txt
Judge as the user: do you understand it, do you know what to do, would you
bother. Pay attention to whether the output ever talks to you as if you were
an EasyEffects user — you are not, you picked this script to avoid that.then FORMAT.
--doctor scenario reportsDispatch it only when the round changed --doctor copy. PERSONA (EE) plus
the COLOR NOTE, then:
Some time after your first run, you ran a second command the README mentions
for when something seems wrong. The file below contains <N> of its reports,
separated by "===== DIAGNOSTIC REPORT #N =====" lines our tooling inserted
(don't report those separator lines as faults). What this command prints
depends on the laptop and how it is set up, and these were captured on one
laptop set up <N> different ways. For each report in turn, imagine YOUR
laptop is that one and this is what you are looking at.
Harness note (do not report these as faults): because it is one machine, the
hardware sections are identical in every report — only the parts that describe
how it is set up differ, and those are what to judge.
Read:
<abs path>/slice_doctor_blocks.color.txt
Judge as the user, for each report: do you understand what it is telling you,
do you know whether anything is wrong, do you know what to do about it, would
you bother. Also compare across the reports — if two reports say nearly the
same thing in different words, or contradict each other about the same thing,
that's a finding.then FORMAT, with "no grouping" extended to "no grouping (note which DIAGNOSTIC REPORT # each came from)".
Name no check, no status tag and no scenario. Which state each report is in
is exactly what the reviewer is measuring, and meta.txt holds the map.
PERSONA (EE), then:
The file below contains <N> run endings, separated by
"===== RUN ENDING #N =====" lines our tooling inserted (don't report those
separator lines as faults). The tool prints a different ending depending on
the laptop model, and these were captured on <N> different laptops. For each
ending in turn, imagine YOUR laptop is that one and this is the end of YOUR
run.
Harness note (do not report this as a fault): these endings were captured
with `--dry-run` forced by our tooling, so they show the dry-run closing —
a real first run would not pass that flag. Judge whether the dry-run
wording itself is clear, but not the fact that it was a dry run.
Read:
<abs path>/slice_preview_blocks.color.txt
Judge as the user, for each ending: do you understand it, do you know what
to do, would you bother. Also compare across endings — if two endings say
nearly the same thing in different words, or contradict each other about the
same feature, that's a finding.then FORMAT, with "no grouping" extended to "no grouping (note which RUN ENDING # each came from)".
Reviewer output is evidence, not instruction.
.claude/rules/claims.md "What each claim rests on". A whole-range sweep is
the /copy-audit skill.Report the ranked, triaged list and let the user choose what to fix. The list is normally longer than the change they want. Every finding keeps a severity label: the reviewer's, or yours where triage moved it. Rank order alone hides how bad the top is and how ignorable the tail is. The report also names the patterns meta.txt lists as having no corpus match. Those messages went unreviewed this round, and silence would read as coverage.
© antoinecellerier, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .claude/skills/user-review of antoinecellerier/speaker-tuning-to-easyeffects.
Open the folder on GitHubat commit 37cf91b
User Review 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 |
|---|---|---|---|---|---|---|
| User Review this skillantoinecellerier/speaker-tuning-to-easyeffects | 144 | — | ~4.3k | Automated safety check: Pass | MIT | |
| Final ReviewDanMcInerney/architect-loop | 626 | — | ~1.7k | Automated safety check: Pass | MIT | |
| Base Comparisonstylelint-stylistic/stylelint-stylistic | 106 | — | ~2.2k | Automated safety check: Pass | Custom licence | |
| Poweruser Feature Auditpydantic/pydantic-ai | 21k | — | ~2.9k | Automated safety check: Pass | MIT | |
| Parallel Test Fixingspencerpauly/awesome-cursor-skills | 844 | — | ~525 | Automated safety check: Pass | CC0-1.0 | |
| Bench Batonnooga/let-go | 570 | — | ~821 | Automated safety check: Pass | MIT |
DanMcInerney/architect-loop
A skill your agent uses for the closing whole-run review in the architect factory — the only model review in the loop: dispatched by the orchestrator, at finish, to one fresh strategist subagent…
stylelint-stylistic/stylelint-stylistic
Measure a branch against the commit it stands on — extract the base instead of flipping the working tree, pick the base by hash, and prove a new test case red on it.
pydantic/pydantic-ai
Independent power-user audit of a big new-feature PR. An agent skill from pydantic/pydantic-ai.
spencerpauly/awesome-cursor-skills
When multiple tests fail, assign each failing test file to a separate subagent that fixes it independently in parallel.
nooga/let-go
Coordinate heavy local workloads across worktrees, processes, and subagents — benchmarks and timing-sensitive gates run exclusively on a quiesced machine, while builds, test suites, regeneration…
yuting0624/antigravity-for-claude-code
Run the Antigravity CLI (Gemini) as a collaborating AI inside Claude Code, with intelligent model routing across the software development lifecycle.
antoinecellerier/speaker-tuning-to-easyeffects
Audits the user-facing terminal copy changed over a git range for factual truth rather than readability, by fanning out reviewers partitioned by evidence source and triaging what survives.
antoinecellerier/speaker-tuning-to-easyeffects
Audits the instruction files (CLAUDE.md, .claude/rules, .claude/skills, tools/measuredax/CLAUDEWINDOWS.md) for accuracy and bloat against .claude/rules/instructions.md, and proposes a concrete edit…
antoinecellerier/speaker-tuning-to-easyeffects
Reviews the user-facing docs — README.md and the user guides under docs/README.md "Using it" — by running them past subagent reviewers role-playing fixed personas: a first-time visitor, a user…
antoinecellerier/speaker-tuning-to-easyeffects
Guides triaging GitHub issues and drafting or posting replies in this repo.
antoinecellerier/speaker-tuning-to-easyeffects
Guides triaging a kernel-sound-watch hit comment on the "Kernel sound-tree watch" issue (40) — the weekly workflow's per-tag report of .github/kernel-watchlist.txt grep hits against a new…
antoinecellerier/speaker-tuning-to-easyeffects
Validates a change to the audio output path against measured on-device ground truth.
Categories
Reviews the scripts' user-facing terminal output by running it past subagent reviewers role-playing a first-time user, then reports severity-ranked findings. User Review is an agent skill from antoinecellerier/speaker-tuning-to-easyeffects. Reviews the scripts' user-facing terminal output by running it past subagent reviewers role-playing a first-time user, then reports severity-ranked findings.
User Review fits situations like: asks to review the output; check how this reads; run it past a user; wants to know whether a message is understandable and actionable.
Run `npx skills add antoinecellerier/speaker-tuning-to-easyeffects --skill user-review -a claude-code`. Or copy the skill folder (.claude/skills/user-review in antoinecellerier/speaker-tuning-to-easyeffects) into .claude/skills/user-review in your project. Claude Code loads it when a task matches its description.
Run `npx skills add antoinecellerier/speaker-tuning-to-easyeffects --skill user-review -a codex`. Or copy the skill folder (.claude/skills/user-review in antoinecellerier/speaker-tuning-to-easyeffects) into .agents/skills/user-review 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 antoinecellerier/speaker-tuning-to-easyeffects --skill user-review -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/user-review, .gemini/skills/user-review, .github/skills/user-review and .opencode/skills/user-review in your project.
Going by SKILL.md and its folder, User Review needs the command-line tools its instructions call (just and python3). Our summary lists: Python 3.
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.
User Review is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.3k tokens (SKILL.md is roughly 17k 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 User Review: Final Review (DanMcInerney/architect-loop, 626 stars), Base Comparison (stylelint-stylistic/stylelint-stylistic, 106 stars), Poweruser Feature Audit (pydantic/pydantic-ai, 21k stars) and Parallel Test Fixing (spencerpauly/awesome-cursor-skills, 844 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
antoinecellerier (a GitHub user) maintains it in antoinecellerier/speaker-tuning-to-easyeffects, which has 144 GitHub stars. The repository holds 7 skills in this directory. The repository was last updated on October 9, 2026.
Source: antoinecellerier/speaker-tuning-to-easyeffects on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.