Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Creates implementation plan, writes project code with judge feedback loop, and submits final experiment run. Use after code-survey in both Idea and Plan branches.
.claude/skills/inno-experiment-dev/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-18 | ✗→✓ | ▲ Improved | — | — |
| case-19 | ✗→✓ | ▲ Improved | — | — |
| case-17 | ✗→✓ | ▲ Improved | — | — |
| case-15 | ✗→✓ | ▲ Improved | — | — |
| case-10 | ✗→✓ | ▲ Improved | — | — |
Merges the former inno-implementation-plan, inno-ml-dev-iteration, and the submit step of inno-experiment-submit-refine. Mirrors _create_implementation_plan (830-858), _implement_and_iterate (861-920), and the submit portion of _submit_and_refine_experiments (922-945) in run_infer_idea_ours.py.
| Variable | Source | Description | |----------|--------|-------------| | survey_res | inno-idea-generation or user | The finalized selected idea (or refined_for_downstream) | | references | pipeline config | Pre-formatted string of source papers | | updated_prepare_res | inno-prepare-resources | JSON with reference_codebases and reference_paths | | code_survey_res | inno-code-survey | Comprehensive implementation report / model survey notes | | dataset_description | from prepare step / context | Description of available datasets (not in instance.json) | | core_code | instance.json Experiment.core_code | Absolute path when created by Dr. Claw (e.g. <project_path>/Experiment/core_code); use as-is or resolve with path.join(project_path, value) if relative | | code_references | instance.json Experiment.code_references | Absolute path when created by Dr. Claw (e.g. <project_path>/Experiment/code_references); use as-is or resolve if relative | | max_iter_times | pipeline config | Max judge-iteration rounds (default 2) | | context_variables | shared state | Mutable dict carrying state across agents |
Plan mode additionally uses ideas and survey-specific prompt variants (build_plan_query_with_survey, build_iteration_query_for_plan, etc.).
| Variable | Description | |----------|-------------| | plan_res | Detailed implementation plan with dataset, model, training, and testing sections | | ml_dev_res | Final ML Agent implementation result | | judge_res | Final Judge Agent feedback | | judge_messages | Full conversation thread (preserved for inno-experiment-analysis) | | submit_res | Experiment submission result with statistical outputs | | context_variables | Updated with dataset_plan, training_plan, testing_plan, suggestion_dict, raw_error_stats |
| File | Agent | Content | |------|-------|---------| | Experiment/core_code/logs/coding_plan_agent.json | Coding Plan Agent | context_variables + messages from planning phase | | Experiment/core_code/logs/machine_learning_agent.json | ML Agent | Initial implementation messages (+ _iter_{N}.json for judge iterations) | | Experiment/core_code/logs/judge_agent.json | Judge Agent | Evaluation messages (+ _iter_{N}.json for iterations) | | Experiment/core_code/logs/machine_learning_agent_iter_submit.json | ML Agent | Submission run messages and results |
Mirrors _create_implementation_plan.
refined_for_downstream with tensor interfaces and forward-pass sketch.plan_query = build_plan_query(survey_res, references, updated_prepare_res, code_survey_res, dataset_description) (see prompts/build_plan_query.md)build_plan_query_with_survey(ideas, references, prepare_res, code_survey_res, dataset_description)messages = [{"role": "user", "content": plan_query}].tree / cat, then creates structured plans via plan_dataset, plan_training, plan_testing.case_resolved to merge plans.plan_res = plan_messages[-1]["content"].references/coding_plan_agent.md for agent details.Mirrors _implement_and_iterate.
ml_dev_query = build_ml_dev_query(survey_res, prepare_res, code_survey_res, plan_res, dataset_description, core_code, code_references) (see prompts/build_ml_dev_query.md). Use paths from instance.json: Experiment.core_code, Experiment.code_references (absolute in Dr. Claw–created projects; use as-is or resolve with project path if relative). Call ML Agent with messages = [{"role": "user", "content": ml_dev_query}]. Set ml_dev_res = ml_messages[-1]["content"].references/ml_agent_instructions.md for agent details.judge_query = build_judge_query(survey_res, prepare_res, plan_res, ml_dev_res) (see prompts/build_judge_query.md). Call Judge Agent with input_messages = [{"role": "user", "content": judge_query}]. Set judge_res = judge_messages[-1]["content"].references/judge_agent_instructions.md for agent details.a. Build iteration_query = build_iteration_query(survey_res, prepare_res, code_survey_res, plan_res, ml_dev_res, judge_res, core_code, code_references) (see prompts/build_iteration_query.md). Use paths from instance.json (absolute in Dr. Claw–created projects; use as-is or resolve if relative). Plan mode uses build_iteration_query_for_plan. b. Append as user message to judge_messages. Call ML Agent with iter_times=i+1. Update ml_dev_res. c. Build judge_simple_query = build_judge_simple_query(survey_res, prepare_res, plan_res, ml_dev_res) (see prompts/build_judge_simple_query.md). Plan mode uses build_judge_simple_query_for_plan. d. Append as user message to judge_messages. Call Judge Agent with iter_times=i+1. Update judge_res. e. If "fully_correct": true in last message, break early.
judge_messages for the submit step and for downstream inno-experiment-analysis.Mirrors the submit portion of _submit_and_refine_experiments.
submit_query = build_submit_query(survey_res, ml_dev_res, judge_res, core_code) (see prompts/build_submit_query.md). Resolve core_code from instance.Experiment.core_code. Plan mode uses build_submit_query_for_plan.judge_messages as user message. Call ML Agent with iter_times="submit".run_training_testing.py, ensures checkpoints are saved.submit_res = judge_messages[-1]["content"].case_not_resolved. Otherwise, case_resolved with statistical results and analysis.All custom Python tools map to Claude Code built-in capabilities:
| Original Tool | Claude Code Equivalent | |---------------|----------------------| | execute_command | Shell tool (direct execution) | | run_python | python <script> via Shell tool | | create_file / write_file | Write tool | | read_file | Read tool or cat <path> | | create_directory | mkdir -p <path> | | list_files | ls <path> | | gen_code_tree_structure | tree -L 3 <path> | | diagnose_code_error | Analyze stderr output + inspect code | | rollback_and_reimplement | Re-write file with different approach | | view_error_history | Track error fingerprints in agent memory | | plan_dataset / plan_training / plan_testing | Structure plan sections in agent response | | case_resolved / case_not_resolved | Agent returns result / failure reason |
build_plan_query variant used for Idea vs Plan mode.plan_res has clear dataset/model/training/testing sections.ml_dev_res recorded.judge_res recorded.fully_correct.judge_messages preserved across all phases.judge_messages; ML Agent submission run completed.Experiment/core_code/checkpoints/model_final.pth.Experiment/core_code/logs/: coding_plan_agent.json, machine_learning_agent.json, judge_agent.json, machine_learning_agent_iter_submit.json.run_infer_idea_ours.py: _create_implementation_plan (830-858), _implement_and_iterate (861-920), _submit_and_refine_experiments submit step (922-945)prompt_templates.py: build_plan_query (203-233), build_ml_dev_query (236-381), build_judge_query (384-417), build_iteration_query (420-468), build_judge_simple_query (471-494), build_submit_query (497-527)plan_agent.py, ml_agent.py, judge_agent.py in inno/agents/inno_agent/| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-22 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-18 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-19 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-01 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-17 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-03 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-15 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-10 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-02 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-05 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-21 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-11 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-09 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-23 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-12 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-16 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-06 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-04 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-07 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-08 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-13 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-14 | pass→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-20 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 23 cases were attempted, and 19 counted toward the lift figure. The other 4 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +61 percentage points is the difference between those two pass rates over the 19 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
The per-case answers from this run were removed by the retention sweep, so the case table below shows the verdicts without the text either arm produced. The counts above were recorded at the time and are unaffected. Answers are now kept for 180 days.
Other measured skills in the registry, with their headline benchmark lift.