Bug Reproduction Test Generator
ArabelaTso/Skills-4-SE
Automatically generates executable tests that reproduce reported bugs from issue reports and code repositories.
Activate when you see offload.toml in a repo, offload referenced in build targets (justfile, Makefile, scripts), or when you need to run a large test suite in parallel.
$ npx skills add imbue-ai/offload --skill offload -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install imbue-ai/offload offload --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/imbue-ai/offload.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/offload .claude/skills/offload && 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 "offload" agent skill from https://github.com/imbue-ai/offload/tree/main/skills/offload into .claude/skills/offload/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "offload", 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/imbue-ai/offload/tree/main/skills/offloadType 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 imbue-ai/offload --skill offload -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install imbue-ai/offload offload --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/imbue-ai/offload.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/offload .agents/skills/offload && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "offload" agent skill from https://github.com/imbue-ai/offload/tree/main/skills/offload into .agents/skills/offload/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "offload", 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 imbue-ai/offload --skill offload -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install imbue-ai/offload offload --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/imbue-ai/offload.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/offload .cursor/skills/offload && 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 "offload" agent skill from https://github.com/imbue-ai/offload/tree/main/skills/offload into .cursor/skills/offload/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "offload", 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/imbue-ai/offload.git --path skills/offload--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 imbue-ai/offload --skill offload -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install imbue-ai/offload offload --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/imbue-ai/offload.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/offload .gemini/skills/offload && 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 "offload" agent skill from https://github.com/imbue-ai/offload/tree/main/skills/offload into .gemini/skills/offload/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "offload", 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 imbue-ai/offload offloadInstalls 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 imbue-ai/offload --skill offload -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/imbue-ai/offload.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/offload .github/skills/offload && 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 "offload" agent skill from https://github.com/imbue-ai/offload/tree/main/skills/offload into .github/skills/offload/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "offload", 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 imbue-ai/offload --skill offload -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install imbue-ai/offload offload --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/imbue-ai/offload.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/offload .opencode/skills/offload && 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 "offload" agent skill from https://github.com/imbue-ai/offload/tree/main/skills/offload into .opencode/skills/offload/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "offload", 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.
offloadActivate when you see offload.toml in a repo, offload referenced in build targets (justfile, Makefile, scripts), or when you need to run a large test suite in parallel.
Offload is an agent skill from imbue-ai/offload. Activate when you see offload.toml in a repo, offload referenced in build targets (justfile, Makefile, scripts), or when you need to run a large test suite in parallel. Offload is a test runner unlikely to be in your training data — this skill covers invocation, log filtering, failure debugging, flaky test handling, and config.
Its SKILL.md is about 3.1k 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 Testing & QA, covering Failing and flaky tests, Test generation and Debugging. The repository describes itself as: Offload your test computation to ephemeral compute. The licence is MIT.
3 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit d3675da. 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:
cargogitjustmakemodalpipuvFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git, pip and uv, which can reach the network depending on how they are called.
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.
Offload loads about 3.1k tokens when it runs. Until then it costs about 85 tokens; SKILL.md has 1,419 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 imbue-ai/offload at commit d3675da, republished under its MIT licence (© imbue-ai). 1,419 words, ~3,067 tokens.
.claude/skills/offload/SKILL.md (or your agent's skills folder).Offload is a parallel test runner that distributes test execution across sandboxes (local processes or remote Modal environments). This skill covers invoking tests, reading results, and debugging failures.
If the offload binary is not on PATH, install it:
cargo install offloadUse the first approach that applies:
Check Makefile, justfile, Taskfile, package.json scripts, and scripts/ for targets that wrap offload run. Prefer these -- they encode project-specific flags (copy-dirs, env vars, config paths).
# Examples of what to look for:
just test # justfile target
make test-offload # Makefile target
./scripts/offload-tests.sh # shell wrapperoffload run directlyIf no wrapper exists, invoke Offload directly from the project root (where offload.toml lives):
offload run # basic run
offload run --parallel 8 # override parallelism
offload run --copy-dir ".:/app" # copy cwd into sandbox at /app
offload run --env KEY=VALUE # set sandbox env var (repeatable)
offload run --no-cache # force fresh image build
offload run --collect-only # discover tests without running
offload run --show-estimated-cost # show sandbox cost after run
offload run -c path/to/offload.toml # use alternate configIf Offload is not installed or Modal credentials are unavailable, use the project's native test command (e.g. cargo nextest run, pytest).
Use Offload when:
offload.tomlSkip Offload when:
offload.toml exists and the task does not call for setting one up| Code | Meaning |
|---|---|
| 0 | All tests passed |
| 1 | One or more tests failed, or tests were not run |
| 2 | All tests passed, but some were flaky (passed only on retry) |
After a run completes, offload prints a summary:
Test Results:
Total: 128
Passed: 126
Failed: 2
Duration: 6.01s
Estimated cost: $0.0004 (11.1 CPU-seconds)The Estimated cost line appears when --show-estimated-cost is passed to offload run. Use the summary to confirm tests ran and gauge the scope of failures before diving into logs.
Important: If you ran with -c path/to/config.toml, pass the same -c flag to offload logs. Logs are stored in the config's output_dir, so mismatched configs will show stale or missing results.
Always filter offload logs output to avoid flooding your context window. Never run bare offload logs on a large suite. Follow this workflow:
--failures to see all failures at once.offload logs --failures--test or --test-regex to isolate a specific test.offload logs --test "path/to/test.py::test_name" # exact test ID
offload logs --test-regex "test_math" # regex substring matchFilters combine with AND logic:
offload logs --failures --test-regex "database"Each test is separated by a banner showing its ID and status. The test ID format varies by framework:
=== tests/test_math.py::test_div [FAILED] ===
AssertionError: expected 2 got 3
=== trace::tests::test_active_tracer [FAILED] ===
assertion `left == right` failed
left: 2
right: 3If a test fails intermittently, add or adjust a group with retries in offload.toml:
[groups.flaky]
retry_count = 3
filters = "-k test_flaky_name"Run offload validate after editing to check config syntax. A test that fails then passes on retry exits with code 2 (flaky).
| Symptom | Likely cause | Fix |
|---|---|---|
| Tests discovered but "Not Run" | JUnit test IDs do not match discovery IDs | Check test_id_format or conftest JUnit hook |
| "Exec format error" | Local .venv (macOS binaries) copied into Linux sandbox | Add .venv to .dockerignore |
| "Token validation failed" | Modal credentials expired | Run modal token new |
| Slow sandbox creation | Docker image not cached | Pass --no-cache to force a fresh image build |
| All tests fail with import errors | Sandbox missing dependencies | Check Dockerfile and sandbox_init_cmd |
| Tests fail with import errors for generated code after a checkpoint cache hit | Derived artifacts (e.g., generated API clients) not regenerated after thin diff | Add post_patch_cmd to regenerate derived artifacts after patch application |
Offload caches image IDs in git notes (refs/notes/offload-images). Notes are keyed by commit SHA and TOML config path, so multiple configs in the same repo do not collide. Notes are fetched from and pushed to the remote automatically. Pass --no-cache to offload run to skip reading and writing the cache; --no-cache preserves the same build procedure (tree export, base image build, thin diff) -- it only suppresses note interactions.
Offload uses a unified pipeline for image caching. Both modes follow identical steps after resolving the base commit: cache lookup, tree export, base image build, thin diff application, and note write. The only difference is how the base commit is selected.
When no [checkpoint] section is present, Offload uses the latest commit (HEAD) as the base:
When a [checkpoint] section is present, Offload walks git ancestors to find the nearest commit that touched any build_inputs file. That commit is the base instead of HEAD. The rest of the pipeline (cache lookup, tree export, build, thin diff, note write) is the same as latest-commit mode.
Add a [checkpoint] section to offload.toml:
[checkpoint]
build_inputs = [
"Dockerfile",
"requirements.txt",
"pyproject.toml",
]build_inputs lists repo-relative file paths. A commit that modifies any of these files is automatically detected as a checkpoint. The list must be non-empty when the section is present. For merge commits, diffs against all parents are checked.
Enable checkpoint mode for repositories where dependency installation or build steps are expensive (e.g. pip install, uv sync, cargo build). Without checkpoints, the base image is rebuilt from HEAD on every new commit. With checkpoints, only commits that change dependency manifests trigger full rebuilds -- subsequent runs apply a lightweight diff on top of the cached checkpoint image.
The thin diff is a binary patch generated locally by Rust (git diff --binary against a temporary index). The patch is shipped to the sandbox and applied by offload apply-diff, which uses the diffy crate — no git is required in the sandbox image. If git was installed in the Dockerfile solely for thin-diff application, it can now be removed. If the diff is empty, the base image is used directly (zero overhead). Patch paths are relative to sandbox_repo_root. In monorepo setups where tests run from a subdirectory, set sandbox_project_root to override the test working directory. When post_patch_cmd is configured, it runs as an image layer after the patch is applied, regenerating derived artifacts (e.g., generated API clients, frontend bundles). The OFFLOAD_PATCH_FILE env var is set to the patch path when a diff exists, allowing conditional regeneration.
Use offload checkpoint-status to inspect the current checkpoint state:
offload checkpoint-statusExample output (with [checkpoint] section):
HEAD: a1b2c3d4
Base commit: f5e6d7c8 (checkpoint, 3 commits back)
Cached image: im-abc123
Next run mode: thin diff (2 files changed since checkpoint)Example output (without [checkpoint] section, latest-commit mode):
HEAD: a1b2c3d4
Base commit: a1b2c3d4 (latest commit, HEAD)
Cached image: im-abc123
Next run mode: thin diff (uncommitted changes only)This command works in both modes: with a [checkpoint] section it shows checkpoint info, without it shows latest-commit info.
| Symptom | Likely cause | Fix |
|---|---|---|
| Cached image expired | Modal garbage-collected the image | Self-healing: Offload rebuilds automatically on the next run, updates the note, and pushes. One slow run, then cached again for everyone |
offload apply-diff failure inside sandbox | Diff cannot apply (e.g. offload not installed in image, context mismatch) | Ensure the Dockerfile installs offload (or cargo install offload). Offload falls back to a full build with a warning |
| No checkpoint found in last N commits | No recent commit touched any build_inputs file | The ancestor walk has a depth limit; a full build runs instead |
| Thin diff failure (general) | Various causes (binary incompatibility, corrupt patch) | Offload falls back to a full build with a warning. If persistent, run --no-cache to force a clean rebuild |
| Notes not shared across team | Remote does not have the notes ref | Notes are pushed automatically. Verify with git ls-remote origin refs/notes/offload-images |
| Command | Purpose |
|---|---|
offload run | Run tests in parallel |
offload collect | Discover tests without running (supports --format json) |
offload validate | Validate offload.toml and print settings summary |
offload init | Generate a new offload.toml (--provider, --framework) |
offload logs | View per-test results from the most recent run |
offload apply-diff | Apply a git-format binary patch to the filesystem (used internally in sandboxes) |
offload checkpoint-status | Show checkpoint cache status for current HEAD |
Global flags: -c, --config PATH (config file), -v, --verbose (verbose output).
Groups partition tests for different retry policies and filter expressions. At least one group is required. Each group runs its own discovery pass.
[groups.unit]
retry_count = 0
filters = "-m 'not slow'"
[groups.slow]
retry_count = 1
filters = "-m slow"
[groups.flaky]
retry_count = 5
filters = "-k test_flaky"filters is passed to the framework during discovery (pytest args, nextest args, or substituted into {filters} for the default framework).--no-cov to skip coverage tracing during --collect-only -- belong in the framework-level discovery_args, not in filters.retry_count = 0 means no retries. Failed tests that pass on retry are marked flaky (exit code 2).© imbue-ai, 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 skills/offload of imbue-ai/offload.
Open the folder on GitHubat commit d3675da
Offload 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 |
|---|---|---|---|---|---|---|
| Offload this skillimbue-ai/offload | 125 | — | ~3.1k | Automated safety check: Pass | MIT | |
| Bug Reproduction Test GeneratorArabelaTso/Skills-4-SE | 253 | — | ~1.8k | Automated safety check: Pass | Apache-2.0 | |
| Ue Test AuthoringJasonMa0012/MooaToon | 749 | — | ~2.1k | Automated safety check: Notes | Custom licence | |
| Test BlindspotsNeeeophytee/finding-unknowns-skills | 343 | — | ~676 | Automated safety check: Pass | MIT | |
| Swig Testswig/swig | 6.3k | — | ~2.3k | Automated safety check: Pass | Custom licence | |
| Wioworkersio/skills | 180 | — | ~5.8k | Automated safety check: Pass | MIT |
ArabelaTso/Skills-4-SE
Automatically generates executable tests that reproduce reported bugs from issue reports and code repositories.
JasonMa0012/MooaToon
A skill your agent uses when writing or modifying UE automated tests (Automation, CQTest, Functional, Gauntlet, LowLevel) with Rider MCP available.
Neeeophytee/finding-unknowns-skills
Find consequential behavior that a passing test suite does not establish, using focused exploratory checks.
swig/swig
Run SWIG test suite for specific languages. An agent skill from swig/swig.
workersio/skills
Testing workflow skill for finding high-value test candidates, writing focused tests, generating realistic workloads, reviewing test value, and diagnosing test-suite health.
MelbourneDeveloper/dart_node
Fix a bug using test-driven development. An agent skill from MelbourneDeveloper/dart_node.
imbue-ai/offload
Strip AI-codegen cruft from a branch — defensive checks the type system should make unrepresentable, redundant validation, speculative abstraction, no-op wrappers — while preserving load-bearing…
imbue-ai/offload
Run local vs Offload benchmarks for mng and sculptor, then update the Benchmarks section of the Offload README.
imbue-ai/offload
Cut a release of a Rust crate and publish to crates.io, with externally-gated merge and publish steps.
imbue-ai/offload
Onboard a repository to use Offload for parallel test execution on Modal.
Categories
Activate when you see offload.toml in a repo, offload referenced in build targets (justfile, Makefile, scripts), or when you need to run a large test suite in parallel. Offload is an agent skill from imbue-ai/offload.toml in a repo, offload referenced in build targets (justfile, Makefile, scripts), or when you need to run a large test suite in parallel.
Offload fits situations like: tasks that involve Failing and flaky tests; tasks that involve Test generation; tasks that involve Debugging.
Run `npx skills add imbue-ai/offload --skill offload -a claude-code`. Or copy the skill folder (skills/offload in imbue-ai/offload) into .claude/skills/offload in your project. Claude Code loads it when a task matches its description.
Run `npx skills add imbue-ai/offload --skill offload -a codex`. Or copy the skill folder (skills/offload in imbue-ai/offload) into .agents/skills/offload 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 imbue-ai/offload --skill offload -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/offload, .gemini/skills/offload, .github/skills/offload and .opencode/skills/offload in your project.
Going by SKILL.md and its folder, Offload needs the command-line tools its instructions call (cargo, git, just, make, modal and pip). Our summary lists: Python 3; Docker.
SKILL.md contains no URLs. Its commands use git, pip and uv, 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.
Offload is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.1k tokens (SKILL.md is roughly 12k 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 Offload: Bug Reproduction Test Generator (ArabelaTso/Skills-4-SE, 253 stars), Ue Test Authoring (JasonMa0012/MooaToon, 749 stars), Test Blindspots (Neeeophytee/finding-unknowns-skills, 343 stars) and Swig Test (swig/swig, 6.3k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
imbue-ai (a GitHub organization) maintains it in imbue-ai/offload, which has 125 GitHub stars. The repository holds 5 skills in this directory. The repository was last updated on September 25, 2026.
Source: imbue-ai/offload on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.