co-scientist-resume
Goal:
- Resume one interrupted Co-Scientist run from persisted artifacts.
Expected input:
- one run directory such as
runs/test1
Execution steps:
Resolve the run directory relative to the repository root.
Confirm that
input.mdandstate/artifacts exist.Run:
python -m tools.host.project_cli resume <run-dir> --skill co-scientist-pipelineRead
state/PIPELINE_STATE.json,state/CURRENT_STAGE.json, andstate/HOST_AGENT_HANDOFF.json.Read the CLI JSON result and the run-local dashboard receipt artifacts:
runs/<run_id>/dashboard/LINKS.mdruns/<run_id>/dashboard/LINKS.json
If the CLI JSON contains
dashboardLinks:- If
dashboard.statusisrunning, returndashboardLinks.dashboardas the primary dashboard URL and include the deep links. - If
dashboard.statusisstarting, immediately run:
python -m tools.host.project_cli dashboard <run-dir>- Read the refreshed CLI JSON result plus
runs/<run_id>/dashboard/LINKS.md. - If
runtime.statusis nowrunning, return the refreshedlinks.dashboardURL as the primary dashboard URL and include the deep links. - If
runtime.statusis stillstarting, tell the user that the dashboard is still booting, point them toruns/<run_id>/dashboard/LINKS.md, and include the retry command:
$co-scientist-dashboard <run-dir>- If
Run the resume validator before continuing:
python -m tools.validation.contract_validation <run-dir> --resume --skill co-scientist-pipelineResume only incomplete phases. Do not restart completed phases when their artifacts remain valid.
Continue from
skills/co-scientist-pipeline/SKILL.mdand the route recorded in persisted state. If the persisted route returnsrun_configuration, resume or rerunresearch-configand validateresearch_plan/RESEARCH_PLAN.jsonbefore any generation work.
Rules:
- Resume decisions must be artifact-driven.
- Preserve manifest history and dashboard links.
- Treat
runs/<run_id>/dashboard/LINKS.mdas the human-readable dashboard receipt andruns/<run_id>/dashboard/LINKS.jsonas the machine-readable receipt. - Treat validator failures as blocking until they are understood and fixed.
- If
research_plan/RESEARCH_PLAN.jsonis missing or invalid, expect resume routing to returnrun_configurationinstead of skipping directly to generation or evolution. - Obey the persisted route exactly during resume:
run_reviewresumes only review,run_insightsresumes only insights,run_proximityresumes only proximity,run_rankingresumes only ranking, andcontinue_evolutionmay create at most one child before closing that child through review, proximity, ranking with ranking update receipt coverage, convergence, and one appended round receipt. - Do not synthesize placeholder hypotheses, reviews, tournaments, proximity receipts, embeddings, or evolution-round receipts to make progress.
- If the required sub-skill or canonical tool cannot be executed, stop and report a resumable blocked state instead of writing low-information artifacts.
- A completed evolution round must be replayable from exactly one router decision, one evolved child, one review bundle, one proximity receipt, completed ranking artifacts with ranking update receipt coverage, one convergence update, and one appended round receipt.
- Round receipt tournament refs must be child-owned and duplicate-free; do not copy later opponent-side lifetime refs from
HYPOTHESIS.jsoninto an earlierEVOLUTION_ROUNDS.jsonlrecord. - Under
completion_driven + auto, continue until the routing plan reaches overview, a configured checkpoint, or a blocking validator/safety state. - If you must stop before convergence or a terminal route, tell the user the run is paused, current convergence has not been reached, persisted state is resumable, and the next recommended action is continue evolution through
$co-scientist-resume <run-dir>or an explicit continue request.