/inno-prepare-resources
Prepares the research materials for a project: collects the source papers, searches GitHub for their code, picks and clones reference codebases, describes the datasets, and downloads arXiv paper sources into Ideation/references/papers. Works from the research brief, the user's
Claude Code
$ npx -y skills add OpenLAIR/dr-claw --skill inno-prepare-resources --agent claude-code
Codex
$ npx skills add OpenLAIR/dr-claw --skill inno-prepare-resources -a codex -y
Cursor
$ npx skills add OpenLAIR/dr-claw --skill inno-prepare-resources -a cursor -y
Gemini CLI
$ npx skills add OpenLAIR/dr-claw --skill inno-prepare-resources -a gemini-cli -y
GitHub Copilot
$ npx skills add OpenLAIR/dr-claw --skill inno-prepare-resources -a github-copilot -y
OpenCode
$ npx skills add OpenLAIR/dr-claw --skill inno-prepare-resources -a opencode -y
Windsurf
$ npx skills add OpenLAIR/dr-claw --skill inno-prepare-resources -a windsurf -y
SKILL.md
inno-prepare-resources.SKILL.mdname: inno-prepare-resources
description: >
Prepares the research materials for a project: collects the source papers,
searches GitHub for their code, picks and clones reference codebases,
describes the datasets, and downloads arXiv paper sources into
Ideation/references/papers. Works from the research brief, the user's paper
list, or instance.json. Use before inno-idea-generation or inno-code-survey,
or when the user asks to gather papers and code for a research task.
Inno Prepare Resources
Gather the papers, code, and dataset notes that the later pipeline steps read:
inno-prepare-resources ← this skill
├─ Ideation/references/papers/ paper sources → inno-idea-generation, inno-idea-eval, inno-code-survey
├─ Experiment/code_references/<repo>/ cloned repos → inno-code-survey, inno-experiment-dev
├─ Ideation/references/dataset_description.md → inno-idea-generation, inno-experiment-dev
└─ Ideation/references/logs/*.json structured results (prepare_res, download_res)
You do every step yourself with ordinary tools (shell, web, the bundled script). There is no separate agent or orchestrator to call.
Modes
- **Idea mode** (default): no idea exists yet. Choose codebases that are the
most useful general starting points for the task.
- **Plan mode**: an idea already exists (`Ideation/ideas/selected_idea.txt`, or
text the user gives). Choose codebases that implement the parts the idea needs.
Inputs
Paths come from `instance.json` (`Ideation.references`, `Experiment.code_references`, `Experiment.datasets`). They are absolute in Dr. Claw projects; if relative, resolve with `path.join(project_path, value)`. If `instance.json` is missing, use `<project>/Ideation/references`, `<project>/Experiment/code_references`, and `<project>/Experiment/datasets`.
Take the **task** and the **source papers** from the first of these that has them:
| Priority | Source | Task | Source papers | |----------|--------|------|---------------| | 1 | The user's request | What they describe | Titles, arXiv ids, or links they give | | 2 | `instance.json` (benchmark instances only) | `task2` (Idea mode) or `task1` (Plan mode), if present | `source_papers[].reference`, if present | | 3 | `.pipeline/docs/research_brief.json` | `sections.ideation.research_goal` + `problem_framing` | `sections.survey.key_references` | | 4 | `Survey/reports/`, `Survey/references/` | Earlier survey summary | Papers listed there |
Dr. Claw's own `instance.json` holds only paths; `task1`, `task2`, and `source_papers` exist only in imported benchmark instances. Do not fail when they are absent.
If no source papers are found, ask the user for 3–10 key papers, or offer to run a short literature search first (`inno-deep-research` or `academic-researcher`) and use its top results.
Optional:
| Input | Description | |-------|-------------| | `date_limit` | `YYYY-MM-DD`. Ignore repositories created after this date (to reproduce a paper's setting). From `instance.json` `date_limit` if present, otherwise none | | `dataset_description` | A description the user already wrote; use it as-is in Step 4 |
Outputs
Ideation/references/
├── papers/<arxiv_id>/ ← LaTeX sources (or paper.pdf) + paper_meta.json
├── dataset_description.md ← Step 4
└── logs/
├── load_instance.json ← Step 1: task, mode, source papers, date_limit
├── github_search.json ← Step 2
├── prepare_agent.json ← Step 3: prepare_result (selected repos and papers)
└── download_arxiv_source_by_title.json ← Step 5: download_res
Experiment/code_references/<repo>/ ← Step 3: shallow clones of the selected reposThe log file names are kept stable because `inno-idea-eval` and `inno-code-survey` read `prepare_res` and `download_res` from them. Each tool log uses:
{ "name": "<step name>", "args": { "...": "..." }, "result": "<result>" }Step-by-step instructions
Step 1 — Load the task and source papers
Resolve the paths, then read the inputs in the priority order above. Decide the mode (Plan if an idea is available, else Idea). Normalise the source papers into a list of `{ "title", "arxiv_id" (if known), "why" }`.
**Save** → `logs/load_instance.json`:
{
"name": "load_instance",
"args": { "instance": "<path to instance.json or null>", "mode": "idea | plan" },
"result": {
"task_instructions": "<task text>",
"task_source": "user | instance | research_brief | survey",
"source_papers": [ { "title": "...", "arxiv_id": "...", "why": "..." } ],
"date_limit": "YYYY-MM-DD or null"
}
}If this file already exists and the user did not change the task or papers, reuse it.
Step 2 — Search GitHub for each source paper
For each paper, search repositories by its title (and, if the title is long or generic, by the method name plus "pytorch" or "code"). Wait about 2 seconds between calls; set `GITHUB_TOKEN` if available for a higher rate limit. Use whichever is available:
# GitHub CLI
gh search repos "<paper title>" --limit 10 --json fullName,description,url,stargazersCount,createdAt
# Plain HTTP
curl -s -H "Accept: application/vnd.github+json" \
"https://api.github.com/search/repositories?q=$(python3 -c 'import urllib.parse,sys;print(urllib.parse.quote(sys.argv[1]))' "<paper title>")&per_page=10"
If `inno-code-survey` is installed next to this skill, its `scripts/github_search_clone.py --query "<title>" --limit 10 [--date-limit YYYY-MM-DD]` does the same with filtering built in.
Also check the paper itself for an official code link (abstract page, the LaTeX source's footnotes, or the authors' project page). Prefer official repositories.
If there are no source papers, run one search with the task's key terms.
**Save** → `logs/github_search.json` with `args.source_papers` and, as `result`, one block per paper:
Paper: <title>
Name: owner/repo | Stars: 1234 |Read more
name: inno-prepare-resources description: > Prepares the research materials for a project: collects the source papers, searches GitHub for their code, picks and clones reference codebases, describes the datasets, and downloads arXiv paper sources into Ideation/references/papers. Works from the research brief, the user's paper list, or instance.json. Use before inno-idea-generation or inno-code-survey, or when the user asks to gather papers and code for a research task.
Inno Prepare Resources
Gather the papers, code, and dataset notes that the later pipeline steps read:
inno-prepare-resources ← this skill ├─ Ideation/references/papers/ paper sources → inno-idea-generation, inno-idea-eval, inno-code-survey ├─ Experiment/code_references/<repo>/ cloned repos → inno-code-survey, inno-experiment-dev ├─ Ideation/references/dataset_description.md → inno-idea-generation, inno-experiment-dev └─ Ideation/references/logs/*.json structured results (prepare_res, download_res)
You do every step yourself with ordinary tools (shell, web, the bundled script). There is no separate agent or orchestrator to call.
Modes
- **Idea mode** (default): no idea exists yet. Choose codebases that are the
most useful general starting points for the task.
- **Plan mode**: an idea already exists (`Ideation/ideas/selected_idea.txt`, or
text the user gives). Choose codebases that implement the parts the idea needs.
Inputs
Paths come from `instance.json` (`Ideation.references`, `Experiment.code_references`, `Experiment.datasets`). They are absolute in Dr. Claw projects; if relative, resolve with `path.join(project_path, value)`. If `instance.json` is missing, use `<project>/Ideation/references`, `<project>/Experiment/code_references`, and `<project>/Experiment/datasets`.
Take the **task** and the **source papers** from the first of these that has them:
| Priority | Source | Task | Source papers | |----------|--------|------|---------------| | 1 | The user's request | What they describe | Titles, arXiv ids, or links they give | | 2 | `instance.json` (benchmark instances only) | `task2` (Idea mode) or `task1` (Plan mode), if present | `source_papers[].reference`, if present | | 3 | `.pipeline/docs/research_brief.json` | `sections.ideation.research_goal` + `problem_framing` | `sections.survey.key_references` | | 4 | `Survey/reports/`, `Survey/references/` | Earlier survey summary | Papers listed there |
Dr. Claw's own `instance.json` holds only paths; `task1`, `task2`, and `source_papers` exist only in imported benchmark instances. Do not fail when they are absent.
If no source papers are found, ask the user for 3–10 key papers, or offer to run a short literature search first (`inno-deep-research` or `academic-researcher`) and use its top results.
Optional:
| Input | Description | |-------|-------------| | `date_limit` | `YYYY-MM-DD`. Ignore repositories created after this date (to reproduce a paper's setting). From `instance.json` `date_limit` if present, otherwise none | | `dataset_description` | A description the user already wrote; use it as-is in Step 4 |
Outputs
Ideation/references/
├── papers/<arxiv_id>/ ← LaTeX sources (or paper.pdf) + paper_meta.json
├── dataset_description.md ← Step 4
└── logs/
├── load_instance.json ← Step 1: task, mode, source papers, date_limit
├── github_search.json ← Step 2
├── prepare_agent.json ← Step 3: prepare_result (selected repos and papers)
└── download_arxiv_source_by_title.json ← Step 5: download_res
Experiment/code_references/<repo>/ ← Step 3: shallow clones of the selected reposThe log file names are kept stable because `inno-idea-eval` and `inno-code-survey` read `prepare_res` and `download_res` from them. Each tool log uses:
{ "name": "<step name>", "args": { "...": "..." }, "result": "<result>" }Step-by-step instructions
Step 1 — Load the task and source papers
Resolve the paths, then read the inputs in the priority order above. Decide the mode (Plan if an idea is available, else Idea). Normalise the source papers into a list of `{ "title", "arxiv_id" (if known), "why" }`.
**Save** → `logs/load_instance.json`:
{
"name": "load_instance",
"args": { "instance": "<path to instance.json or null>", "mode": "idea | plan" },
"result": {
"task_instructions": "<task text>",
"task_source": "user | instance | research_brief | survey",
"source_papers": [ { "title": "...", "arxiv_id": "...", "why": "..." } ],
"date_limit": "YYYY-MM-DD or null"
}
}If this file already exists and the user did not change the task or papers, reuse it.
Step 2 — Search GitHub for each source paper
For each paper, search repositories by its title (and, if the title is long or generic, by the method name plus "pytorch" or "code"). Wait about 2 seconds between calls; set `GITHUB_TOKEN` if available for a higher rate limit. Use whichever is available:
# GitHub CLI gh search repos "<paper title>" --limit 10 --json fullName,description,url,stargazersCount,createdAt # Plain HTTP curl -s -H "Accept: application/vnd.github+json" \ "https://api.github.com/search/repositories?q=$(python3 -c 'import urllib.parse,sys;print(urllib.parse.quote(sys.argv[1]))' "<paper title>")&per_page=10"
If `inno-code-survey` is installed next to this skill, its `scripts/github_search_clone.py --query "<title>" --limit 10 [--date-limit YYYY-MM-DD]` does the same with filtering built in.
Also check the paper itself for an official code link (abstract page, the LaTeX source's footnotes, or the authors' project page). Prefer official repositories.
If there are no source papers, run one search with the task's key terms.
**Save** → `logs/github_search.json` with `args.source_papers` and, as `result`, one block per paper:
Paper: <title>
Name: owner/repo | Stars: 1234 |A Super AI Lab with massive AI Doctors as Assistants. Best IDE for Research via AI Power.
More skills from other plugins.
browser-use
Direct browser control via CDP for web interaction: automation, scraping, testing, screenshots, and site/app work. Also covers…
agent-browser
Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling…
Questions about inno-prepare-resources.
- Which coding agents can use inno-prepare-resources?
- inno-prepare-resources installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.

