outsider

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Outsider — 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
review:consilium
when you want a board.
The 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

依赖要求

timeout
or
gtimeout
must be on PATH — both ship with GNU coreutils. Stock macOS has neither;
brew install coreutils
provides
gtimeout
. Without one the script skips instead of running an agent CLI unbounded, because a hung agent would hang the caller's turn.
run-outsider.sh list
reports it when it is missing.
timeout
gtimeout
必须在PATH中——二者均随GNU coreutils发布。原生macOS未预装这两个工具;可通过
brew install coreutils
安装
gtimeout
。若缺少该工具,脚本会跳过执行而非无限制运行Agent CLI,因为Agent挂起会导致调用者进程也挂起。
run-outsider.sh list
会在工具缺失时进行提示。

Agent Selection

Agent选择规则

The script picks the agent. Always pass
--host <the agent you are>
claude
,
codex
,
opencode
, or
pi
— so it never asks you to review your own work. Add
--agent <name>
only when the user named one; that overrides everything, host included.
bash
bash <skill-dir>/scripts/run-outsider.sh list --host claude
list
prints what is installed and what would be selected, and spends nothing.
Default order is
codex claude opencode pi
, 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.
No 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
~/.config/edloidas/outsider/config
(
OUTSIDER_AGENTS
,
OUTSIDER_MODEL_<AGENT>
,
OUTSIDER_EFFORT_<AGENT>
,
OUTSIDER_ARGS_<AGENT>
); the same names work as environment variables and override the file.
references/agents.md
has the full registry, the config keys with examples, and how to add an agent.
由脚本自动选择Agent。必须传入
--host <当前运行的Agent>
参数——可选值为
claude
codex
opencode
pi
——以避免让你自己评审自己的工作。仅当用户指定某一Agent时,才添加
--agent <名称>
参数;该参数会覆盖所有设置,包括host参数。
bash
bash <skill-dir>/scripts/run-outsider.sh list --host claude
list
命令会列出已安装的Agent及将被选中的Agent,且不会产生任何调用开销。
默认选择顺序为
codex claude opencode pi
,会排除当前host对应的Agent。若某一Agent的CLI缺失,脚本会跳过该Agent而非执行失败:脚本会打印原因并以0状态码退出。调用方可以忽略这一情况。
默认未设置模型或推理级别——选中的Agent会使用其已配置的参数运行。如需固定模型或修改选择顺序,可编辑
~/.config/edloidas/outsider/config
文件(配置项包括
OUTSIDER_AGENTS
OUTSIDER_MODEL_<AGENT>
OUTSIDER_EFFORT_<AGENT>
OUTSIDER_ARGS_<AGENT>
);同名环境变量会覆盖配置文件中的设置。
references/agents.md
包含完整的Agent注册表、带示例的配置项,以及添加新Agent的方法。

Ask Mode

提问模式

  1. Prepare a focused question with context. Extract only the relevant code or plan excerpt — don't dump the conversation. Keep it under 2000 words.
  2. Resolve the temp directory (once per session):
    bash
    bash <skill-dir>/scripts/resolve-tmp.sh
    Use the output as
    <TMP>
    . Pick a run id
    <ID>
    once too — a session identifier the host already exposes, or the current
    YYYYMMDD-HHMMSS
    — and reuse the same literal string for every file in this run so concurrent runs don't overwrite each other.
  3. 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>
  4. Run it:
    bash
    bash <skill-dir>/scripts/run-outsider.sh ask --host claude <TMP>/outsider-<ID>-question.md
  1. 准备带上下文的聚焦问题。仅提取相关代码或方案片段——不要粘贴完整对话内容。控制在2000字以内。
  2. 解析临时目录(每个会话仅需执行一次):
    bash
    bash <skill-dir>/scripts/resolve-tmp.sh
    将输出结果作为
    <TMP>
    。同时选择一个运行ID
    <ID>
    ——可以是host已暴露的会话标识符,或当前时间
    YYYYMMDD-HHMMSS
    ——并在本次运行的所有文件中重复使用该字符串,避免并发运行时文件被覆盖。
  3. 使用文件写入工具编写问题,不要使用Bash heredoc——包含markdown标题的heredoc会触发部分host的Shell安全检测。将内容写入
    <TMP>/outsider-<ID>-question.md
    ## 问题
    <清晰、具体的问题>
    
    ## 上下文
    <相关代码、方案片段或描述>
  4. 执行命令
    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 —
references/prompt.md
for ask,
references/review-prompt.md
for review. A caller with its own prompt for the responder passes
--preamble <file>
to swap it:
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
The preamble replaces the default entirely, so it has to carry the responder's whole brief — including its output shape.
review:consilium
uses this for its outside board seat.
两种模式都会在你传入的内容前添加一个提示文件——提问模式使用
references/prompt.md
,评审模式使用
references/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:consilium
会通过该功能为外部评审席位传入自定义提示。

Review Mode

评审模式

Pick the scope first:
FlagWhen
--uncommitted
Staged, unstaged, or untracked changes exist (the default)
--base <branch>
On a feature branch, review against the base
--commit <sha>
Review one commit
Review takes 3–10 minutes. Pass
540
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:
bash
bash <skill-dir>/scripts/run-outsider.sh review --host claude --uncommitted 540
首先选择评审范围:
参数适用场景
--uncommitted
存在已暂存、未暂存或未跟踪的变更(默认选项)
--base <branch>
在特性分支上,基于基准分支进行评审
--commit <sha>
评审单个提交
评审耗时3-10分钟。传入
540
参数可让脚本自身的计时器先触发并打印超时提示,同时将外部命令的超时时间设置为host允许的最大值:
bash
bash <skill-dir>/scripts/run-outsider.sh review --host claude --uncommitted 540

Presenting Output

输出展示规范

The first line of the output is
[outsider] agent: <name>
. Always say which agent answered — the response is not interpretable without it.
  • 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
输出的第一行是
[outsider] agent: <名称>
必须说明是哪个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
    timeout
    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.
  • Large context — keep ask mode under 2000 words. For large changes use review mode, which extracts the diff itself.
  • 无Agent已安装,或仅安装了host对应的Agent——脚本会提示并以0状态码退出。无需重试。
  • 超时——脚本会打印超时提示。记录该情况后继续后续流程。
  • timeout
    二进制文件
    ——脚本会跳过执行而非无限制运行Agent,并提示缺失的工具。告知用户后无需重试,直接跳过外部意见环节。
  • 大上下文内容——提问模式下控制在2000字以内。若变更内容较大,请使用评审模式,该模式会自动提取差异内容。

Notes for Callers

调用方注意事项

This skill stays model-invocable on every host. The predecessor
claude
skill set
disable-model-invocation: true
only because calling Claude from Claude was recursive; selection now handles that structurally, so there is nothing left to suppress.
Other skills invoke this one as a skill, not by script path — a repo-relative path only resolves inside one checkout.
review:consilium
runs its outside board seat through this skill, passing its own seat prompt as the preamble. That was the last duplicate runner in the collection; there is now one implementation of "call an agent CLI that is not the host".
该Skill可在所有host上被模型调用。之前的
claude
Skill设置了
disable-model-invocation: true
,只是因为从Claude调用Claude会导致递归;现在选择机制从结构上避免了该问题,因此无需再禁用模型调用。
其他Skill需通过Skill名称调用该工具,而非脚本路径——相对仓库路径仅在单个检出目录中有效。
review:consilium
通过该Skill运行其外部评审席位,并传入自定义的席位提示作为前置内容。这是最后一个重复实现的运行器;现在“调用非host的Agent CLI”仅有一种实现方式。