/inno-code-survey
Acquires missing code repositories for the selected idea (Phase A) and conducts comprehensive code survey mapping academic concepts to implementations (Phase B). Outputs acquired_code_repos, updated_prepare_res, and model_survey for downstream use by inno-experiment-dev.
Claude Code
$ npx -y skills add OpenLAIR/dr-claw --skill inno-code-survey --agent claude-code
Codex
$ npx skills add OpenLAIR/dr-claw --skill inno-code-survey -a codex -y
Cursor
$ npx skills add OpenLAIR/dr-claw --skill inno-code-survey -a cursor -y
Gemini CLI
$ npx skills add OpenLAIR/dr-claw --skill inno-code-survey -a gemini-cli -y
GitHub Copilot
$ npx skills add OpenLAIR/dr-claw --skill inno-code-survey -a github-copilot -y
OpenCode
$ npx skills add OpenLAIR/dr-claw --skill inno-code-survey -a opencode -y
Windsurf
$ npx skills add OpenLAIR/dr-claw --skill inno-code-survey -a windsurf -y
SKILL.md
inno-code-survey.SKILL.mdname: inno-code-survey
description: Acquires missing code repositories for the selected idea (Phase A) and conducts comprehensive code survey mapping academic concepts to implementations (Phase B). Outputs acquired_code_repos, updated_prepare_res, and model_survey for downstream use by inno-experiment-dev.
Inno Code Survey (Repo Acquisition + Code Survey)
Runs in two phases: **Phase A** finds and clones the code the selected idea still needs, and **Phase B** surveys all reference code and maps each concept of the idea to concrete files, functions, and formulas. The survey report is the main input of `inno-experiment-dev`.
Directory structure
skills/inno-code-survey/
├── SKILL.md ← this file
├── prompts/
│ ├── build_repo_acquisition_query.md ← Phase A query template
│ └── build_code_survey_query.md ← Phase B query template
├── references/
│ ├── repo_acquisition_agent.md ← Phase A agent system prompt & tools
│ └── code_survey_agent.md ← Phase B agent system prompt & tools
└── scripts/
└── github_search_clone.py ← GitHub search + clone helperPath conventions
All file paths use semantic directory names under the project root:
| Path | Contents | |------|----------| | `Ideation/references/papers/` | Downloaded arXiv LaTeX sources (`.tex`, `.txt`, `.md`) | | `Experiment/code_references/<repo_name>/` | Cloned GitHub repositories | | `Experiment/code_references/model_survey.md` | Code survey implementation report | | `Experiment/code_references/logs/` | Phase A & B agent cache files |
Inputs
These are aligned with outputs from **inno-idea-generation** and **inno-prepare-resources**:
| Input | Source | Description | |-------|--------|-------------| | `selected_idea` | `Ideation/ideas/selected_idea.txt` or `final_selected_idea_data` | The finalized selected idea (full markdown) | | `download_res` | `Ideation/references/logs/download_arxiv_source_by_title.json` (inno-prepare-resources) | Result log from downloading arXiv paper sources | | `prepare_res` | `prepare_result` in `Ideation/references/logs/prepare_agent.json` (inno-prepare-resources) | Contains `reference_codebases` and `reference_paths` | | `context_variables` | Shared context dict | Accumulated pipeline context | | `instance.json` | `<project_path>/instance.json` | Paths are **absolute** when created by Dr. Claw (`Experiment.code_references`, `Ideation.references`); use as-is or resolve with `path.join(project_path, value)` if relative. Also `date_limit` from context. |
Outputs
| Output | Description | Consumer | |--------|-------------|----------| | `acquired_code_repos` | Dict of `{name: path}` for newly cloned repos | Phase B, cache | | `updated_prepare_res` | `prepare_res` JSON with new repos merged into `reference_codebases` / `reference_paths` | Downstream pipeline | | `extra_repo_info` | Formatted string listing acquired repos | Phase B query | | `model_survey` | Comprehensive code survey implementation report | `inno-experiment-dev` |
---
Phase A — Repo Acquisition
> Full template & parameter docs: [prompts/build_repo_acquisition_query.md](prompts/build_repo_acquisition_query.md) > Agent system prompt & tools: [references/repo_acquisition_agent.md](references/repo_acquisition_agent.md)
Step A1: Analyze the selected idea and identify gaps
Read `selected_idea` and identify 2–3 **missing technical components** — novel or specialized parts that are likely NOT in the standard repos already present in `Experiment/code_references/`.
Step A2: Search GitHub using the "Cascade" strategy
For each missing component, perform **6 distinct queries** using progressive decomposition:
1. **Level 1 (Specific)**: Search for the exact mechanism name 2. **Level 2 (Broad)**: Strip context adjectives, search core technique 3. **Level 3 (Atomic)**: Search for 3 base mathematical operators
Use the helper script or GitHub API directly:
# Option 1: Helper script
python scripts/github_search_clone.py --query "sinkhorn attention pytorch" --limit 5 --date-limit 2025-12-31
# Option 2: Direct GitHub API via curl
curl -s "https://api.github.com/search/repositories?q=sinkhorn+attention&per_page=5" \
-H "Accept: application/vnd.github.v3+json"
Step A3: Clone selected repos
Clone the best candidate for each gap into `Experiment/code_references/`:
GIT_TERMINAL_PROMPT=0 git clone --depth 1 <clone_url> Experiment/code_references/<repo_name>
Step A4: Verify each clone
For each cloned repo: 1. Read `README.md`: `cat Experiment/code_references/<repo_name>/README.md` 2. Check language and domain relevance 3. Reject repos that don't match (wrong domain, empty, HTML-only)
Step A5: Build `acquired_code_repos` and update `prepare_res`
1. Build `acquired_code_repos` dict from verified clones:
{
"repo_name_1": "Experiment/code_references/repo_name_1",
"repo_name_2": "Experiment/code_references/repo_name_2"
}2. Set `context_variables["acquired_code_repos"] = acquired_code_repos` 3. Parse `prepare_res` JSON, ensure `reference_codebases` and `reference_paths` arrays exist 4. For each entry in `acquired_code_repos`, if `path` not already in `reference_paths`:
- Append repo name to `reference_codebases`
- Append repo path to `reference_paths`
5. Serialize back to JSON as `updated_prepare_res`
Step A6: Save Phase A cache
1. Build `extra_repo_info` string:
- Name: <name1> | Path: <path1>
- Name: <name2> | Path: <path2>
(Empty string if no repos acquired)
2. Write `Experiment/code_references/logs/repo_acquisition_agent.json`:
{
"context_variables": {
"code_references_path": "<instance.Experiment.code_references if absolute (Dr. Claw), else path.join(project_path, ...)>",
"references_path": "<instance.Ideation.references if aRead more
name: inno-code-survey description: Acquires missing code repositories for the selected idea (Phase A) and conducts comprehensive code survey mapping academic concepts to implementations (Phase B). Outputs acquired_code_repos, updated_prepare_res, and model_survey for downstream use by inno-experiment-dev.
Inno Code Survey (Repo Acquisition + Code Survey)
Runs in two phases: **Phase A** finds and clones the code the selected idea still needs, and **Phase B** surveys all reference code and maps each concept of the idea to concrete files, functions, and formulas. The survey report is the main input of `inno-experiment-dev`.
Directory structure
skills/inno-code-survey/
├── SKILL.md ← this file
├── prompts/
│ ├── build_repo_acquisition_query.md ← Phase A query template
│ └── build_code_survey_query.md ← Phase B query template
├── references/
│ ├── repo_acquisition_agent.md ← Phase A agent system prompt & tools
│ └── code_survey_agent.md ← Phase B agent system prompt & tools
└── scripts/
└── github_search_clone.py ← GitHub search + clone helperPath conventions
All file paths use semantic directory names under the project root:
| Path | Contents | |------|----------| | `Ideation/references/papers/` | Downloaded arXiv LaTeX sources (`.tex`, `.txt`, `.md`) | | `Experiment/code_references/<repo_name>/` | Cloned GitHub repositories | | `Experiment/code_references/model_survey.md` | Code survey implementation report | | `Experiment/code_references/logs/` | Phase A & B agent cache files |
Inputs
These are aligned with outputs from **inno-idea-generation** and **inno-prepare-resources**:
| Input | Source | Description | |-------|--------|-------------| | `selected_idea` | `Ideation/ideas/selected_idea.txt` or `final_selected_idea_data` | The finalized selected idea (full markdown) | | `download_res` | `Ideation/references/logs/download_arxiv_source_by_title.json` (inno-prepare-resources) | Result log from downloading arXiv paper sources | | `prepare_res` | `prepare_result` in `Ideation/references/logs/prepare_agent.json` (inno-prepare-resources) | Contains `reference_codebases` and `reference_paths` | | `context_variables` | Shared context dict | Accumulated pipeline context | | `instance.json` | `<project_path>/instance.json` | Paths are **absolute** when created by Dr. Claw (`Experiment.code_references`, `Ideation.references`); use as-is or resolve with `path.join(project_path, value)` if relative. Also `date_limit` from context. |
Outputs
| Output | Description | Consumer | |--------|-------------|----------| | `acquired_code_repos` | Dict of `{name: path}` for newly cloned repos | Phase B, cache | | `updated_prepare_res` | `prepare_res` JSON with new repos merged into `reference_codebases` / `reference_paths` | Downstream pipeline | | `extra_repo_info` | Formatted string listing acquired repos | Phase B query | | `model_survey` | Comprehensive code survey implementation report | `inno-experiment-dev` |
---
Phase A — Repo Acquisition
> Full template & parameter docs: [prompts/build_repo_acquisition_query.md](prompts/build_repo_acquisition_query.md) > Agent system prompt & tools: [references/repo_acquisition_agent.md](references/repo_acquisition_agent.md)
Step A1: Analyze the selected idea and identify gaps
Read `selected_idea` and identify 2–3 **missing technical components** — novel or specialized parts that are likely NOT in the standard repos already present in `Experiment/code_references/`.
Step A2: Search GitHub using the "Cascade" strategy
For each missing component, perform **6 distinct queries** using progressive decomposition:
1. **Level 1 (Specific)**: Search for the exact mechanism name 2. **Level 2 (Broad)**: Strip context adjectives, search core technique 3. **Level 3 (Atomic)**: Search for 3 base mathematical operators
Use the helper script or GitHub API directly:
# Option 1: Helper script python scripts/github_search_clone.py --query "sinkhorn attention pytorch" --limit 5 --date-limit 2025-12-31 # Option 2: Direct GitHub API via curl curl -s "https://api.github.com/search/repositories?q=sinkhorn+attention&per_page=5" \ -H "Accept: application/vnd.github.v3+json"
Step A3: Clone selected repos
Clone the best candidate for each gap into `Experiment/code_references/`:
GIT_TERMINAL_PROMPT=0 git clone --depth 1 <clone_url> Experiment/code_references/<repo_name>
Step A4: Verify each clone
For each cloned repo: 1. Read `README.md`: `cat Experiment/code_references/<repo_name>/README.md` 2. Check language and domain relevance 3. Reject repos that don't match (wrong domain, empty, HTML-only)
Step A5: Build `acquired_code_repos` and update `prepare_res`
1. Build `acquired_code_repos` dict from verified clones:
{
"repo_name_1": "Experiment/code_references/repo_name_1",
"repo_name_2": "Experiment/code_references/repo_name_2"
}2. Set `context_variables["acquired_code_repos"] = acquired_code_repos` 3. Parse `prepare_res` JSON, ensure `reference_codebases` and `reference_paths` arrays exist 4. For each entry in `acquired_code_repos`, if `path` not already in `reference_paths`:
- Append repo name to `reference_codebases`
- Append repo path to `reference_paths`
5. Serialize back to JSON as `updated_prepare_res`
Step A6: Save Phase A cache
1. Build `extra_repo_info` string:
- Name: <name1> | Path: <path1> - Name: <name2> | Path: <path2>
(Empty string if no repos acquired)
2. Write `Experiment/code_references/logs/repo_acquisition_agent.json`:
{
"context_variables": {
"code_references_path": "<instance.Experiment.code_references if absolute (Dr. Claw), else path.join(project_path, ...)>",
"references_path": "<instance.Ideation.references if aA 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-code-survey.
- Which coding agents can use inno-code-survey?
- inno-code-survey 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.

