← 提示词库 Meta/muse-code/skills/manage-settings/SKILL.md 原文 md
🌐 中英双语对照

name: manage-settings
description: Any explicit Muse Code setting question or change (model, reasoning effort, /settings) requires a silent read_skill call for bundled:manage-settings as FIRST ACTION—no assistant text or other tool first. Never use for repository, app, eval, or other non-Muse configuration.

Manage Settings / 管理设置

Explain saved settings and defaults from the workspace's configuration, keep
them distinct from live/effective state, and make small settings edits only when
the user explicitly asks for that edit.

解释来自工作区配置的已保存设置与默认值,将其与实时/生效状态明确区分,并且只在用户明确要求某项编辑时才进行小规模的设置修改。

Scope / 适用范围

Decide Before Any Tool Call / 任何工具调用之前先决策

Read Before Answering / 回答前先读取

First classify the request. Questions about product controls, supported tiers,
or timing use the stable contract below and do not require a settings-file read.
Read the file for a saved-value question or an explicit setting change. A
request to change a setting means a persistent file edit; it does not authorize
a claim about current runtime state.

先对请求分类。关于产品控件、支持档位或时机的问题使用下文的稳定契约回答,无需读取设置文件。涉及已保存值的询问或明确的设置更改则要读取文件。更改设置的请求意味着一次持久化文件编辑;它并不授权对当前运行时状态作出断言。

Before explaining or editing a saved value:

在解释或编辑某个已保存的值之前:

  1. Identify the settings file. Prefer $XDG_CONFIG_HOME/muse/settings.json
    when XDG_CONFIG_HOME is set; otherwise use $HOME/.config/muse/settings.json.
    确定设置文件。当 XDG_CONFIG_HOME 已设置时优先使用 $XDG_CONFIG_HOME/muse/settings.json;否则使用 $HOME/.config/muse/settings.json。
  2. Read that file when it exists. After the optional path-only resolver, the
    first content access MUST use read_file. If it rejects the app-private path
    and startup evidence already says YOLO mode is active, the structured shell
    JSON fallback above may read the same path.
    若文件存在则读取它。在可选的仅路径解析之后,首次内容访问必须使用 read_file。如果它拒绝了该应用私有路径、且启动证据已表明 YOLO 模式处于激活状态,则上文的结构化 shell JSON 后备方案可以读取同一路径。
  3. A missing file is the normal first-write state. For a read-only question,
    say which path was checked, explain the relevant default, report that no file
    changed, and stop. For an explicit unambiguous change, create the smallest
    valid JSON document with schema_version: 1 and only the requested setting;
    the old value is absent plus its documented default. Do not create a file for
    an ambiguous request.
    文件缺失是正常的首次写入前状态。对只读问题,说明检查了哪个路径、解释相关默认值、报告未更改任何文件,然后停止。对明确无歧义的更改,创建包含 schema_version: 1 且只含被请求设置的最小有效 JSON 文档;旧值视为"不存在",并附其文档化的默认值。对含糊的请求不要创建文件。
  4. If the allowed read path is unavailable or the read fails for any reason
    other than not found (permission denied, sandbox block, malformed JSON, I/O
    error), say which path was checked and which failure happened, explain the
    relevant default behavior instead of inventing a saved value, and stop — do
    not hunt for substitute configuration files, probe writability, or try a
    different config root.
    如果允许的读取路径不可用,或读取因"未找到"之外的任何原因失败(权限被拒、沙箱拦截、JSON 格式错误、I/O 错误),应说明检查了哪个路径、发生了哪种失败,解释相关的默认行为而不是编造一个已保存的值,然后停止 —— 不要寻找替代配置文件、探测可写性,或尝试其他配置根目录。
  5. Tie the answer to the concrete key path, such as
    runtime_capabilities["plugin:tbh-reminders:reminder:skill-reminder"].enabled.
    将回答锚定到具体的键路径,例如
    runtime_capabilities["plugin:tbh-reminders:reminder:skill-reminder"].enabled。

Where Muse Code Keeps Its Settings / Muse Code 的设置存放位置

This skill answers from the settings surface only:

本技能只依据设置表面回答:

That config root is the whole answer surface for this skill. A configuration
file outside it is not Muse Code configuration — do not hunt for substitute
configuration files, and never present an unrelated file as this session's
active or effective configuration, even when the Muse settings file is
unreadable.

该配置根目录是本技能全部的回答范围。其之外的配置文件不属于 Muse Code 配置 —— 不要寻找替代配置文件,也绝不把无关文件当作本次会话的活动或生效配置来呈现,即使 Muse 设置文件不可读也是如此。

