outsider
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseOutsider — Quick Opinion From Another Agent
Outsider — 从其他Agent获取快速意见
Purpose
用途
Get a fast opinion from an agent CLI running outside this session. One reviewer, no synthesis step
— a sanity check, not an exhaustive review. Use when you want a board.
review:consiliumThe value is structural: the responder shares none of this conversation's context and runs in its
own process, usually on a different model family. Which vendor answers is incidental, which is why
this skill resolves the agent instead of naming one.
从当前会话外运行的Agent CLI获取快速意见。仅一位评审者,无综合步骤——只是合理性检查,而非详尽评审。若需要评审委员会,请使用。
review:consilium其价值在于结构层面:响应者不共享当前对话的任何上下文,且在独立进程中运行,通常基于不同的模型系列。具体由哪家厂商的模型回答并不重要,这也是该Skill会自动选择Agent而非指定某一个的原因。
When to Use
使用场景
- "ask codex", "ask claude", "what would another agent say", "get an outside opinion"
- ,
/outsider,/outsider review/outsider codex review - A quick external sanity check on an approach or decision
- An independent review of the current code changes
- 需求如:"询问codex"、"询问claude"、"另一个Agent会怎么说"、"获取外部意见"
- 命令格式:、
/outsider、/outsider review/outsider codex review - 对某一方案或决策进行快速外部合理性检查
- 对当前代码变更进行独立评审
Requirements
依赖要求
timeoutgtimeoutbrew install coreutilsgtimeoutrun-outsider.sh listtimeoutgtimeoutbrew install coreutilsgtimeoutrun-outsider.sh listAgent Selection
Agent选择规则
The script picks the agent. Always pass — , ,
, or — so it never asks you to review your own work. Add only when
the user named one; that overrides everything, host included.
--host <the agent you are>claudecodexopencodepi--agent <name>bash
bash <skill-dir>/scripts/run-outsider.sh list --host claudelistDefault order is , minus the host. A missing CLI is a skip, not a
failure: the script prints why and exits 0. Callers can treat this leg as droppable.
codex claude opencode piNo model or reasoning level is set by default — the chosen agent runs on whatever it is already
configured to use. To pin one, or to change the preference order, edit
(, ,
, ); the same names work as environment variables
and override the file. has the full registry, the config keys with examples,
and how to add an agent.
~/.config/edloidas/outsider/configOUTSIDER_AGENTSOUTSIDER_MODEL_<AGENT>OUTSIDER_EFFORT_<AGENT>OUTSIDER_ARGS_<AGENT>references/agents.md由脚本自动选择Agent。必须传入参数——可选值为、、或——以避免让你自己评审自己的工作。仅当用户指定某一Agent时,才添加参数;该参数会覆盖所有设置,包括host参数。
--host <当前运行的Agent>claudecodexopencodepi--agent <名称>bash
bash <skill-dir>/scripts/run-outsider.sh list --host claudelist默认选择顺序为,会排除当前host对应的Agent。若某一Agent的CLI缺失,脚本会跳过该Agent而非执行失败:脚本会打印原因并以0状态码退出。调用方可以忽略这一情况。
codex claude opencode pi默认未设置模型或推理级别——选中的Agent会使用其已配置的参数运行。如需固定模型或修改选择顺序,可编辑文件(配置项包括、、、);同名环境变量会覆盖配置文件中的设置。包含完整的Agent注册表、带示例的配置项,以及添加新Agent的方法。
~/.config/edloidas/outsider/configOUTSIDER_AGENTSOUTSIDER_MODEL_<AGENT>OUTSIDER_EFFORT_<AGENT>OUTSIDER_ARGS_<AGENT>references/agents.mdAsk Mode
提问模式
-
Prepare a focused question with context. Extract only the relevant code or plan excerpt — don't dump the conversation. Keep it under 2000 words.
-
Resolve the temp directory (once per session):bash
bash <skill-dir>/scripts/resolve-tmp.shUse the output as. Pick a run id<TMP>once too — a session identifier the host already exposes, or the current<ID>— and reuse the same literal string for every file in this run so concurrent runs don't overwrite each other.YYYYMMDD-HHMMSS -
Write the question with a file-write tool, not a Bash heredoc — heredocs with markdown headers trip some hosts' shell security heuristics. Write to:
<TMP>/outsider-<ID>-question.md## Question <clear, specific question> ## Context <relevant code, plan excerpt, or description> -
Run it:bash
bash <skill-dir>/scripts/run-outsider.sh ask --host claude <TMP>/outsider-<ID>-question.md
-
准备带上下文的聚焦问题。仅提取相关代码或方案片段——不要粘贴完整对话内容。控制在2000字以内。
-
解析临时目录(每个会话仅需执行一次):bash
bash <skill-dir>/scripts/resolve-tmp.sh将输出结果作为。同时选择一个运行ID<TMP>——可以是host已暴露的会话标识符,或当前时间<ID>——并在本次运行的所有文件中重复使用该字符串,避免并发运行时文件被覆盖。YYYYMMDD-HHMMSS -
使用文件写入工具编写问题,不要使用Bash heredoc——包含markdown标题的heredoc会触发部分host的Shell安全检测。将内容写入:
<TMP>/outsider-<ID>-question.md## 问题 <清晰、具体的问题> ## 上下文 <相关代码、方案片段或描述> -
执行命令:bash
bash <skill-dir>/scripts/run-outsider.sh ask --host claude <TMP>/outsider-<ID>-question.md
Custom preamble
自定义前置提示
Both modes prepend a prompt file to whatever you pipe them — for ask,
for review. A caller with its own prompt for the responder passes
to swap it:
references/prompt.mdreferences/review-prompt.md--preamble <file>bash
bash <skill-dir>/scripts/run-outsider.sh ask --host claude \
--preamble <caller-skill-dir>/references/its-own-prompt.md <TMP>/outsider-<ID>-question.mdThe preamble replaces the default entirely, so it has to carry the responder's whole brief —
including its output shape. uses this for its outside board seat.
review:consilium两种模式都会在你传入的内容前添加一个提示文件——提问模式使用,评审模式使用。若调用方有自定义提示,可传入参数替换默认提示:
references/prompt.mdreferences/review-prompt.md--preamble <文件路径>bash
bash <skill-dir>/scripts/run-outsider.sh ask --host claude \
--preamble <caller-skill-dir>/references/its-own-prompt.md <TMP>/outsider-<ID>-question.md自定义前置提示会完全替换默认提示,因此需要包含响应者的完整要求——包括输出格式。会通过该功能为外部评审席位传入自定义提示。
review:consiliumReview Mode
评审模式
Pick the scope first:
| Flag | When |
|---|---|
| Staged, unstaged, or untracked changes exist (the default) |
| On a feature branch, review against the base |
| Review one commit |
Review takes 3–10 minutes. Pass so the script's own timer fires first and can print its
timeout message, and set the surrounding command timeout to the highest value the host allows:
540bash
bash <skill-dir>/scripts/run-outsider.sh review --host claude --uncommitted 540首先选择评审范围:
| 参数 | 适用场景 |
|---|---|
| 存在已暂存、未暂存或未跟踪的变更(默认选项) |
| 在特性分支上,基于基准分支进行评审 |
| 评审单个提交 |
评审耗时3-10分钟。传入参数可让脚本自身的计时器先触发并打印超时提示,同时将外部命令的超时时间设置为host允许的最大值:
540bash
bash <skill-dir>/scripts/run-outsider.sh review --host claude --uncommitted 540Presenting Output
输出展示规范
The first line of the output is . Always say which agent answered —
the response is not interpretable without it.
[outsider] agent: <name>- Lead with "Codex's take:", "From pi:", and so on, using the agent the script actually ran
- Don't blindly adopt the findings — evaluate them with your own context
- Highlight agreements; flag disagreements and explain which side you land on and why
- The responder only ever saw what you piped it. Discount findings that are really requests for context it could not see
- Empty output or an error line means it had nothing to offer — say so and move on
输出的第一行是。必须说明是哪个Agent给出的回答——缺少该信息则无法解读响应内容。
[outsider] agent: <名称>- 以“Codex的观点:”、“来自pi:”等开头,使用脚本实际运行的Agent名称
- 不要盲目采纳结论——结合自身上下文进行评估
- 突出共识;标记分歧并说明你的立场及原因
- 响应者仅能看到你传入的内容。若结论是请求更多上下文,可忽略该结论
- 空输出或错误行表示Agent无法提供有效意见——告知用户后继续后续流程
Edge Cases
边缘情况处理
- No agent installed, or only the host is — the script says so and exits 0. Don't retry.
- Timeout — the script prints a timeout message. Note it and proceed without.
- No binary — the script skips rather than running an agent unbounded, and says which tool is missing. Report that to the user and proceed without an outside opinion; do not retry.
timeout - Large context — keep ask mode under 2000 words. For large changes use review mode, which extracts the diff itself.
- 无Agent已安装,或仅安装了host对应的Agent——脚本会提示并以0状态码退出。无需重试。
- 超时——脚本会打印超时提示。记录该情况后继续后续流程。
- 无二进制文件——脚本会跳过执行而非无限制运行Agent,并提示缺失的工具。告知用户后无需重试,直接跳过外部意见环节。
timeout - 大上下文内容——提问模式下控制在2000字以内。若变更内容较大,请使用评审模式,该模式会自动提取差异内容。
Notes for Callers
调用方注意事项
This skill stays model-invocable on every host. The predecessor skill set
only because calling Claude from Claude was recursive; selection
now handles that structurally, so there is nothing left to suppress.
claudedisable-model-invocation: trueOther skills invoke this one as a skill, not by script path — a repo-relative path only resolves
inside one checkout.
review:consilium该Skill可在所有host上被模型调用。之前的Skill设置了,只是因为从Claude调用Claude会导致递归;现在选择机制从结构上避免了该问题,因此无需再禁用模型调用。
claudedisable-model-invocation: true其他Skill需通过Skill名称调用该工具,而非脚本路径——相对仓库路径仅在单个检出目录中有效。
review:consilium