Skip to content
Automation
Skill

/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-implementation-plan.

From plugin
dr-claw
1k173 skills8 agents
Install
$ npx -y skills add OpenLAIR/dr-claw --skill inno-code-survey --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/inno-code-survey

Context preview

The summary Claude sees to decide when to auto-load this skill.

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-implementation-plan.

SKILL.md

inno-code-survey.SKILL.md
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-implementation-plan.

Inno Code Survey (Repo Acquisition + Code Survey)

Merges `_acquire_missing_repos`, `_update_prepare_res_with_new_repos`, and `_conduct_code_survey` from [run_infer_idea_ours.py](workspace/medical/Medical_ai_scientist_idea/research_agent/run_infer_idea_ours.py) (lines 639–828, 1038–1052) into a single two-phase skill.

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 helper

Path 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` | `inno-prepare-resources` output | Result log from downloading arXiv paper sources | | `prepare_res` | `inno-prepare-resources` output (JSON) | 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)

Maps to `_acquire_missing_repos` (lines 745–792) + `_update_prepare_res_with_new_repos` (lines 639–686).

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 a
Read more
Ships withdr-claw

A Super AI Lab with massive AI Doctors as Assistants. Best IDE for Research via AI Power.

Get the whole plugin

Other skills on dr-claw.