CtrlK
BlogDocsLog inGet started
Tessl Logo

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.

55

Quality

62%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Low

Low-risk findings worth noting

Fix and improve this skill with Tessl

tessl review fix ./skills/inno-code-survey/SKILL.md
SKILL.md
Quality
Evals
Security

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 (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:

PathContents
Ideation/references/papers/Downloaded arXiv LaTeX sources (.tex, .txt, .md)
Experiment/code_references/<repo_name>/Cloned GitHub repositories
Experiment/code_references/model_survey.mdCode 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:

InputSourceDescription
selected_ideaIdeation/ideas/selected_idea.txt or final_selected_idea_dataThe finalized selected idea (full markdown)
download_resinno-prepare-resources outputResult log from downloading arXiv paper sources
prepare_resinno-prepare-resources output (JSON)Contains reference_codebases and reference_paths
context_variablesShared context dictAccumulated pipeline context
instance.json<project_path>/instance.jsonPaths 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

OutputDescriptionConsumer
acquired_code_reposDict of {name: path} for newly cloned reposPhase B, cache
updated_prepare_resprepare_res JSON with new repos merged into reference_codebases / reference_pathsDownstream pipeline
extra_repo_infoFormatted string listing acquired reposPhase B query
model_surveyComprehensive code survey implementation reportinno-experiment-dev

Phase A — Repo Acquisition

Full template & parameter docs: prompts/build_repo_acquisition_query.md Agent system prompt & tools: 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 absolute (Dr. Claw), else path.join(project_path, ...)>",
        "date_limit": "YYYY-MM-DD",
        "prepare_result": { ... },
        "acquired_code_repos": {
          "<name>": "<path>",
          ...
        },
        "updated_prepare_res": "<JSON string of updated prepare_res>"
      }
    }

Phase B — Code Survey

Full template & parameter docs: prompts/build_code_survey_query.md Agent system prompt & tools: references/code_survey_agent.md

Maps to _conduct_code_survey (lines 794–828).

Step B1: Build the code survey query

Construct the query using selected_idea, download_res, and extra_repo_info (from Phase A):

I have an innovative idea related to machine learning:
{selected_idea}

I have carefully gone through these papers' github repositories and found download
some of them in my local machine, in the directory `Experiment/code_references/`, use `ls`, `tree`,
and `find` to navigate the directory.
And I have also downloaded the corresponding paper (LaTeX sources, markdown, txt),
with the following information:
{download_res}

{extra_repo_info_block}

Your task is to carefully understand the innovative idea, and thoroughly review
codebases and generate a comprehensive implementation report for the innovative
idea. You can NOT stop to review the codebases until you have get all academic
concepts in the innovative idea.

Note that the code implementation should be as complete as possible.

Step B2: Survey all repos in Experiment/code_references/

Use Linux commands to navigate and read code:

ActionCommand
List reposls Experiment/code_references/ or tree Experiment/code_references/ -L 1
View repo structuretree Experiment/code_references/<repo>/ -L 3
Find Python filesfind Experiment/code_references/<repo>/ -name "*.py" -type f
Read source filecat Experiment/code_references/<repo>/model/attention.py
Search across reposrg "class.*Attention" Experiment/code_references/ or grep -rn "sinkhorn" Experiment/code_references/
Read specific linessed -n '100,200p' Experiment/code_references/<repo>/file.py

Step B3: Map each innovative module to code

For each atomic academic concept in the idea:

  1. Identify the mathematical formula
  2. Locate the corresponding implementation across repos
  3. Extract complete code snippets with file paths and function signatures

Step B4: Generate comprehensive implementation report

The report must include for each concept:

  • Academic definition — the concept name
  • Mathematical formula — precise formulation
  • Code implementation — real code from repos (not pseudocode)
  • Reference papers — which papers define this
  • Reference codebases — which repos implement it, with file paths

Step B5: Store result

Set context_variables["model_survey"] = code_survey_response (the full implementation report text).

Step B6: Save Phase B cache

Write Experiment/code_references/logs/code_survey_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 absolute (Dr. Claw), else path.join(project_path, ...)>",
    "date_limit": "YYYY-MM-DD",
    "prepare_result": { ... },
    "acquired_code_repos": { ... },
    "notes": [
      {
        "definition": "<atomic concept>",
        "math_formula": "<formula>",
        "code_implementation": "<code snippet>",
        "reference_papers": ["<paper1>"],
        "reference_codebases": ["<repo1>"]
      }
    ],
    "model_survey": "<FULL text of the comprehensive implementation report>"
  }
}

IMPORTANT: The model_survey field must contain the complete report text — never a summary or abbreviation.


Tool mappings (reference -> Linux/Claude Code)

Reference toolReplacement
search_github_repos_wrapperpython scripts/github_search_clone.py --query "..." --limit 5 or curl to GitHub API
tracked_execute_command (git clone)GIT_TERMINAL_PROMPT=0 git clone --depth 1 <url> Experiment/code_references/<name>
list_filesls, find, tree
read_filecat, head, tail, sed -n
gen_code_tree_structuretree -L 3
terminal_page_down/up/toN/A (not needed with cat/less)
search_github_coderg, grep -rn across local repos

Checklist

Phase A (Repo Acquisition)

  • Selected idea analyzed; 2-3 missing components identified
  • Cascade search performed (6 queries per gap across 3 levels)
  • Best candidates cloned into Experiment/code_references/
  • Each clone verified (README.md read, domain/language checked)
  • context_variables["acquired_code_repos"] set as dict {name: path}
  • prepare_res updated with new reference_codebases / reference_paths
  • extra_repo_info string built for Phase B
  • Experiment/code_references/logs/repo_acquisition_agent.json written

Phase B (Code Survey)

  • Code survey query built with selected_idea + download_res + extra_repo_info
  • All repos in Experiment/code_references/ surveyed using tree, cat, grep, find
  • Every atomic academic concept in the idea has matching code identified
  • Implementation report includes: code snippets, file paths, function signatures, formula-to-code mappings
  • context_variables["model_survey"] set with full report text
  • Experiment/code_references/logs/code_survey_agent.json written with complete model_survey

References

  • run_infer_idea_ours.py: _acquire_missing_repos (745–792), _update_prepare_res_with_new_repos (639–686), _conduct_code_survey (794–828)
  • Prompts: build_repo_acquisition_query (prompt_templates.py:153–171), build_code_survey_query (prompt_templates.py:173–200)
  • Agents: repo_agent.py (Repo Acquisition Agent definition + tools), survey_agent.py (Code Survey Agent definition)
  • Cache examples: repo_acquisition_agent.json, code_survey_agent.json from reference pipeline output
Repository
OpenLAIR/dr-claw
Last updated
First committed

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.