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.
71%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Passed
No findings from the security scan
Fix and improve this skill with Tessl
tessl review fix ./skills/inno-experiment-dev/SKILL.mdThree parts in one skill: an implementation plan, implementation with a judge feedback loop, and submission of the final experiment run.
| Variable | Source | Description |
|---|---|---|
survey_res | Ideation/ideas/selected_idea.txt (inno-idea-generation, possibly refined by inno-idea-eval) or user | The finalized selected idea (or refined_for_downstream) |
references | Ideation/references/logs/load_instance.json | Source papers (from inno-prepare-resources) |
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 | Ideation/references/dataset_description.md | Description of available datasets (from inno-prepare-resources; 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.
Optional pre-step (Idea mode only): If refining the idea for implementation clarity, call the idea refinement agent to produce refined_for_downstream with tensor interfaces and forward-pass sketch.
Build plan query:
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)Call Coding Plan Agent with 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.Verify the plan has clear sections: dataset, model, training, evaluation, file layout.
Mirrors _implement_and_iterate.
Initial implementation: Build 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.Initial judge evaluation: Build 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.Iteration loop (for i in 0..max_iter_times - 1):
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.
Preserve judge_messages for the submit step and for downstream inno-experiment-analysis.
Mirrors the submit portion of _submit_and_refine_experiments.
Build submit query: 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.
Append to 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"].If the implementation is not runnable, ML Agent calls 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.OpenLAIR/dr-claw
3456bb4
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.