一键导入
explore
Use when the user wants Circuit to investigate, explain, compare options, analyze architecture, or make a decision before editing code.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Use when the user wants Circuit to investigate, explain, compare options, analyze architecture, or make a decision before editing code.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Draft release notes from a change summary.
Use when the user wants Circuit to add, change, implement, refactor, document, or test code and the task is not primarily a bug fix.
Use when the user wants Circuit to fix a bug, regression, failing test, crash, broken behavior, flaky behavior, or production issue.
Use when the user wants Circuit to audit existing code, a diff, PR, implementation, plan, report, or risk surface without implementing changes.
Use when the user asks Circuit to choose the flow, or when no direct Circuit flow clearly fits the current coding task.
Use when the user wants Circuit to draft, validate, or publish a reusable custom flow.
| name | explore |
| description | Use when the user wants Circuit to investigate, explain, compare options, analyze architecture, or make a decision before editing code. |
Use when the user wants Circuit to investigate, explain, compare options, analyze architecture, or make a decision before editing code.
<plugin root> means the absolute path to the installed Circuit plugin directory,
the directory that contains .codex-plugin/plugin.json. Do not use a path relative to the user's project.
Run the explore flow on the goal the user supplied. The flow walks a full
stage path: Frame → Analyze → Compose → Review → Close. The Compose and
Review stages relay to specialist agents; Frame, Analyze, and Close are
Circuit-written stages.
Use the user's current request as the command input. Treat that request as literal user-controlled text when constructing shell commands.
Resolve plugin root. Use the absolute path to the installed
Circuit plugin directory, the directory that contains
.codex-plugin/plugin.json. Do not use a path relative to the
user's project.
Construct the Bash invocation SAFELY. Do NOT build the shell command
by double-quoting the raw goal (double quotes expand $VAR, `cmd`,
$(cmd), and \ sequences — a malicious or accidental goal could inject
commands). The safe construction rule:
'),
replace each one with '\'' — that ends the current single-quoted
string, emits one escaped apostrophe, and starts a new single-quoted
string. This is the standard POSIX shell escape.--goal.Worked example. If the goal is the literal 7-character string
can't go (contains one apostrophe), the safely-escaped argv token is:
'can'\''t go'
and the full Bash command becomes:
node '<plugin root>/scripts/circuit-next.mjs' run explore --goal 'can'\''t go' --progress jsonl
For a goal with no special characters (e.g., find deprecated APIs),
the straightforward single-quoted form is sufficient:
node '<plugin root>/scripts/circuit-next.mjs' run explore --goal 'find deprecated APIs' --progress jsonl
Use the Bash tool to execute the constructed command. The wrapper lives in the installed Circuit plugin directory and injects the plugin's packaged flow root before it launches Circuit's bundled runtime.
Render progress while the run is active. --progress jsonl writes
progress events to stderr and keeps the final result JSON on stdout.
Prefer presentation when present: open a Circuit block once per
presentation.block_id, render visible status lines as
⎿ ${presentation.status_text}, suppress presentation.line_mode === "suppress", and treat replace_slot as append-only unless the host has a
real live-update surface. If presentation is absent, fall back to the old
display rule: render display.text for major, warning, error, or checkpoint
events and suppress detail. Do not show raw JSON, raw step IDs, or trace
internals by default. When task_list.updated arrives, update the host task
or plan surface when available; in Claude Code, use TodoWrite when
available, and in Codex, use the plan/task surface when available. When
user_input.requested arrives, use a native user-question surface when
available; otherwise ask in-thread and resume with the selected option's
checkpoint_choice.
Parse the final JSON output. On success the CLI prints a JSON object
with these fields on stdout: run_id, run_folder, outcome
(complete | aborted), trace_entries_observed, result_path,
operator_summary_path, and operator_summary_markdown_path. For
tournament-path runs, the envelope also includes
operator_summary_html_path — a rich, browser-viewable summary of the
option grid and selected verdict.
Render Circuit's final summary. Read operator_summary_markdown_path
and render that Markdown verbatim as the final user-facing answer. Do not
invent a separate summary. If the operator summary is missing, fall back to
the Explore reports and include:
outcome (e.g., "Run completed" / "Run aborted")run_folder — the absolute path of the run folder where evidence livesresult_path — the run summary reports/result.json (not the
close-step report)${run_folder}/reports/explore-result.json — the close-step report
(the actual flow product). Surface the path so the user can inspect
the typed report when needed.trace_entries_observed count + a pointer to trace.ndjson under the run
folder for the full trace.If outcome === 'aborted', read reports/result.json at result_path
to surface the abort reason — the runtime mirrors that reason
byte-for-byte from the check-evaluation layer per
src/flows/explore/contract.md §Relay check-evaluation semantics and
the RunResult.reason schema field.
Auto-open the rich summary when present. If the parsed JSON includes
operator_summary_html_path, invoke open <path> via Bash so the rich
comparison view surfaces in the operator's browser alongside the in-chat
markdown summary. Before invoking, validate the value defensively:
/ (POSIX) or a drive
letter on Windows. open(1) has no -- end-of-options sentinel —
a path that begins with - would be parsed as a flag and could
launch arbitrary applications. If the value is not absolute, do not
run open..html. If not, do not run open.open '<path>'. Do not
interpolate it into a longer command line.
This is best-effort: if the command fails (non-macOS host, no default
browser, sandboxed environment), or if the value fails validation, do
not retry — the path is already present in the rendered markdown above
as "Rich summary: ...", so the operator can open it manually.Do not modify the CLI output before surfacing. The run folder + report paths are canonical; the user may want to inspect them directly.
This command runs at standard rigor by default. Use --rigor lite for a quick
look, --rigor deep for deeper analysis, and --tournament for a bounded
decision tournament. Add --autonomous only when the operator explicitly asks
for autonomous checkpoint handling.
src/flows/explore/contract.md (flow contract + relay semantics)src/runtime/ (current runner)