一键导入
autonomy
Drive the Claude Code-client autonomous research loop — analyze project state, propose the next experiment, dispatch sub-agents to execute it, and iterate.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Drive the Claude Code-client autonomous research loop — analyze project state, propose the next experiment, dispatch sub-agents to execute it, and iterate.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
Work on Synapse pre-experiment research: project context, research questions, literature search, related works, and deep research reports.
Write and update Synapse documents, reports, synthesis, and Markdown figures. Use when embedding charts, plots, images, or report visuals in Synapse documents.
Plan, revise, execute, and report Synapse experiments, including compute access and result submission.
Understand the Synapse Claude Code plugin hooks, session lifecycle, and multi-agent parallel execution. Covers what each hook does, where plugin state lives, and how to run multiple experiments in parallel via Task sub-agents.
Synapse platform overview and router skill. Use it to orient on projects and then hand off to the stage-specific Synapse skills.
Configure Synapse MCP access for Claude Code with project-level .mcp.json and verify the connection.
基于 SOC 职业分类
| name | autonomy |
| description | Drive the Claude Code-client autonomous research loop — analyze project state, propose the next experiment, dispatch sub-agents to execute it, and iterate. |
| license | AGPL-3.0 |
| metadata | {"author":"Vincentwei1021","version":"0.6.1","category":"research","mcp_server":"synapse"} |
Use this skill when the user asks the Claude Code agent to drive research autonomously on a Synapse project: propose the next experiment, dispatch it, analyze the result, and repeat.
This is the CC-client autonomous loop. It does not depend on the server-side autonomousLoopEnabled flag (that flag is for realtime-transport agents). The loop runs entirely inside the current Claude Code session: the main agent is the orchestrator, and sub-agents spawned via the Task tool are auto-enrolled by the plugin's SubagentStart hook.
Full auto by default. When the user says "turn on autonomous loop", "run until done", or similar, assume full auto unless they say otherwise:
pending_start and immediately dispatched to sub-agents for execution.If the user explicitly asks for "human review before each experiment", switch to review mode: proposals land as pending_review and the loop pauses until they are approved externally.
Full-auto mode for the CC-client autonomous loop is opted in verbally ("turn on autonomous loop", "full auto", "run until done") and lives only in the main agent's current session context. It does not flip the server-side autonomousLoopEnabled / autonomousLoopMode fields, and it does not write any state to Synapse.
Full-auto is a one-way track. The only exits are:
Self-review never pauses full-auto. Sub-agent timeouts in self-review do not pause full-auto. Advisory issues raised by self-review do not pause full-auto. The main agent applies a single revision pass when feasible and continues. Whatever the main agent decides, it must be reflected in the reviewNote of the resulting synapse_review_experiment call (see template below).
Stay inside this skill when the work is about:
pending_start experimentssynapse_save_project_synthesisHand off to:
synapse_checkin() to refresh identity and current assignments.synapse_get_project_full_context({ researchProjectUuid }) to load brief, evaluation methods, past experiments, latest synthesis, and compute availability.full_auto default, or review)maxIterations, maxExperimentsProposed, maxComputeHoursEach iteration of the loop follows the same shape. The main agent runs this until a stop condition triggers.
Refresh project state
synapse_get_project_full_context({ researchProjectUuid })synapse_get_assigned_experiments({ researchProjectUuid, statuses: ["pending_start", "in_progress"] })Decide what this iteration should do
in_progress, the loop should monitor, not propose. Use CronCreate to schedule a heartbeat that reads synapse_get_experiment and reports back via synapse_report_experiment_progress — see the "Monitoring Long Runs With CronCreate" section in the experiments skill. Within the same turn, write a one-line progress note to the user and yield back; the heartbeat keeps the card fresh between user turns.pending_start (and mode is full_auto), dispatch it: spawn a Task-tool sub-agent with the experiment UUID in its prompt. The SubagentStart hook auto-injects the session UUID and execution workflow; the main agent does not need to call synapse_create_session.project_synthesis document via synapse_get_documents({ type: "project_synthesis" }) + synapse_get_document, and update it with synapse_save_project_synthesis only if new results add something the existing synthesis does not already cover.synapse_propose_experiment. One independent run per proposal — split comparisons, ablations, and parameter sweeps into separate proposals.Respect compute reality
synapse_list_compute_nodes({ researchProjectUuid, onlyAvailable: true }). Do not over-propose concurrent experiments beyond what available GPUs can run.computePoolUuid, reservations must stay inside that pool.Log the decision
synapse_add_comment({ targetType: "research_project", ... }) summarizing what this iteration decided and why. This gives the human a readable audit trail in the UI.Check stop conditions, then either return control to the user (normal case) or immediately re-run step 1 if the user asked for tight, unattended iteration within a single turn.
synapse_propose_experimentBefore calling synapse_propose_experiment, spawn a Task sub-agent to self-review the proposal text (motivation, hypothesis, method, success criteria, compute fit) against the project context and evaluation methods. Self-review is in-session only — it does not write to Synapse. Refine the proposal text based on the verdict, then call synapse_propose_experiment.
The same applies after synapse_create_experiment lands a draft inside the loop: self-review the draft via a sub-agent, revise, then push to pending_review and (in full-auto) auto-approve.
The main agent does not SSH into GPU nodes, does not run training loops, and does not call synapse_start_experiment itself (unless the user explicitly tells it to run an experiment inline with no sub-agent). Its job is:
All execution work — synapse_start_experiment, synapse_get_node_access_bundle, SSH, training, synapse_report_experiment_progress, synapse_submit_experiment_results — happens inside sub-agents. Spawn one Task sub-agent per pending_start experiment. Each sub-agent receives its session UUID and the full experiment workflow automatically via the SubagentStart hook.
A good proposal includes:
Bad proposals to avoid:
Exit the loop and report back to the user when any of these hold:
maxIterations reached (default: ask the user up front)maxExperimentsProposed reachedmaxComputeHours used across this loop's runscompleted and there is no promising direction leftOn exit, summarize what was run, what was learned, the current state of the synthesis document, and any recommended follow-ups for a human.
reviewNote Template (CC Full-Auto Only)When the main agent auto-approves a draft after a successful self-review:
synapse_review_experiment({
experimentUuid,
decision: "approved",
reviewNote: "Full-auto session authorized by <ownerName> at <ISO time>. Self-review pass: <key points>.",
})
When self-review failed or timed out, use:
reviewNote: "Full-auto session authorized by <ownerName> at <ISO time>. Self-review skipped: <reason>."
Either way, full-auto continues — the reviewNote is the audit truth.
If synapse_get_research_project shows the project already has autonomousLoopEnabled = true and a loop agent assigned on the realtime side, do not also run the CC-client loop against it. Warn the user and either defer, or ask them to disable the server-side loop first — running both will double-dispatch proposals and reservations.
synapse_checkin()
synapse_get_project_full_context({ researchProjectUuid })
synapse_get_assigned_experiments({ researchProjectUuid, statuses: ["pending_start", "in_progress"] })
# Monitor in-flight experiments if any
# Else dispatch pending_start via Task sub-agents
# Else synthesize if new results need analysis
# Else propose next experiment
synapse_add_comment({
targetType: "research_project",
targetUuid: "<projectUuid>",
content: "Iteration N — dispatched experiment <uuid> / proposed <title> / no-op (synthesis current)"
})