Merge Dependabot PRs
onyx-dot-app/onyx
Triages and lands a batch of open Dependabot PRs in the Onyx repo, where main is gated exclusively by GitHub's merge queue: approves and enqueues green PRs, closes superseded duplicates, fixes…
Autonomously diagnose a codebase, apply minimal fixes, and rerun tests until they pass or a real blocker is reached.
$ npx skills add flonat/flonat-research --skill test-iterate-loop -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install flonat/flonat-research test-iterate-loop --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/flonat/flonat-research.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/test-iterate-loop .claude/skills/test-iterate-loop && 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 "test-iterate-loop" agent skill from https://github.com/flonat/flonat-research/tree/main/skills/test-iterate-loop into .claude/skills/test-iterate-loop/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "test-iterate-loop", 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/flonat/flonat-research/tree/main/skills/test-iterate-loopType 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 flonat/flonat-research --skill test-iterate-loop -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install flonat/flonat-research test-iterate-loop --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/flonat/flonat-research.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/test-iterate-loop .agents/skills/test-iterate-loop && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "test-iterate-loop" agent skill from https://github.com/flonat/flonat-research/tree/main/skills/test-iterate-loop into .agents/skills/test-iterate-loop/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "test-iterate-loop", 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 flonat/flonat-research --skill test-iterate-loop -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install flonat/flonat-research test-iterate-loop --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/flonat/flonat-research.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/test-iterate-loop .cursor/skills/test-iterate-loop && 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 "test-iterate-loop" agent skill from https://github.com/flonat/flonat-research/tree/main/skills/test-iterate-loop into .cursor/skills/test-iterate-loop/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "test-iterate-loop", 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/flonat/flonat-research.git --path skills/test-iterate-loop--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 flonat/flonat-research --skill test-iterate-loop -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install flonat/flonat-research test-iterate-loop --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/flonat/flonat-research.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/test-iterate-loop .gemini/skills/test-iterate-loop && 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 "test-iterate-loop" agent skill from https://github.com/flonat/flonat-research/tree/main/skills/test-iterate-loop into .gemini/skills/test-iterate-loop/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "test-iterate-loop", 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 flonat/flonat-research test-iterate-loopInstalls 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 flonat/flonat-research --skill test-iterate-loop -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/flonat/flonat-research.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/test-iterate-loop .github/skills/test-iterate-loop && 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 "test-iterate-loop" agent skill from https://github.com/flonat/flonat-research/tree/main/skills/test-iterate-loop into .github/skills/test-iterate-loop/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "test-iterate-loop", 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 flonat/flonat-research --skill test-iterate-loop -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install flonat/flonat-research test-iterate-loop --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/flonat/flonat-research.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/test-iterate-loop .opencode/skills/test-iterate-loop && 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 "test-iterate-loop" agent skill from https://github.com/flonat/flonat-research/tree/main/skills/test-iterate-loop into .opencode/skills/test-iterate-loop/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "test-iterate-loop", 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.
test-iterate-loopAutonomously diagnose a codebase, apply minimal fixes, and rerun tests until they pass or a real blocker is reached.
Test Iterate Loop is an agent skill from flonat/flonat-research. Autonomously diagnose a codebase, apply minimal fixes, and rerun tests until they pass or a real blocker is reached. Use when the user explicitly requests an iterative fix-until-green loop across Python, R, Julia, or HPC workflows.
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. It works with Python. The repository describes itself as: Shareable Claude Code + Codex infrastructure for PhD researchers — skills, agents, hooks, and rules for academic workflows. The licence is MIT.
4 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit da27600. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
ReadWriteEditGlobGrepBash(uv*)Bash(pytest*)Bash(Rscript*)Bash(julia*)Bash(docker*)…and 5 more on the same allowed-tools line.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
gituvnpmmakeFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git, uv and 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 no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Test Iterate Loop loads about 2.2k tokens when it runs. Until then it costs about 62 tokens; SKILL.md has 871 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 flonat/flonat-research at commit da27600, republished under its MIT licence (© flonat). 871 words, ~2,230 tokens.
.claude/skills/test-iterate-loop/SKILL.md (or your agent's skills folder).Autonomous loop: run tests → root-cause failures → apply minimal fix → retry. Bounded by iteration cap and same-error-repeat detector. Never commits — leaves clean working tree + markdown report. Generic across Python (pytest), R (testthat), Julia (Pkg.test), and HPC pipelines (mock-HPC Docker).
git commit, git push, or modify .git/ state. All changes go into the working tree only. The user reviews the final clean tree + report and decides what to commit. Enforced via the standard forbid-list per subagent-write-guard.md if dispatching sub-agents.log/test-iterate/<project>-YYYY-MM-DD-HHMM.md with: hypothesis, fix applied, result.TaskCreate/TaskUpdate for live progress tracking — the user can see what iteration is running and why.computational-experiments or direct work| Invocation | Behaviour |
|---|---|
test-iterate-loop | Auto-detects test runner; iterates up to 10 |
test-iterate-loop --max-iter 5 | Lower iteration cap |
test-iterate-loop --mock-hpc | Run tests inside the mock-HPC Docker container (catches HPC-specific torch/CUDA bugs pre-submission) |
test-iterate-loop --container <image> | Custom Docker image |
test-iterate-loop --no-fix | Run tests once, root-cause failures, stop without applying fixes (diagnostic mode) |
Phase 1 (detect) → which test runner? pytest, testthat, julia, custom?
Phase 2 (initial) → run tests, capture full failure log
Phase 3 (loop) → for each iteration: hypothesis → fix → re-run → log
Phase 4 (terminate) → all-pass | iter-cap | same-error-3x → final reportHeuristics in priority order:
| Signal | Runner |
|---|---|
pyproject.toml with [tool.pytest] or tests/ dir + *.py | uv run pytest --maxfail=1 -x |
package.json with "scripts": {"test": ...} | npm test |
DESCRIPTION (R package) + tests/testthat/ | Rscript -e 'devtools::test()' |
Project.toml (Julia) | julia --project -e 'using Pkg; Pkg.test()' |
Makefile with test: target | make test |
noxfile.py or tox.ini | nox / tox |
Custom runner specified by user (--runner '<cmd>') | use that |
If multiple match, ask the user which.
Run the test command. Capture:
/tmp/test-iterate-<run-id>.logIf exit 0: print "All green ✓" and exit. No iteration needed.
Per iteration:
Hypothesis — read the failure log; identify the root cause. Use the Read tool on the test file + the implementation file to confirm. Write the hypothesis to the iteration log:
Iteration 3 — 2026-05-10 14:23
Hypothesis: pytest fails on test_inventory_split because the function
returns a list when it should return a dict (matches old API).Fix — make the minimal edit to address the hypothesis. Document the file + line range in the iteration log.
Re-run — same test command.
Log result — pass / new failure / same failure:
Memory-bug check — if this iteration's fix added a from <model> import, a .cuda() call, an os.environ[] set, or a version pin (torch==X.Y), flag in the log with [MEMORY-BUG-RISK]. These are the patterns that bit past [HPC cluster] runs.
Final report at log/test-iterate/<project>-YYYY-MM-DD-HHMM.md:
# Test-Iterate Loop — <project>
**Started:** YYYY-MM-DD HH:MM
**Ended:** YYYY-MM-DD HH:MM
**Terminal state:** PASS | STUCK (same error 3x) | EXHAUSTED (hit iter cap)
## Iterations
| # | Hypothesis | Fix | Result |
|---|---|---|---|
| 1 | ... | ... | new failure |
| 2 | ... | ... | new failure |
| 3 | ... | ... | PASS |
## Final test output
<paste of last test run>
```
src/foo.py (lines 42-58) — fix iteration 1tests/conftest.py (lines 12-15) — fix iteration 2Clean (no commits made). User decides whether to commit, what to amend, or what to revert.
[MEMORY-BUG-RISK] — added torch.cuda.empty_cache() without a paired test
## HPC mock mode (`--mock-hpc`)
Use when iterating before submitting to [HPC cluster]. Runs inside a Docker container that mirrors [HPC cluster]'s environment:
- Default image: `user/hpc-mock:latest` (built from `scripts/hpc/Dockerfile.hpc-mock`)
- Container has same CUDA, torch, transformers, slurm-mock as [HPC cluster]
- Test command runs inside the container; failures bubble out to the iteration log
**Hard rule:** never run `--mock-hpc` against a project whose data lives outside the project directory — the Docker mount won't see it. Verify data paths first.
If `user/hpc-mock:latest` doesn't exist on the current machine, print the build instructions and exit.
## Standard forbid-list (when dispatching sub-agents)
If for very large iteration loops (>5 files modified concurrently) the orchestrator decides to dispatch sub-agents, each gets:
This sub-agent has a narrow scope. It does NOT inherit the orchestrator's authorisation for any other action.
git add, git commit, git push, or any other git write command.Scope: <file paths>
Task: <hypothesis + fix>
Report your changes as a diff. The orchestrator runs the tests.
## Cross-References
| Skill / Rule | Relationship |
|---|---|
| `subagent-write-guard.md` | Sub-agent dispatch (when needed) follows this rule |
| the `code-review` agent | Run AFTER test-iterate-loop terminates PASS — quality scorecard |
| `computational-experiments` | The skill that *writes* the tests this loop iterates on |
| `code-paper-auditor` agent | Code-paper consistency check — orthogonal concern |
## Anti-Patterns
- **Don't** loop without a same-error-repeat detector — an agent can spin on the same issue forever.
- **Don't** auto-commit even on PASS — leave the clean tree for the user to review and stage as they want.
- **Don't** treat warnings as failures — only test exit code 0 means PASS. Warnings get logged but don't trigger iterations.
- **Don't** apply fixes to test files — that's a smell that you're fitting tests to broken code. Fix the code.
- **Don't** skip the memory-bug flag — past HPC sessions had `torch.cuda` and `TRANSFORMERS_OFFLINE` bugs that would have been caught with this signal.© flonat, 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/test-iterate-loop of flonat/flonat-research.
Open the folder on GitHubat commit da27600
Test Iterate Loop 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 |
|---|---|---|---|---|---|---|
| Test Iterate Loop this skillflonat/flonat-research | 145 | — | ~2.2k | Automated safety check: Pass | MIT | |
| Merge Dependabot PRsonyx-dot-app/onyx | 32k | 1 repos | ~2.2k | Automated safety check: Pass | MIT | |
| Kedro Babysitkedro-org/kedro | 11k | — | ~4k | Automated safety check: Pass | Custom licence | |
| Adk Sample Creatorgoogle/adk-python | 22k | — | ~1.3k | Automated safety check: Pass | Apache-2.0 | |
| Mirage VFS Adapter Authoringstrukto-ai/mirage | 3.7k | — | ~2.4k | Automated safety check: Pass | Apache-2.0 | |
| Create Vibe Featuremistralai/mistral-vibe | 5.1k | — | ~1.2k | Automated safety check: Pass | Apache-2.0 |
onyx-dot-app/onyx
Triages and lands a batch of open Dependabot PRs in the Onyx repo, where main is gated exclusively by GitHub's merge queue: approves and enqueues green PRs, closes superseded duplicates, fixes…
kedro-org/kedro
Run Kedro's local lint / format / type-check / tests on changed files (uses the project's pre-commit hooks, ruff, mypy, pytest, lint-imports, detect-secrets, Make targets — in the right venv), or…
google/adk-python
Creates a new sample agent in the ADK Python repository — the sample directory, its agent.py, and its README.md — following the conventions the existing samples already use.
strukto-ai/mirage
Builds or extends a custom Mirage virtual filesystem adapter for an API, database, object store or app data, with a working mount configuration and filesystem tests.
mistralai/mistral-vibe
Guides feature work in the Mistral Vibe Python CLI so each change lands in the right module and matches the project's architecture decision records.
google/adk-python
Sets up a local ADK Python development environment in a git clone of the open-source adk-python repository: a uv virtual environment, all dependency extras, pre-commit hooks, and a first unit-test…
flonat/flonat-research
Create a large-format academic poster in LaTeX using beamerposter, tikzposter, or baposter.
flonat/flonat-research
Create, revise, and evaluate reusable AI workflow skills, including trigger-quality tests.
flonat/flonat-research
Create, read, edit, or convert Microsoft Word documents while preserving professional document structure.
flonat/flonat-research
Read, create, combine, split, rotate, OCR, watermark, secure, or extract content from PDF files.
flonat/flonat-research
Create or migrate project-level agents, repeatable project workflows, and planning state from one client-neutral contract, then render repository-scoped adapters for both Claude Code and Codex.
flonat/flonat-research
Deliver a fast pre-commit safety scan: file size, anonymity (author / affiliation strings in tex/bib), hardcoded secrets, and invisible-Unicode carriers.
Works with
Categories
Autonomously diagnose a codebase, apply minimal fixes, and rerun tests until they pass or a real blocker is reached. Test Iterate Loop is an agent skill from flonat/flonat-research. Autonomously diagnose a codebase, apply minimal fixes, and rerun tests until they pass or a real blocker is reached.
Test Iterate Loop fits situations like: the user explicitly requests an iterative fix-until-green loop across Python.
Run `npx skills add flonat/flonat-research --skill test-iterate-loop -a claude-code`. Or copy the skill folder (skills/test-iterate-loop in flonat/flonat-research) into .claude/skills/test-iterate-loop in your project. Claude Code loads it when a task matches its description.
Run `npx skills add flonat/flonat-research --skill test-iterate-loop -a codex`. Or copy the skill folder (skills/test-iterate-loop in flonat/flonat-research) into .agents/skills/test-iterate-loop 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 flonat/flonat-research --skill test-iterate-loop -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/test-iterate-loop, .gemini/skills/test-iterate-loop, .github/skills/test-iterate-loop and .opencode/skills/test-iterate-loop in your project.
Going by SKILL.md and its folder, Test Iterate Loop needs the command-line tools its instructions call (git, uv, npm and make). Our summary lists: Python 3; Docker. Its frontmatter pre-approves these tools: Read, Write, Edit, Glob, Grep, Bash(uv*), Bash(pytest*), Bash(Rscript*), Bash(julia*), Bash(docker*), Bash(make*), Bash(git*), TaskCreate, TaskUpdate, AskUserQuestion.
SKILL.md contains no URLs. Its commands use git, uv and 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.
Test Iterate Loop 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.9k 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 Test Iterate Loop: Merge Dependabot PRs (onyx-dot-app/onyx, 32k stars), Kedro Babysit (kedro-org/kedro, 11k stars), Adk Sample Creator (google/adk-python, 22k stars) and Mirage VFS Adapter Authoring (strukto-ai/mirage, 3.7k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
flonat (a GitHub user) maintains it in flonat/flonat-research, which has 145 GitHub stars. The repository holds 83 skills in this directory. The repository was last updated on September 29, 2026.
Source: flonat/flonat-research on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.