fix: focus built-in skill defaults

The Skills catalog exposed nine product-marketing recipes as independent
capabilities and enabled every marketing package for every Runtime by default.
It now keeps five top-level Skills, loads the nine recipes on demand through
the product-marketing package, and leaves the three marketing Skills disabled
until users enable them. Existing saved Skill settings remain authoritative.

Release note: 内置 Skills 已从 14 个顶层入口精简为 5 个;去 AI 味和长文工具默认启用,产品营销类默认停用,已保存的用户设置保持不变。
This commit is contained in:
mesalogo
2026-09-02 00:44:44 +08:00
parent 4f3e0bdcfd
commit 06c1123caa
28 changed files with 209 additions and 162 deletions
@@ -78,6 +78,16 @@ stdio MCP 配置的绝对 command 表达用户对该 MCP 的明确覆盖,原
分阶段交付期间,未实现的“工具执行环境”不进入 Tab 状态集合。第一阶段状态集合只有
`skills | mcp`,后续实现完成后才扩展为 `skills | mcp | tool-environment`。
### INV-11 内置 Skill 默认值不覆盖用户状态
只有状态存储中没有对应 Skill 记录时才使用产品默认值。通用文档工具
`deai-writing`、`longdoc-docx` 默认启用;产品营销类 `product-evidence`、
`product-marketing`、`product-presentation` 默认停用。用户显式保存的启停状态和
Runtime 分配优先,升级不得重置。
九种产品营销文档配方属于 `product-marketing` 包内工作流,不是独立能力状态维度,
不进入顶层 Skill 目录,也不单独注入 Runtime。
## 3. 状态维度
### 3.1 来源选择
@@ -179,6 +179,13 @@ Python、虚拟环境或 Conda 环境时,也不能被 GoodBuddy 静默替换
`Skills`、`MCP`、`工具执行环境` 三个水平 Tab。始终默认打开 `Skills`。
- 三个 Tab 使用共享 `PageTabs`,保留 `tablist`、`tab`、`tabpanel`、方向键和可见焦点。
- `Skills` 继续承载现有 Skill 启停、导入、状态和 Runtime 分配。
- 内置 Skill 顶层目录只展示五个独立能力:`deai-writing`、`longdoc-docx`、
`product-evidence`、`product-marketing`、`product-presentation`。产品营销的功能目录、
一页纸、技术方案、白皮书、招标、演示套件、客户案例和竞品定位作为
`product-marketing` 内部工作流,不重复显示为独立 Skill。
- `deai-writing` 和 `longdoc-docx` 默认启用;`product-evidence`、
`product-marketing`、`product-presentation` 默认停用。已保存的用户启停和 Runtime
分配始终优先于默认值;导入 Skill 的默认行为保持不变。
- `MCP` 继续承载现有 MCP 配置、凭据、状态和 Runtime 分配;其现有内部分组页签保持不变。
- `工具执行环境` 承载工具下载源、Node.js、Python、诊断和生效范围。
- 合并导航不改写 Skills/MCP 业务数据;未来新增定向入口时必须进入对应水平 Tab。
@@ -32,6 +32,9 @@
- [x] 定义设置页结构、状态、文案和无障碍要求。
- [x] 定义 Main 服务、shim、探测、诊断、PATH 注入和 Python 生命周期。
- [x] 远程主机设置副标题已说明本机 Skills 和 MCP 不作用于远程主机。
- [x] 将内置 Skill 顶层目录从 14 个收敛为 5 个,九种产品营销配方改为
`product-marketing` 包内按需工作流。
- [x] 通用文档工具默认启用,三个产品营销 Skill 默认停用,同时保留用户显式保存状态。
## 待实施
@@ -83,9 +86,10 @@
- `npm run typecheck` 通过。
- `npm run lint` 通过。
- `npm run build` 通过。
- `npm test` 通过:`3412` 通过、`50` 跳过。
- Skill 聚焦测试通过:Capability/Bundled Skills `39/39`,产品营销路由 `10/10`。
- `npm test -- src/renderer/src/SettingsPanel.test.tsx` 通过:`80/80`。
- 最近一次 `npm test` 为 `3410` 通过、`50` 跳过、`1` 失败;失败是并行修改中的浏览器
控制用例超时,该用例随后单独复跑通过。本功能聚焦测试全部通过。
- 设置页测试确认左侧不再显示独立 Skills/MCP,统一入口默认打开 Skills,MCP 原内层页签
保持可用,且不显示工具执行环境占位。
- 修复能力与工具 Tab 包装层在可滚动设置布局中被 Flexbox 压缩到零高度的问题,并增加与
@@ -232,6 +232,17 @@ URL 只存在于 Main/构建目录,不进入 Renderer。两个 Target 共用
SKILL 稳定调用命令名,不接收真实安装路径。
- `resources/skills` 顶层只保留五个带 `SKILL.md` 的独立包:
`deai-writing`、`longdoc-docx`、`product-evidence`、`product-marketing`、
`product-presentation`。
- 九种纯 Markdown 产品营销配方位于 `product-marketing/workflows/<route-id>/`,
使用 `WORKFLOW.md` 与同目录 `templates/`,不参与顶层 Skill 发现。
- `CapabilityService` 仅在状态中没有该 ID 时应用默认值。三个产品营销 Skill 默认
`enabled: false`;两个通用文档工具和导入 Skill 维持默认启用。显式保存状态不迁移、
不覆盖。
- 默认停用的 Skill 不进入 Runtime 指令和原生 Skill 包列表;用户启用后沿用现有四个
Runtime 分配。
stdio MCP:
- 裸 `node`、`npm`、`npx`、`python`、`python3`、`pip` 使用工具 bin。
@@ -56,6 +56,7 @@
Skills 面板
现有 Skill 启停、导入、状态和 Runtime 分配
五个内置 Skill;产品营销三个默认停用,通用文档工具两个默认启用
MCP 面板
现有 MCP 配置、凭据、状态和 Runtime 分配
@@ -80,6 +81,10 @@ MCP 面板
测试环境
```
产品营销的九种文档配方不单独占用 Skill 卡片。用户启用 `product-marketing` 后,
由该 Skill 根据任务按需读取内部工作流。界面只展示能够独立启停和分配 Runtime 的
五个顶层内置 Skill;已保存状态覆盖产品默认值。
工具执行环境面板内的区块顺序固定为工具下载源、Node.js、Python,不再增加页签。
## 3. 三个水平 Tab
@@ -308,3 +308,16 @@
- 切换三个外层 Tab 后返回时保留本次设置面板会话中的编辑状态
- 关闭并重新打开设置时,普通入口仍默认显示 Skills,不持久化上次外层 Tab
- 未来新增 Skills/MCP 定向入口时打开对应水平 Tab
### US-F3 聚焦默认内置能力
作为普通用户,我希望默认只加载通用文档工具,不让低频产品营销说明占用每次会话的上下文。
验收:
- Skills 列表只把五个具备独立入口或执行器的内置能力显示为顶层 Skill
- 产品营销的九种文档配方从 `product-marketing` 内部按需读取
- `deai-writing` 和 `longdoc-docx` 在没有保存状态时默认启用
- 三个产品营销 Skill 在没有保存状态时默认停用
- 用户显式保存的启停状态和 Runtime 分配不因版本升级而重置
- 用户导入的 Skill 继续使用现有默认启用和 Runtime 分配规则