Minimizing Ty Ecosystem Changes
astral-sh/ruff
A skill your agent uses when a user says "minimize this ty ecosystem change", "reproduce this ecosystem result", "investigate a primer difference", "investigate a mypyprimer difference"…
How a CodeTrial change is validated - scripts/test.sh as the credential-free gate, which generated artifacts have to be regenerated before it passes, the checks that need credentials or a browser…
$ npx skills add sysprog21/codetrial --skill codetrial-verify -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install sysprog21/codetrial codetrial-verify --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/sysprog21/codetrial.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/codetrial-verify .claude/skills/codetrial-verify && 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 "codetrial-verify" agent skill from https://github.com/sysprog21/codetrial/tree/main/.claude/skills/codetrial-verify into .claude/skills/codetrial-verify/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "codetrial-verify", 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/sysprog21/codetrial/tree/main/.claude/skills/codetrial-verifyType 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 sysprog21/codetrial --skill codetrial-verify -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install sysprog21/codetrial codetrial-verify --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/sysprog21/codetrial.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/codetrial-verify .agents/skills/codetrial-verify && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "codetrial-verify" agent skill from https://github.com/sysprog21/codetrial/tree/main/.claude/skills/codetrial-verify into .agents/skills/codetrial-verify/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "codetrial-verify", 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 sysprog21/codetrial --skill codetrial-verify -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install sysprog21/codetrial codetrial-verify --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/sysprog21/codetrial.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/codetrial-verify .cursor/skills/codetrial-verify && 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 "codetrial-verify" agent skill from https://github.com/sysprog21/codetrial/tree/main/.claude/skills/codetrial-verify into .cursor/skills/codetrial-verify/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "codetrial-verify", 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/sysprog21/codetrial.git --path .claude/skills/codetrial-verify--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 sysprog21/codetrial --skill codetrial-verify -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install sysprog21/codetrial codetrial-verify --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/sysprog21/codetrial.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/codetrial-verify .gemini/skills/codetrial-verify && 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 "codetrial-verify" agent skill from https://github.com/sysprog21/codetrial/tree/main/.claude/skills/codetrial-verify into .gemini/skills/codetrial-verify/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "codetrial-verify", 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 sysprog21/codetrial codetrial-verifyInstalls 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 sysprog21/codetrial --skill codetrial-verify -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/sysprog21/codetrial.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/codetrial-verify .github/skills/codetrial-verify && 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 "codetrial-verify" agent skill from https://github.com/sysprog21/codetrial/tree/main/.claude/skills/codetrial-verify into .github/skills/codetrial-verify/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "codetrial-verify", 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 sysprog21/codetrial --skill codetrial-verify -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install sysprog21/codetrial codetrial-verify --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/sysprog21/codetrial.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/codetrial-verify .opencode/skills/codetrial-verify && 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 "codetrial-verify" agent skill from https://github.com/sysprog21/codetrial/tree/main/.claude/skills/codetrial-verify into .opencode/skills/codetrial-verify/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "codetrial-verify", 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.
codetrial-verifyHow a CodeTrial change is validated - scripts/test.sh as the credential-free gate, which generated artifacts have to be regenerated before it passes, the checks that need credentials or a browser…
Codetrial Verify is an agent skill from sysprog21/codetrial. How a CodeTrial change is validated - scripts/test.sh as the credential-free gate, which generated artifacts have to be regenerated before it passes, the checks that need credentials or a browser and therefore sit outside it, the browser and mutation lanes, and how to bring the server up for a live look without taking the maintainer's port. Use before calling work done, when a gate fails on drift rather than on a bug, when adding a test, or when a fix needs to be seen working in the app.
Its SKILL.md is about 2.2k 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 Development, covering Linting and formatting. The repository describes itself as: A live technical interview simulator. The licence is MIT.
Read from SKILL.md and the folder at commit 1f1fa37. 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:
makecargopython3noderuffnpmFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use npm, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
GOOGLE_API_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Codetrial Verify loads about 2.2k tokens when it runs. Until then it costs about 127 tokens; SKILL.md has 1,144 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 sysprog21/codetrial at commit 1f1fa37, republished under its MIT licence (© sysprog21). 1,144 words, ~2,210 tokens.
.claude/skills/codetrial-verify/SKILL.md (or your agent's skills folder).One gate needs no credentials and is the thing to run:
./scripts/test.sh # the gate CI's `check` job runs
make check # the same, plus a live Gemini credential checkscripts/test.sh is a list of named gates that all run before it reports, so
one failure does not hide the next; the summary line names every gate that
failed. It covers cargo fmt --check, clippy -D warnings, cargo test, the
Python unittest suites, the Node browser tests, ESLint, ruff check,
shellcheck, the generated-artifact drift checks, the hook suite, cargo-audit
and actionlint.
It is not offline. The fetch-vendor gate downloads missing assets named by a
web/vendor/**/FETCH manifest; it cannot restore committed vendor files.
actionlint publishes itself as a container, so that lane may reach for docker.
Both are checksum-pinned or version-pinned; neither needs a credential.
A lane whose tool is absent skips instead of failing. Skips made directly by
scripts/test.sh appear under its final not checked by this run: summary.
Formatter skips do not: scripts/indent.sh prints them inline while the
indent gate keeps running. Read both the final summary and the formatter
output before claiming coverage; never treat the skip set or its size as fixed.
The drift checks always run. That skipping is why a green local run is weaker
evidence than a green CI run, and so is what this script leaves out: CI also
holds a pull request's own commit messages to the rules, mutation-tests the diff
in its own job, and builds release binaries for three targets.
The indent gate is the one that surprises people. scripts/indent.sh --check
copies the tree, runs the whole formatter chain over the copy, and diffs:
comment reflow with commentflow, then cargo fmt, ruff format and shfmt.
Checking the composition rather than each tool is not a flourish. commentflow
puts a blank line before a comment inside a method chain and cargo fmt takes
it straight back out, so commentflow --check alone can never be satisfied on
Rust. make indent runs the same script with --write, so the fix for a
failure is always that one command. Never pass shfmt a style flag; it reads
.editorconfig. Prettier sits beside the chain rather than in it: it shares no
file with the others, so the check runs it in place with --cache, alongside
the copy. Its file set is in scripts/indent.sh and includes the issue forms,
which ride along to be parsed. Without npm ci it skips with a note.
Several trees are generated, and the gate compares the committed bytes against what the generator would write now. A failure here is not a bug in your change; it means the source moved and the output did not:
python3 scripts/gen-problems.py
python3 scripts/gen-problem-cards.py # the problem cards in web/index.html
node scripts/gen-wire-fixtures.mjs # browser/agent wire fixtures
node scripts/gen-recording-fixtures.mjs
python3 scripts/gen-calibration-fixtures.pyEach takes --check, which is the form the gate runs. Edit problem-bank/,
never the files under web/problems/ or web/judges/. scripts/gen-problems.py --sync-study-plan refuses to write while the plan and problem-bank/ disagree
and names what each side is missing, so port those first.
These exercise live server, external-service, or browser flows and are run on their own when the area they cover is touched:
One command per line: two names on one line runs the first and passes the second as an argument it ignores. The entry requirements are:
scripts/browser-check.sh # Playwright + Chromium; rust/dispatch also need LiveKit and Gemini credentials
scripts/server-check.sh # cargo, node, curl; starts a server unless CODETRIAL_WEB_URL is set
scripts/gemini-check.sh # GOOGLE_API_KEY(S) in the selected CodeTrial config
scripts/parity-check.sh # the credentialed rust browser-check prerequisites
scripts/report-parity-check.sh # the credentialed rust browser-check prerequisites
scripts/visual-parity-check.sh # Playwright + Chromium; no service credentials
scripts/recording-provision-check.sh # gcloud credentials and the CODETRIAL_RECORDING_* values checked at its start
scripts/recording-integration.sh # --help lists per-phase credentials, tools and required --phaseRead the script's validation or usage block before a credentialed run; it is the source of truth for optional modes and the complete environment-variable list.
CI additionally mutation-tests the diff: plan-mutants counts what the change
is worth and mutants runs cargo-mutants over it. A surviving mutant means a
line changed behavior with no test noticing, so the answer is a test, not a
retry.
make hooks installs the fast half of the gate at commit time:
scripts/git-pre-commit.sh runs rustfmt, ESLint, Prettier, ruff and
shellcheck over a checkout of the index, so an unstaged edit neither fails a
commit nor sneaks through one, plus commentflow --check and shfmt -d on
staged shell. It does not build, test or check generated-artifact drift; that
is what the gate is for. scripts/git-commit-msg.sh holds the message to the
rules it prints with --rules, scripts/git-prepare-commit-msg.sh splices the
template above a commit -v scissors line, and scripts/git-pre-push.sh
replays the rules over commits a rebase or an amend rewrote after the fact.
make hooks installs every scripts/git-*.sh, so adding one there installs
itself. CI runs the same list over
a pull request's own commits, so the rules bind someone who never installed the
hooks as well.
The hooks have their own suite. scripts/test-git-hooks.sh builds a scratch
repository, installs the hooks into it and drives every case: the messages that
must be rejected, the template splice above a commit -v scissors line, a
staged file failing while the same edit unstaged does not, and a push carrying a
commit that skipped the hook. It runs as the git-hooks gate, so editing a hook
without running it is caught here.
No test code goes under src/; codetrial-conventions has that rule and the four
things that bite when it is applied carelessly. Which of the two kinds you are
writing follows from what the test needs to see:
pub(crate) item makes it a unit test. It goes under
tests/unit/, mirroring the path under src/, declared from the src/ file
with #[cfg(test)] #[path = "..."] mod tests;.tests/*.rs beside the suites already there.Browser tests go in tests/browser/*.test.js under node --test, Python tests
in tests/test_*.py under scripts/run-python-tests.py, which runs a file's
cases across a thread pool; a suite added there must keep every case owning its
own sandbox, or it races. The golden fixtures in tests/golden/ are the
compatibility contract: a diff there is a claim that the observable output
changed on purpose, and it belongs in the commit body.
A test that passes without running anything is the failure mode this tree has already been bitten by, hence commits like "Prove an empty test run is not a pass". Assert on the count as well as the content when a suite discovers its own cases.
The quieter version is a test that runs and cannot fail: a refusal asserted against a double that was scripted to refuse, or a hash compared against one the test computed with the function under test. The check that separates them is cheap and is the one to run before believing a new test: break the thing it names, watch it fail, put it back.
When a fix needs a live look, build the release binary and start the server yourself, then say it is ready to test. Do not hand over a command to run.
make build
./target/release/codetrial web --web-addr 127.0.0.1:3100Port 3000 is the maintainer's own instance. Never bind, restart or kill it;
pass --web-addr with another port and name that port in the report. Running
from the checkout picks up web/ edits with no environment variable set.
© sysprog21, 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/codetrial-verify of sysprog21/codetrial.
Open the folder on GitHubat commit 1f1fa37
Codetrial Verify 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 |
|---|---|---|---|---|---|---|
| Codetrial Verify this skillsysprog21/codetrial | 150 | — | ~2.2k | Automated safety check: Pass | MIT | |
| Minimizing Ty Ecosystem Changesastral-sh/ruff | 50k | — | ~4.6k | Automated safety check: Pass | MIT | |
| Install Anti-Slop Oxlint Rulesdmmulroy/anti-slop | 5.3k | — | ~2.2k | Automated safety check: Pass | MIT | |
| Babysit PR To Pass CIsgl-project/sglang | 37k | 2 repos | ~3k | Automated safety check: Pass | Apache-2.0 | |
| Rust Best Practicesfarm-fe/farm | 5.6k | 3 repos | ~1.1k | Automated safety check: Pass | MIT | |
| Summarise Ecosystem Resultsastral-sh/ruff | 50k | — | ~2.2k | Automated safety check: Pass | MIT |
astral-sh/ruff
A skill your agent uses when a user says "minimize this ty ecosystem change", "reproduce this ecosystem result", "investigate a primer difference", "investigate a mypyprimer difference"…
dmmulroy/anti-slop
Installs, updates or migrates the vendored anti-slop Oxlint plugin in a repository, keeping local rule changes and the plugin's license and provenance files.
sgl-project/sglang
Start and persistently pursue a goal to babysit an SGLang pull request until selected GitHub Actions workflows pass on the latest PR head.
farm-fe/farm
Guide for writing idiomatic Rust code based on Apollo GraphQL's best practices handbook.
astral-sh/ruff
A skill your agent uses when a user says "summarise ecosystem results", "summarize this ty ecosystem report", "what changed in this ecosystem run?", or asks to summarise or summarize ty ecosystem…
chromedp/chromedp
This skill should be used when the user is writing Go code and needs guidance on Go-specific pedantry: error wrapping with fmt.Errorf and %w, interface design (accept interfaces return structs)…
sysprog21/codetrial
Help CodeTrial contributors turn observations into clear English GitHub issues, small contribution plans, and pull request descriptions, and see them through.
sysprog21/codetrial
The CodeTrial conventions the gate does not settle on its own, several of them enforced by the git hooks instead - the register a comment, a commit message, an issue or PR title and a PR reply are…
sysprog21/codetrial
The CodeTrial browser half and the boundary it talks across - why web/ has no build step, how a file reaches the browser embedded or from disk, the vendored checksum-pinned assets, the data-channel…
Categories
How a CodeTrial change is validated - scripts/test.sh as the credential-free gate, which generated artifacts have to be regenerated before it passes, the checks that need credentials or a browser…. Codetrial Verify is an agent skill from sysprog21/codetrial.sh as the credential-free gate, which generated artifacts have to be regenerated before it passes, the checks that need credentials or a browser and therefore sit outside it, the browser and mutation lanes, and how to bring the server up for a live look without taking the maintainer's port.
Codetrial Verify fits situations like: tasks that involve Linting and formatting.
Run `npx skills add sysprog21/codetrial --skill codetrial-verify -a claude-code`. Or copy the skill folder (.claude/skills/codetrial-verify in sysprog21/codetrial) into .claude/skills/codetrial-verify in your project. Claude Code loads it when a task matches its description.
Run `npx skills add sysprog21/codetrial --skill codetrial-verify -a codex`. Or copy the skill folder (.claude/skills/codetrial-verify in sysprog21/codetrial) into .agents/skills/codetrial-verify 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 sysprog21/codetrial --skill codetrial-verify -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/codetrial-verify, .gemini/skills/codetrial-verify, .github/skills/codetrial-verify and .opencode/skills/codetrial-verify in your project.
Going by SKILL.md and its folder, Codetrial Verify needs the command-line tools its instructions call (make, cargo, python3, node, ruff and npm) and credentials named GOOGLE_API_KEY. Our summary lists: Python 3; Docker; A credential in GOOGLE_API_KEY.
SKILL.md contains no URLs. Its commands use npm, which can reach the network depending on how they are called. 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.
Codetrial Verify is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.2k tokens (SKILL.md is roughly 8.8k 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 Codetrial Verify: Minimizing Ty Ecosystem Changes (astral-sh/ruff, 50k stars), Install Anti-Slop Oxlint Rules (dmmulroy/anti-slop, 5.3k stars), Babysit PR To Pass CI (sgl-project/sglang, 37k stars) and Rust Best Practices (farm-fe/farm, 5.6k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
sysprog21 (a GitHub organization) maintains it in sysprog21/codetrial, which has 150 GitHub stars. The repository holds 4 skills in this directory. The repository was last updated on October 9, 2026.
Source: sysprog21/codetrial on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.