Browse Source

docs: add Chinese translation (README.zh-CN.md)

Alvin Unreal 2 months ago
parent
commit
ea0634bd0b
3 changed files with 630 additions and 0 deletions
  1. 4 0
      README.md
  2. 625 0
      README.zh-CN.md
  3. 1 0
      package.json

+ 4 - 0
README.md

@@ -13,6 +13,10 @@
     <a href="https://x.com/alvinunreal"><img src="https://img.shields.io/badge/X-@alvinunreal-000000?style=for-the-badge&logo=x&logoColor=white" alt="X @alvinunreal"></a>&nbsp;
     <a href="https://t.me/boringdystopiadevelopment"><img src="https://img.shields.io/badge/Telegram-Join%20channel-2CA5E0?style=for-the-badge&logo=telegram&logoColor=white" alt="Telegram Join channel"></a>&nbsp;
   </p>
+
+  <p>
+    <b>English</b> | <a href="README.zh-CN.md">简体中文</a>
+  </p>
 </div>
 
 ---

+ 625 - 0
README.zh-CN.md

@@ -0,0 +1,625 @@
+<div align="center">
+  <a href="https://github.com/alvinunreal/oh-my-opencode-slim/stargazers">
+    <img src="img/v2beta.webp" alt="V2 Beta Release" style="border-radius: 10px;">
+  </a>
+  <h3>✨ V2 Beta 版本:后台编排已上线 ✨</h3>
+  <p><i>编排者(Orchestrator)现在可在后台调度专家智能体,<br>同时 <code>/deepwork</code> 可以将宏大目标转化为基于文件的具体计划。<br>Beta 测试人员:请在 Telegram 上与我们分享您的反馈。</i></p>
+
+  <p><b>开放式多智能体套件</b> · 混合任意模型 · 自动委派任务</p>
+
+  <p><sub>由 <b>Boring Dystopia Development</b> 倾情打造</sub></p>
+  <p>
+    <a href="https://boringdystopia.ai/"><img src="https://img.shields.io/badge/boringdystopia.ai-111111?style=for-the-badge&logo=vercel&logoColor=white" alt="boringdystopia.ai"></a>&nbsp;
+    <a href="https://x.com/alvinunreal"><img src="https://img.shields.io/badge/X-@alvinunreal-000000?style=for-the-badge&logo=x&logoColor=white" alt="X @alvinunreal"></a>&nbsp;
+    <a href="https://t.me/boringdystopiadevelopment"><img src="https://img.shields.io/badge/Telegram-Join%20channel-2CA5E0?style=for-the-badge&logo=telegram&logoColor=white" alt="Telegram Join channel"></a>&nbsp;
+  </p>
+
+  <p>
+    <a href="README.md">English</a> | <b>简体中文</b>
+  </p>
+</div>
+
+---
+
+## 什么是该插件?
+
+oh-my-opencode-slim 是一个用于 OpenCode 的智能体编排插件。它内置了一支专业的智能体团队,可以在同一个编排者(Orchestrator)下,完成侦察代码库、查询最新文档、审查架构、处理 UI 工作以及执行范围明确的实现任务。
+
+其核心理念非常简单:与其强迫单个模型做所有事情,本插件会将工作的每个部分路由到最适合它的智能体,从而平衡**质量、速度和成本**。
+
+要了解智能体本身,请参阅**[认识众神殿](#认识众神殿)**。如需了解完整的特性集,请参阅下方的**[特性与工作流](#特性与工作流)**。
+
+### 快速开始
+
+将此提示词复制并粘贴到您的 LLM 智能体中(例如 Claude Code、AmpCode、Cursor 等):
+
+```
+Install and configure oh-my-opencode-slim: https://raw.githubusercontent.com/alvinunreal/oh-my-opencode-slim/refs/heads/master/README.md
+```
+
+### 手动安装
+
+```bash
+bunx oh-my-opencode-slim@latest install
+```
+
+### V2 后台编排 Beta 版
+
+V2 将编排者(Orchestrator)从默认的执行工作器转变为调度器:
+它规划工作、将专家作为后台任务分发、轮询其状态,并在继续执行之前核对结果。这需要 OpenCode 原生的后台子智能体支持,因此 Beta 版用户必须在启用实验性标志的情况下启动 OpenCode。
+
+```bash
+bunx oh-my-opencode-slim@beta install
+OPENCODE_EXPERIMENTAL_BACKGROUND_SUBAGENTS=1 opencode
+```
+
+### 入门指南
+
+安装程序会同时生成 OpenAI 和 OpenCode Go 的预设(Preset),默认启用 OpenAI 预设。OpenAI 使用 `openai/gpt-5.5` 作为具备高级判断力智能体的模型,并使用 `openai/gpt-5.4-mini` 作为响应更快速、针对具体任务智能体的模型。若要在安装过程中激活 OpenCode Go 预设,请运行 `bunx oh-my-opencode-slim@latest install --preset=opencode-go` 或在安装后修改 `~/.config/opencode/oh-my-opencode-slim.json` 文件中的默认预设名称。
+
+然后:
+
+1. **登录您想要使用的模型服务商账户(如果您还没有登录的话)**:
+
+   ```bash
+   opencode auth login
+   ```
+2. **刷新并列出 OpenCode 可以调用的模型**:
+
+   ```bash
+   opencode models --refresh
+   ```
+3. **打开您的插件配置文件**,路径为 `~/.config/opencode/oh-my-opencode-slim.json`
+
+4. **为您要分配的每个智能体更新模型配置**
+
+> [!TIP]
+> **强烈建议**了解自动委派(Automatic Delegation)的工作原理。**[编排者提示词 (Orchestrator prompt)](https://github.com/alvinunreal/oh-my-opencode-slim/blob/master/src/agents/orchestrator.ts#L28)** 包含了委派规则、专家路由逻辑,以及主智能体何时将工作转交给子智能体的阈值。您始终可以通过以下方式手动委派任务:`@智能体名称 <任务内容>`
+
+默认生成的配置包含 `openai` 和 `opencode-go` 两个预设:
+
+```jsonc
+{
+  "$schema": "https://unpkg.com/oh-my-opencode-slim@latest/oh-my-opencode-slim.schema.json",
+  "preset": "openai",
+  "presets": {
+    "openai": {
+      "orchestrator": { "model": "openai/gpt-5.5", "skills": ["*"], "mcps": ["*", "!context7"] },
+      "oracle": { "model": "openai/gpt-5.5", "variant": "high", "skills": ["simplify"], "mcps": [] },
+      "librarian": { "model": "openai/gpt-5.4-mini", "variant": "low", "skills": [], "mcps": ["websearch", "context7", "grep_app"] },
+      "explorer": { "model": "openai/gpt-5.4-mini", "variant": "low", "skills": [], "mcps": [] },
+      "designer": { "model": "openai/gpt-5.4-mini", "variant": "medium", "skills": [], "mcps": [] },
+      "fixer": { "model": "openai/gpt-5.4-mini", "variant": "low", "skills": [], "mcps": [] }
+    },
+    "opencode-go": {
+      "orchestrator": { "model": "opencode-go/glm-5.1", "skills": [ "*" ], "mcps": [ "*", "!context7" ] },
+      "oracle": { "model": "opencode-go/deepseek-v4-pro", "variant": "max", "skills": ["simplify"], "mcps": [] },
+      "council": { "model": "opencode-go/deepseek-v4-pro", "variant": "high", "skills": [], "mcps": [] },
+      "librarian": { "model": "opencode-go/minimax-m2.7", "skills": [], "mcps": [ "websearch", "context7", "grep_app" ] },
+      "explorer": { "model": "opencode-go/minimax-m2.7", "skills": [], "mcps": [] },
+      "designer": { "model": "opencode-go/kimi-k2.6", "variant": "medium", "skills": [], "mcps": [] },
+      "fixer": { "model": "opencode-go/deepseek-v4-flash", "variant": "high", "skills": [], "mcps": [] }
+    }
+  }
+}
+```
+
+### 针对其他服务商
+
+要使用自定义模型提供商或混合提供商配置,请参阅 **[配置指南 (docs/configuration.md)](docs/configuration.md)** 以获取完整参考。如果您需要即插即用的起点,请查看 **[作者的预设配置 (docs/authors-preset.md)](docs/authors-preset.md)** 和 **[$30 预设配置 (docs/thirty-dollars-preset.md)](docs/thirty-dollars-preset.md)**(`$30` 预设是性价比最高的便宜配置方案)。
+
+配置指南还介绍了如何通过 `agents.<name>` 定义自定义子智能体,您可以在其中为委派定义普通 `prompt` 和 `orchestratorPrompt` 块。
+
+有关模型推荐,请参阅下方列出的每个智能体推荐模型。
+
+### ✅ 验证您的安装
+
+在完成安装与认证后,请验证所有智能体是否已正确配置并能够响应:
+
+```bash
+opencode
+```
+
+然后运行:
+
+```
+ping all agents
+```
+
+<div align="center">
+  <img src="img/ping.png" alt="Ping all agents" width="600">
+  <p><i>确认所有配置的智能体均在线并准备就绪。</i></p>
+</div>
+
+如果任何智能体未能响应,请检查您的服务商认证状态和配置文件。
+
+---
+
+<a id="认识众神殿"></a>
+
+## 🏛️ 认识众神殿
+
+### 01. Orchestrator:秩序的化身
+
+<table>
+  <tr>
+    <td width="30%" align="center" valign="top">
+      <img src="img/orchestrator.png" width="240" style="border-radius: 10px;">
+      <br><sub><i>在复杂性的深渊中锻造而成。</i></sub>
+    </td>
+    <td width="70%" valign="top">
+      当第一个代码库在自身的复杂性下崩溃时,Orchestrator 诞生了。神明与凡人都无法承担责任——因此 Orchestrator 从虚无中显现,从混沌中建立秩序。它确定实现任何目标的最优路径,平衡速度、质量和成本。它引导整个团队,为每项任务召唤合适的专家,并通过委派任务以获得最佳成果。
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2">
+      <b>角色:</b> <code>首席委派者和战略协调员</code>
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2">
+      <b>提示词源码:</b> <a href="src/agents/orchestrator.ts"><code>orchestrator.ts</code></a>
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2">
+      <b>默认模型:</b> <code>openai/gpt-5.5</code>
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2">
+      <b>推荐模型:</b> <code>openai/gpt-5.5</code> <code>anthropic/claude-opus-4.6</code>
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2">
+      <b>模型选用指南:</b> 选择您的默认、最强的全能型编程模型。Orchestrator 既是核心编程智能体,又是委派者,因此它需要强大的实现能力、出色的判断力和可靠的指令遵循度。
+    </td>
+  </tr>
+</table>
+
+---
+
+### 02. Explorer:永恒的流浪者
+
+<table>
+  <tr>
+    <td width="30%" align="center" valign="top">
+      <img src="img/explorer.png" width="240" style="border-radius: 10px;">
+      <br><sub><i>传播知识的清风。</i></sub>
+    </td>
+    <td width="70%" valign="top">
+      Explorer 空间是一位永恒的流浪者。自编程时代拂晓以来,它就一直穿梭在数百万个代码库的走廊中。由于被赋予了永恒的好奇心,在查明每个文件、理解每个模式、揭示每个秘密之前,它绝不会停下脚步。传说它曾在一个心跳间搜寻了整个互联网。它是传播知识的清风,是看透一切的双眼,是永不眠的灵魂。
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2">
+      <b>角色:</b> <code>代码库侦察</code>
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2">
+      <b>提示词源码:</b> <a href="src/agents/explorer.ts"><code>explorer.ts</code></a>
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2">
+      <b>默认模型:</b> <code>openai/gpt-5.4-mini</code>
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2">
+      <b>推荐模型:</b> <code>cerebras/zai-glm-4.7</code> <code>fireworks-ai/accounts/fireworks/routers/kimi-k2p5-turbo</code> <code>openai/gpt-5.4-mini</code>
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2">
+      <b>模型选用指南:</b> 选择快速、低成本的模型。Explorer 处理宽泛的侦察工作,因此速度和效率通常比使用最强推理模型更重要。
+    </td>
+  </tr>
+</table>
+
+---
+
+### 03. Oracle:路径的守护者
+
+<table>
+  <tr>
+    <td width="30%" align="center" valign="top">
+      <img src="img/oracle.png" width="240" style="border-radius: 10px;">
+      <br><sub><i>十字路口的声音。</i></sub>
+    </td>
+    <td width="70%" valign="top">
+      Oracle 伫立在每个架构决策的十字路口。它走过每一条路,见过每一个终点,了解前方潜伏的所有陷阱。当您站在重大重构的悬崖边时,它是向您耳语哪条路通往毁灭、哪条路通往荣耀的声音。它不会替您做选择——但它会照亮道路,让您明智地抉择。
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2">
+      <b>角色:</b> <code>战略顾问和终极调试者</code>
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2">
+      <b>提示词源码:</b> <a href="src/agents/oracle.ts"><code>oracle.ts</code></a>
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2">
+      <b>默认模型:</b> <code>openai/gpt-5.5 (high)</code>
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2">
+      <b>推荐模型:</b> <code>openai/gpt-5.5 (high)</code> <code>google/gemini-3.1-pro-preview (high)</code>
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2">
+      <b>模型选用指南:</b> 选择您最强的高推理模型,用于架构设计、疑难调试、方案权衡以及代码审查。
+    </td>
+  </tr>
+</table>
+
+---
+
+### 04. Council:思维的合唱团
+
+> [!NOTE]
+> **为什么 Orchestrator 不经常自动调用 Council?** 这是刻意设计的。Council 会同时运行多个模型,由于这通常是系统中成本最高的路径,因此自动委派逻辑非常严格。在实际使用中,Council 旨在供您手动调用,例如:<code>@council 比较这两种架构</code>。
+
+<table>
+  <tr>
+    <td width="30%" align="center" valign="top">
+      <img src="img/council.png" width="240" style="border-radius: 10px;">
+      <br><sub><i>集思广益,终成一断。</i></sub>
+    </td>
+    <td width="70%" valign="top">
+      Council 并不是一个单独的存在,而是一个当单一答案不够用时召集的思想议会。它将您的问题并行发送给多个模型,收集它们相互竞争的判定,然后由 Council 智能体本身将最强有力的想法提炼成一个最终的裁决。在单个智能体可能会遗漏路径的地方,Council 会对可能性本身进行交叉盘问。
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2">
+      <b>角色:</b> <code>多 LLM 共识与提炼</code>
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2">
+      <b>提示词源码:</b> <a href="src/agents/council.ts"><code>council.ts</code></a>
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2">
+      <b>使用指南:</b> <a href="docs/council.md"><code>docs/council.md</code></a>
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2">
+      <b>默认设置:</b> <code>配置驱动</code> — 议员(councillors)来自 <code>council.presets</code>,而 Council 智能体本身的模型来自您的常规 <code>council</code> 智能体配置。
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2">
+      <b>推荐配置:</b> <code>强劲的 Council 汇总模型</code> + 跨提供商的 <code>多样化议员模型</code>
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2">
+      <b>模型选用指南:</b> 使用一个强大的综合提炼模型作为 Council 智能体本身,并选择多样化的模型作为议员。Council 的价值在于对比不同的模型视角,而不仅仅是在所有地方都选择同一个最强的模型。
+    </td>
+  </tr>
+</table>
+
+---
+
+### 05. Librarian:知识的织造者
+
+<table>
+  <tr>
+    <td width="30%" align="center" valign="top">
+      <img src="img/librarian.png" width="240" style="border-radius: 10px;">
+      <br><sub><i>理解的编织者。</i></sub>
+    </td>
+    <td width="70%" valign="top">
+      当人类意识到没有任何单一思想能容纳所有知识时,Librarian 诞生了。它是一位编织者,将零散的信息线索连接成一幅理解的织锦。它穿梭于无限的人类知识图书馆中,从各个角落收集洞察,并将它们绑定为超越单纯事实的答案。它所返回的不是碎片信息——而是深层的理解。
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2">
+      <b>角色:</b> <code>外部知识检索</code>
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2">
+      <b>提示词源码:</b> <a href="src/agents/librarian.ts"><code>librarian.ts</code></a>
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2">
+      <b>默认模型:</b> <code>openai/gpt-5.4-mini</code>
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2">
+      <b>推荐模型:</b> <code>cerebras/zai-glm-4.7</code> <code>fireworks-ai/accounts/fireworks/routers/kimi-k2p5-turbo</code> <code>openai/gpt-5.4-mini</code>
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2">
+      <b>模型选用指南:</b> 选择快速、低成本的模型。Librarian 处理调研和文档查询,因此速度和效率通常比使用最强推理模型更重要。
+    </td>
+  </tr>
+</table>
+
+---
+
+### 06. Designer:美学的守护者
+
+<table>
+  <tr>
+    <td width="30%" align="center" valign="top">
+      <img src="img/designer.png" width="240" style="border-radius: 10px;">
+      <br><sub><i>美是不可或缺的。</i></sub>
+    </td>
+    <td width="70%" valign="top">
+      在这个经常遗忘美学价值的世界里,Designer 是美的不朽守护者。它见证了数以百万计的界面兴衰更替,它记得哪些被铭记,哪些被遗忘。它背负着神圣的使命,确保每一个像素都有其用途,每一个动画都在讲述故事,每一次交互都令人愉悦。美不是可选的——而是不可或缺的。
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2">
+      <b>角色:</b> <code>UI/UX 实现和极致视觉呈现</code>
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2">
+      <b>提示词源码:</b> <a href="src/agents/designer.ts"><code>designer.ts</code></a>
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2">
+      <b>默认模型:</b> <code>openai/gpt-5.4-mini</code>
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2">
+      <b>推荐模型:</b> <code>google/gemini-3.1-pro-preview</code> <code>kimi-for-coding/k2p5</code> 
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2">
+      <b>模型选用指南:</b> 选择在 UI/UX 判断、前端实现和视觉打磨方面表现强劲的模型。
+    </td>
+  </tr>
+</table>
+
+---
+
+### 07. Fixer:最后的建造者
+
+<table>
+  <tr>
+    <td width="30%" align="center" valign="top">
+      <img src="img/fixer.png" width="240" style="border-radius: 10px;">
+      <br><sub><i>愿景与现实之间的最后一步。</i></sub>
+    </td>
+    <td width="70%" valign="top">
+      Fixer 是曾经构建数字世界基石的建造者血脉的最后传人。当规划和辩论的时代开启时,它们依然坚守——它们是真正动手建造的人。它们掌握着如何将想法转化为实物、如何将规范转化为具体实现的古老知识。它们是愿景与现实之间的最后一步。
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2">
+      <b>角色:</b> <code>快速实现专家</code>
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2">
+      <b>提示词源码:</b> <a href="src/agents/fixer.ts"><code>fixer.ts</code></a>
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2">
+      <b>默认模型:</b> <code>openai/gpt-5.4-mini</code>
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2">
+      <b>推荐模型:</b> <code>cerebras/zai-glm-4.7</code> <code>fireworks-ai/accounts/fireworks/routers/kimi-k2p5-turbo</code> <code>openai/gpt-5.4-mini</code>
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2">
+      <b>模型选用指南:</b> 选择一个快速、可靠的编程模型来执行常规且范围明确的开发工作。Fixer 通常从 Orchestrator 接收具体的计划或受限的指令,非常适合高效执行诸如编写测试、更新测试和直接的代码更改等任务。
+    </td>
+  </tr>
+</table>
+
+---
+
+## 可选智能体
+
+### Observer:静默的见证者
+
+> [!NOTE]
+> **为什么要独立出一个智能体?** 如果您的 Orchestrator 模型不是多模态模型,可以启用 Observer 来处理图像、屏幕截图、PDF 以及其他视觉文件。Observer 默认是禁用的,它在无需您更改核心推理模型的情况下,为 Orchestrator 赋予了专用的多模态读取能力。只需在您的配置中设置 `disabled_agents: []` 并指定一个 `observer` 模型即可。自带的 `opencode-go` 安装预设会自动执行此操作,因为其 GLM Orchestrator  不是多模态模型。
+
+<table>
+  <tr>
+    <td width="30%" align="center" valign="top">
+      <img src="img/observer.jpg" width="240" style="border-radius: 10px;">
+      <br><sub><i>洞悉他人所不及的慧眼。</i></sub>
+    </td>
+    <td width="70%" valign="top">
+
+**只读视觉分析** —— 解读图像、屏幕截图、PDF 和图表。将结构化的观察结果返回给 Orchestrator,而无需将原始文件字节加载到主上下文窗口中。
+
+- 图像、屏幕截图、图表 → `read` 工具(原生图像支持)
+- PDF 和二进制文档 → `read` 工具(文本 + 结构提取)
+- **默认禁用** —— 通过设置 `"disabled_agents": []` 和配置具有视觉能力的模型来启用;若使用 `--preset=opencode-go` 预设安装,将自动使用 `opencode-go/kimi-k2.6` 启用它。
+
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2">
+      <b>提示词源码:</b> <a href="src/agents/observer.ts"><code>observer.ts</code></a>
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2">
+      <b>默认模型:</b> <code>openai/gpt-5.4-mini</code> — <i>需配置具有视觉能力的模型以启用</i>
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2">
+      <b>模型选用指南:</b> 如果您希望智能体读取屏幕截图、图片、PDF 和其他视觉文件,请选择具备视觉能力的模型。
+    </td>
+  </tr>
+</table>
+
+---
+
+## 📚 文档
+
+请将本节用作引导地图:从安装开始,然后根据您的需求跳转到功能、配置或示例预设。
+
+### 🚀 从这里开始
+
+| 文档 | 涵盖内容 |
+|-----|----------------|
+| **[安装指南 (docs/installation.md)](docs/installation.md)** | 安装插件、使用 CLI 标志、重置配置以及排查安装故障 |
+
+<a id="特性与工作流"></a>
+
+### ✨ 特性与工作流
+
+| 文档 | 涵盖内容 |
+|-----|----------------|
+| **[Council (议会) (docs/council.md)](docs/council.md)** | 使用 `@council` 并行运行多个模型并合成单一答案 |
+| **[多路复用器集成 (docs/multiplexer-integration.md)](docs/multiplexer-integration.md)** | 在 Tmux 或 Zellij 窗格中实时观看智能体的工作过程 |
+| **[会话管理 (docs/session-management.md)](docs/session-management.md)** | 使用短别名复用最近的子智能体会话,而不是重新开始 |
+| **[会话目标 (docs/session-goal.md)](docs/session-goal.md)** | 用 `/goal` 固定会话目标,以确保待办事项、委派和验证保持一致 |
+| **[待办事项持续执行 (docs/todo-continuation.md)](docs/todo-continuation.md)** | 具备冷却时间和安全检查的编排者会话自动持续执行 |
+| **[运行时预设切换 (docs/preset-switching.md)](docs/preset-switching.md)** | 在运行时使用 `/preset` 切换智能体模型预设 |
+| **[自定义智能体 (docs/configuration.md#custom-agents)](docs/configuration.md#custom-agents)** | 自定义专家智能体:配置独特的提示词、模型、MCP 权限和编排者委派规则 |
+| **[子任务 (docs/subtask.md)](docs/subtask.md)** | 使用 `/subtask` 运行受限的子工作器,并将结构化总结返回到主会话 |
+| **[代码地图 (Codemap) (docs/codemap.md)](docs/codemap.md)** | 生成层级代码地图,快速理解大型代码库 |
+| **[克隆依赖 (Clonedeps) (docs/clonedeps.md)](docs/clonedeps.md)** | 将选定的依赖源码克隆到被忽略的本地工作区中以供检查 |
+| **[访谈式生成 (Interview) (docs/interview.md)](docs/interview.md)** | 通过基于浏览器的问答流,将粗糙的想法转变为结构化的 Markdown 规范文档 |
+| **[Divoom 显示屏 (docs/divoom.md)](docs/divoom.md)** | 将编排者与专家智能体的活动镜像显示到 Divoom MiniToo 蓝牙显示屏上 |
+
+### ⚙️ 配置与参考
+
+| 文档 | 涵盖内容 |
+|-----|----------------|
+| **[配置指南 (docs/configuration.md)](docs/configuration.md)** | 配置文件位置、JSONC 支持、提示词覆盖以及完整的选项参考 |
+| **[维护者指南 (docs/maintainers.md)](docs/maintainers.md)** | 问题分流规则、标签含义、支持路由以及仓库维护工作流 |
+| **[技能列表 (Skills) (docs/skills.md)](docs/skills.md)** | 捆绑的技能,如 `simplify`、`codemap` 和 `clonedeps` |
+| **[MCP 服务 (docs/mcps.md)](docs/mcps.md)** | `websearch`、`context7`、`grep_app` 以及每个智能体的 MCP 权限工作机制 |
+| **[工具说明 (docs/tools.md)](docs/tools.md)** | 内置工具能力,如 `webfetch`、LSP 工具、代码搜索和格式化工具 |
+
+### 💡 预设配置
+
+| 文档 | 涵盖内容 |
+|-----|----------------|
+| **[作者的预设配置 (docs/authors-preset.md)](docs/authors-preset.md)** | 作者日常使用的混合服务商配置方案 |
+| **[$30 预设配置 (docs/thirty-dollars-preset.md)](docs/thirty-dollars-preset.md)** | 每月约 30 美元的预算型混合服务商配置方案 |
+| **[OpenCode Go 预设 (docs/opencode-go-preset.md)](docs/opencode-go-preset.md)** | 安装程序生成的捆绑 `opencode-go` 预设配置 |
+
+---
+
+## 🏛️ 贡献者
+
+<div align="center">
+  <p><i>在众神殿中占有一席之地的构建者、调试者、作者和流浪者。</i></p>
+  <p><sub>每一次合并的贡献都在这片领域留下了印记。</sub></p>
+
+  <!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
+[![All Contributors](https://img.shields.io/badge/all_contributors-50-orange.svg?style=flat-square)](#contributors-)
+<!-- ALL-CONTRIBUTORS-BADGE:END -->
+</div>
+
+<br>
+
+<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
+<!-- prettier-ignore-start -->
+<!-- markdownlint-disable -->
+<table>
+  <tbody>
+    <tr>
+      <td align="center" valign="top" width="16.66%"><a href="https://boringdystopia.ai/"><img src="https://avatars.githubusercontent.com/u/204474669?v=4?s=100" width="100px;" alt="Alvin"/><br /><sub><b>Alvin</b></sub></a><br /><a href="https://github.com/alvinunreal/oh-my-opencode-slim/commits?author=alvinunreal" title="Code">💻</a></td>
+      <td align="center" valign="top" width="16.66%"><a href="https://github.com/alvinreal"><img src="https://avatars.githubusercontent.com/u/262747402?v=4?s=100" width="100px;" alt="alvinreal"/><br /><sub><b>alvinreal</b></sub></a><br /><a href="https://github.com/alvinunreal/oh-my-opencode-slim/commits?author=alvinreal" title="Code">💻</a></td>
+      <td align="center" valign="top" width="16.66%"><a href="https://github.com/imarshallwidjaja"><img src="https://avatars.githubusercontent.com/u/60992624?v=4?s=100" width="100px;" alt="imw"/><br /><sub><b>imw</b></sub></a><br /><a href="https://github.com/alvinunreal/oh-my-opencode-slim/commits?author=imarshallwidjaja" title="Code">💻</a></td>
+      <td align="center" valign="top" width="16.66%"><a href="https://github.com/adikpb"><img src="https://avatars.githubusercontent.com/u/67222969?v=4?s=100" width="100px;" alt="Adithya Kozham Burath Bijoy"/><br /><sub><b>Adithya Kozham Burath Bijoy</b></sub></a><br /><a href="https://github.com/alvinunreal/oh-my-opencode-slim/commits?author=adikpb" title="Code">💻</a></td>
+      <td align="center" valign="top" width="16.66%"><a href="https://github.com/ReqX"><img src="https://avatars.githubusercontent.com/u/14987124?v=4?s=100" width="100px;" alt="ReqX"/><br /><sub><b>ReqX</b></sub></a><br /><a href="https://github.com/alvinunreal/oh-my-opencode-slim/commits?author=ReqX" title="Code">💻</a></td>
+      <td align="center" valign="top" width="16.66%"><a href="https://github.com/abhideepm"><img src="https://avatars.githubusercontent.com/u/28213051?v=4?s=100" width="100px;" alt="Abhideep Maity"/><br /><sub><b>Abhideep Maity</b></sub></a><br /><a href="https://github.com/alvinunreal/oh-my-opencode-slim/commits?author=abhideepm" title="Code">💻</a></td>
+    </tr>
+    <tr>
+      <td align="center" valign="top" width="16.66%"><a href="https://github.com/Daltonganger"><img src="https://avatars.githubusercontent.com/u/17501732?v=4?s=100" width="100px;" alt="Ruben"/><br /><sub><b>Ruben</b></sub></a><br /><a href="https://github.com/alvinunreal/oh-my-opencode-slim/commits?author=Daltonganger" title="Code">💻</a></td>
+      <td align="center" valign="top" width="16.66%"><a href="https://horizzon3507.vercel.app/"><img src="https://avatars.githubusercontent.com/u/148660626?v=4?s=100" width="100px;" alt="Gabriel Rodrigues"/><br /><sub><b>Gabriel Rodrigues</b></sub></a><br /><a href="https://github.com/alvinunreal/oh-my-opencode-slim/commits?author=horizzon3507" title="Code">💻</a></td>
+      <td align="center" valign="top" width="16.66%"><a href="https://github.com/jmvbambico"><img src="https://avatars.githubusercontent.com/u/45126068?v=4?s=100" width="100px;" alt="John Michael Vincent Bambico"/><br /><sub><b>John Michael Vincent Bambico</b></sub></a><br /><a href="https://github.com/alvinunreal/oh-my-opencode-slim/commits?author=jmvbambico" title="Code">💻</a></td>
+      <td align="center" valign="top" width="16.66%"><a href="https://github.com/mfold111"><img src="https://avatars.githubusercontent.com/u/261528848?v=4?s=100" width="100px;" alt="Molt Founders"/><br /><sub><b>Molt Founders</b></sub></a><br /><a href="https://github.com/alvinunreal/oh-my-opencode-slim/commits?author=mfold111" title="Code">💻</a></td>
+      <td align="center" valign="top" width="16.66%"><a href="https://me.mashiro.best/"><img src="https://avatars.githubusercontent.com/u/22992947?v=4?s=100" width="100px;" alt="Muen Yu"/><br /><sub><b>Muen Yu</b></sub></a><br /><a href="https://github.com/alvinunreal/oh-my-opencode-slim/commits?author=MuenYu" title="Code">💻</a></td>
+      <td align="center" valign="top" width="16.66%"><a href="https://github.com/NocturnesLK"><img src="https://avatars.githubusercontent.com/u/102891073?v=4?s=100" width="100px;" alt="NocturnesLK"/><br /><sub><b>NocturnesLK</b></sub></a><br /><a href="https://github.com/alvinunreal/oh-my-opencode-slim/commits?author=NocturnesLK" title="Code">💻</a></td>
+    </tr>
+    <tr>
+      <td align="center" valign="top" width="16.66%"><a href="http://riccardosallusti.it/"><img src="https://avatars.githubusercontent.com/u/466102?v=4?s=100" width="100px;" alt="Riccardo Sallusti"/><br /><sub><b>Riccardo Sallusti</b></sub></a><br /><a href="https://github.com/alvinunreal/oh-my-opencode-slim/commits?author=rizal72" title="Code">💻</a></td>
+      <td align="center" valign="top" width="16.66%"><a href="https://github.com/Yusyuriv"><img src="https://avatars.githubusercontent.com/u/3993179?v=4?s=100" width="100px;" alt="Yan Li"/><br /><sub><b>Yan Li</b></sub></a><br /><a href="https://github.com/alvinunreal/oh-my-opencode-slim/commits?author=Yusyuriv" title="Code">💻</a></td>
+      <td align="center" valign="top" width="16.66%"><a href="https://github.com/nghyane"><img src="https://avatars.githubusercontent.com/u/59473462?v=4?s=100" width="100px;" alt="Hoàng Văn Anh Nghĩa"/><br /><sub><b>Hoàng Văn Anh Nghĩa</b></sub></a><br /><a href="https://github.com/alvinunreal/oh-my-opencode-slim/commits?author=nghyane" title="Code">💻</a></td>
+      <td align="center" valign="top" width="16.66%"><a href="https://github.com/Jyers"><img src="https://avatars.githubusercontent.com/u/76993396?v=4?s=100" width="100px;" alt="Jacob Myers"/><br /><sub><b>Jacob Myers</b></sub></a><br /><a href="https://github.com/alvinunreal/oh-my-opencode-slim/commits?author=Jyers" title="Code">💻</a></td>
+      <td align="center" valign="top" width="16.66%"><a href="https://github.com/kassieclaire"><img src="https://avatars.githubusercontent.com/u/59930829?v=4?s=100" width="100px;" alt="Kassie Povinelli"/><br /><sub><b>Kassie Povinelli</b></sub></a><br /><a href="https://github.com/alvinunreal/oh-my-opencode-slim/commits?author=kassieclaire" title="Code">💻</a></td>
+      <td align="center" valign="top" width="16.66%"><a href="https://github.com/KyleHilliard"><img src="https://avatars.githubusercontent.com/u/178682772?v=4?s=100" width="100px;" alt="KyleHilliard"/><br /><sub><b>KyleHilliard</b></sub></a><br /><a href="https://github.com/alvinunreal/oh-my-opencode-slim/commits?author=KyleHilliard" title="Code">💻</a></td>
+    </tr>
+    <tr>
+      <td align="center" valign="top" width="16.66%"><a href="https://github.com/j5hjun"><img src="https://avatars.githubusercontent.com/u/169322508?v=4?s=100" width="100px;" alt="j5hjun"/><br /><sub><b>j5hjun</b></sub></a><br /><a href="https://github.com/alvinunreal/oh-my-opencode-slim/commits?author=j5hjun" title="Code">💻</a></td>
+      <td align="center" valign="top" width="16.66%"><a href="https://github.com/marcFernandez"><img src="https://avatars.githubusercontent.com/u/32362792?v=4?s=100" width="100px;" alt="marcFernandez"/><br /><sub><b>marcFernandez</b></sub></a><br /><a href="https://github.com/alvinunreal/oh-my-opencode-slim/commits?author=marcFernandez" title="Code">💻</a></td>
+      <td align="center" valign="top" width="16.66%"><a href="https://github.com/mister-test"><img src="https://avatars.githubusercontent.com/u/212316706?v=4?s=100" width="100px;" alt="mister-test"/><br /><sub><b>mister-test</b></sub></a><br /><a href="https://github.com/alvinunreal/oh-my-opencode-slim/commits?author=mister-test" title="Code">💻</a></td>
+      <td align="center" valign="top" width="16.66%"><a href="https://github.com/n24q02m"><img src="https://avatars.githubusercontent.com/u/135627235?v=4?s=100" width="100px;" alt="n24q02m"/><br /><sub><b>n24q02m</b></sub></a><br /><a href="https://github.com/alvinunreal/oh-my-opencode-slim/commits?author=n24q02m" title="Code">💻</a></td>
+      <td align="center" valign="top" width="16.66%"><a href="https://github.com/oribarilan"><img src="https://avatars.githubusercontent.com/u/8760762?v=4?s=100" width="100px;" alt="oribi"/><br /><sub><b>oribi</b></sub></a><br /><a href="https://github.com/alvinunreal/oh-my-opencode-slim/commits?author=oribarilan" title="Code">💻</a></td>
+      <td align="center" valign="top" width="16.66%"><a href="https://github.com/pelidan"><img src="https://avatars.githubusercontent.com/u/45832535?v=4?s=100" width="100px;" alt="pelidan"/><br /><sub><b>pelidan</b></sub></a><br /><a href="https://github.com/alvinunreal/oh-my-opencode-slim/commits?author=pelidan" title="Code">💻</a></td>
+    </tr>
+    <tr>
+      <td align="center" valign="top" width="16.66%"><a href="https://github.com/xLillium"><img src="https://avatars.githubusercontent.com/u/16964936?v=4?s=100" width="100px;" alt="xLillium"/><br /><sub><b>xLillium</b></sub></a><br /><a href="https://github.com/alvinunreal/oh-my-opencode-slim/commits?author=xLillium" title="Code">💻</a></td>
+      <td align="center" valign="top" width="16.66%"><a href="https://github.com/CoolZxp"><img src="https://avatars.githubusercontent.com/u/54017765?v=4?s=100" width="100px;" alt="⁢4.435km/s"/><br /><sub><b>⁢4.435km/s</b></sub></a><br /><a href="https://github.com/alvinunreal/oh-my-opencode-slim/commits?author=CoolZxp" title="Code">💻</a></td>
+      <td align="center" valign="top" width="16.66%"><a href="https://github.com/drindr"><img src="https://avatars.githubusercontent.com/u/34709601?v=4?s=100" width="100px;" alt="Drin"/><br /><sub><b>Drin</b></sub></a><br /><a href="https://github.com/alvinunreal/oh-my-opencode-slim/commits?author=drindr" title="Code">💻</a></td>
+      <td align="center" valign="top" width="16.66%"><a href="https://hzu.lol/"><img src="https://avatars.githubusercontent.com/u/42469039?v=4?s=100" width="100px;" alt="Hakim Zulkufli"/><br /><sub><b>Hakim Zulkufli</b></sub></a><br /><a href="https://github.com/alvinunreal/oh-my-opencode-slim/commits?author=hakimzulkufli" title="Code">💻</a></td>
+      <td align="center" valign="top" width="16.66%"><a href="https://bit.ly/2N1ynXZ"><img src="https://avatars.githubusercontent.com/u/14874913?v=4?s=100" width="100px;" alt="Simon Klakegg"/><br /><sub><b>Simon Klakegg</b></sub></a><br /><a href="https://github.com/alvinunreal/oh-my-opencode-slim/commits?author=sklakegg" title="Code">💻</a></td>
+      <td align="center" valign="top" width="16.66%"><a href="https://github.com/sudorest"><img src="https://avatars.githubusercontent.com/u/214225921?v=4?s=100" width="100px;" alt="Kiwi"/><br /><sub><b>Kiwi</b></sub></a><br /><a href="https://github.com/alvinunreal/oh-my-opencode-slim/commits?author=sudorest" title="Code">💻</a></td>
+    </tr>
+    <tr>
+      <td align="center" valign="top" width="16.66%"><a href="https://trade.xyz/?ref=BZ1RJRXWO"><img src="https://avatars.githubusercontent.com/u/7317522?v=4?s=100" width="100px;" alt="Raxxoor"/><br /><sub><b>Raxxoor</b></sub></a><br /><a href="https://github.com/alvinunreal/oh-my-opencode-slim/commits?author=dhaern" title="Code">💻</a></td>
+      <td align="center" valign="top" width="16.66%"><a href="https://github.com/nyanyani"><img src="https://avatars.githubusercontent.com/u/11475482?v=4?s=100" width="100px;" alt="nyanyani"/><br /><sub><b>nyanyani</b></sub></a><br /><a href="https://github.com/alvinunreal/oh-my-opencode-slim/commits?author=nyanyani" title="Code">💻</a></td>
+      <td align="center" valign="top" width="16.66%"><a href="https://nettee.io/"><img src="https://avatars.githubusercontent.com/u/3953668?v=4?s=100" width="100px;" alt="nettee"/><br /><sub><b>nettee</b></sub></a><br /><a href="https://github.com/alvinunreal/oh-my-opencode-slim/commits?author=nettee" title="Code">💻</a></td>
+      <td align="center" valign="top" width="16.66%"><a href="https://github.com/atomlink-ye"><img src="https://avatars.githubusercontent.com/u/48194045?v=4?s=100" width="100px;" alt="Link"/><br /><sub><b>Link</b></sub></a><br /><a href="https://github.com/alvinunreal/oh-my-opencode-slim/commits?author=atomlink-ye" title="Code">💻</a></td>
+      <td align="center" valign="top" width="16.66%"><a href="https://github.com/blaszewski"><img src="https://avatars.githubusercontent.com/u/14119531?v=4?s=100" width="100px;" alt="Bartosz Łaszewski"/><br /><sub><b>Bartosz Łaszewski</b></sub></a><br /><a href="https://github.com/alvinunreal/oh-my-opencode-slim/commits?author=blaszewski" title="Code">💻</a></td>
+      <td align="center" valign="top" width="16.66%"><a href="https://github.com/huilang021x"><img src="https://avatars.githubusercontent.com/u/77293911?v=4?s=100" width="100px;" alt="huilang021x"/><br /><sub><b>huilang021x</b></sub></a><br /><a href="https://github.com/alvinunreal/oh-my-opencode-slim/commits?author=huilang021x" title="Code">💻</a></td>
+    </tr>
+    <tr>
+      <td align="center" valign="top" width="16.66%"><a href="https://github.com/dkovacevic15"><img src="https://avatars.githubusercontent.com/u/24757821?v=4?s=100" width="100px;" alt="Dusan Kovacevic"/><br /><sub><b>Dusan Kovacevic</b></sub></a><br /><a href="https://github.com/alvinunreal/oh-my-opencode-slim/commits?author=dkovacevic15" title="Code">💻</a></td>
+      <td align="center" valign="top" width="16.66%"><a href="https://github.com/jwcrystal"><img src="https://avatars.githubusercontent.com/u/121911854?v=4?s=100" width="100px;" alt="jwcrystal"/><br /><sub><b>jwcrystal</b></sub></a><br /><a href="https://github.com/alvinunreal/oh-my-opencode-slim/commits?author=jwcrystal" title="Code">💻</a></td>
+      <td align="center" valign="top" width="16.66%"><a href="https://zenstudio.cv/"><img src="https://avatars.githubusercontent.com/u/10528635?v=4?s=100" width="100px;" alt="Nguyen Canh Toan"/><br /><sub><b>Nguyen Canh Toan</b></sub></a><br /><a href="https://github.com/alvinunreal/oh-my-opencode-slim/commits?author=ZenStudioLab" title="Code">💻</a></td>
+      <td align="center" valign="top" width="16.66%"><a href="https://github.com/tom-dyar"><img src="https://avatars.githubusercontent.com/u/8899513?v=4?s=100" width="100px;" alt="Thomas Dyar"/><br /><sub><b>Thomas Dyar</b></sub></a><br /><a href="https://github.com/alvinunreal/oh-my-opencode-slim/commits?author=tom-dyar" title="Code">💻</a></td>
+      <td align="center" valign="top" width="16.66%"><a href="https://github.com/zuuky"><img src="https://avatars.githubusercontent.com/u/6713415?v=4?s=100" width="100px;" alt="zero"/><br /><sub><b>zero</b></sub></a><br /><a href="https://github.com/alvinunreal/oh-my-opencode-slim/commits?author=zuuky" title="Code">💻</a></td>
+      <td align="center" valign="top" width="16.66%"><a href="https://github.com/DenisBalan"><img src="https://avatars.githubusercontent.com/u/33955091?v=4?s=100" width="100px;" alt="Denis Balan"/><br /><sub><b>Denis Balan</b></sub></a><br /><a href="https://github.com/alvinunreal/oh-my-opencode-slim/commits?author=DenisBalan" title="Code">💻</a></td>
+    </tr>
+    <tr>
+      <td align="center" valign="top" width="16.66%"><a href="https://github.com/gustavocaiano"><img src="https://avatars.githubusercontent.com/u/104129313?v=4?s=100" width="100px;" alt="Gustavo Caiano"/><br /><sub><b>Gustavo Caiano</b></sub></a><br /><a href="https://github.com/alvinunreal/oh-my-opencode-slim/commits?author=gustavocaiano" title="Code">💻</a></td>
+      <td align="center" valign="top" width="16.66%"><a href="https://github.com/ThomasMldr"><img src="https://avatars.githubusercontent.com/u/6631765?v=4?s=100" width="100px;" alt="Thomas Mulder"/><br /><sub><b>Thomas Mulder</b></sub></a><br /><a href="https://github.com/alvinunreal/oh-my-opencode-slim/commits?author=ThomasMldr" title="Code">💻</a></td>
+      <td align="center" valign="top" width="16.66%"><a href="https://github.com/maou-shonen"><img src="https://avatars.githubusercontent.com/u/22576780?v=4?s=100" width="100px;" alt="魔王少年(maou shonen)"/><br /><sub><b>魔王少年(maou shonen)</b></sub></a><br /><a href="https://github.com/alvinunreal/oh-my-opencode-slim/commits?author=maou-shonen" title="Code">💻</a></td>
+      <td align="center" valign="top" width="16.66%"><a href="https://github.com/jelasin"><img src="https://avatars.githubusercontent.com/u/97788570?v=4?s=100" width="100px;" alt="  Jelasin"/><br /><sub><b>  Jelasin</b></sub></a><br /><a href="https://github.com/alvinunreal/oh-my-opencode-slim/commits?author=jelasin" title="Code">💻</a></td>
+      <td align="center" valign="top" width="16.66%"><a href="https://github.com/hannespr"><img src="https://avatars.githubusercontent.com/u/40021505?v=4?s=100" width="100px;" alt="Hannes"/><br /><sub><b>Hannes</b></sub></a><br /><a href="https://github.com/alvinunreal/oh-my-opencode-slim/commits?author=hannespr" title="Code">💻</a></td>
+      <td align="center" valign="top" width="16.66%"><a href="https://qwtoe.github.io/"><img src="https://avatars.githubusercontent.com/u/36733893?v=4?s=100" width="100px;" alt="mooozfxs"/><br /><sub><b>mooozfxs</b></sub></a><br /><a href="https://github.com/alvinunreal/oh-my-opencode-slim/commits?author=qwtoe" title="Code">💻</a></td>
+    </tr>
+    <tr>
+      <td align="center" valign="top" width="16.66%"><a href="https://github.com/zackslash"><img src="https://avatars.githubusercontent.com/u/2040617?v=4?s=100" width="100px;" alt="Luke Hines"/><br /><sub><b>Luke Hines</b></sub></a><br /><a href="https://github.com/alvinunreal/oh-my-opencode-slim/commits?author=zackslash" title="Code">💻</a></td>
+      <td align="center" valign="top" width="16.66%"><a href="https://github.com/andrewylies"><img src="https://avatars.githubusercontent.com/u/103019336?v=4?s=100" width="100px;" alt="m.seomoon"/><br /><sub><b>m.seomoon</b></sub></a><br /><a href="https://github.com/alvinunreal/oh-my-opencode-slim/commits?author=andrewylies" title="Code">💻</a></td>
+    </tr>
+  </tbody>
+</table>
+<!-- markdownlint-restore -->
+<!-- prettier-ignore-end -->
+
+<!-- ALL-CONTRIBUTORS-LIST:END -->
+
+---
+
+## 📄 许可证
+
+MIT

+ 1 - 0
package.json

@@ -43,6 +43,7 @@
     "src/skills",
     "oh-my-opencode-slim.schema.json",
     "README.md",
+    "README.zh-CN.md",
     "LICENSE"
   ],
   "scripts": {