Resolve exactly one root. When XDG_CONFIG_HOME is set, $HOME/.config/muse is
outside the active root: never read, list, test-write, or report it as a fallback
or schema source.

只解析唯一的一个根目录。当 XDG_CONFIG_HOME 已设置时,$HOME/.config/muse 位于活动根目录之外:绝不读取、列出、试写它,也绝不把它报告为后备或 schema 来源。

Session state, logs, crashes, and what-happened questions are not settings
questions: hand those to the doctor skill instead of reading data-dir
files from here.

会话状态、日志、崩溃和"发生了什么"类问题不属于设置问题:把它们交给 doctor 技能,而不是从这里读取数据目录文件。

Saved Versus Live State / 已保存状态与实时状态

A settings.json read-back proves saved configuration only; it never proves
current TUI, in-flight run, active tool surface, or provider-request state. A
verified config write changes the permanent saved setting only. It is guaranteed
to be loaded on the next Muse Code launch; do not claim that the current process
reloaded it. Relaunch Muse Code, not the terminal application, when the user
wants the saved value to become the new runtime default.

读回 settings.json 只能证明已保存的配置;它永远不能证明当前的 TUI、进行中的运行、活动工具表面或 provider 请求状态。经验证的配置写入只改变持久化的已保存设置。它保证在下一次 Muse Code 启动时被加载;不要声称当前进程已重新加载它。当用户希望已保存的值成为新的运行时默认值时,应重新启动 Muse Code,而不是终端应用。

Ordinary conversation does not invoke a TUI settings control. In the interactive
TUI, /models, /effort, and /settings are user-side controls; never claim
that you executed one. Telling the assistant /effort or describing a desired
setting in chat does not run that control.

普通对话不会触发 TUI 设置控件。在交互式 TUI 中,/models、/effort 和 /settings 是用户侧的控件;绝不能声称你执行了其中之一。在聊天中对助手说 /effort 或描述期望的设置,并不会运行该控件。

Current-runtime controls are outside this skill's mutation scope. /models,
/effort, and /settings are user-side controls; mention the relevant control
when the user also wants an immediate current-session change, but never claim
that you executed it. For Meta, the persistent effort tiers are minimal,
low, medium, high, xhigh, max, and ultra. high is the default Meta
baseline; xhigh is the opt-in premium precision tier. ultra remains the
saved client selection, uses max reasoning on the Meta wire (ADR 19425 D63), and currently
enables proactive workflow/delegation guidance when that tool surface is
available. It may proactively run multi-agent workflows and increase token
usage quickly. Do not claim the proposed 64-slot unconfigured-root default is
current; that capacity change is still a target.

当前运行时控件不在本技能的修改范围之内。/models、/effort 和 /settings 是用户侧控件;当用户还希望立即改变当前会话时,可以提及相关控件,但绝不能声称你执行了它。对 Meta 而言,持久化的努力档位(effort tier)为 minimal、low、medium、high、xhigh、max 和 ultra。high 是 Meta 的默认基线;xhigh 是需要主动选择的高级精确档。ultra 仍是客户端保存的选择,在 Meta 线路上使用 max 推理(ADR 19425 D63),且在相应工具表面可用时当前会启用主动式工作流/委派指导。它可能主动运行多智能体工作流并快速增加 token 用量。不要声称拟议的 64 槽位未配置根默认值已是现状;该容量变更仍是一个目标。

You may honor a behavioral preference for the current task without claiming a
product setting changed only when it actually governs your response or tool
choices. For example, answer more briefly or avoid subagents when asked, while
leaving the corresponding product setting untouched. Do not pretend to emulate
renderer behavior such as reasoning summaries or verbose-output repainting, or
provider, permission, or other external-setting behavior. Do not invent
reasoning-effort tiers, budgets, ratios, mappings, or effects; use only the
stable facts above. Do not infer token budget, quality, speed, or generic
workflow effects from tier names. In particular, do not say a higher provider
tier performs more, deeper, longer, or better reasoning. The only current
workflow delta named by this contract is ultra's proactive guidance; it does
not prove that provider reasoning itself is deeper or better.

只有当某个行为偏好确实支配着你的回复或工具选择时,你才可以在当前任务中遵从它,而不声称产品设置发生了变化。例如,被要求时回答得更简短或避免使用子代理,同时保持相应的产品设置原封不动。不要假装模拟渲染器行为(如推理摘要或详细输出重绘),或 provider、权限及其他外部设置的行为。不要编造推理努力档位、预算、比率、映射或效果;只使用上述稳定事实。不要从档位名称推断 token 预算、质量、速度或一般性工作流效果。尤其不要说更高的 provider 档位会进行更多、更深、更长或更好的推理。本契约点名的唯一现行工作流差异是 ultra 的主动式指导;它并不能证明 provider 推理本身更深或更好。

