skill-flow 1.0.7 → 1.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (143) hide show
  1. package/README.md +208 -131
  2. package/README.zh.md +169 -131
  3. package/dist/bridge-command.d.ts +9 -0
  4. package/dist/bridge-command.js +385 -0
  5. package/dist/bridge-command.js.map +1 -0
  6. package/dist/cli.js +70 -10
  7. package/dist/cli.js.map +1 -1
  8. package/package.json +11 -2
  9. package/dist/adapters/channel-adapters.d.ts +0 -8
  10. package/dist/adapters/channel-adapters.js +0 -64
  11. package/dist/adapters/channel-adapters.js.map +0 -1
  12. package/dist/domain/types.d.ts +0 -231
  13. package/dist/domain/types.js +0 -2
  14. package/dist/domain/types.js.map +0 -1
  15. package/dist/services/config-coordinator.d.ts +0 -38
  16. package/dist/services/config-coordinator.js +0 -83
  17. package/dist/services/config-coordinator.js.map +0 -1
  18. package/dist/services/deployment-applier.d.ts +0 -6
  19. package/dist/services/deployment-applier.js +0 -60
  20. package/dist/services/deployment-applier.js.map +0 -1
  21. package/dist/services/deployment-planner.d.ts +0 -16
  22. package/dist/services/deployment-planner.js +0 -353
  23. package/dist/services/deployment-planner.js.map +0 -1
  24. package/dist/services/doctor-service.d.ts +0 -7
  25. package/dist/services/doctor-service.js +0 -204
  26. package/dist/services/doctor-service.js.map +0 -1
  27. package/dist/services/inventory-service.d.ts +0 -17
  28. package/dist/services/inventory-service.js +0 -216
  29. package/dist/services/inventory-service.js.map +0 -1
  30. package/dist/services/skill-flow.d.ts +0 -133
  31. package/dist/services/skill-flow.js +0 -1180
  32. package/dist/services/skill-flow.js.map +0 -1
  33. package/dist/services/source-service.d.ts +0 -57
  34. package/dist/services/source-service.js +0 -778
  35. package/dist/services/source-service.js.map +0 -1
  36. package/dist/services/workflow-service.d.ts +0 -5
  37. package/dist/services/workflow-service.js +0 -45
  38. package/dist/services/workflow-service.js.map +0 -1
  39. package/dist/services/workspace-bootstrap-service.d.ts +0 -25
  40. package/dist/services/workspace-bootstrap-service.js +0 -140
  41. package/dist/services/workspace-bootstrap-service.js.map +0 -1
  42. package/dist/state/store.d.ts +0 -35
  43. package/dist/state/store.js +0 -151
  44. package/dist/state/store.js.map +0 -1
  45. package/dist/tests/add-flow-model.test.d.ts +0 -1
  46. package/dist/tests/add-flow-model.test.js +0 -108
  47. package/dist/tests/add-flow-model.test.js.map +0 -1
  48. package/dist/tests/add-flow-ui.test.d.ts +0 -1
  49. package/dist/tests/add-flow-ui.test.js +0 -16
  50. package/dist/tests/add-flow-ui.test.js.map +0 -1
  51. package/dist/tests/add-prepare-flow.test.d.ts +0 -1
  52. package/dist/tests/add-prepare-flow.test.js +0 -166
  53. package/dist/tests/add-prepare-flow.test.js.map +0 -1
  54. package/dist/tests/add-selection-and-find-command.test.d.ts +0 -1
  55. package/dist/tests/add-selection-and-find-command.test.js +0 -89
  56. package/dist/tests/add-selection-and-find-command.test.js.map +0 -1
  57. package/dist/tests/clawhub.test.d.ts +0 -1
  58. package/dist/tests/clawhub.test.js +0 -63
  59. package/dist/tests/clawhub.test.js.map +0 -1
  60. package/dist/tests/cli-utils.test.d.ts +0 -1
  61. package/dist/tests/cli-utils.test.js +0 -15
  62. package/dist/tests/cli-utils.test.js.map +0 -1
  63. package/dist/tests/config-coordinator.test.d.ts +0 -1
  64. package/dist/tests/config-coordinator.test.js +0 -219
  65. package/dist/tests/config-coordinator.test.js.map +0 -1
  66. package/dist/tests/config-integration.test.d.ts +0 -1
  67. package/dist/tests/config-integration.test.js +0 -240
  68. package/dist/tests/config-integration.test.js.map +0 -1
  69. package/dist/tests/config-ui-utils.test.d.ts +0 -1
  70. package/dist/tests/config-ui-utils.test.js +0 -523
  71. package/dist/tests/config-ui-utils.test.js.map +0 -1
  72. package/dist/tests/find-and-naming-utils.test.d.ts +0 -1
  73. package/dist/tests/find-and-naming-utils.test.js +0 -127
  74. package/dist/tests/find-and-naming-utils.test.js.map +0 -1
  75. package/dist/tests/inventory-service-precedence.test.d.ts +0 -1
  76. package/dist/tests/inventory-service-precedence.test.js +0 -42
  77. package/dist/tests/inventory-service-precedence.test.js.map +0 -1
  78. package/dist/tests/skill-flow.test.d.ts +0 -1
  79. package/dist/tests/skill-flow.test.js +0 -880
  80. package/dist/tests/skill-flow.test.js.map +0 -1
  81. package/dist/tests/source-lifecycle.test.d.ts +0 -1
  82. package/dist/tests/source-lifecycle.test.js +0 -605
  83. package/dist/tests/source-lifecycle.test.js.map +0 -1
  84. package/dist/tests/source-parsing-compatibility.test.d.ts +0 -1
  85. package/dist/tests/source-parsing-compatibility.test.js +0 -71
  86. package/dist/tests/source-parsing-compatibility.test.js.map +0 -1
  87. package/dist/tests/target-definitions.test.d.ts +0 -1
  88. package/dist/tests/target-definitions.test.js +0 -51
  89. package/dist/tests/target-definitions.test.js.map +0 -1
  90. package/dist/tests/test-helpers.d.ts +0 -18
  91. package/dist/tests/test-helpers.js +0 -123
  92. package/dist/tests/test-helpers.js.map +0 -1
  93. package/dist/tui/add-flow-model.d.ts +0 -62
  94. package/dist/tui/add-flow-model.js +0 -206
  95. package/dist/tui/add-flow-model.js.map +0 -1
  96. package/dist/tui/add-flow.d.ts +0 -25
  97. package/dist/tui/add-flow.js +0 -533
  98. package/dist/tui/add-flow.js.map +0 -1
  99. package/dist/tui/config-app.d.ts +0 -178
  100. package/dist/tui/config-app.js +0 -1551
  101. package/dist/tui/config-app.js.map +0 -1
  102. package/dist/tui/find-app.d.ts +0 -9
  103. package/dist/tui/find-app.js +0 -150
  104. package/dist/tui/find-app.js.map +0 -1
  105. package/dist/tui/selection-state.d.ts +0 -8
  106. package/dist/tui/selection-state.js +0 -32
  107. package/dist/tui/selection-state.js.map +0 -1
  108. package/dist/utils/builtin-git-sources.d.ts +0 -5
  109. package/dist/utils/builtin-git-sources.js +0 -23
  110. package/dist/utils/builtin-git-sources.js.map +0 -1
  111. package/dist/utils/clawhub.d.ts +0 -41
  112. package/dist/utils/clawhub.js +0 -94
  113. package/dist/utils/clawhub.js.map +0 -1
  114. package/dist/utils/cli.d.ts +0 -1
  115. package/dist/utils/cli.js +0 -15
  116. package/dist/utils/cli.js.map +0 -1
  117. package/dist/utils/constants.d.ts +0 -23
  118. package/dist/utils/constants.js +0 -195
  119. package/dist/utils/constants.js.map +0 -1
  120. package/dist/utils/find-command.d.ts +0 -2
  121. package/dist/utils/find-command.js +0 -29
  122. package/dist/utils/find-command.js.map +0 -1
  123. package/dist/utils/format.d.ts +0 -7
  124. package/dist/utils/format.js +0 -68
  125. package/dist/utils/format.js.map +0 -1
  126. package/dist/utils/fs.d.ts +0 -15
  127. package/dist/utils/fs.js +0 -140
  128. package/dist/utils/fs.js.map +0 -1
  129. package/dist/utils/git.d.ts +0 -3
  130. package/dist/utils/git.js +0 -12
  131. package/dist/utils/git.js.map +0 -1
  132. package/dist/utils/github-catalog.d.ts +0 -1
  133. package/dist/utils/github-catalog.js +0 -25
  134. package/dist/utils/github-catalog.js.map +0 -1
  135. package/dist/utils/naming.d.ts +0 -29
  136. package/dist/utils/naming.js +0 -115
  137. package/dist/utils/naming.js.map +0 -1
  138. package/dist/utils/result.d.ts +0 -4
  139. package/dist/utils/result.js +0 -15
  140. package/dist/utils/result.js.map +0 -1
  141. package/dist/utils/source-id.d.ts +0 -2
  142. package/dist/utils/source-id.js +0 -49
  143. package/dist/utils/source-id.js.map +0 -1
