Openclaw Repair Sweep
openclaw/openclaw
Run scoped OpenClaw issue/PR repair campaigns: coordinate workers, prove root causes, and land or close verified work under the requested authority.
A skill your agent uses when incrementally reviewing and repairing low-quality metadata after enrich, especially non-standard documents that need title, author, or year correction while skipping…
$ npx skills add ZimoLiao/scholaraio --skill scrub -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install ZimoLiao/scholaraio scrub --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/ZimoLiao/scholaraio.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/scrub .claude/skills/scrub && 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 "scrub" agent skill from https://github.com/ZimoLiao/scholaraio/tree/main/.claude/skills/scrub into .claude/skills/scrub/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scrub", 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/ZimoLiao/scholaraio/tree/main/.claude/skills/scrubType 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 ZimoLiao/scholaraio --skill scrub -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install ZimoLiao/scholaraio scrub --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ZimoLiao/scholaraio.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/scrub .agents/skills/scrub && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "scrub" agent skill from https://github.com/ZimoLiao/scholaraio/tree/main/.claude/skills/scrub into .agents/skills/scrub/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scrub", 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 ZimoLiao/scholaraio --skill scrub -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install ZimoLiao/scholaraio scrub --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ZimoLiao/scholaraio.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/scrub .cursor/skills/scrub && 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 "scrub" agent skill from https://github.com/ZimoLiao/scholaraio/tree/main/.claude/skills/scrub into .cursor/skills/scrub/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scrub", 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/ZimoLiao/scholaraio.git --path .claude/skills/scrub--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 ZimoLiao/scholaraio --skill scrub -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install ZimoLiao/scholaraio scrub --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ZimoLiao/scholaraio.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/scrub .gemini/skills/scrub && 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 "scrub" agent skill from https://github.com/ZimoLiao/scholaraio/tree/main/.claude/skills/scrub into .gemini/skills/scrub/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scrub", 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 ZimoLiao/scholaraio scrubInstalls 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 ZimoLiao/scholaraio --skill scrub -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/ZimoLiao/scholaraio.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/scrub .github/skills/scrub && 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 "scrub" agent skill from https://github.com/ZimoLiao/scholaraio/tree/main/.claude/skills/scrub into .github/skills/scrub/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scrub", 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 ZimoLiao/scholaraio --skill scrub -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install ZimoLiao/scholaraio scrub --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ZimoLiao/scholaraio.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/scrub .opencode/skills/scrub && 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 "scrub" agent skill from https://github.com/ZimoLiao/scholaraio/tree/main/.claude/skills/scrub into .opencode/skills/scrub/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scrub", 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.
scrubA skill your agent uses when incrementally reviewing and repairing low-quality metadata after enrich, especially non-standard documents that need title, author, or year correction while skipping…
Scrub is an agent skill from ZimoLiao/scholaraio. Use when incrementally reviewing and repairing low-quality metadata after enrich, especially non-standard documents that need title, author, or year correction while skipping already reviewed records via .scrubbed.
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.
The repository describes itself as: Scholar All-In-One: A research infrastructure for AI agents. The licence is MIT.
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 777628b. 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:
pythonFrom 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.
Scrub loads about 2k tokens when it runs. Until then it costs about 55 tokens; SKILL.md has 887 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 ZimoLiao/scholaraio at commit 777628b, republished under its MIT licence (© ZimoLiao). 887 words, ~1,991 tokens.
.claude/skills/scrub/SKILL.md (or your agent's skills folder).Use this skill when the library contains already-ingested papers whose metadata is still clearly low quality after ingest or enrich, especially for non-standard documents that MinerU or fallback parsers converted successfully but described poorly.
scrub is a review-and-repair workflow, not a blind batch rewrite. It should reuse existing ScholarAIO repair and rename primitives, and it should treat .scrubbed as the durable marker for "reviewed and currently acceptable."
Use this skill when the user wants to:
Do not use this skill for:
rename alone is enoughSkip papers that already contain .scrubbed.
You can list suspicious, unreviewed papers with a Python helper that resolves papers_dir from the active ScholarAIO config:
python - <<'PY'
from scholaraio.services.audit import list_scrub_suspects
from scholaraio.core.config import load_config
cfg = load_config()
for issue in list_scrub_suspects(cfg.papers_dir):
print(f"{issue.paper_id}\t{issue.rule}\t{issue.message}")
PYIf the user asked for a broad quality pass, it is also reasonable to start with:
scholaraio auditThen narrow to papers that are both:
.scrubbedFor candidates with readable metadata, inspect:
scholaraio show "<paper-id>" --layer 1Before changing anything, record the stable paper UUID shown in the L1 header as stable_id. repair preserves this UUID even when the directory name changes.
Then read the source text as needed:
scholaraio show "<paper-id>" --layer 4If the suspect is invalid_metadata because the directory only has paper.md and no readable meta.json, show --layer 1 may not work yet. In that case, inspect paper.md directly from the configured papers directory and repair by directory name:
python - <<'PY'
from scholaraio.core.config import load_config
paper_id = "<paper-id>"
cfg = load_config()
print((cfg.papers_dir / paper_id / "paper.md").resolve())
PYIf the default show --layer 4 view is too long, resolve the actual paper.md path with the same identifier semantics as show / repair, then inspect only the needed slice:
python - <<'PY'
from scholaraio.cli import _resolve_paper
from scholaraio.core.config import load_config
paper_id = "<paper-id>"
cfg = load_config()
print((_resolve_paper(paper_id, cfg) / "paper.md").resolve())
PYIf the head of the file is insufficient, inspect a larger section or search relevant phrases in the resolved paper.md.
Focus on extracting only the identity-critical metadata needed to make the paper usable:
Use repair to update only the fields you can support from the source:
scholaraio repair "<paper-id>" --title "Correct Title" --author "First Author" --year 2024 --no-api --dry-runThen run the real repair:
scholaraio repair "<paper-id>" --title "Correct Title" --author "First Author" --year 2024 --no-apirepair now preserves existing metadata and only overwrites the fields you explicitly update through the CLI. Existing journal, abstract, paper type, citation counts, IDs, TOC/L3 fields, and other enriched metadata stay in place unless you intentionally replace them.
In scrub mode, --no-api should be the default. These records are often low-quality documents or weakly identified items, and conservative local repair is safer than letting API matches overwrite title, author, or year.
Only drop --no-api when the user explicitly wants metadata refetch behavior and has checked that the identifier quality is strong enough to support it.
Only pass --doi when you are intentionally correcting or adding the DOI. If you omit --doi, repair preserves the existing DOI.
Decision policy:
scholaraio repair already rewrites meta.json and renames the paper directory immediately when title, author, year, or DOI changes. The rename is derived from the updated identity fields, while the rest of the metadata is preserved unless explicitly overwritten.
That means the original directory name may stop existing right after the real repair. Resolve the current directory from the stable UUID you recorded before editing:
python - <<'PY'
from scholaraio.cli import _resolve_paper
from scholaraio.core.config import load_config
stable_id = "<uuid-from-layer-1>"
cfg = load_config()
print(_resolve_paper(stable_id, cfg).name)
PYIf you repaired papers through scholaraio repair, skip rename --all for those same records. repair already rewrites meta.json and renames the directory immediately, including collision suffixes when needed.
Only use rename --all for records whose meta.json you edited outside repair, or for older records you did not already rename in the current scrub pass:
scholaraio rename --allBecause rename may change the directory path, always create the marker using the post-rename directory name.
Once a paper has been reviewed and is acceptable for current library use, create the marker:
python - <<'PY'
from scholaraio.cli import _resolve_paper
from scholaraio.core.config import load_config
from scholaraio.stores.papers import mark_scrubbed
stable_id = "<uuid-from-layer-1>"
cfg = load_config()
paper_d = _resolve_paper(stable_id, cfg)
mark_scrubbed(paper_d)
print(f"marked {paper_d.name} as scrubbed")
PYOnly mark a paper when:
.scrubbed means reviewed, not perfect.
After finishing the batch:
scholaraio pipeline reindexThis keeps search and registry state aligned with renamed or repaired records.
The most common scrub targets are:
Introduction, TLDR, Overview, Summary�UnknownXXXXThese are candidate heuristics, not auto-rewrite authority. The paper content is the final source of truth.
A scrubbed paper should be:
If you cannot achieve that threshold from the source text, stop short of marking the paper and report the ambiguity to the user.
© ZimoLiao, 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/scrub of ZimoLiao/scholaraio.
Open the folder on GitHubat commit 777628b
Scrub 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 |
|---|---|---|---|---|---|---|
| Scrub this skillZimoLiao/scholaraio | 577 | — | ~2k | Automated safety check: Pass | MIT | |
| Openclaw Repair Sweepopenclaw/openclaw | 392k | — | ~1.8k | Automated safety check: Pass | MIT | |
| TDD Repairruvnet/ruflo | 74k | — | ~1.6k | Automated safety check: Notes | MIT | |
| Scrub Issuepytorch/pytorch | 104k | — | ~4.6k | Automated safety check: Pass | Custom licence | |
| Incremental Implementationaddyosmani/agent-skills | 103k | 1 repos | ~2.3k | Automated safety check: Pass | MIT | |
| DB Repairgarrytan/gbrain | 31k | — | ~1.5k | Automated safety check: Pass | MIT |
openclaw/openclaw
Run scoped OpenClaw issue/PR repair campaigns: coordinate workers, prove root causes, and land or close verified work under the requested authority.
ruvnet/ruflo
Test-Driven Repair — given a failing test, spawn a bounded headless claude -p (Read/Edit/Bash only) that makes the test pass without modifying it.
pytorch/pytorch
Fetch, analyze, reproduce, and minimize GitHub issue reproductions.
addyosmani/agent-skills
Delivers a change in thin vertical slices, each implemented, tested, verified and committed before the next, using vertical, contract-first or risk-first slicing.
garrytan/gbrain
Auto-fix gbrain's Postgres access so the brain stays available.
mukul975/Anthropic-Cybersecurity-Skills
Detects and analyzes Bluetooth Low Energy (BLE) security attacks including sniffing, replay attacks, GATT enumeration abuse, and Man-in-the-Middle interception.
ZimoLiao/scholaraio
A skill your agent uses when the user wants to create or inspect DOCX, PPTX, or XLSX files, generate a downloadable Office deliverable, or verify its structure and layout warnings with scholaraio…
ZimoLiao/scholaraio
A skill your agent uses when the user needs help choosing or organizing an academic-writing workflow by deliverable, stage, or format, including review articles, guided reading, paper sections, PPT…
ZimoLiao/scholaraio
A skill your agent uses when the user wants to browse arXiv preprints, search arXiv directly, fetch a PDF by arXiv ID or URL, or send a preprint into the ScholarAIO ingest pipeline.
ZimoLiao/scholaraio
A skill your agent uses when working on bioinformatics workflows such as alignment, variant calling, phylogenetics, or protein-structure analysis, especially across BLAST, minimap2, samtools…
ZimoLiao/scholaraio
A skill your agent uses when the user wants to verify citations in AI-generated or human-written text against the local knowledge base and catch hallucinated, wrong, or missing references.
ZimoLiao/scholaraio
A skill your agent uses when the user wants diagrams, flowcharts, architecture visuals, data relationships, timelines, concept maps, Mermaid, Graphviz, drawio, or polished paper figures generated…
A skill your agent uses when incrementally reviewing and repairing low-quality metadata after enrich, especially non-standard documents that need title, author, or year correction while skipping…. Scrub is an agent skill from ZimoLiao/scholaraio.scrubbed.
Scrub fits situations like: incrementally reviewing and repairing low-quality metadata after enrich; especially non-standard documents that need title; year correction while skipping already reviewed records via .scrubbed.
Run `npx skills add ZimoLiao/scholaraio --skill scrub -a claude-code`. Or copy the skill folder (.claude/skills/scrub in ZimoLiao/scholaraio) into .claude/skills/scrub in your project. Claude Code loads it when a task matches its description.
Run `npx skills add ZimoLiao/scholaraio --skill scrub -a codex`. Or copy the skill folder (.claude/skills/scrub in ZimoLiao/scholaraio) into .agents/skills/scrub 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 ZimoLiao/scholaraio --skill scrub -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/scrub, .gemini/skills/scrub, .github/skills/scrub and .opencode/skills/scrub in your project.
Going by SKILL.md and its folder, Scrub needs the command-line tools its instructions call (python). Our summary lists: Python 3.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Scrub 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 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 Scrub: Openclaw Repair Sweep (openclaw/openclaw, 392k stars), TDD Repair (ruvnet/ruflo, 74k stars), Scrub Issue (pytorch/pytorch, 104k stars) and Incremental Implementation (addyosmani/agent-skills, 103k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
ZimoLiao (a GitHub user) maintains it in ZimoLiao/scholaraio, which has 577 GitHub stars. The repository holds 43 skills in this directory. The repository was last updated on September 25, 2026.
Source: ZimoLiao/scholaraio on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.