@jennie-shawn/starwork 0.1.0-alpha.2 → 0.1.0-alpha.21

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 (298) hide show
  1. package/README.md +111 -99
  2. package/adapters/README.md +34 -0
  3. package/adapters/claude-code/profile.json +55 -0
  4. package/adapters/claude-code/rules.md +13 -0
  5. package/adapters/claude-code/safety.md +6 -0
  6. package/adapters/codex/profile.json +55 -0
  7. package/adapters/codex/rules.md +12 -0
  8. package/adapters/codex/safety.md +5 -0
  9. package/adapters/contract.md +64 -0
  10. package/adapters/cursor/profile.json +60 -0
  11. package/adapters/cursor/rules.md +7 -0
  12. package/adapters/cursor/safety.md +6 -0
  13. package/adapters/trae/profile.json +61 -0
  14. package/adapters/trae/rules.md +7 -0
  15. package/adapters/trae/safety.md +7 -0
  16. package/cli/README.md +50 -9
  17. package/cli/audit-spec.md +403 -0
  18. package/cli/doctor-spec.md +109 -17
  19. package/cli/init-spec.md +81 -53
  20. package/cli/repair-spec.md +361 -0
  21. package/cli/spawn-blueprint-spec.md +18 -18
  22. package/cli/spawn-spec.md +103 -108
  23. package/cli/src/cli.js +9403 -1059
  24. package/cli/test/init.test.js +2566 -51
  25. package/cli/upgrade-spec.md +488 -0
  26. package/core/README.md +14 -3
  27. package/core/agent-lanes-session-naming-spec.md +364 -0
  28. package/core/agent-lanes-spec.md +507 -0
  29. package/core/baseline/file-boundaries.md +11 -3
  30. package/core/baseline/health-check.md +2 -2
  31. package/core/baseline/roles.md +0 -1
  32. package/core/baseline/spec.md +3 -2
  33. package/core/capabilities/README.md +5 -2
  34. package/core/capabilities/agent-lanes/capability.md +40 -0
  35. package/core/capabilities/decisions/capability.md +2 -2
  36. package/core/capabilities/knowledge/capability.md +72 -0
  37. package/core/capabilities/knowledge/skills/starworkKnowledgeProject/SKILL.md +57 -0
  38. package/core/capabilities/knowledge/skills/starworkKnowledgeProject/agents/openai.yaml +6 -0
  39. package/core/capabilities/knowledge/templates/en/README.md +20 -0
  40. package/core/capabilities/knowledge/templates/en/index.md +19 -0
  41. package/core/capabilities/knowledge/templates/en/log.md +16 -0
  42. package/core/capabilities/knowledge/templates/en/schema.md +60 -0
  43. package/core/capabilities/knowledge/templates/zh/README.md +20 -0
  44. package/core/capabilities/knowledge/templates/zh/index.md +19 -0
  45. package/core/capabilities/knowledge/templates/zh/log.md +16 -0
  46. package/core/capabilities/knowledge/templates/zh/schema.md +60 -0
  47. package/core/capabilities/main-repo-sync/capability.md +57 -34
  48. package/core/capabilities/skill-mount/capability.md +19 -5
  49. package/core/capabilities/starter-outputs/capability.md +9 -11
  50. package/core/capabilities/starter-outputs/templates/outputs/final/README.md +1 -1
  51. package/core/core-v0.1-protocol.md +23 -21
  52. package/core/kits/README.md +9 -1
  53. package/core/kits/hub/.incoming/README.md +4 -2
  54. package/core/kits/hub/.incoming/reports/.gitkeep +1 -0
  55. package/core/kits/hub/.incoming/skills/.gitkeep +1 -0
  56. package/core/kits/hub/.internal/twin-bot-merge-policy.md +5 -0
  57. package/core/kits/hub/.internal/twin-bot-writeback-protocol.md +5 -0
  58. package/core/kits/hub/.starwork/handoff/archived/.gitkeep +1 -0
  59. package/core/kits/hub/.starwork/handoff/inbox/.gitkeep +1 -0
  60. package/core/kits/hub/.starwork/handoff/outbox/.gitkeep +1 -0
  61. package/core/kits/hub/.starwork/handoff/sent/.gitkeep +1 -0
  62. package/core/kits/hub/.starwork/handoff/state.json +5 -0
  63. package/core/kits/hub/AGENTS.md +18 -12
  64. package/core/kits/hub/README.md +17 -9
  65. package/core/kits/hub/identity/README.md +2 -2
  66. package/core/kits/hub/knowledge/README.md +5 -0
  67. package/core/kits/hub/lessons/README.md +2 -2
  68. package/core/kits/hub/projects/README.md +5 -0
  69. package/core/kits/hub/projects/coordination/README.md +5 -0
  70. package/core/kits/hub/projects/coordination/messages/acknowledged/.gitkeep +1 -0
  71. package/core/kits/hub/projects/coordination/messages/closed/.gitkeep +1 -0
  72. package/core/kits/hub/projects/coordination/messages/delivered/.gitkeep +1 -0
  73. package/core/kits/hub/projects/coordination/messages/queued/.gitkeep +1 -0
  74. package/core/kits/hub/projects/coordination/reports/.gitkeep +1 -0
  75. package/core/kits/hub/skills/README.md +4 -2
  76. package/core/kits/hub/skills/registry.json +6 -0
  77. package/core/kits/hub/workspace/README.md +5 -0
  78. package/core/kits/kit-structure-reference.md +104 -191
  79. package/core/kits/project/.agents/skills/README.md +5 -0
  80. package/core/kits/project/.claude/skills/README.md +5 -0
  81. package/core/kits/project/.obsidian/README.md +5 -0
  82. package/core/kits/project/.starwork/handoff/archived/.gitkeep +1 -0
  83. package/core/kits/project/.starwork/handoff/inbox/.gitkeep +1 -0
  84. package/core/kits/project/.starwork/handoff/outbox/.gitkeep +1 -0
  85. package/core/kits/project/.starwork/handoff/sent/.gitkeep +1 -0
  86. package/core/kits/project/.starwork/handoff/state.json +5 -0
  87. package/core/kits/project/AGENTS.md +38 -0
  88. package/core/kits/project/README.md +44 -0
  89. package/core/kits/project/_/347/263/273/347/273/237//344/270/212/344/270/213/346/226/207//345/275/223/345/211/215/351/241/271/347/233/256.md +25 -0
  90. package/core/kits/project/_/347/263/273/347/273/237//344/273/273/345/212/241//345/275/223/345/211/215/345/267/245/344/275/234.md +17 -0
  91. package/core/kits/project/_/347/263/273/347/273/237//346/225/231/350/256/255/README.md +17 -0
  92. package/core/kits/project/_/347/263/273/347/273/237//350/272/253/344/273/275/README.md +24 -0
  93. package/core/kits/two-kit-architecture-spec.md +695 -0
  94. package/core/legacy/README.md +16 -0
  95. package/core/legacy/kits/satellite-starter/.starwork/handoff/archived/.gitkeep +1 -0
  96. package/core/legacy/kits/satellite-starter/.starwork/handoff/inbox/.gitkeep +1 -0
  97. package/core/legacy/kits/satellite-starter/.starwork/handoff/outbox/.gitkeep +1 -0
  98. package/core/legacy/kits/satellite-starter/.starwork/handoff/sent/.gitkeep +1 -0
  99. package/core/legacy/kits/satellite-starter/.starwork/handoff/state.json +5 -0
  100. package/core/{kits → legacy/kits}/satellite-starter/AGENTS.md +7 -1
  101. package/core/{kits → legacy/kits}/satellite-starter/README.md +4 -4
  102. package/core/{kits → legacy/kits}/satellite-starter/_/347/263/273/347/273/237//344/270/273/345/272/223/345/220/214/346/255/245/README.md +3 -3
  103. package/core/legacy/kits/satellite-starter//350/276/223/345/207/272//347/241/256/350/256/244/346/210/220/346/236/234/README.md +5 -0
  104. package/core/{presets → legacy/presets}/satellite-starter.yaml +1 -1
  105. package/core/presets/README.md +17 -7
  106. package/core/presets/hub.yaml +23 -4
  107. package/core/presets/project.yaml +11 -0
  108. package/core/profiles/en/labels.json +2 -4
  109. package/core/profiles/en/paths.json +3 -4
  110. package/core/profiles/en/profile.md +7 -4
  111. package/core/profiles/en/templates/AGENTS.md +13 -9
  112. package/core/profiles/en/{reference-kits/local-starter/_system/context/project-status.md → templates/_system/context/current-project.md} +1 -1
  113. package/core/profiles/zh/labels.json +2 -4
  114. package/core/profiles/zh/paths.json +3 -5
  115. package/core/profiles/zh/profile.md +7 -4
  116. package/core/profiles/zh/templates/AGENTS.md +13 -9
  117. package/core/{kits/local-matter/_/347/263/273/347/273/237//344/270/212/344/270/213/346/226/207//351/241/271/347/233/256/347/212/266/346/200/201.md → profiles/zh/templates/_/347/263/273/347/273/237//344/270/212/344/270/213/346/226/207//345/275/223/345/211/215/351/241/271/347/233/256.md} +1 -1
  118. package/core/project-rules-optimization-spec.md +510 -0
  119. package/core/skill-management-spec.md +591 -0
  120. package/core/starwork-runtime-layer-spec.md +344 -0
  121. package/docs/README.md +18 -4
  122. package/docs/agent-install-guide.md +132 -0
  123. package/docs/ai-consultant-brief.md +648 -0
  124. package/docs/alpha-test-guide.md +274 -17
  125. package/docs/cli-capabilities.html +206 -115
  126. package/docs/cli-skill-registry.html +801 -0
  127. package/docs/doctor-capabilities.html +631 -0
  128. package/docs/hub-management.html +60 -59
  129. package/docs/index.html +7 -5
  130. package/docs/issue-feedback-tracking-guide.md +447 -0
  131. package/docs/m2.10-core-kit-pack-boundary-cleanup-spec.md +567 -0
  132. package/docs/m2.6-alpha-core-flows-optimization-spec.md +441 -0
  133. package/docs/m2.6-project-init-feedback/README.md +27 -0
  134. package/docs/m2.6-project-init-feedback/m2.6-project-init-feedback-01-identity-spec.md +194 -0
  135. package/docs/m2.6-project-init-feedback/m2.6-project-init-feedback-02-hub-sync-boundary-spec.md +198 -0
  136. package/docs/m2.6-project-init-feedback/m2.6-project-init-feedback-03-current-project-purity-spec.md +238 -0
  137. package/docs/m2.6-project-init-feedback/m2.6-project-init-feedback-04-system-placeholder-templates-spec.md +213 -0
  138. package/docs/m2.6-project-init-feedback/m2.6-project-init-feedback-05-agents-guardrails-spec.md +265 -0
  139. package/docs/m2.7-init-github-issues-optimization-spec.md +350 -0
  140. package/docs/m2.8-workspace-naming-optimization-spec.md +633 -0
  141. package/docs/multiagent/01-codex-session-capabilities-and-starwork-implications.md +280 -0
  142. package/docs/multiagent/02-cursor-session-management-research-instructions.md +204 -0
  143. package/docs/multiagent/03-trae-session-management-research-instructions.md +205 -0
  144. package/docs/multiagent/04-claude-code-session-management-research-instructions.md +209 -0
  145. package/docs/multiagent/05-trae-solo-session-management-research-instructions.md +222 -0
  146. package/docs/multiagent/claude-code-session-management-research-result.md +201 -0
  147. package/docs/multiagent/cursor-session-management-research-result.md +101 -0
  148. package/docs/multiagent/session-control-support-matrix.md +20 -0
  149. package/docs/multiagent/trae-session-management-research-result.md +353 -0
  150. package/docs/multiagent/trae-solo-session-management-research-result.md +467 -0
  151. package/docs/product-direction.md +17 -9
  152. package/docs/product-shape-business-model.html +1 -1
  153. package/docs/roadmap.html +34 -20
  154. package/docs/roadmap.md +185 -20
  155. package/docs/v0.1-plan.md +32 -12
  156. package/kit-skills/README.md +11 -0
  157. package/kit-skills/neat-freak/SKILL.md +32 -0
  158. package/kit-skills/neat-freak/agents/openai.yaml +2 -0
  159. package/kit-skills/starworkAudit/SKILL.md +127 -0
  160. package/kit-skills/starworkAudit/references/issue-taxonomy.md +10 -0
  161. package/kit-skills/starworkAudit/references/repair-blueprint-guide.md +54 -0
  162. package/kit-skills/starworkAudit/references/response-guide.md +34 -0
  163. package/{skills → kit-skills}/starworkSpawn/SKILL.md +36 -14
  164. package/package.json +4 -3
  165. package/packs/content-creator/languages/en.json +4 -4
  166. package/packs/content-creator/languages/zh.json +4 -4
  167. package/packs/content-creator/pack.json +5 -5
  168. package/packs/general/languages/en.json +19 -2
  169. package/packs/general/languages/zh.json +19 -2
  170. package/packs/general/pack.json +8 -3
  171. package/packs/hub-management/languages/en.json +2 -2
  172. package/packs/hub-management/languages/zh.json +11 -10
  173. package/packs/hub-management/pack.json +2 -2
  174. package/packs/hub-management/rules/en/overview.md +2 -0
  175. package/packs/hub-management/rules/en/workflow.md +2 -1
  176. package/packs/hub-management/rules/zh/overview.md +4 -2
  177. package/packs/hub-management/rules/zh/workflow.md +3 -2
  178. package/packs/hub-management/seed/en/projects/coordination/README.md +2 -2
  179. package/packs/hub-management/seed/zh/projects/coordination/README.md +5 -0
  180. package/packs/pack-structure-spec.md +4 -4
  181. package/skills/README.md +28 -3
  182. package/skills/starwork/SKILL.md +81 -0
  183. package/skills/starwork/references/install.md +64 -0
  184. package/skills/starwork/references/routing.md +44 -0
  185. package/skills/starworkAudit-spec.md +354 -0
  186. package/skills/starworkDoctor/SKILL.md +435 -0
  187. package/skills/starworkDoctor/agents/openai.yaml +7 -0
  188. package/skills/starworkDoctor/references/agent-rules-template.md +64 -0
  189. package/skills/starworkDoctor/references/hub-upgrade.md +73 -0
  190. package/skills/starworkDoctor/references/response-guide.md +57 -0
  191. package/skills/starworkDoctor/references/rules-extraction-guide.md +92 -0
  192. package/skills/starworkDoctor-spec.md +764 -0
  193. package/skills/starworkInit/SKILL.md +285 -50
  194. package/skills/starworkInit-spec.md +106 -75
  195. package/skills/starworkKnowledge/SKILL.md +195 -0
  196. package/skills/starworkKnowledge/agents/openai.yaml +3 -0
  197. package/skills/starworkMultiagent/SKILL.md +302 -0
  198. package/skills/starworkMultiagent/agents/openai.yaml +7 -0
  199. package/skills/starworkMultiagent-skill-plan.md +234 -0
  200. package/skills/starworkMultiagent-spec.md +181 -0
  201. package/core/capabilities/matter-mode/capability.md +0 -46
  202. package/core/capabilities/matter-mode/templates/matters/_matter-template/README.md +0 -17
  203. package/core/capabilities/matter-mode/templates/matters/_matter-template/handoff.md +0 -3
  204. package/core/capabilities/matter-mode/templates/matters/_matter-template/notes.md +0 -5
  205. package/core/capabilities/matter-mode/templates/matters/_matter-template/progress.md +0 -5
  206. package/core/capabilities/matter-mode/templates/matters/registry.md +0 -16
  207. package/core/kits/hub/_/347/263/273/347/273/237//344/270/212/344/270/213/346/226/207//351/241/271/347/233/256/347/212/266/346/200/201.md +0 -24
  208. package/core/kits/hub//347/237/245/350/257/206/README.md +0 -5
  209. package/core/kits/hub//351/241/271/347/233/256/README.md +0 -5
  210. package/core/kits/hub//351/241/271/347/233/256//350/201/224/347/273/234/README.md +0 -5
  211. package/core/kits/local-matter/AGENTS.md +0 -23
  212. package/core/kits/local-matter/README.md +0 -22
  213. package/core/kits/local-matter/_/347/263/273/347/273/237//344/270/212/344/270/213/346/226/207//345/206/263/347/255/226.md +0 -7
  214. package/core/kits/local-matter/_/347/263/273/347/273/237//344/273/273/345/212/241//345/275/223/345/211/215/345/267/245/344/275/234.md +0 -17
  215. package/core/kits/local-matter/_/347/263/273/347/273/237//346/225/231/350/256/255/README.md +0 -5
  216. package/core/kits/local-matter/_/347/263/273/347/273/237//350/272/253/344/273/275/README.md +0 -5
  217. package/core/kits/local-matter//344/272/213/351/241/271/_/344/272/213/351/241/271/346/250/241/346/235/277/README.md +0 -17
  218. package/core/kits/local-matter//344/272/213/351/241/271/_/344/272/213/351/241/271/346/250/241/346/235/277//344/272/244/346/216/245.md +0 -3
  219. package/core/kits/local-matter//344/272/213/351/241/271/_/344/272/213/351/241/271/346/250/241/346/235/277//347/254/224/350/256/260.md +0 -5
  220. package/core/kits/local-matter//344/272/213/351/241/271/_/344/272/213/351/241/271/346/250/241/346/235/277//350/277/233/345/272/246.md +0 -5
  221. package/core/kits/local-matter//344/272/213/351/241/271//346/263/250/345/206/214/350/241/250.md +0 -16
  222. package/core/kits/local-matter//350/276/223/345/207/272//347/241/256/350/256/244/346/210/220/346/236/234/README.md +0 -5
  223. package/core/kits/local-starter/AGENTS.md +0 -23
  224. package/core/kits/local-starter/README.md +0 -23
  225. package/core/kits/local-starter/_/347/263/273/347/273/237//344/270/212/344/270/213/346/226/207//351/241/271/347/233/256/347/212/266/346/200/201.md +0 -25
  226. package/core/kits/local-starter/_/347/263/273/347/273/237//344/273/273/345/212/241//345/275/223/345/211/215/345/267/245/344/275/234.md +0 -17
  227. package/core/kits/local-starter/_/347/263/273/347/273/237//346/225/231/350/256/255/README.md +0 -5
  228. package/core/kits/local-starter/_/347/263/273/347/273/237//350/272/253/344/273/275/README.md +0 -5
  229. package/core/kits/local-starter//345/217/202/350/200/203/350/265/204/346/226/231/README.md +0 -5
  230. package/core/kits/local-starter//350/276/223/345/207/272//347/241/256/350/256/244/346/210/220/346/236/234/README.md +0 -5
  231. package/core/kits/local-starter//350/276/223/345/207/272//350/215/211/347/250/277/README.md +0 -5
  232. package/core/kits/satellite-matter/AGENTS.md +0 -27
  233. package/core/kits/satellite-matter/README.md +0 -40
  234. package/core/kits/satellite-matter/_/347/263/273/347/273/237//344/270/212/344/270/213/346/226/207//345/206/263/347/255/226.md +0 -7
  235. package/core/kits/satellite-matter/_/347/263/273/347/273/237//344/270/273/345/272/223/345/220/214/346/255/245/README.md +0 -42
  236. package/core/kits/satellite-matter/_/347/263/273/347/273/237//344/273/273/345/212/241//345/275/223/345/211/215/345/267/245/344/275/234.md +0 -17
  237. package/core/kits/satellite-matter/_/347/263/273/347/273/237//350/267/250/351/241/271/347/233/256/README.md +0 -9
  238. package/core/kits/satellite-matter/_/347/263/273/347/273/237//350/267/250/351/241/271/347/233/256/inbox/README.md +0 -5
  239. package/core/kits/satellite-matter/_/347/263/273/347/273/237//350/267/250/351/241/271/347/233/256/outbox/README.md +0 -5
  240. package/core/kits/satellite-matter//344/272/213/351/241/271/_/344/272/213/351/241/271/346/250/241/346/235/277/README.md +0 -17
  241. package/core/kits/satellite-matter//344/272/213/351/241/271/_/344/272/213/351/241/271/346/250/241/346/235/277//344/272/244/346/216/245.md +0 -3
  242. package/core/kits/satellite-matter//344/272/213/351/241/271/_/344/272/213/351/241/271/346/250/241/346/235/277//347/254/224/350/256/260.md +0 -5
  243. package/core/kits/satellite-matter//344/272/213/351/241/271/_/344/272/213/351/241/271/346/250/241/346/235/277//350/277/233/345/272/246.md +0 -5
  244. package/core/kits/satellite-matter//344/272/213/351/241/271//346/263/250/345/206/214/350/241/250.md +0 -16
  245. package/core/kits/satellite-matter//345/217/202/350/200/203/350/265/204/346/226/231/README.md +0 -5
  246. package/core/kits/satellite-matter//350/276/223/345/207/272//347/241/256/350/256/244/346/210/220/346/236/234/README.md +0 -5
  247. package/core/kits/satellite-matter//350/276/223/345/207/272//350/215/211/347/250/277/README.md +0 -5
  248. package/core/kits/satellite-starter/.agents/skills/README.md +0 -5
  249. package/core/kits/satellite-starter/.claude/skills/README.md +0 -5
  250. package/core/kits/satellite-starter/.core-sync.json +0 -31
  251. package/core/kits/satellite-starter/.internal/README.md +0 -5
  252. package/core/kits/satellite-starter/.obsidian/README.md +0 -5
  253. package/core/kits/satellite-starter/_/347/263/273/347/273/237//344/270/212/344/270/213/346/226/207//345/275/223/345/211/215/351/241/271/347/233/256.md +0 -29
  254. package/core/kits/satellite-starter/_/347/263/273/347/273/237//344/273/273/345/212/241//345/275/223/345/211/215/345/267/245/344/275/234.md +0 -17
  255. package/core/kits/satellite-starter/_/347/263/273/347/273/237//346/225/231/350/256/255/README.md +0 -8
  256. package/core/kits/satellite-starter/_/347/263/273/347/273/237//350/267/250/351/241/271/347/233/256/README.md +0 -9
  257. package/core/kits/satellite-starter/_/347/263/273/347/273/237//350/267/250/351/241/271/347/233/256/inbox/README.md +0 -5
  258. package/core/kits/satellite-starter/_/347/263/273/347/273/237//350/267/250/351/241/271/347/233/256/outbox/README.md +0 -5
  259. package/core/kits/satellite-starter/_/347/263/273/347/273/237//350/272/253/344/273/275/README.md +0 -5
  260. package/core/kits/satellite-starter//345/217/202/350/200/203/350/265/204/346/226/231/README.md +0 -5
  261. package/core/kits/satellite-starter//347/237/245/350/257/206/README.md +0 -5
  262. package/core/kits/satellite-starter//350/276/223/345/207/272//347/241/256/350/256/244/346/210/220/346/236/234/README.md +0 -5
  263. package/core/kits/satellite-starter//350/276/223/345/207/272//350/215/211/347/250/277/README.md +0 -5
  264. package/core/presets/local-matter.yaml +0 -14
  265. package/core/presets/local-starter.yaml +0 -12
  266. package/core/presets/satellite-matter.yaml +0 -17
  267. package/core/profiles/en/reference-kits/local-starter/AGENTS.md +0 -23
  268. package/core/profiles/en/reference-kits/local-starter/README.md +0 -23
  269. package/core/profiles/en/reference-kits/local-starter/_system/identity/README.md +0 -5
  270. package/core/profiles/en/reference-kits/local-starter/_system/lessons/README.md +0 -5
  271. package/core/profiles/en/reference-kits/local-starter/_system/tasks/current-work.md +0 -17
  272. package/core/profiles/en/reference-kits/local-starter/outputs/drafts/README.md +0 -5
  273. package/core/profiles/en/reference-kits/local-starter/outputs/final/README.md +0 -5
  274. package/core/profiles/en/reference-kits/local-starter/references/README.md +0 -5
  275. package/core/profiles/en/reference-presets/local-starter.yaml +0 -12
  276. package/core/profiles/en/templates/_system/context/project-status.md +0 -25
  277. package/core/profiles/zh/templates/_/347/263/273/347/273/237//344/270/212/344/270/213/346/226/207//351/241/271/347/233/256/347/212/266/346/200/201.md +0 -25
  278. package/packs/hub-management/seed/zh//351/241/271/347/233/256//350/201/224/347/273/234/README.md +0 -5
  279. /package/core/{capabilities/matter-mode/templates/matters/_matter-template/drafts → kits/hub/.incoming/identity}/.gitkeep +0 -0
  280. /package/core/kits/{local-matter//344/272/213/351/241/271/_/344/272/213/351/241/271/346/250/241/346/235/277//350/215/211/347/250/277/.gitkeep" → hub/.incoming/knowledge/.gitkeep} +0 -0
  281. /package/core/kits/{satellite-matter//344/272/213/351/241/271/_/344/272/213/351/241/271/346/250/241/346/235/277//350/215/211/347/250/277/.gitkeep" → hub/.incoming/lessons/.gitkeep} +0 -0
  282. /package/core/kits/hub/{/351/241/271/347/233/256/registry.json" → projects/registry.json} +0 -0
  283. /package/core/kits/{satellite-matter → project}/CLAUDE.md +0 -0
  284. /package/core/{kits/satellite-matter → legacy/kits/satellite-starter}/.agents/skills/README.md +0 -0
  285. /package/core/{kits/satellite-matter → legacy/kits/satellite-starter}/.claude/skills/README.md +0 -0
  286. /package/core/{kits/satellite-matter → legacy/kits/satellite-starter}/.core-sync.json +0 -0
  287. /package/core/{kits/satellite-matter → legacy/kits/satellite-starter}/.internal/README.md +0 -0
  288. /package/core/{kits/satellite-matter → legacy/kits/satellite-starter}/.obsidian/README.md +0 -0
  289. /package/core/{kits → legacy/kits}/satellite-starter/CLAUDE.md +0 -0
  290. /package/core/{kits/satellite-matter → legacy/kits/satellite-starter}/_/347/263/273/347/273/237//344/270/212/344/270/213/346/226/207//345/275/223/345/211/215/351/241/271/347/233/256.md" +0 -0
  291. /package/core/{kits/hub → legacy/kits/satellite-starter}/_/347/263/273/347/273/237//344/273/273/345/212/241//345/275/223/345/211/215/345/267/245/344/275/234.md" +0 -0
  292. /package/core/{kits/satellite-matter → legacy/kits/satellite-starter}/_/347/263/273/347/273/237//346/225/231/350/256/255/README.md" +0 -0
  293. /package/core/{kits/satellite-matter → legacy/kits/satellite-starter}/_/347/263/273/347/273/237//350/272/253/344/273/275/README.md" +0 -0
  294. /package/core/{kits/local-matter → legacy/kits/satellite-starter}//345/217/202/350/200/203/350/265/204/346/226/231/README.md" +0 -0
  295. /package/core/{kits/satellite-matter → legacy/kits/satellite-starter}//347/237/245/350/257/206/README.md" +0 -0
  296. /package/core/{kits/local-matter → legacy/kits/satellite-starter}//350/276/223/345/207/272//350/215/211/347/250/277/README.md" +0 -0
  297. /package/{skills → kit-skills}/starworkSpawn/agents/openai.yaml +0 -0
  298. /package/packs/hub-management/seed/zh/{/351/241/271/347/233/256/registry.json" → projects/registry.json} +0 -0
@@ -0,0 +1,591 @@
1
+ # StarWork Skill 管理与分发机制 SPEC
2
+
3
+ ## 状态
4
+
5
+ - 版本:v0.1 draft
6
+ - 所属模块:StarWork Core / CLI / Skills
7
+ - 相关能力:`skill-mount`、`main-repo-sync`、Pack 安装、Hub + Satellite
8
+ - 相关 CLI:`init`、`spawn`、`doctor`、`upgrade`、`pack install`、`adapt`
9
+ - 目标:定义 StarWork 如何管理 Agent Skill 的来源、安装位置、分发关系、项目挂载和健康检查。
10
+
11
+ ## 一句话定义
12
+
13
+ StarWork 的 Skill 机制不是一个简单的安装动作,而是一套 Agent 能力分发协议。
14
+
15
+ 它回答五个问题:
16
+
17
+ 1. 这个 Skill 从哪里来?
18
+ 2. 它应该放在哪里?
19
+ 3. 谁拥有它,谁只能使用它?
20
+ 4. 初始化、生成卫星项目、升级旧项目时要不要带上它?
21
+ 5. 后续如何检查、同步和更新?
22
+
23
+ ## 背景
24
+
25
+ 当前 StarWork 已经有几类不同性质的 Skill:
26
+
27
+ - `starworkInit`、`starworkDoctor`:帮助 Agent 理解并调用 StarWork CLI;其中 `starworkDoctor` 同时承担历史模板诊断和升级蓝图设计。
28
+ - `starworkSpawn`:Hub Kit 自带的管理 Skill,帮助 Hub 生成卫星项目定制单。
29
+ - `neat-freak`:可作为单项目 Kit 自带的整理 Skill,帮助项目收尾、清理和归档。
30
+ - 未来内容创作者 Pack、课程 Pack、客户交付 Pack 可能会附带自己的场景 Skill。
31
+ - Hub 还可以托管用户自己添加的常用 Skill,并在创建卫星项目时按需分发。
32
+
33
+ 如果只用一个笼统的“安装 Skill”概念,会出现混乱:
34
+
35
+ - 系统 Skill 不应该被复制到每个项目。
36
+ - Kit 自带 Skill 和 Pack 自带 Skill 容易被误认为都是 Hub Skill 库里的内容。
37
+ - Hub 托管 Skill 不应该无差别挂载给所有卫星项目。
38
+ - Kit / Pack 自带 Skill 也不能静默覆盖用户已有 Skill。
39
+ - 旧项目升级时,需要由 AI 判断哪些 Skill 适合补入,而不是 CLI 硬编码猜测。
40
+
41
+ 因此 v0.1 需要先冻结管理模型,再逐步改 CLI。
42
+
43
+ ## 核心原则
44
+
45
+ 1. Skill 分发必须可解释:用户能知道某个 Skill 为什么在这里。
46
+ 2. Skill 所有权必须清楚:Kit 自带、Pack 自带、Hub 托管和项目本地 Skill 要分开记录。
47
+ 3. CLI 只做确定性动作:选择、判断、定制方案由 Skill + 用户确认完成。
48
+ 4. Hub 不默认把全部托管 Skill 分发给全部项目。
49
+ 5. Kit / Pack 可以声明自带或推荐 Skill,但不能强制静默安装非必需 Skill。
50
+ 6. `doctor --json` 只暴露事实,不输出建议,避免影响 AI 判断。
51
+ 7. 全局安装、Kit 自带、Pack 自带、Hub 挂载、项目本地复制要分开记录。
52
+
53
+ ## Skill 分类
54
+
55
+ v0.2 在系统 Skill 中增加 L0 主入口 Skill。主入口负责产品解释、安装引导和模糊意图路由;专家 Skill 继续保留直接触发能力。
56
+
57
+ | 类型 | 示例 | 主要位置 | 作用 | 是否默认进项目 |
58
+ |---|---|---|---|---|
59
+ | L0 主入口 Skill | `starwork` | 用户全局 Agent Skill 环境 | 解释 StarWork、引导安装、判断下一步能力 | 否 |
60
+ | L1 系统专家 Skill | `starworkInit`、`starworkDoctor`、`starworkKnowledge`、`starworkMultiagent` | 用户全局 Agent Skill 环境 | 让 Agent 会操作明确 StarWork 能力 | 否 |
61
+ | Kit 自带 Skill | `starworkSpawn`、`starworkAudit`、`neat-freak` | 产品源码 `kit-skills/`,工作台内写入 `skills/` 或 `.agents/skills/` | 配合某种工作区形态使用 | 按 Kit 默认规则进入 |
62
+ | Pack 自带 Skill | 内容创作者审稿、发布检查等 | Pack 的 `skills/` 声明或随 Pack 写入 | 配合某个场景 Pack 使用 | 用户确认后进入 |
63
+ | Hub 托管 Skill | 用户收藏的写作、复盘、会议、整理 Skill | Hub `skills/` | 用户跨项目复用的能力库 | 按规则或用户选择分发 |
64
+ | L3 Capability 项目内 Skill | `starworkKnowledgeProject` | Capability 源码和项目 `.agents/skills/` | 能力开启后维护当前项目 | 是,本项目拥有 |
65
+ | 项目本地 Skill | 某项目专用工作流 | Satellite 或单项目 `.agents/skills/` | 只服务当前项目 | 是,本项目拥有 |
66
+
67
+ ## 存放位置
68
+
69
+ ### 1. 全局 Agent Skill 环境
70
+
71
+ 用于安装 StarWork 系统 Skill。
72
+
73
+ 典型安装方式:
74
+
75
+ ```bash
76
+ npx skills add ...
77
+ ```
78
+
79
+ StarWork 只把它视为“Agent 已学会 StarWork 操作方式”,不把这些 Skill 复制进工作区。
80
+
81
+ 系统 Skill 的源码位于产品仓库 `skills/`。该目录会被 `npx skills add jennie-shawn/StarWork` 扫描,因此只能放全局系统级 Skill,不能放 Kit 自带 Skill。
82
+
83
+ v0.2 全局系统 Skill 清单:
84
+
85
+ - `starwork`:L0 主入口。
86
+ - `starworkInit`:初始化和接入专家。
87
+ - `starworkDoctor`:诊断和升级方案专家。
88
+ - `starworkKnowledge`:项目知识库专家。
89
+ - `starworkMultiagent`:多 Agent 和跨会话专家。
90
+
91
+ `starworkSpawn`、`starworkAudit`、`neat-freak` 和 `starworkKnowledgeProject` 不在全局清单中。
92
+
93
+ ### 2. Kit 自带 Skill 声明
94
+
95
+ Kit 可以声明某种工作区形态天然应该具备哪些 Skill。
96
+
97
+ Kit 自带 Skill 的源码位于产品仓库 `kit-skills/`,避免被全局 `skills add` 命令误装。CLI 初始化工作台时,再把它们复制或挂载到目标工作台内。
98
+
99
+ 例如:
100
+
101
+ - `hub` Kit 可以自带 `starworkSpawn`,因为 Hub 需要创建和管理卫星项目。
102
+ - `hub` Kit 可以自带 `starworkAudit`,因为 Hub 需要巡检和修复旗下卫星项目。
103
+ - 单项目 Kit 可以自带或推荐 `neat-freak`,因为单项目需要阶段性清理、收尾和归档。
104
+ - `project` Kit 可以自带事项协作相关 Skill。
105
+
106
+ 工作台内可以保留声明文件:
107
+
108
+ ```text
109
+ skills/
110
+ README.md
111
+ manifest.json
112
+ starworkSpawn/
113
+ ```
114
+
115
+ 或在 Kit 元数据中声明:
116
+
117
+ ```json
118
+ {
119
+ "skills": {
120
+ "bundled": [
121
+ {
122
+ "id": "starworkSpawn",
123
+ "scope": "hub",
124
+ "distribution": "copy",
125
+ "reason": "Hub Kit 需要生成卫星项目定制单。"
126
+ }
127
+ ],
128
+ "recommended": []
129
+ }
130
+ }
131
+ ```
132
+
133
+ Kit 自带 Skill 是工作区形态的一部分,不属于 Hub Skill 库,也不属于全局系统 Skill。Hub 只是安装 Hub Kit 后拥有了这些能力。
134
+
135
+ ### 3. Hub 托管 Skill 库
136
+
137
+ Hub 使用固定目录:
138
+
139
+ ```text
140
+ skills/
141
+ registry.json
142
+ user-custom-skill/
143
+ imported-common-skill/
144
+ ```
145
+
146
+ `skills/registry.json` 是 Hub 托管 Skill 注册表。
147
+
148
+ Hub registry 负责记录:
149
+
150
+ - Hub 额外托管了哪些 Skill。
151
+ - 每个 Skill 的来源、版本和所有权。
152
+ - 适用场景和标签。
153
+ - 是否默认推荐给新卫星项目。
154
+ - 分发方式是 symlink、copy 还是 manual。
155
+
156
+ 它不应该把 Kit 自带 Skill 全部混进来。比如 `starworkSpawn` 的来源是 Hub Kit 自带能力,不是用户收藏进 Hub 的常用 Skill。
157
+
158
+ ### 4. Satellite / 单项目 Skill 挂载区
159
+
160
+ 项目内使用 Agent 约定路径:
161
+
162
+ ```text
163
+ .agents/skills/
164
+ .claude/skills/
165
+ .starwork/skills.json
166
+ ```
167
+
168
+ 其中:
169
+
170
+ - `.agents/skills/`:通用 Agent Skill 挂载入口。
171
+ - `.claude/skills/`:Claude Code Skill 挂载入口。
172
+ - `.starwork/skills.json`:本项目实际可用 Skill 清单。
173
+
174
+ Satellite 从 Hub 托管 Skill 库分发 Skill 时,默认使用逐个 Skill 软链接:
175
+
176
+ ```text
177
+ .agents/skills/meeting-summary -> /path/to/hub/skills/meeting-summary
178
+ .claude/skills/meeting-summary -> /path/to/hub/skills/meeting-summary
179
+ ```
180
+
181
+ 不推荐再把整个 Hub `skills/` 目录整体挂载到项目里,因为那会让项目获得过多无关能力,也无法解释每个 Skill 为什么出现。
182
+
183
+ ### 5. Pack 自带 Skill 声明
184
+
185
+ Pack 可以在 `pack.json` 中声明推荐 Skill。
186
+
187
+ 建议结构:
188
+
189
+ ```json
190
+ {
191
+ "skills": {
192
+ "recommended": [
193
+ {
194
+ "id": "content-draft-review",
195
+ "reason": "用于审阅内容草稿和发布前检查",
196
+ "default": false,
197
+ "distribution": "copy",
198
+ "source": "skills/content-draft-review"
199
+ }
200
+ ],
201
+ "required": []
202
+ }
203
+ }
204
+ ```
205
+
206
+ v0.1 不建议引入真正的 required Skill。除非没有该 Skill,Pack 就无法工作,否则都应作为 recommended。
207
+
208
+ ## Hub `skills/registry.json`
209
+
210
+ Hub registry 只记录 Hub 额外托管和准备分发的 Skill。
211
+
212
+ 它不记录“这个 Hub Kit 自己为什么有 `starworkSpawn`”这类 Kit 自带能力;那应该由 Kit manifest 或 workspace state 记录。
213
+
214
+ ### 最小示例
215
+
216
+ ```json
217
+ {
218
+ "schema": "starwork.skill_registry.v0.1",
219
+ "owner": "hub",
220
+ "updated_at": "2026-05-20T00:00:00.000Z",
221
+ "skills": [
222
+ {
223
+ "id": "meeting-summary",
224
+ "name": "Meeting Summary",
225
+ "type": "hub-managed",
226
+ "source": {
227
+ "kind": "external",
228
+ "path": "/Users/example/.skillshub/meeting-summary"
229
+ },
230
+ "version": null,
231
+ "ownership": "hub-owned",
232
+ "distribution": {
233
+ "mode": "symlink",
234
+ "default_for_spawn": false
235
+ },
236
+ "tags": ["meeting", "summary", "project-sync"],
237
+ "description": "用户收藏到 Hub 的会议纪要能力,可按项目需要分发。"
238
+ }
239
+ ]
240
+ }
241
+ ```
242
+
243
+ ### 字段说明
244
+
245
+ | 字段 | 必填 | 说明 |
246
+ |---|---:|---|
247
+ | `schema` | 是 | 固定为 `starwork.skill_registry.v0.1`。 |
248
+ | `owner` | 是 | v0.1 主要为 `hub`。 |
249
+ | `updated_at` | 是 | 注册表最后更新时间。 |
250
+ | `skills[].id` | 是 | Skill 稳定 ID。 |
251
+ | `skills[].type` | 是 | `hub-managed`、`common`、`business`、`project-template`。 |
252
+ | `skills[].source.kind` | 是 | `external`、`local`、`generated`、`pack`、`kit`。 |
253
+ | `skills[].ownership` | 是 | `hub-owned`、`project-owned`、`pack-owned`、`kit-owned`。 |
254
+ | `skills[].distribution.mode` | 是 | `symlink`、`copy`、`manual`。 |
255
+ | `skills[].distribution.default_for_spawn` | 否 | 创建卫星项目时是否默认推荐。 |
256
+ | `skills[].tags` | 否 | 用于 spawn / upgrade 时按场景筛选。 |
257
+
258
+ ## 项目 `.starwork/skills.json`
259
+
260
+ ### 最小示例
261
+
262
+ ```json
263
+ {
264
+ "schema": "starwork.project_skills.v0.1",
265
+ "updated_at": "2026-05-20T00:00:00.000Z",
266
+ "skills": [
267
+ {
268
+ "id": "neat-freak",
269
+ "type": "kit-bundled",
270
+ "source": {
271
+ "kind": "kit",
272
+ "kit": "project",
273
+ "manifest_id": "neat-freak"
274
+ },
275
+ "mounts": [
276
+ {
277
+ "agent": "codex",
278
+ "path": ".agents/skills/neat-freak",
279
+ "mode": "copy"
280
+ },
281
+ {
282
+ "agent": "claude",
283
+ "path": ".claude/skills/neat-freak",
284
+ "mode": "copy"
285
+ }
286
+ ],
287
+ "reason": "单项目 Kit 自带:用于阶段性清理、收尾和归档。",
288
+ "installed_by": "starwork init",
289
+ "installed_at": "2026-05-20T00:00:00.000Z"
290
+ }
291
+ ]
292
+ }
293
+ ```
294
+
295
+ 项目清单回答的是:
296
+
297
+ > 当前项目到底有哪些 Skill 可用,它们为什么在这里。
298
+
299
+ 它不替代 Hub registry。
300
+
301
+ ## 分发模式
302
+
303
+ | 模式 | 适用对象 | 行为 |
304
+ |---|---|---|
305
+ | `global-reference` | 系统 Skill | 只提示用户全局安装,不写入项目。 |
306
+ | `kit-bundled` | Kit 自带 Skill | 随 Kit 写入工作区,并记录为 Kit 来源。 |
307
+ | `pack-bundled` | Pack 自带 Skill | 随 Pack 安装写入项目,并记录为 Pack 来源。 |
308
+ | `symlink` | Hub 托管 Skill | Satellite 中逐个创建软链接。 |
309
+ | `copy` | Pack 自带 Skill、项目专用 Skill、Kit 自带 Skill | 复制到项目本地,项目拥有副本或可解释来源。 |
310
+ | `manual` | 外部或未标准化 Skill | 只记录建议,由用户或 Agent 手动处理。 |
311
+
312
+ 默认推荐:
313
+
314
+ - Kit 到项目:优先 `copy` 或随 Kit 模板写入。
315
+ - Pack 到项目:优先 `copy`。
316
+ - Hub 托管 Skill 到 Satellite:优先 `symlink`。
317
+ - 系统 Skill:优先 `global-reference`。
318
+
319
+ ## CLI 配合修改
320
+
321
+ ### `starwork init`
322
+
323
+ `init` 需要新增 Skill 初始化阶段。
324
+
325
+ #### 创建 Hub 时
326
+
327
+ 执行流程应调整为:
328
+
329
+ 1. 创建 Hub Kit。
330
+ 2. 安装 `hub-management` Pack。
331
+ 3. 按 Hub Kit 自带 Skill 声明写入 `starworkSpawn`。
332
+ 4. 写入 `.starwork/skills.json`,记录 `starworkSpawn` 来源于 Hub Kit。
333
+ 5. 初始化 Hub 托管 Skill 注册表 `skills/registry.json`。
334
+ 6. 询问用户是否额外导入 Hub 托管 Skill,例如会议纪要、写作、复盘等常用能力。
335
+
336
+ Hub 创建完成后,至少应存在:
337
+
338
+ ```text
339
+ skills/
340
+ README.md
341
+ registry.json
342
+ .starwork/
343
+ skills.json
344
+ ```
345
+
346
+ `starworkSpawn` 应作为 Hub Kit 自带 Skill 进入 Hub,不再作为“用户收藏到 Hub Skill 库”的内容解释。
347
+
348
+ #### 创建单项目时
349
+
350
+ 执行流程应调整为:
351
+
352
+ 1. 选择工作区类型。
353
+ 2. 选择语言。
354
+ 3. 选择 Pack。
355
+ 4. 按单项目 Kit 自带 Skill 声明写入默认能力,例如 `neat-freak`。
356
+ 5. 询问是否需要放入 Pack 推荐 Skill 或额外 Hub 托管 Skill。
357
+ 6. 写入 `.starwork/skills.json`。
358
+ 7. 按用户确认挂载或复制 Skill。
359
+
360
+ v0.1 可以先只支持:
361
+
362
+ - `--no-skills`:跳过 Skill 安装。
363
+ - `--skills <id,id>`:显式安装指定 Skill。
364
+
365
+ 交互模式下,应把 Pack 自带 Skill 步骤放在 Pack 之后,因为 Pack 会影响推荐 Skill;Kit 自带 Skill 则由工作区类型决定。
366
+
367
+ ### `starwork spawn`
368
+
369
+ `spawn` 是 Skill 分发机制的核心命令,需要调整最大。
370
+
371
+ 当前逻辑是把 Hub `skills/` 整体软链接到 Satellite:
372
+
373
+ ```text
374
+ .agents/skills -> hub/skills
375
+ .claude/skills -> hub/skills
376
+ ```
377
+
378
+ 后续应改为:
379
+
380
+ 1. 读取 Satellite Kit 自带 Skill 声明。
381
+ 2. 读取 Hub `skills/registry.json`,仅作为额外托管 Skill 候选。
382
+ 3. 根据 blueprint / Pack / 用户选择确定本项目 Skill 列表。
383
+ 3. 创建 `.agents/skills/` 和 `.claude/skills/` 目录。
384
+ 4. 对每个被选择的 Skill 单独创建链接或复制。
385
+ 5. 写入 Satellite `.starwork/skills.json`。
386
+ 6. 在 `.starwork/sync.json` 中记录被挂载的 Skill 清单。legacy 工作台可继续读取 `.core-sync.json`。
387
+
388
+ `spawn blueprint` 需要新增字段:
389
+
390
+ ```json
391
+ {
392
+ "skills": [
393
+ {
394
+ "id": "neat-freak",
395
+ "source": "kit",
396
+ "distribution": "copy",
397
+ "reason": "长期项目,需要阶段性清理和归档。"
398
+ }
399
+ ]
400
+ }
401
+ ```
402
+
403
+ 如果 blueprint 没有声明 `skills`,CLI 应先使用 Satellite Kit 的默认 Skill,再把 Hub registry 中 `default_for_spawn=true` 的 Skill 作为额外候选,并在 dry-run 中展示来源。
404
+
405
+ ### `starwork doctor`
406
+
407
+ `doctor` 需要增加 Skill 事实探测,但不能给建议。
408
+
409
+ 新增检查:
410
+
411
+ - Kit 自带 Skill 是否已写入项目 skill manifest。
412
+ - Hub 是否存在 `skills/registry.json`。
413
+ - Hub registry schema 是否正确。
414
+ - registry 中声明的托管 Skill 路径是否存在。
415
+ - Satellite 是否存在 `.starwork/skills.json`。
416
+ - `.starwork/skills.json` 中的挂载路径是否存在。
417
+ - 软链接是否指向 Hub 中对应 Skill。
418
+ - `.starwork/sync.json` 中的 skills 记录是否和项目 skill manifest 一致;legacy `.core-sync.json` 可作为兼容读取来源。
419
+
420
+ JSON 输出建议新增:
421
+
422
+ ```json
423
+ {
424
+ "skills": {
425
+ "registry": {
426
+ "exists": true,
427
+ "path": "skills/registry.json",
428
+ "count": 3
429
+ },
430
+ "project_manifest": {
431
+ "exists": true,
432
+ "path": ".starwork/skills.json",
433
+ "count": 2
434
+ },
435
+ "mounts": [
436
+ {
437
+ "id": "meeting-summary",
438
+ "path": ".agents/skills/meeting-summary",
439
+ "mode": "symlink",
440
+ "status": "ok"
441
+ }
442
+ ]
443
+ }
444
+ }
445
+ ```
446
+
447
+ 注意:这里仍然只输出事实,不输出“你应该安装某 Skill”。
448
+
449
+ ### `starwork upgrade`
450
+
451
+ `upgrade` 需要支持由 `starworkDoctor` 生成的 Skill 安装动作。
452
+
453
+ `upgrade blueprint` 可新增 actions:
454
+
455
+ ```json
456
+ {
457
+ "type": "write_project_skills_manifest"
458
+ }
459
+ ```
460
+
461
+ ```json
462
+ {
463
+ "type": "mount_skill",
464
+ "id": "meeting-summary",
465
+ "from": "/Users/example/my-hub/skills/meeting-summary",
466
+ "targets": [".agents/skills/meeting-summary", ".claude/skills/meeting-summary"],
467
+ "mode": "symlink",
468
+ "reason": "用户确认该旧项目需要 Hub 托管的会议纪要能力。"
469
+ }
470
+ ```
471
+
472
+ ```json
473
+ {
474
+ "type": "copy_skill",
475
+ "id": "content-draft-review",
476
+ "from": "skills/content-draft-review",
477
+ "to": ".agents/skills/content-draft-review",
478
+ "reason": "来自内容创作者 Pack 的项目本地业务 Skill。"
479
+ }
480
+ ```
481
+
482
+ CLI 仍不判断该不该安装某个 Skill,只执行已确认 blueprint。
483
+
484
+ ### `starwork pack install`
485
+
486
+ Pack 安装需要读取 Pack 的 `skills` 声明。
487
+
488
+ 执行逻辑:
489
+
490
+ 1. 读取 `pack.json`。
491
+ 2. 如果 Pack 声明 recommended Skill,展示给用户。
492
+ 3. 用户确认后复制或挂载对应 Skill。
493
+ 4. 更新 `.starwork/skills.json`。
494
+ 5. 更新 `.starwork/workspace.json` 的 Pack 记录。
495
+
496
+ v0.1 可以先只实现“声明和 dry-run 展示”,实际安装放到后续版本。
497
+
498
+ ### `starwork adapt`
499
+
500
+ `adapt` 不决定安装哪些 Skill,但需要确保目标 Agent 的 Skill 入口可用。
501
+
502
+ 例如:
503
+
504
+ - Codex:`.agents/skills/`
505
+ - Claude Code:`.claude/skills/`
506
+
507
+ 如果项目已经有 `.starwork/skills.json`,`adapt` 可以检查对应 agent 的 mount 是否缺失,并在 dry-run 中展示会补哪些入口。
508
+
509
+ ### 未来候选:`starwork skill`
510
+
511
+ 当 Skill 机制稳定后,可以新增独立命令:
512
+
513
+ ```bash
514
+ starwork skill list --target ./workspace
515
+ starwork skill add meeting-summary --target ./workspace --from-hub ./hub
516
+ starwork skill remove meeting-summary --target ./workspace
517
+ starwork skill sync --target ./workspace
518
+ ```
519
+
520
+ v0.1 不必立即实现。当前更重要的是让 `init`、`spawn`、`doctor`、`upgrade`、`pack install` 的数据结构先统一。
521
+
522
+ ## Skill 与 Pack 的边界
523
+
524
+ Pack 是场景结构和规则包。
525
+
526
+ Skill 是 Agent 工作流能力。
527
+
528
+ Pack 可以声明推荐 Skill,但不应该把所有业务逻辑都塞进 Skill。判断方式:
529
+
530
+ | 问题 | 应放 Kit | 应放 Pack | 应放 Skill |
531
+ |---|---:|---:|---:|
532
+ | 工作区形态默认自带能力 | 是 | 否 | 可由 Skill 实现 |
533
+ | 目录结构、模板、路径默认值 | 基础骨架 | 场景覆盖 | 否 |
534
+ | Agent 需要如何采访用户 | 否 | 否 | 是 |
535
+ | Agent 如何生成 blueprint | 否 | 否 | 是 |
536
+ | 场景规则和边界 | 通用边界 | 场景边界 | 可辅助 |
537
+ | 自动检查、审稿、归档、复盘流程 | 否 | 可声明 | 是 |
538
+
539
+ ## Skill 与 CLI 的边界
540
+
541
+ Skill 负责判断和生成方案。
542
+
543
+ CLI 负责执行和校验。
544
+
545
+ | 阶段 | Skill | CLI |
546
+ |---|---|---|
547
+ | 理解用户需求 | 是 | 否 |
548
+ | 判断当前目录语义 | 是,基于 doctor 事实 | 否 |
549
+ | 生成 blueprint | 是 | 否 |
550
+ | 校验 schema | 可辅助 | 是 |
551
+ | 写入文件 / 创建软链接 | 否 | 是 |
552
+ | dry-run 展示 | 否 | 是 |
553
+ | 维护 manifest | 否 | 是 |
554
+
555
+ ## 安全规则
556
+
557
+ 1. 不允许 Skill 分发路径逃出目标工作区,除非是明确的 symlink source。
558
+ 2. 不允许覆盖已有本地 Skill,除非用户显式确认。
559
+ 3. 不允许 Satellite 修改 Hub 软链接指向的 Skill。
560
+ 4. 不允许 Pack 静默安装外部 Skill。
561
+ 5. 不允许 `doctor` 输出建议性 next step。
562
+ 6. 所有分发动作必须写入 `.starwork/skills.json`。
563
+ 7. 所有 Kit 自带 Skill 必须能追溯到 Kit manifest。
564
+ 8. 所有 Pack 自带 Skill 必须能追溯到 Pack 声明。
565
+ 9. 所有 Hub 托管 Skill 到 Satellite 的分发必须能追溯到 Hub registry。
566
+
567
+ ## 最小落地顺序
568
+
569
+ 建议分四步落地:
570
+
571
+ 1. 冻结文档和 schema:本 SPEC、`skill-mount` capability、CLI SPEC 更新。
572
+ 2. 改 Kit:为 Hub Kit、单项目 Kit 增加自带 Skill 声明。
573
+ 3. 改 `init --type hub`:写入 Hub Kit 自带 `starworkSpawn`,同时创建 Hub 托管 Skill registry。
574
+ 4. 改 `spawn`:从整体挂载 Hub `skills/` 改为“Kit 自带 Skill + Hub 托管 Skill 候选”的逐个分发。
575
+ 5. 改 `doctor`:输出 Kit Skill、Pack Skill、Hub 托管 Skill、项目 manifest 和 mount 的事实检查。
576
+
577
+ 之后再扩展:
578
+
579
+ 6. `upgrade` 支持 Skill actions。
580
+ 7. `pack install` 支持 Pack bundled / recommended Skill。
581
+ 8. 新增 `starwork skill` 子命令。
582
+
583
+ ## 待确认问题
584
+
585
+ 1. Kit 自带 Skill 的声明文件长期放在 Kit 内 `skills/manifest.json`,还是继续由 CLI 内置映射和 workspace state 表达?
586
+ 2. `starworkSpawn` 是否随 Hub Kit 直接复制进 Hub `skills/`,还是以 npm 包中的 `kit-skills/` Skill 源为只读引用?
587
+ 3. `neat-freak` 作为单项目 Kit 自带 Skill 时,是默认写入所有单项目 Kit,还是只写入 事项 型长期项目 Kit?
588
+ 4. Hub registry 是否允许登记全局 Skill 的引用路径,还是必须先复制进 Hub?
589
+ 5. Pack 自带 Skill 初期是否随 npm 包发布,还是允许用户从 GitHub / 本地路径导入?
590
+ 6. `.agents/skills/` 是否作为所有 Agent 的通用入口长期保留?
591
+ 7. `npx skills add` 的目标目录和 StarWork 项目内 Skill 目录之间是否需要一个桥接命令?