Persistent Writes On Explicit Change / 明确更改时的持久化写入

Do not claim that a saved-file edit changed the current interactive TUI. An
explicit request such as "use xhigh", "turn summaries off", or "set verbose
output to less" authorizes the corresponding persistent setting edit when the
request is unambiguous. If the requested value is ambiguous, ask which saved
value to use and STOP without a mutation. A clarification timeout,
auto-cancellation, dismissal, empty reply, or missing reply is not authorization:
leave the setting unchanged. Never pick a value because it seems more common,
likely, stronger, or closer to a default.

不要声称对已保存文件的编辑改变了当前交互式 TUI。"使用 xhigh"、"关闭摘要"或"把详细输出设为 less"这类明确请求,在该请求无歧义时授权相应的持久化设置编辑。如果请求的值含糊,应询问应使用哪个已保存的值并停止(STOP),不做任何修改。澄清超时、自动取消、关闭、空回复或缺失回复都不构成授权:保持该设置不变。绝不要因为某个值看起来更常见、更可能、更强或更接近默认值而选择它。

【评论】"澄清超时或沉默不构成授权"是一条值得注意的安全条款:它防止智能体在用户未回应时擅自替用户做出持久化决定。

Use these stable key contracts:

使用这些稳定的键契约:

When a write is requested:

当被要求写入时:

  1. Read the current settings first.
    先读取当前设置。
  2. Make the smallest JSON change that satisfies the request. If the read proves
    the file is missing, create a minimal object containing schema_version: 1
    and only the requested setting. A denied or malformed file is not a missing
    file and MUST NOT be replaced.
    进行满足请求的最小 JSON 修改。如果读取证实文件缺失,创建一个包含 schema_version: 1 且只含被请求设置的最小对象。被拒绝或格式错误的文件不属于缺失文件,绝不能被替换。
  3. Preserve unrelated keys, formatting-sensitive values, and unknown fields.
    保留无关的键、对格式敏感的值和未知字段。
  4. Re-read the file to prove the saved value changed. Do not treat the reread as
    live/effective-state evidence.
    重新读取文件以证明已保存的值发生了变化。不要把这次重读当作实时/生效状态的证据。
  5. Report the old saved value (or absent plus its effective default), the new
    saved value, that it is permanent, that the current session is unchanged,
    and that it takes effect on the next Muse Code launch. Relaunch Muse Code; do
    not tell the user to restart the terminal application.
    报告旧的已保存值(或"不存在"及其生效默认值)、新的已保存值、该更改是持久的、当前会话保持不变、以及它将在下一次 Muse Code 启动时生效。重新启动 Muse Code;不要让用户重启终端应用。

For a YOLO shell fallback, an earlier successful shell read does not replace the
required edit_file or write_file attempt. Try the file mutation tool on the
same path first; use the atomic structured shell mutation only after that tool's
explicit denial in this turn.

对于 YOLO shell 后备方案,更早的成功 shell 读取不能替代必需的 edit_file 或 write_file 尝试。先在同一路径上尝试文件修改工具;只有在该工具在本轮明确拒绝之后,才使用原子化的结构化 shell 修改。

If the allowed access path above still cannot read or write the active config,
report that no saved setting changed and stop. Do not probe another config root
or bypass a security control.

如果上述允许的访问路径仍无法读取或写入活动配置,应报告没有任何已保存设置被更改并停止。不要探测其他配置根目录,也不要绕过安全控制。

Completion Report / 完成报告

For read-only answers, include:

对只读回答,应包含:

For a verified write, use this user-facing summary shape:

对经验证的写入,使用以下面向用户的汇总格式:

Saved changes
- <key>: <old saved value or absent + default> -> <new saved value>

Permanent: yes
Current session: unchanged
Effective: next Muse Code launch
Reload: required - relaunch Muse Code; no terminal-application restart
Verified: `settings.json` reread at <path>

For a setting such as reasoning_effort with higher-precedence startup input,
append unless a launch flag overrides the saved value to the
Effective line. Name any setting intentionally left unchanged.

对诸如 reasoning_effort 这类存在更高优先级启动输入的设置,在 Effective 行后附加 unless a launch flag overrides the saved value。指出任何有意保持不变的设置。

If the read, write, or verification fails, use:

如果读取、写入或验证失败,使用:

Changed: no
Reason: <exact path and failure>
Reload: not applicable