package/README.zh.md CHANGED
@@ -1,199 +1,237 @@
1
1
  # Skill Flow
2
2
 
3
- > **让 Skill 管理回归本质。**
4
- > Skill 分组 · 一键部署到多个工具 · 配置清晰 · 问题快速定位
3
+ <div align="center">
5
4
 
6
- ![img](img/img-1.jpg)
5
+ 将散落的 AI agent skill 整合为有序工作流。
7
6
 
8
- [English](./README.md)
7
+ [English](./README.md) · [日本語](./README.ja.md)
9
8
 
10
- [![Node.js Version](https://img.shields.io/node/v/skill-flow?style=flat-square)](https://nodejs.org)
9
+ [![Node.js Version](https://img.shields.io/badge/node-%3E%3D20-43853d?style=flat-square)](https://nodejs.org)
10
+ [![npm Version](https://img.shields.io/npm/v/skill-flow?style=flat-square)](https://www.npmjs.com/package/skill-flow)
11
11
  [![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg?style=flat-square)](./LICENSE)
12
12
 
13
- 当你的 Skill 越装越多,管理就会变得混乱:从 Github 仓库下载了一堆相关技能,部署到不同 agent 后结构被打散,更新和排障变得困难。
13
+ <img src="./img/img-icon.png" alt="Skill Flow 图标" width="120" />
14
14
 
15
- `skill-flow` 用 Skill 视角重新组织管理:以 Github 仓库作为 Skill 分组依据,选择部署目标,统一更新,快速诊断问题。让 Skill 管理清晰、可控、高效。
15
+ </div>
16
16
 
17
- ## 核心特性
18
- ![Skill 分组关系图](./img/img-2.png)
17
+ 在所有主流编码 agent 中安装、管理和共享 skill —— Claude Code、Cursor、Copilot 等。
19
18
 
20
- **Skill 分组管理**
21
- 一个 Github 仓库 = 一个 Skill 分组。相关 Skills 保持在一起,更新和维护以分组为单位进行。
19
+ skills.sh、GitHub 或本地来源搜索并导入 skill。一次部署到多个 agent。保持一切井然有序且及时更新。
22
20
 
23
- **一键部署到多个工具**
24
- 一次配置,部署到多个 agent(Claude Code、Cursor、Windsurf 等 13+ 目标)。
21
+ ![Skill Flow 桌面总览](./img/img-home.png)
25
22
 
26
- **交互式终端 UI**
27
- 直观的 TUI 界面:查看分组 → 选择技能 → 选择目标 → 保存配置。
23
+ ## 为什么要做这个
28
24
 
29
- **进入 Config 自动自举**
30
- `config` 会先立即渲染,再显示启动进度;启动阶段会识别 agent 根目录里尚未纳入管理的 skill,回填到 `skill-flow`,并在进入主界面前完成状态审计。
25
+ 逐个安装 skill 在规模化后会崩溃:
31
26
 
32
- **显式状态追踪**
33
- `manifest.json` 记录你的意图,`lock.json` 记录实际安装状态。状态清晰可查。
27
+ - 仓库包含多个相关 skill,但你分别安装它们
28
+ - 不同 agent 期望不同的位置
29
+ - 更新会悄悄漂移
30
+ - 未管理的目录不断累积
31
+ - 没人追踪实际部署了什么
34
32
 
35
- **一键体检**
36
- `doctor` 命令检测断链、不一致、冲突,精准定位问题。
33
+ `skill-flow` 保留了工作流分组。一个 source 始终是一个内聚单元——检查它、选择 skill、部署到多个目标、干净地更新,并始终了解你的状态。
37
34
 
38
- ## 安装
35
+ ## 当前能力
39
36
 
40
- 需要 Node.js >= 20,当前版本针对 macOS 优化。
37
+ - **分组化 source 管理**:本地、Git、skills.sh 统一走同一套导入模型。
38
+ - **多 agent 部署**:把同一组选中的 skill 部署到 Claude Code、Codex、Cursor、Gemini CLI、OpenCode、OpenClaw、Windsurf 等目标。
39
+ - **交互式配置流程**:基于 Ink 的 add/config/find TUI,覆盖选择、审阅和修复流程。
40
+ - **macOS 15+ 桌面应用**:SwiftUI 主窗口、导入页、详情页、设置页和菜单栏快速配置。
41
+ - **显式状态**:`manifest.json` 记录意图,`lock.json` 记录实际 inventory 与 deployment。
42
+ - **Bridge 协议**:通过 `skill-flow bridge --json` 提供机器可读入口。
43
+ - **修复与诊断**:`doctor`、`repair-source`、`repair-state`、`repair-targets` 负责处理最容易坏掉的地方。
41
44
 
42
- 通过 npm 安装:
45
+ ## 界面预览
46
+
47
+ | 菜单栏 | 导入页 |
48
+ | --- | --- |
49
+ | ![菜单栏快速配置](./img/img-menu.png) | ![导入页](./img/img-import.png) |
50
+
51
+ | 详情页 | 设置页 |
52
+ | --- | --- |
53
+ | ![详情页](./img/img-detail.png) | ![设置页](./img/img-setting.png) |
54
+
55
+ ## 快速开始
56
+
57
+ ### 安装
43
58
 
44
59
  ```bash
45
60
  npm install -g skill-flow
46
61
  skill-flow --help
47
62
  ```
48
63
 
49
- 不做全局安装也可以直接运行:
64
+ 也可以不全局安装,直接运行:
50
65
 
51
66
  ```bash
52
67
  npx skill-flow --help
53
68
  ```
54
69
 
55
- 如果你要本地开发,再使用源码安装:
70
+ ### 桌面端前置依赖
56
71
 
57
- ```bash
58
- git clone https://github.com/VintLin/skill-flow.git
59
- cd skill-flow
60
- npm install
61
- npm run build
62
- npm link
63
- ```
72
+ Skill Flow Desktop 目前在目标 Mac 上仍依赖少量外部命令行工具:
64
73
 
65
- ## 快速开始
74
+ - 启动内置 desktop helper 需要 `node` 20 或更高版本
75
+ - 导入非 GitHub Git source 需要 `git`
76
+ - 导入 skills.sh source 需要 `npx`
77
+
78
+ 如果桌面应用检测到依赖缺失,会直接提示可执行的错误信息,并引导回本节处理。
79
+
80
+ ### 常见使用流程
66
81
 
67
82
  ```bash
68
- # 添加技能源
69
- skill-flow add /path/to/skills-repo
83
+ # 添加一个 source
84
+ skill-flow add garrytan/gstack
70
85
 
71
- # 查看 Skill 分组
86
+ # 查看当前 workflow group
72
87
  skill-flow list
73
88
 
74
- # 交互式配置(选择技能和目标)
89
+ # 打开交互式配置 UI
75
90
  skill-flow config
76
91
 
77
- # 更新所有源
92
+ # 搜索本地技能、内置目录和 skills.sh
93
+ skill-flow find browser
94
+
95
+ # 更新单个 source 或全部 source
96
+ skill-flow update garrytan-gstack
78
97
  skill-flow update --all
79
98
 
80
- # 健康检查
99
+ # 诊断漂移和坏掉的部署
81
100
  skill-flow doctor
101
+ ```
82
102
 
83
- # 移除 Skill 分组
84
- skill-flow uninstall my-source-id
103
+ ### 机器桥接入口
104
+
105
+ 桌面端和辅助工具通过版本化 JSON 协议调用 CLI:
106
+
107
+ ```bash
108
+ printf '%s' '{"protocolVersion":"1.0","command":"list"}' | skill-flow bridge --json
85
109
  ```
86
110
 
87
- `add <source>` 支持本地路径、`owner/repo`、完整的 https/ssh Git URL、GitHub tree URL,以及 `clawhub:<slug>[@version]`。
111
+ ## 支持的来源
88
112
 
89
- `add` 默认会预选该源的全部 skill,以及当前检测到的全部 agent 目标。传入 `--path <repoSubpath>` 时,仍然会导入整个仓库,但只会预选该路径下的 skill。
113
+ `skill-flow add <source>` 目前支持:
114
+
115
+ - 本地目录
116
+ - `owner/repo` GitHub 简写
117
+ - 完整 HTTPS Git URL
118
+ - SSH Git URL
119
+ - GitHub tree URL
120
+ - `clawhub:<slug>[@version]`
90
121
 
91
122
  示例:
92
123
 
93
124
  ```bash
94
- # 本地仓库
95
125
  skill-flow add ~/code/my-skills
96
-
97
- # GitHub 简写
98
126
  skill-flow add garrytan/gstack
99
-
100
- # 完整 Git URL
101
127
  skill-flow add https://github.com/garrytan/gstack.git
102
128
  skill-flow add git@github.com:garrytan/gstack.git
103
-
104
- # GitHub tree URL
105
129
  skill-flow add https://github.com/garrytan/gstack/tree/main/skills
106
-
107
- # 导入整个仓库,但只预选某个子路径下的 skill
108
- skill-flow add garrytan/gstack --path skills
109
-
110
- # ClawHub 包
111
130
  skill-flow add clawhub:example/skill-pack
112
131
  skill-flow add clawhub:example/skill-pack@1.2.3
113
132
  ```
114
133
 
115
- ## 命令参考
116
-
117
- | 命令 | 说明 |
118
- |---|---|
119
- | `add <source>` | 添加技能源(本地路径、Git 仓库或 ClawHub) |
120
- | `find <query>` | 搜索本地已安装技能、内置 Git 仓库和 ClawHub |
121
- | `search <query>` | `find` 的别名 |
122
- | `list` | 显示 Skill 分组 |
123
- | `config` | 打开交互式配置界面 |
124
- | `update [sourceId] --all` | 更新所有技能并重新部署 |
125
- | `doctor` | 体检,排查问题 |
126
- | `uninstall <sourceIds...>` | 移除 Skill 分组及其部署 |
127
-
128
- 当已选 skill 出现同名冲突时,`skill-flow` 会把内容完全相同的重复项保留为 warning,把内容不同的冲突项改成带 repo / author 前缀的链接名,例如 `gstack-browse`、`gstack(garrytan)-browse` 或 `garrytan-skill-creator`。
129
-
130
- ## 工作原理
131
-
132
- **状态管理**
133
- - `~/.skillflow/manifest.json` - 你的配置(你想要什么)
134
- - `~/.skillflow/lock.json` - 实际状态(实际装了什么)
135
- - `~/.skillflow/source/local/<source-id>/` - 本地导入源,以及启动时接管的外部 skill
136
- - `~/.skillflow/source/git/<source-id>/` - Git 仓库缓存
137
- - `~/.skillflow/source/clawhub/<source-id>/` - ClawHub 缓存
138
- - `~/.skillflow/catalog/git/<source-id>/` - 内置 Git 仓库缓存
139
-
140
- **部署策略**
141
- 优先使用符号链接,必要时使用文件复制。目标目录只是部署点,真正的状态在 lock.json 里。
142
-
143
- **Config 启动时会做什么**
144
- - 检测当前可用 agent 目标
145
- - 扫描已知 agent `skills/` 根目录中的未受管 skill
146
- - 将这些外部 skill 导入到 `~/.skillflow/source/local/`
147
- - 刷新 inventory、归一化 bindings、审计当前投影状态
148
- - 然后进入交互式 config 界面
149
-
150
- 如果某个 agent 根目录里的 symlink 本来就已经指向 `~/.skillflow/source/*` 下的受管内容,bootstrap 会把它视为已管理状态,不会重复回填。
151
-
152
- ## 支持的 Agent
153
-
154
- Claude Code · Codex · Cursor · GitHub Copilot · Gemini CLI · OpenCode · OpenClaw · Pi · Windsurf · Roo Code · Cline · Amp · Kiro
155
-
156
- 可通过环境变量自定义目标路径(如 `SKILL_FLOW_TARGET_CLAUDE_CODE`)。
157
-
158
- 更广义的生态路径参考,包括 project 级 rules / instructions 路径(文档整理中)。
159
-
160
- ## 默认内置发现仓库
161
-
162
- `find/search` 除了搜索本地已安装技能和 ClawHub,也会搜索默认内置的 Git 仓库目录。
163
-
164
- 如果希望内置 Git 仓库搜索更稳定,建议设置 `GITHUB_TOKEN`,避免 GitHub 未认证 API 的低速率限制。
165
-
166
- | Repository | Description | Stars | Skills |
167
- | --- | --- | ---: | ---: |
168
- | [anthropic-skills](https://github.com/anthropics/skills) | Official Agent Skills from Anthropic | 95,957 | 18 |
169
- | [superpowers](https://github.com/obra/superpowers) | Agentic skills framework & development methodology | 89,816 | 14 |
170
- | [everything-claude-code](https://github.com/affaan-m/everything-claude-code) | Performance optimization system for Claude Code, Codex, and beyond | 81,392 | 147 |
171
- | [agency-agents](https://github.com/msitarzewski/agency-agents) | Specialized expert agents with personality and proven deliverables | 50,749 | — |
172
- | [ui-ux-pro-max-skill](https://github.com/nextlevelbuilder/ui-ux-pro-max-skill) | Design intelligence for building professional UI/UX | 43,112 | 7 |
173
- | [antigravity-awesome-skills](https://github.com/sickn33/antigravity-awesome-skills) | 1,000+ battle-tested skills for Claude Code, Cursor, and more | 25,047 | 1,258 |
174
- | [marketingskills](https://github.com/coreyhaines31/marketingskills) | Marketing skills — CRO, copywriting, SEO, analytics, growth | 14,099 | 33 |
175
- | [agentskills](https://github.com/agentskills/agentskills) | Specification and documentation for Agent Skills | 13,342 | — |
176
- | [taste-skill](https://github.com/Leonxlnx/taste-skill) | Gives your AI good taste — stops generic, boring output | 3,389 | 5 |
177
- | [affiliate-skills](https://github.com/Affitor/affiliate-skills) | Full affiliate marketing funnel: research to deploy | 99 | 47 |
178
- | [skills](https://github.com/luongnv89/skills) | Reusable skills to supercharge your AI agents | 1 | 29 |
179
- | [awesome-claude-skills](https://github.com/ComposioHQ/awesome-claude-skills) | Community Claude skills collection | — | — |
180
- | [myclaude](https://github.com/cexll/myclaude) | Personal Claude skills collection | — | — |
181
- | [baoyu-skills](https://github.com/JimLiu/baoyu-skills) | Community skills collection | — | — |
182
- | [dbskill](https://github.com/dontbesilent2025/dbskill) | Database-focused skills collection | — | — |
183
- | [gstack](https://github.com/garrytan/gstack) | Gstack skills and workflows | — | — |
184
- | [impeccable](https://github.com/pbakaus/impeccable) | Design and taste skills collection | — | — |
185
- | [frontend-slides](https://github.com/zarazhangrui/frontend-slides) | Frontend presentation skills collection | — | — |
134
+ 如果仓库很大,但默认只想从某个子目录开始预选,可以加 `--path <repoSubpath>`。
135
+
136
+ ## 支持的目标 Agent
137
+
138
+ 当前内置目标:
139
+
140
+ - Claude Code
141
+ - Codex
142
+ - Cursor
143
+ - GitHub Copilot
144
+ - Gemini CLI
145
+ - OpenCode
146
+ - OpenClaw
147
+ - Pi
148
+ - Windsurf
149
+ - Roo Code
150
+ - Cline
151
+ - Amp
152
+ - Kiro
153
+
154
+ 目标路径可以通过 `SKILL_FLOW_TARGET_*` 环境变量覆盖。
155
+
156
+ ## 命令总览
157
+
158
+ | 命令 | 作用 |
159
+ | --- | --- |
160
+ | `add <source>` | 导入 source,并选择 skill 与目标 |
161
+ | `list` | 查看 workflow group 和当前健康状态 |
162
+ | `find <query>` / `search <query>` | 搜索本地技能、内置 Git 目录与 skills.sh |
163
+ | `config` | 打开交互式配置 UI |
164
+ | `update [sourceId] --all` | 更新单个或全部已注册 source |
165
+ | `doctor` | 诊断漂移、缺失路径和投影问题 |
166
+ | `repair-source [sourceId] --all` | 修复 source checkout 元数据 |
167
+ | `repair-state [sourceId] --all` | 重建 source 侧状态 |
168
+ | `repair-targets [sourceId] --all` | 修复目标部署内容 |
169
+ | `uninstall <sourceIds...>` | 移除 group 及其部署 |
170
+ | `bridge --json` | 执行机器协议请求 |
171
+
172
+ ## 状态如何组织
173
+
174
+ `skill-flow` 默认把状态放在 `~/.skillflow/`:
175
+
176
+ - `manifest.json`:你想要什么
177
+ - `lock.json`:系统实际装成了什么
178
+ - `source/local/*`:本地导入或接管的外部 source
179
+ - `source/git/*`:Git source 缓存
180
+ - `source/clawhub/*`:skills.sh source 缓存
181
+ - `catalog/git/*`:内置 Git catalog 缓存
182
+
183
+ 目标目录只是部署结果,不是真正的事实源。
184
+
185
+ ## Monorepo 结构
186
+
187
+ - `apps/cli`:对外发布的 npm CLI
188
+ - `apps/desktop-mac`:macOS 15+ SwiftUI 桌面应用
189
+ - `packages/domain`:领域模型和核心类型
190
+ - `packages/storage`:manifest/lock/preferences/cache 持久化
191
+ - `packages/integration`:Git、GitHub、skills.sh、路径与命名集成
192
+ - `packages/core-engine`:inventory、deployment、doctor、bootstrap 等服务
193
+ - `packages/query`:共享运行时与 bridge 编排
194
+ - `packages/shared-types`:bridge 协议类型
195
+ - `packages/tui`:Ink add/find/config UI
196
+ - `docs`:架构、贡献指南、参考资料、计划与打包文档
186
197
 
187
198
  ## 开发
188
199
 
189
200
  ```bash
190
201
  npm install
191
- npm run dev # 开发模式
192
- npm run build # 构建
193
- npm test # 运行测试
202
+ npm run build
203
+ npm test
194
204
  ```
195
205
 
196
- 技术栈:TypeScript + Vitest + Ink TUI
206
+ CLI 开发调试:
207
+
208
+ ```bash
209
+ npm run -w skill-flow dev -- --help
210
+ ```
211
+
212
+ 桌面端开发调试:
213
+
214
+ ```bash
215
+ npm run build
216
+ cd apps/desktop-mac
217
+ swift build
218
+ swift test
219
+ ```
220
+
221
+ 让桌面端使用本地 CLI 构建产物:
222
+
223
+ ```bash
224
+ export SKILL_FLOW_DESKTOP_HELPER_OVERRIDE=/absolute/path/to/apps/cli/dist/cli.js
225
+ ```
226
+
227
+ ## 文档入口
228
+
229
+ - [架构文档](./docs/ARCHITECTURE.md)
230
+ - [贡献指南](./docs/CONTRIBUTING.md)
231
+ - [文档索引](./docs/README.md)
232
+ - [CLI 参考](./docs/references/REF_00_cli-commands.md)
233
+ - [桌面打包参考](./docs/references/REF_09_desktop-packaging.md)
234
+ - [v1.3.1 发布说明](./releases/RELEASE_v1.3.1.md)
197
235
 
198
236
  ## 许可证
199
237
 
@@ -0,0 +1,9 @@
1
+ import { type BridgeRequest, type BridgeResponse } from "@skill-flow/shared-types/protocol";
2
+ import type { SkillFlowApp } from "@skill-flow/query/runtime";
3
+ type BridgeFailure = {
4
+ code: string;
5
+ message: string;
6
+ };
7
+ export declare function executeBridgeRequest(app: SkillFlowApp, request: BridgeRequest): Promise<BridgeResponse>;
8
+ export declare function buildBridgeParseFailure(command: string, failure: BridgeFailure): BridgeResponse;
9
+ export {};