Gumroad Prod Console
antiwork/gumroad
Execute read-only Ruby/Rails commands against Gumroad's production database for debugging and investigation.
A skill your agent uses when writing or running tests in a Ruby project that uses minitest or test-unit.
$ npx skills add st0012/ruby-skills --skill ruby-test-frameworks -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install st0012/ruby-skills ruby-test-frameworks --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/st0012/ruby-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/ruby-skills/skills/ruby-test-frameworks .claude/skills/ruby-test-frameworks && 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 "ruby-test-frameworks" agent skill from https://github.com/st0012/ruby-skills/tree/master/plugins/ruby-skills/skills/ruby-test-frameworks into .claude/skills/ruby-test-frameworks/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ruby-test-frameworks", 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/st0012/ruby-skills/tree/master/plugins/ruby-skills/skills/ruby-test-frameworksType 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 st0012/ruby-skills --skill ruby-test-frameworks -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install st0012/ruby-skills ruby-test-frameworks --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/st0012/ruby-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/plugins/ruby-skills/skills/ruby-test-frameworks .agents/skills/ruby-test-frameworks && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "ruby-test-frameworks" agent skill from https://github.com/st0012/ruby-skills/tree/master/plugins/ruby-skills/skills/ruby-test-frameworks into .agents/skills/ruby-test-frameworks/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ruby-test-frameworks", 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 st0012/ruby-skills --skill ruby-test-frameworks -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install st0012/ruby-skills ruby-test-frameworks --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/st0012/ruby-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/plugins/ruby-skills/skills/ruby-test-frameworks .cursor/skills/ruby-test-frameworks && 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 "ruby-test-frameworks" agent skill from https://github.com/st0012/ruby-skills/tree/master/plugins/ruby-skills/skills/ruby-test-frameworks into .cursor/skills/ruby-test-frameworks/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ruby-test-frameworks", 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/st0012/ruby-skills.git --path plugins/ruby-skills/skills/ruby-test-frameworks--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 st0012/ruby-skills --skill ruby-test-frameworks -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install st0012/ruby-skills ruby-test-frameworks --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/st0012/ruby-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/plugins/ruby-skills/skills/ruby-test-frameworks .gemini/skills/ruby-test-frameworks && 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 "ruby-test-frameworks" agent skill from https://github.com/st0012/ruby-skills/tree/master/plugins/ruby-skills/skills/ruby-test-frameworks into .gemini/skills/ruby-test-frameworks/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ruby-test-frameworks", 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 st0012/ruby-skills ruby-test-frameworksInstalls 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 st0012/ruby-skills --skill ruby-test-frameworks -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/st0012/ruby-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/plugins/ruby-skills/skills/ruby-test-frameworks .github/skills/ruby-test-frameworks && 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 "ruby-test-frameworks" agent skill from https://github.com/st0012/ruby-skills/tree/master/plugins/ruby-skills/skills/ruby-test-frameworks into .github/skills/ruby-test-frameworks/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ruby-test-frameworks", 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 st0012/ruby-skills --skill ruby-test-frameworks -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install st0012/ruby-skills ruby-test-frameworks --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/st0012/ruby-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/plugins/ruby-skills/skills/ruby-test-frameworks .opencode/skills/ruby-test-frameworks && 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 "ruby-test-frameworks" agent skill from https://github.com/st0012/ruby-skills/tree/master/plugins/ruby-skills/skills/ruby-test-frameworks into .opencode/skills/ruby-test-frameworks/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ruby-test-frameworks", 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.
ruby-test-frameworksA skill your agent uses when writing or running tests in a Ruby project that uses minitest or test-unit.
Ruby Test Frameworks is an agent skill from st0012/ruby-skills. Use when writing or running tests in a Ruby project that uses minitest or test-unit. These frameworks have deceptively similar APIs with critical naming differences that cause NoMethodError at runtime. Consult this before writing assertions, running specific tests, or using setup/teardown lifecycle methods.
Its SKILL.md is about 2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It works with Ruby. The repository describes itself as: Claude Code plugins for Ruby development. The licence is MIT.
Read from SKILL.md and the folder at commit b1ea8b5. 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:
railsFrom 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.
Ruby Test Frameworks loads about 2k tokens when it runs. Until then it costs about 82 tokens; SKILL.md has 739 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 st0012/ruby-skills at commit b1ea8b5, republished under its MIT licence (© st0012). 739 words, ~1,960 tokens.
.claude/skills/ruby-test-frameworks/SKILL.md (or your agent's skills folder).Only covers where minitest and test-unit diverge. If something isn't listed here, it works the same in both.
Using the wrong name causes NoMethodError.
| Concept | minitest | test-unit |
|---|---|---|
| Exception | assert_raises (plural) | assert_raise (singular) |
| Throw | assert_throws (plural) | assert_throw (singular) |
| Collection inclusion | assert_includes (plural) | assert_include (singular) |
| Path exists | assert_path_exists (with s) | assert_path_exist (no s) |
| Negation pattern | refute_* (e.g. refute_nil) | assert_not_* (e.g. assert_not_nil) |
test-unit aliases minitest names (assert_raises, refute_*, etc.), so minitest syntax works in test-unit but not vice versa.
| Method | Purpose |
|---|---|
assert_nothing_raised | Passes if block doesn't raise (also added by Rails on top of minitest) |
assert_true / assert_false | Checks for exactly true or false (not just truthy/falsy) |
assert_boolean | Checks value is true or false |
assert_compare | For <, <=, >, >= comparisons |
assert_raise_with_message | Checks both exception class and message |
assert_raise_message | Checks exception message only (any class) |
assert_raise_kind_of | Checks exception via kind_of? instead of exact class |
assert_const_defined / assert_not_const_defined | Check constant existence |
assert_alias_method | Verify method aliasing |
assert_nothing_thrown | Passes if block doesn't call throw |
assert_block | Passes if block returns truthy |
| Method | Purpose |
|---|---|
assert_pattern / refute_pattern | Ruby 3+ pattern matching (in expressions) |
assert_silent | Passes if block produces no stdout/stderr |
assert_output | Check stdout/stderr content |
capture_io / capture_subprocess_io | Capture output for inspection |
skip_until(y, m, d, msg) | Skip until a date, then fail as reminder |
fail_after(y, m, d, msg) | Pass until a date, then fail as reminder |
assert_equal(nil, value) is a hard failure in minitest 6. Use assert_nil(value) instead. test-unit has no such restriction.
| Operation | minitest | test-unit |
|---|---|---|
| By name (exact) | -n test_method_name | --name test_method_name |
| By name (regex) | -n /pattern/ | --name "/pattern/" |
| By name (rake) | N=/pattern/ rake test | N/A |
| By line number | m test/file.rb:42 or minitest test/file.rb:42 (v6) | --location path.rb:LINE |
| By line (Rails) | bin/rails test test/file.rb:42 | N/A |
| Exclude by name | -e /pattern/ | --ignore-name /pattern/ |
| Exclude by class | N/A | --ignore-testcase /pattern/ |
| Filter by class | N/A (use -n /ClassName#/) | --testcase ClassName |
| Filter by attribute | N/A | --attribute "speed == :slow" |
| Seed | -s SEED or --seed SEED | N/A (use --order random) |
| Stop on failure | N/A | --stop-on-failure |
| Execution order | Random by default | --order alphabetic / random / defined |
| Color | -p (pride) | --color-scheme SCHEME |
minitest 6 renamed -n to -i (--include). -n still works as an alias but is planned for removal.
bin/rails test adds: -b (full backtrace), -f (fail-fast), -d (defer output), --profile [N] (slowest tests).
before_setup (for frameworks like Rails)
setup (for test authors)
after_setup
[TEST]
before_teardown
teardown
after_teardownNo class-level hooks. No cleanup. For before(:all) / after(:all), use the minitest-hooks gem.
startup (class method, once before all tests)
setup (instance, before each test)
[TEST]
cleanup (instance, only if test didn't raise)
teardown (instance, always runs, even if cleanup raised)
shutdown (class method, once after all tests)startup/shutdown have no minitest equivalent. cleanup runs after a passing test but before it's marked as passed — use it for verification like mock expectations. teardown always runs regardless of outcome — use it for resource release.
test-unit also supports registering multiple setup/teardown methods by symbol:
setup :prepare_database, :prepare_cache| Concept | minitest | test-unit |
|---|---|---|
| Skip a test | skip("reason") | omit("reason") or pend("reason") |
| Conditional skip | skip("reason") if condition | omit("reason") if condition or omit_if(condition, "reason") / omit_unless(condition, "reason") |
| Output character | S | O (omit) or P (pend) |
Critical difference: test-unit's pend with a block fails if the block passes. This catches code that was fixed but still marked pending. minitest's skip is always unconditional.
# test-unit: this FAILS if the bug gets fixed
pend("Bug #123") do
assert_equal(42, buggy_method) # if this passes, test fails
end
# minitest: no equivalent behavior
skip("Bug #123") # always skips, no block form| Aspect | minitest | test-unit |
|---|---|---|
| Progress | .FES | .FEOPN (adds Omit, Pending, Notification) |
| Summary | N runs, N assertions, N failures, N errors, N skips | N tests, N assertions, N failures, N errors, N pendings, N omissions, N notifications |
| Throughput | runs/s, assertions/s | tests/s, assertions/s |
These have no minitest equivalent:
data("label", value) method generates parameterized test runspriority :must / :important / :high / :normal / :low / :never with probabilistic execution--attributesub_test_case: Named nested test groups (minitest uses describe blocks in Spec mode)notify: Non-fatal informational messages shown as N in output~/.test-unit.yml for persistent settingsRails uses minitest, not test-unit. But Rails adds aliases and methods that blur the line:
Aliases Rails defines on top of minitest:
| Rails alias | Delegates to | Effect |
|---|---|---|
assert_not_* (12 methods) | refute_* | assert_not_nil, assert_not_equal, etc. all work in Rails |
assert_not | refute | Base negation |
assert_raise (singular) | assert_raises | Both singular and plural work in Rails |
assert_no_match | refute_match |
Methods Rails adds (not in either framework):
| Method | Purpose |
|---|---|
assert_nothing_raised | Passes if block doesn't raise |
assert_difference / assert_no_difference | Check numeric change after block |
assert_changes / assert_no_changes | Check value change after block |
This means in Rails: assert_not_nil, assert_raise, and assert_nothing_raised all work — but they will not work if you move the test to plain minitest outside Rails.
© st0012, 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 plugins/ruby-skills/skills/ruby-test-frameworks of st0012/ruby-skills.
Open the folder on GitHubat commit b1ea8b5
Ruby Test Frameworks 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 |
|---|---|---|---|---|---|---|
| Ruby Test Frameworks this skillst0012/ruby-skills | 125 | — | ~2k | Automated safety check: Pass | MIT | |
| Gumroad Prod Consoleantiwork/gumroad | 9.8k | — | ~2.9k | Automated safety check: Notes | MIT | |
| Fastlane Pull Request Reviewfastlane/fastlane | 42k | — | ~550 | Automated safety check: Pass | MIT | |
| Antipattern Preventiondoorkeeper-gem/doorkeeper | 5.5k | — | ~1.1k | Automated safety check: Pass | MIT | |
| Mutantmbj/mutant | 2.2k | — | ~2k | Automated safety check: Pass | Proprietary | |
| Evaluating Pegslineofflight/frankfurter | 2k | — | ~1.6k | Automated safety check: Pass | MIT |
antiwork/gumroad
Execute read-only Ruby/Rails commands against Gumroad's production database for debugging and investigation.
fastlane/fastlane
Reviews a fastlane pull request against its linked issue and the project guides, separating blocking from non-blocking findings and handling vulnerabilities privately.
doorkeeper-gem/doorkeeper
Avoid common Ruby and Rails antipatterns that degrade maintainability and performance.
mbj/mutant
Run mutant, read mutation reports, fix alive mutations, and verify coverage.
lineofflight/frankfurter
A skill your agent uses when adding, evaluating, or removing an entry in db/seeds/pegs/, when the user mentions a pegged or fixed currency, or when an issue suggests we should "pin" or "lock" a…
swig/swig
Reproduce a GitHub Actions Linux CI failure locally when it does not happen on your machine: a podman/docker image that mirrors the ubuntu-22.04 runner by reusing the real Tools/CI-linux-.sh install…
st0012/ruby-skills
A skill your agent uses when working in a Ruby project - provides authoritative sources for documentation, typing, and tooling
st0012/ruby-skills
Use at session start for Ruby projects (Gemfile, .ruby-version, or .tool-versions present).
Works with
A skill your agent uses when writing or running tests in a Ruby project that uses minitest or test-unit. Ruby Test Frameworks is an agent skill from st0012/ruby-skills. Use when writing or running tests in a Ruby project that uses minitest or test-unit.
Ruby Test Frameworks fits situations like: running tests in a Ruby project that uses minitest.
Run `npx skills add st0012/ruby-skills --skill ruby-test-frameworks -a claude-code`. Or copy the skill folder (plugins/ruby-skills/skills/ruby-test-frameworks in st0012/ruby-skills) into .claude/skills/ruby-test-frameworks in your project. Claude Code loads it when a task matches its description.
Run `npx skills add st0012/ruby-skills --skill ruby-test-frameworks -a codex`. Or copy the skill folder (plugins/ruby-skills/skills/ruby-test-frameworks in st0012/ruby-skills) into .agents/skills/ruby-test-frameworks 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 st0012/ruby-skills --skill ruby-test-frameworks -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/ruby-test-frameworks, .gemini/skills/ruby-test-frameworks, .github/skills/ruby-test-frameworks and .opencode/skills/ruby-test-frameworks in your project.
Going by SKILL.md and its folder, Ruby Test Frameworks needs the command-line tools its instructions call (rails).
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.
Ruby Test Frameworks is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2k tokens (SKILL.md is roughly 7.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 Ruby Test Frameworks: Gumroad Prod Console (antiwork/gumroad, 9.8k stars), Fastlane Pull Request Review (fastlane/fastlane, 42k stars), Antipattern Prevention (doorkeeper-gem/doorkeeper, 5.5k stars) and Mutant (mbj/mutant, 2.2k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
st0012 (a GitHub user) maintains it in st0012/ruby-skills, which has 125 GitHub stars. The repository holds 3 skills in this directory. The repository was last updated on June 13, 2026.
Source: st0012/ruby-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.