research-loop
Research Loop
Improve the user-selected implementation through controlled experiments. Treat evaluator integrity, comparable measurements, immutable evidence identity, recoverable changes, and an auditable decision trail as hard requirements.
Before creating or resuming run state, read references/run-state-protocol.md. It defines the canonical artifacts, identifiers, lifecycle, evidence schema, and atomic completion boundary. Use scripts/validate_run_state.py at every resume and completion boundary. The validator proves structural integrity, not scientific merit; independently apply the sealed acceptance rule before recording decided.
Preflight the workspace
Inspect the repository, harness, documentation, and Git state before writing files or asking questions.
- Require a Git repository and recoverable baseline commit. Do not proceed in an unversioned workspace.
- Identify pre-existing changes. If they overlap the writable scope, stop and ask the user to resolve or relocate them. If unrelated, create a branch-backed worktree without altering the original worktree.
- Infer the evaluation command, metric, mutable and immutable paths, constraints, generated state, environment, and expected resource use from repository sources when possible.
- Reject a request whose purpose is to improve the score by changing tests, fixtures, scoring logic, evaluation data, or protected feedback. Treat any candidate that changes those surfaces as invalid regardless of score.
Do not stash, overwrite, stage, clean, or destructively reset user changes.