setup-pstack
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseSetup pstack
配置 pstack
Write , the file that sets pstack's model per role. Skills read it when they delegate.
~/.config/pstack/pstack-models.md写入 ,该文件用于设置 pstack 针对每个角色使用的模型。各项 skill 在进行任务委派时会读取它。
~/.config/pstack/pstack-models.mdSteps
步骤
1. Detect available models
1. 检测可用模型
Call and keep the providers whose is true. Their models are what you can pass to a subagent in this session. That is the only source. If it returns no eligible model, say so and offer for every role. An entry is , plus when the model lists an effort option ( on Claude, on Codex). Never write an entry it did not return. The aliases and are always valid even though they are not detected models.
orchestrator_capabilitiescanRunChildTaskdelegate_taskinherit-parent<providerInstanceId>/<model>(<effort>)effortreasoningEffortinherit-parentauto调用 ,并保留 为 true 的 provider。它们的模型就是当前会话中可以传给 子 Agent 的模型。这是唯一的模型来源。如果未返回任何符合条件的模型,应明确告知用户,并为每个角色提供 。条目格式为 ;当模型列出 effort 选项时,还应附加 (Claude 使用 ,Codex 使用 )。绝不写入未返回的条目。 和 这两个别名始终有效,即使它们不是检测到的模型。
orchestrator_capabilitiescanRunChildTaskdelegate_taskinherit-parent<providerInstanceId>/<model>(<effort>)effortreasoningEffortinherit-parentauto2. Load current state
2. 加载当前状态
The default role-to-model mapping is the rule in step 3(b), over the roles shown in step 5. If already exists, read it and treat its line and its role values as the current choices. Otherwise start from those defaults. A line whose role is not in step 5, such as , is from a retired role. Drop it.
~/.config/pstack/pstack-models.md# budgethow critics默认的角色到模型映射以步骤 3(b) 中的规则为准,并仅适用于步骤 5 中列出的角色。如果 已存在,则读取该文件,并将其中的 行和角色值视为当前选择;否则从默认值开始。角色不在步骤 5 中的行,例如 ,属于已退役角色,应将其删除。
~/.config/pstack/pstack-models.md# budgethow critics3. Budget, map, and confirm
3. 预算、映射与确认
(a) Ask for a budget. Ask plainly in the thread. Offer these four options with these exact labels, and name the current budget when the file records one.
unlimited - max reasoninglarge - xhigh reasoningmedium - high reasoningsmall - medium reasoning
(b) Apply it. Build the working table from the skill defaults, and on a re-run keep any role you changed by model, list, or alias (, ). By default, code roles (, , , ) and the , , , and roles get the fastest strong coding model detected. , , , , and get the most capable model detected. Each panel role (, , , ) gets the most capable model of each distinct provider detected, up to three entries. , , , and set the effort of every real entry, panel entries included, to , , , or , on the ladder > > > > . If the model does not list the target, use the highest ladder option at or below it that the model lists, else mark the role as needing a choice. Never pick an option off the ladder, such as , , or . A model with no effort option gets no . and do not change. So under , a model that lists , , , and gets .
inherit-parentautofeature, refactoringbug-fixperf-issuehillclimbhow explorerwhy investigatorsswarm workersreflect toolingjudgment and prosehardest taskshow explainerwhy synthesizerreflect judgment, divergent, synthesizerarena runnersarena cross-judge poolarchitect runnersinterrogate reviewersunlimitedlargemediumsmallmaxxhighhighmediummaxxhighhighmediumlowultraultracodeultrathink(<effort>)inherit-parentautolargelowmediumhighmaxhigh(c) Show the roles and confirm. Show every role with its model, marking any real entry not in the detected set as needing a choice. Also list each line step 2 dropped. Ask whether to accept as-is or change specific roles, offering the detected models plus and (both mean: this role runs on the parent thread's model) as the options. Ask plainly in the thread. For panel roles (arena runners, architect runners, interrogate reviewers) the value is a list, and one subagent runs per entry, alias entries included, so the list length sets the count. is also a list, but Arena selects one value from it whose model family differs from the parent's when possible. is the default model for every worker unless a race or comparison assigns another model per arm.
inherit-parentautoarena cross-judge poolswarm workers(a) 询问预算。 在对话中直接询问。提供以下四个选项,并使用完全一致的标签;如果文件中记录了当前预算,还应说明当前预算。
unlimited - max reasoninglarge - xhigh reasoningmedium - high reasoningsmall - medium reasoning
(b) 应用预算。 根据 skill 默认值构建工作表;重新运行时,保留用户此前通过模型、列表或别名(、)修改过的任何角色。默认情况下,代码角色(、、、),以及 、、 和 角色,使用检测到的速度最快的强代码模型。、、、 和 使用检测到的能力最强模型。每个面板角色(、、、)使用每个不同 provider 检测到的能力最强模型,最多包含三个条目。、、 和 会将每个实际条目的 effort(包括面板条目)分别设置为 、、 或 ,其中阶梯顺序为 > > > > 。如果模型未列出目标 effort,则使用该模型已列出的、不高于目标值的最高阶梯选项;否则将该角色标记为需要选择。绝不选择阶梯之外的选项,例如 、 或 。没有 effort 选项的模型不应附加 。 和 保持不变。因此,在 下,如果一个模型列出了 、、 和 ,则应使用 。
inherit-parentautofeature, refactoringbug-fixperf-issuehillclimbhow explorerwhy investigatorsswarm workersreflect toolingjudgment and prosehardest taskshow explainerwhy synthesizerreflect judgment, divergent, synthesizerarena runnersarena cross-judge poolarchitect runnersinterrogate reviewersunlimitedlargemediumsmallmaxxhighhighmediummaxxhighhighmediumlowultraultracodeultrathink(<effort>)inherit-parentautolargelowmediumhighmaxhigh(c) 展示角色并确认。 展示每个角色及其模型,将任何不在检测结果中的实际条目标记为需要选择。同时列出步骤 2 中删除的每一行。询问用户是按当前配置接受,还是修改特定角色;可提供检测到的模型以及 和 作为选项(两者均表示:该角色在父线程的模型上运行)。应在对话中直接询问。对于面板角色(、、),其值是一个列表,每个条目对应运行一个子 Agent,别名条目也包含在内,因此列表长度决定运行数量。 同样是一个列表,但在可能的情况下,Arena 会从中选择一个模型系列与父线程不同的值。 是所有 worker 的默认模型,除非 race 或 comparison 为某个 arm 分配了另一个模型。
inherit-parentautoarena runnersarchitect runnersinterrogate reviewersarena cross-judge poolswarm workers4. Validate
4. 验证
Every real entry written must be in the result. Its provider has true, its model is listed under that provider, and its effort, when it has one, is one of that model's effort options. A model with no effort option has no . and always pass. If a chosen real entry is not available, stop and ask again.
orchestrator_capabilitiescanRunChildTask(<effort>)inherit-parentauto写入的每个实际条目都必须存在于 结果中。其 provider 的 必须为 true,模型必须列在该 provider 下;如果条目包含 effort,该 effort 还必须是该模型的 effort 选项之一。没有 effort 选项的模型不应包含 。 和 始终通过验证。如果选择的实际条目不可用,应停止操作并重新询问用户。
orchestrator_capabilitiescanRunChildTask(<effort>)inherit-parentauto5. Write the file
5. 写入文件
Write (create if it is missing) as a plain file with the header comments, a line with the chosen label and its target effort, and one line per role, using the same labels poteto-mode uses. Overwrite the whole file so re-runs stay idempotent. Shape:
~/.config/pstack/pstack-models.md~/.config/pstack/# budgetundefined将 写入为普通文件(如果 不存在则创建),其中包含头部注释、一行带有所选标签及目标 effort 的 ,以及每个角色对应的一行,并使用与 poteto-mode 相同的标签。覆盖整个文件,使重复运行保持幂等。格式如下:
~/.config/pstack/pstack-models.md~/.config/pstack/# budgetundefinedpstack model configuration. One line per role. Delete a line to fall back to the skill default.
pstack model configuration. One line per role. Delete a line to fall back to the skill default.
inherit-parent
or auto
as a value: the role runs on the parent thread's model (omit delegate_task target
). Alias entries in a panel list still count toward its fan-out.
inherit-parentautotargetinherit-parent
or auto
as a value: the role runs on the parent thread's model (omit delegate_task target
). Alias entries in a panel list still count toward its fan-out.
inherit-parentautotargetbudget: large (xhigh)
budget: large (xhigh)
feature, refactoring: <providerInstanceId>/<model> (<effort>)
bug-fix: <entry>
perf-issue: <entry>
hillclimb: <entry>
judgment and prose: <entry>
hardest tasks: <entry>
how explorer: <entry>
how explainer: <entry>
why investigators: <entry>
why synthesizer: <entry>
reflect tooling: <entry>
reflect judgment, divergent, synthesizer: <entry>
arena runners: <entry>, <entry>, <entry>
arena cross-judge pool: <entry>, <entry>, <entry>
swarm workers: <entry>
architect runners: <entry>, <entry>, <entry>
interrogate reviewers: <entry>, <entry>, <entry>
undefinedfeature, refactoring: <providerInstanceId>/<model> (<effort>)
bug-fix: <entry>
perf-issue: <entry>
hillclimb: <entry>
judgment and prose: <entry>
hardest tasks: <entry>
how explorer: <entry>
how explainer: <entry>
why investigators: <entry>
why synthesizer: <entry>
reflect tooling: <entry>
reflect judgment, divergent, synthesizer: <entry>
arena runners: <entry>, <entry>, <entry>
arena cross-judge pool: <entry>, <entry>, <entry>
swarm workers: <entry>
architect runners: <entry>, <entry>, <entry>
interrogate reviewers: <entry>, <entry>, <entry>
undefined6. Confirm
6. 确认
Tell the user the file was written and that it applies the next time a skill delegates, since skills read it then. Re-running this skill updates it.
告知用户文件已写入,并说明它会在 skill 下一次进行委派时生效,因为 skill 届时才会读取该文件。重新运行此 skill 会更新该文件。
7. Offer a verification skill (optional)
7. 提供验证 skill(可选)
Check whether the project has a way to drive the real app for proof (a skill, or an existing harness). If not, offer once: "want a project-local verification skill, so agents can drive the app the way a user does and prove changes work? I can generate one with /create-verification-skill." On yes, read from this skill's directory (the one your harness gave when it loaded this file, else on Claude Code and on Codex) and follow it. On no, move on without pushing.
verify-*../create-verification-skill/SKILL.md~/.claude/skills/setup-pstack/~/.agents/skills/setup-pstack/检查项目是否有可用于驱动真实应用进行验证的方式( skill 或现有 harness)。如果没有,仅提供一次以下选项:“需要创建一个项目本地的验证 skill 吗?这样 Agent 就能像用户一样驱动应用并证明更改可用?我可以通过 /create-verification-skill 生成一个。”如果用户同意,则从当前 skill 所在目录读取 (即 harness 加载此文件时提供的目录;如果未提供,则在 Claude Code 上使用 ,在 Codex 上使用 ),并按照其中的说明执行。如果用户拒绝,则不再继续推进。
verify-*../create-verification-skill/SKILL.md~/.claude/skills/setup-pstack/~/.agents/skills/setup-pstack/