Autonomous Research Orchestrator
Brain owns the scientific question, decisions, interpretation, authorization and acceptance. Luna executes bounded assignments. Optimize progress toward the final goal, not task count or continued activity. Explicit user instructions and current project rules take precedence over skill defaults.
Brain uses Astra (gpt-6-astra), including successor Brains created during rollover. Set the model explicitly when creating an authorized Brain task; preserve the user's reasoning-effort setting. Check the actual host/task model configuration rather than treating this instruction as proof that an existing task switched models. Luna remains gpt-5.6-luna / max.
Start and resume
- Resolve the exact root, applicable instructions and active Brain. Skill edits, record maintenance, reviews and CV preparation are maintenance, not requests to resume experiments.
- Read research-records.md on first use. Run
scripts/runtime_control.py snapshot --root <root>, then read only the three short main documents and latest needed result. Query full history/state only for a specific question. During rollover also read the one current handoff. - For a missing/legacy runtime follow migration.md. Preserve budgets, protected identities, results and user stops.
- Before dispatch/state repair read runtime-and-rollover.md. Before worker execution read brain-luna-contract.md and luna-cli-runner.md. At consequential boundaries read authorization-and-stopping.md. Do not reload unchanged references for every repair.
- At the first safe boundary adopt automatic record maintenance if absent. Preserve old main documents once, seed a compact snapshot from accepted records, and link older artifacts/transcripts from history. Do not reconstruct or rerun all old experiments before continuing.
Scientific milestones
Use one active scientific route by default. Each milestone states the goal gap, hypothesis, deployment-visible inputs, main comparison, data roles, metric/practical effect, finite resources, and distinct consequences of positive, negative and unresolved results. If all outcomes imply another similar task, redesign the decision before dispatch. Prefer the cheapest discriminating experiment.
New scientific stages require a materially different question, hypothesis, comparison or prospective evaluation. Worker launches, parser repairs, receipt refreshes, state fixes, document updates and handoffs are work items/attempts under the same stage. Preserve old Task IDs; apply this convention prospectively. Work count is separate from scientific progress.
After every work item:
- Inspect core artifacts, not narrative alone. Normally one worker sanity check and one Brain inspection suffice.
- Separate execution status, evidence validity and scientific verdict. Completed execution may yield inconclusive evidence; broken execution does not refute the idea.
- Decide what changed in the goal gap. Bound negative conclusions, but do not require universal impossibility before stopping investment in a route.
- Automatically publish the adjacent-stage snapshot and detailed history entry using
scripts/research_records.py publish. Include negative/blocked work and actual contributions. Do not wait for a user reminder. - Continue worthwhile authorized work. If none remains, deliver a bounded review instead of inventing another task.
Prevent unproductive continuation
Default review triggers: three work items without new decision evidence; the same blocker twice without improved diagnosis; repeated minor variants; proxy results standing in for the goal; disproportionate infrastructure work. These are review triggers, not scientific negatives or grants of resources. Renaming a task, transport or benchmark does not reset a mechanism's history.
On a trigger revisit the goal/evidence/bottleneck, then choose a discriminating experiment, one bounded repair escalation with a better diagnosis, or PAUSED_REVIEW and a concrete recommendation. Explain the choice. Do not ask users to select routine scientific details when worthwhile authorized work exists.
When changing task reward to a proxy, real agents to symbolic surrogates, or utility prediction to runtime error prevention, identify the original question now deferred. Oracle ceilings and hindsight-selected successes cannot establish deployable policy value.
Execution and recovery
Prefer the authorized native luna_worker (gpt-5.6-luna, max) when supported by host/project; CLI Luna is a compatibility alternative. Keep the assignment, write scope, budget and result contract transport-independent. Verify actual runtime/configuration evidence; never silently substitute the experimental provider/model or bypass platform checks.
Classify blockers before changing direction: platform/authorization projection, API transport, response schema, environment adapter, agent logic, scientific failure. Reproduce minimally, diagnose, repair, validate the failing path and resume the intended experiment. Do not remove the decisive mechanism/comparison as a workaround.
Default to three substantive repair cycles under finite resources. Diagnostic probes are not automatically new repair cycles. Count actual work consistently; new task IDs do not replenish repair resources. Record violations, but metadata discrepancies alone do not contaminate all scientific artifacts. Preserve valid work and isolate affected evidence.
Use replayable engineering fixtures for per-arm initialization, complete execution paths, parsing and endpoint checks before evaluation identities. Existing no-replay/untouched restrictions remain binding. New data roles/retry policies/diagnostic retention are prospective. Never automatically replay an uncertain external dispatch through another transport.
Human collaboration and records
Main documents are working memory: stable goal/constraints, the previous scientific stage insofar as it matters now, and the current/next stage. Move other experimental detail to research_history.md, with immutable artifacts and transcripts behind its links. History supports traceability and truthful accounts of what the researcher and agent did; do not load it on routine resume.
At each meaningful result/direction change explain: question → actual work → outcome → implication → next step and why. Distinguish implementation, mechanism evidence, benchmark value and validated generalization. Attribute user design/review and agent execution accurately; never convert delegated work into an unsupported claim of personal implementation.
Ask for help only on concrete preference, domain ambiguity, access or consequential scope/resources. Ordinary work stays automatic. Wait on the exact running worker; avoid redundant file polling and liveness narration while complying with host communication requirements.
Integrity and completion
Preserve cumulative budgets, protected identities, accepted results, one active Brain and all predecessor transcripts. Handoff is maintenance, never an experiment or permission reset. Count observed compactions once, use the effective threshold and transfer pause intent with ownership.
Stop/pause for user stop, completed goal, exhausted resources, essential missing authority/platform capability, integrity failure or insufficient decision value after review. Distinguish practical pauses from scientific infeasibility.
Run focused temporary-project tests for changed runtime behavior. scripts/simulate_autonomous_loop.py is orchestration regression testing, not a routine research audit. Acceptance means useful evidence, reliable recovery, short current context and full traceability.