@waoooo/claude-skills 1.0.0

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 (264) hide show
  1. package/README.md +48 -0
  2. package/package.json +28 -0
  3. package/registry.json +431 -0
  4. package/skills/acceptance-review/SKILL.md +537 -0
  5. package/skills/all-plan/SKILL.md +19 -0
  6. package/skills/all-plan/references/flow.md +750 -0
  7. package/skills/api-docs-generate/SKILL.md +204 -0
  8. package/skills/api-docs-generate/assets/templates/api.mdx +140 -0
  9. package/skills/api-docs-generate/scripts/generate-api-docs.ts +308 -0
  10. package/skills/ask/SKILL.md +42 -0
  11. package/skills/autonew/SKILL.md +34 -0
  12. package/skills/capability-analyze/SKILL.md +300 -0
  13. package/skills/capability-analyze/scripts/analyze-capabilities.ts +531 -0
  14. package/skills/capability-docs-generate/SKILL.md +155 -0
  15. package/skills/capability-docs-generate/assets/templates/capability.mdx +271 -0
  16. package/skills/capability-docs-generate/scripts/generate-capability-docs.ts +358 -0
  17. package/skills/capability-tree-query/SKILL.md +112 -0
  18. package/skills/capability-tree-query/scripts/build-capability-tree.ts +402 -0
  19. package/skills/changelog-generator/SKILL.md +104 -0
  20. package/skills/continue/SKILL.md +39 -0
  21. package/skills/continue/agents/openai.yaml +3 -0
  22. package/skills/creating-skills/SKILL.md +158 -0
  23. package/skills/creating-skills/references/official_best_practices.md +128 -0
  24. package/skills/creating-skills/references/skill_examples.md +199 -0
  25. package/skills/docx/LICENSE.txt +30 -0
  26. package/skills/docx/SKILL.md +197 -0
  27. package/skills/docx/docx-js.md +350 -0
  28. package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
  29. package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
  30. package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
  31. package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
  32. package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
  33. package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
  34. package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
  35. package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
  36. package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
  37. package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
  38. package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
  39. package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
  40. package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
  41. package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
  42. package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
  43. package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
  44. package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
  45. package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
  46. package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
  47. package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
  48. package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
  49. package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
  50. package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
  51. package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
  52. package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
  53. package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
  54. package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
  55. package/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
  56. package/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
  57. package/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
  58. package/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
  59. package/skills/docx/ooxml/schemas/mce/mc.xsd +75 -0
  60. package/skills/docx/ooxml/schemas/microsoft/wml-2010.xsd +560 -0
  61. package/skills/docx/ooxml/schemas/microsoft/wml-2012.xsd +67 -0
  62. package/skills/docx/ooxml/schemas/microsoft/wml-2018.xsd +14 -0
  63. package/skills/docx/ooxml/schemas/microsoft/wml-cex-2018.xsd +20 -0
  64. package/skills/docx/ooxml/schemas/microsoft/wml-cid-2016.xsd +13 -0
  65. package/skills/docx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
  66. package/skills/docx/ooxml/schemas/microsoft/wml-symex-2015.xsd +8 -0
  67. package/skills/docx/ooxml/scripts/pack.py +159 -0
  68. package/skills/docx/ooxml/scripts/unpack.py +29 -0
  69. package/skills/docx/ooxml/scripts/validate.py +69 -0
  70. package/skills/docx/ooxml/scripts/validation/__init__.py +15 -0
  71. package/skills/docx/ooxml/scripts/validation/base.py +951 -0
  72. package/skills/docx/ooxml/scripts/validation/docx.py +274 -0
  73. package/skills/docx/ooxml/scripts/validation/pptx.py +315 -0
  74. package/skills/docx/ooxml/scripts/validation/redlining.py +279 -0
  75. package/skills/docx/ooxml.md +610 -0
  76. package/skills/docx/scripts/__init__.py +1 -0
  77. package/skills/docx/scripts/document.py +1276 -0
  78. package/skills/docx/scripts/templates/comments.xml +3 -0
  79. package/skills/docx/scripts/templates/commentsExtended.xml +3 -0
  80. package/skills/docx/scripts/templates/commentsExtensible.xml +3 -0
  81. package/skills/docx/scripts/templates/commentsIds.xml +3 -0
  82. package/skills/docx/scripts/templates/people.xml +3 -0
  83. package/skills/docx/scripts/utilities.py +374 -0
  84. package/skills/git-branch-create/SKILL.md +170 -0
  85. package/skills/git-branch-merge/SKILL.md +176 -0
  86. package/skills/git-commit/SKILL.md +56 -0
  87. package/skills/git-commit/references/commit_examples.md +311 -0
  88. package/skills/github-actions-trigger/SKILL.md +367 -0
  89. package/skills/github-issue-create/SKILL.md +294 -0
  90. package/skills/github-pr-creation/SKILL.md +137 -0
  91. package/skills/github-pr-creation/references/pr_templates.md +187 -0
  92. package/skills/github-pr-merge/SKILL.md +112 -0
  93. package/skills/github-pr-review/SKILL.md +110 -0
  94. package/skills/github-pr-review/references/severity_guide.md +168 -0
  95. package/skills/job-create/SKILL.md +294 -0
  96. package/skills/job-create/scripts/create-job.ts +105 -0
  97. package/skills/job-workflow/SKILL.md +212 -0
  98. package/skills/keyword-extract/SKILL.md +229 -0
  99. package/skills/mcp-builder/LICENSE.txt +202 -0
  100. package/skills/mcp-builder/SKILL.md +236 -0
  101. package/skills/mcp-builder/reference/evaluation.md +602 -0
  102. package/skills/mcp-builder/reference/mcp_best_practices.md +249 -0
  103. package/skills/mcp-builder/reference/node_mcp_server.md +970 -0
  104. package/skills/mcp-builder/reference/python_mcp_server.md +719 -0
  105. package/skills/mcp-builder/scripts/connections.py +151 -0
  106. package/skills/mcp-builder/scripts/evaluation.py +373 -0
  107. package/skills/mcp-builder/scripts/example_evaluation.xml +22 -0
  108. package/skills/mcp-builder/scripts/requirements.txt +2 -0
  109. package/skills/mdx-to-openspec/SKILL.md +827 -0
  110. package/skills/mdx-to-openspec/scripts/mdx-to-openspec.ts +320 -0
  111. package/skills/mounted/SKILL.md +20 -0
  112. package/skills/multi-model-review/SKILL.md +459 -0
  113. package/skills/notion-automation/SKILL.md +215 -0
  114. package/skills/openspec-review/SKILL.md +513 -0
  115. package/skills/pdf/LICENSE.txt +30 -0
  116. package/skills/pdf/SKILL.md +294 -0
  117. package/skills/pdf/forms.md +205 -0
  118. package/skills/pdf/reference.md +612 -0
  119. package/skills/pdf/scripts/check_bounding_boxes.py +70 -0
  120. package/skills/pdf/scripts/check_bounding_boxes_test.py +226 -0
  121. package/skills/pdf/scripts/check_fillable_fields.py +12 -0
  122. package/skills/pdf/scripts/convert_pdf_to_images.py +35 -0
  123. package/skills/pdf/scripts/create_validation_image.py +41 -0
  124. package/skills/pdf/scripts/extract_form_field_info.py +152 -0
  125. package/skills/pdf/scripts/fill_fillable_fields.py +114 -0
  126. package/skills/pdf/scripts/fill_pdf_form_with_annotations.py +108 -0
  127. package/skills/pend/SKILL.md +33 -0
  128. package/skills/ping/SKILL.md +39 -0
  129. package/skills/pptx/LICENSE.txt +30 -0
  130. package/skills/pptx/SKILL.md +484 -0
  131. package/skills/pptx/html2pptx.md +625 -0
  132. package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
  133. package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
  134. package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
  135. package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
  136. package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
  137. package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
  138. package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
  139. package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
  140. package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
  141. package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
  142. package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
  143. package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
  144. package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
  145. package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
  146. package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
  147. package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
  148. package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
  149. package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
  150. package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
  151. package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
  152. package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
  153. package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
  154. package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
  155. package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
  156. package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
  157. package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
  158. package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
  159. package/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
  160. package/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
  161. package/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
  162. package/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
  163. package/skills/pptx/ooxml/schemas/mce/mc.xsd +75 -0
  164. package/skills/pptx/ooxml/schemas/microsoft/wml-2010.xsd +560 -0
  165. package/skills/pptx/ooxml/schemas/microsoft/wml-2012.xsd +67 -0
  166. package/skills/pptx/ooxml/schemas/microsoft/wml-2018.xsd +14 -0
  167. package/skills/pptx/ooxml/schemas/microsoft/wml-cex-2018.xsd +20 -0
  168. package/skills/pptx/ooxml/schemas/microsoft/wml-cid-2016.xsd +13 -0
  169. package/skills/pptx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
  170. package/skills/pptx/ooxml/schemas/microsoft/wml-symex-2015.xsd +8 -0
  171. package/skills/pptx/ooxml/scripts/pack.py +159 -0
  172. package/skills/pptx/ooxml/scripts/unpack.py +29 -0
  173. package/skills/pptx/ooxml/scripts/validate.py +69 -0
  174. package/skills/pptx/ooxml/scripts/validation/__init__.py +15 -0
  175. package/skills/pptx/ooxml/scripts/validation/base.py +951 -0
  176. package/skills/pptx/ooxml/scripts/validation/docx.py +274 -0
  177. package/skills/pptx/ooxml/scripts/validation/pptx.py +315 -0
  178. package/skills/pptx/ooxml/scripts/validation/redlining.py +279 -0
  179. package/skills/pptx/ooxml.md +427 -0
  180. package/skills/pptx/scripts/html2pptx.js +979 -0
  181. package/skills/pptx/scripts/inventory.py +1020 -0
  182. package/skills/pptx/scripts/rearrange.py +231 -0
  183. package/skills/pptx/scripts/replace.py +385 -0
  184. package/skills/pptx/scripts/thumbnail.py +450 -0
  185. package/skills/progress-update/SKILL.md +394 -0
  186. package/skills/progress-update/scripts/update-progress.ts +221 -0
  187. package/skills/release-automation/SKILL.md +306 -0
  188. package/skills/requirement-parse/SKILL.md +212 -0
  189. package/skills/requirement-parse/scripts/infer-builder-config.ts +346 -0
  190. package/skills/requirement-parse/scripts/merge-requirements.ts +228 -0
  191. package/skills/requirement-parse/scripts/parse-docs.ts +206 -0
  192. package/skills/requirement-parse/scripts/parse-openspec.ts +168 -0
  193. package/skills/roadmap-docs-generate/SKILL.md +483 -0
  194. package/skills/roadmap-docs-generate/assets/templates/ROADMAP.mdx +75 -0
  195. package/skills/roadmap-docs-generate/assets/templates/ROADMAP.mdx.template +330 -0
  196. package/skills/roadmap-docs-generate/assets/templates/TODO.mdx +56 -0
  197. package/skills/roadmap-docs-generate/assets/templates/TODO.mdx.template +363 -0
  198. package/skills/roadmap-docs-generate/scripts/json-to-mdx.ts +445 -0
  199. package/skills/roadmap-docs-generate/scripts/json-to-mdx.ts.backup +411 -0
  200. package/skills/roadmap-generate/SKILL.md +396 -0
  201. package/skills/roadmap-generate/scripts/generate-roadmap.ts +496 -0
  202. package/skills/skill-creator/LICENSE.txt +202 -0
  203. package/skills/skill-creator/SKILL.md +356 -0
  204. package/skills/skill-creator/references/output-patterns.md +82 -0
  205. package/skills/skill-creator/references/workflows.md +28 -0
  206. package/skills/skill-creator/scripts/init_skill.py +303 -0
  207. package/skills/skill-creator/scripts/package_skill.py +110 -0
  208. package/skills/skill-creator/scripts/quick_validate.py +95 -0
  209. package/skills/spec-generate/SKILL.md +408 -0
  210. package/skills/spec-generate/scripts/generate-specs.ts +538 -0
  211. package/skills/spec-generate/scripts/generate-tasks.ts +174 -0
  212. package/skills/specs-review/SKILL.md +370 -0
  213. package/skills/task-execute/SKILL.md +399 -0
  214. package/skills/task-update-status/SKILL.md +349 -0
  215. package/skills/task-update-status/scripts/update-task-status.ts +192 -0
  216. package/skills/task-verify/SKILL.md +407 -0
  217. package/skills/ui-ux-pro-max/SKILL.md +386 -0
  218. package/skills/ui-ux-pro-max/data/charts.csv +26 -0
  219. package/skills/ui-ux-pro-max/data/colors.csv +97 -0
  220. package/skills/ui-ux-pro-max/data/icons.csv +101 -0
  221. package/skills/ui-ux-pro-max/data/landing.csv +31 -0
  222. package/skills/ui-ux-pro-max/data/products.csv +97 -0
  223. package/skills/ui-ux-pro-max/data/react-performance.csv +45 -0
  224. package/skills/ui-ux-pro-max/data/stacks/astro.csv +54 -0
  225. package/skills/ui-ux-pro-max/data/stacks/flutter.csv +53 -0
  226. package/skills/ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -0
  227. package/skills/ui-ux-pro-max/data/stacks/jetpack-compose.csv +53 -0
  228. package/skills/ui-ux-pro-max/data/stacks/nextjs.csv +53 -0
  229. package/skills/ui-ux-pro-max/data/stacks/nuxt-ui.csv +51 -0
  230. package/skills/ui-ux-pro-max/data/stacks/nuxtjs.csv +59 -0
  231. package/skills/ui-ux-pro-max/data/stacks/react-native.csv +52 -0
  232. package/skills/ui-ux-pro-max/data/stacks/react.csv +54 -0
  233. package/skills/ui-ux-pro-max/data/stacks/shadcn.csv +61 -0
  234. package/skills/ui-ux-pro-max/data/stacks/svelte.csv +54 -0
  235. package/skills/ui-ux-pro-max/data/stacks/swiftui.csv +51 -0
  236. package/skills/ui-ux-pro-max/data/stacks/vue.csv +50 -0
  237. package/skills/ui-ux-pro-max/data/styles.csv +68 -0
  238. package/skills/ui-ux-pro-max/data/typography.csv +58 -0
  239. package/skills/ui-ux-pro-max/data/ui-reasoning.csv +101 -0
  240. package/skills/ui-ux-pro-max/data/ux-guidelines.csv +100 -0
  241. package/skills/ui-ux-pro-max/data/web-interface.csv +31 -0
  242. package/skills/ui-ux-pro-max/scripts/core.py +253 -0
  243. package/skills/ui-ux-pro-max/scripts/design_system.py +1067 -0
  244. package/skills/ui-ux-pro-max/scripts/search.py +114 -0
  245. package/skills/vercel-automation/SKILL.md +226 -0
  246. package/skills/webapp-testing/LICENSE.txt +202 -0
  247. package/skills/webapp-testing/SKILL.md +96 -0
  248. package/skills/webapp-testing/examples/console_logging.py +35 -0
  249. package/skills/webapp-testing/examples/element_discovery.py +40 -0
  250. package/skills/webapp-testing/examples/static_html_automation.py +33 -0
  251. package/skills/webapp-testing/scripts/with_server.py +106 -0
  252. package/skills/worktree-manager/SKILL.md +725 -0
  253. package/skills/worktree-manager/config.json +15 -0
  254. package/skills/worktree-manager/scripts/allocate-ports.sh +100 -0
  255. package/skills/worktree-manager/scripts/cleanup.sh +185 -0
  256. package/skills/worktree-manager/scripts/launch-agent.sh +155 -0
  257. package/skills/worktree-manager/scripts/register.sh +125 -0
  258. package/skills/worktree-manager/scripts/release-ports.sh +48 -0
  259. package/skills/worktree-manager/scripts/status.sh +169 -0
  260. package/skills/worktree-manager/scripts/sync.sh +168 -0
  261. package/skills/worktree-manager/templates/worktree.json +23 -0
  262. package/skills/xlsx/LICENSE.txt +30 -0
  263. package/skills/xlsx/SKILL.md +289 -0
  264. package/skills/xlsx/recalc.py +178 -0
@@ -0,0 +1,294 @@
1
+ # Skill: job-create
2
+
3
+ ## 功能
4
+
5
+ 创建新的 Job 目录结构和元信息文件。
6
+
7
+ ## 🚨 如何执行
8
+
9
+ **使用现有脚本**(不要手动创建目录和文件):
10
+
11
+ ```bash
12
+ npx tsx src/scripts/create-job.ts \
13
+ --name <name> \
14
+ --goal <goal> \
15
+ --mdx-path <mdx-path>
16
+ ```
17
+
18
+ **示例**:
19
+ ```bash
20
+ npx tsx src/scripts/create-job.ts \
21
+ --name "pricing-frontend-refactor" \
22
+ --goal "重构前端代码,重命名 @workspace/membership → @workspace/pricing" \
23
+ --mdx-path "/Users/danlio/Repositories/waoooo/waoooo-docs/developer-docs/planning/pricing-system.mdx"
24
+ ```
25
+
26
+ **注意**:
27
+ - ✅ 使用 `--name`、`--goal`、`--mdx-path` 参数格式
28
+ - ❌ 不要使用位置参数
29
+ - ❌ 不要手动创建目录
30
+ - ❌ 不要手动创建 metadata.json
31
+
32
+ ## 何时调用
33
+
34
+ - 用户说:"创建一个新 Job"
35
+ - 用户说:"开始新任务"
36
+ - 用户说:"新建项目"
37
+
38
+ ## 输入
39
+
40
+ - `name` - Job 名称(例如:pricing-system)
41
+ - `goal` - Job 目标(例如:实现多货币定价系统)
42
+ - `mdxPath` - MDX 文档路径(例如:../../../waoooo-docs/developer-docs/planning/pricing-system.mdx)
43
+
44
+ ## 输出
45
+
46
+ - Job 目录:`exports/jobs/YYYY-MM-DD-HHMM-<name>/`
47
+ - `metadata.json` - Job 元信息
48
+
49
+ ## 执行步骤
50
+
51
+ ### 1. 生成 Job ID
52
+
53
+ ```
54
+ 格式: YYYY-MM-DD-HHMM-<name>
55
+ 示例: 2026-02-10-1520-pricing-system
56
+
57
+ 规则:
58
+ - 使用当前时间戳
59
+ - name 转为 kebab-case
60
+ - 确保唯一性
61
+ ```
62
+
63
+ ### 2. 检查 Job 是否已存在
64
+
65
+ **🚨 重要:创建前必须检查!**
66
+
67
+ ```bash
68
+ # 检查目录是否存在
69
+ if [ -d "exports/jobs/<job-id>" ]; then
70
+ echo "⚠️ Job 目录已存在: exports/jobs/<job-id>"
71
+
72
+ # 询问用户
73
+ echo "选项:"
74
+ echo "1. 继续使用现有 Job(跳过创建步骤)"
75
+ echo "2. 删除现有 Job 并重新创建"
76
+ echo "3. 使用不同的名称创建新 Job"
77
+ echo "4. 取消操作"
78
+ fi
79
+ ```
80
+
81
+ **处理逻辑**:
82
+ - **选项 1(继续使用)**: 跳过 job-create,直接进入下一步
83
+ - **选项 2(删除重建)**: 删除旧目录,继续创建流程
84
+ - **选项 3(改名)**: 询问新名称,重新生成 Job ID
85
+ - **选项 4(取消)**: 终止整个流程
86
+
87
+ ### 3. 创建目录结构
88
+
89
+ ```bash
90
+ mkdir -p exports/jobs/<job-id>/source
91
+ mkdir -p exports/jobs/<job-id>/parsed
92
+ mkdir -p exports/jobs/<job-id>/analysis
93
+ mkdir -p exports/jobs/<job-id>/specs
94
+ mkdir -p exports/jobs/<job-id>/reviews
95
+ mkdir -p exports/jobs/<job-id>/logs
96
+ ```
97
+
98
+ ### 4. 生成 metadata.json
99
+
100
+ ```json
101
+ {
102
+ "$schema": "https://waoooo.com/schemas/job-metadata-v1.json",
103
+ "version": "1.0.0",
104
+ "id": "<job-id>",
105
+ "name": "<name>",
106
+ "description": "<goal>",
107
+ "createdAt": "<timestamp>",
108
+ "updatedAt": "<timestamp>",
109
+ "status": "pending",
110
+
111
+ "source": {
112
+ "mdxPath": "<mdx-path>",
113
+ "hasForm": false
114
+ },
115
+
116
+ "summary": {
117
+ "totalCapabilities": 0,
118
+ "available": 0,
119
+ "partial": 0,
120
+ "missing": 0,
121
+ "totalTasks": 0,
122
+ "estimatedHours": 0
123
+ }
124
+ }
125
+ ```
126
+
127
+ ### 5. 验证
128
+
129
+ - 检查目录是否创建成功
130
+ - 检查 metadata.json 格式是否正确
131
+ - 检查 MDX 文件是否存在
132
+
133
+ ## 使用示例
134
+
135
+ ### 示例 1:创建新 Job
136
+
137
+ ```
138
+ 用户: "创建一个新 Job,名称是 pricing-system"
139
+
140
+ Agent 行动:
141
+ 1. 询问用户:
142
+ Q: "Job 目标是什么?"
143
+ A: "实现多货币定价系统"
144
+
145
+ Q: "MDX 文档路径是什么?"
146
+ A: "../../../waoooo-docs/developer-docs/planning/pricing-system.mdx"
147
+
148
+ 2. 调用 job-create Skill
149
+ 输入:
150
+ - name: pricing-system
151
+ - goal: 实现多货币定价系统
152
+ - mdxPath: ../../../waoooo-docs/developer-docs/planning/pricing-system.mdx
153
+
154
+ 3. 执行:
155
+ - 生成 Job ID: 2026-02-10-1520-pricing-system
156
+ - 创建目录结构
157
+ - 生成 metadata.json
158
+
159
+ 4. 显示结果:
160
+ ✅ Job 创建成功
161
+ 📁 目录: exports/jobs/2026-02-10-1520-pricing-system/
162
+ 📄 元信息: metadata.json
163
+ ```
164
+
165
+ ## 错误处理
166
+
167
+ ### 错误 1:MDX 文件不存在
168
+
169
+ ```
170
+ ❌ 错误: MDX 文件不存在
171
+ 📁 路径: planning/pricing-system.mdx
172
+
173
+ 💡 建议:
174
+ 1. 检查路径是否正确
175
+ 2. 确认文件在 waoooo-docs 仓库
176
+ 3. 使用绝对路径重试
177
+ ```
178
+
179
+ ### 错误 2:Job ID 冲突
180
+
181
+ ```
182
+ ❌ 错误: Job 目录已存在
183
+ 📁 目录: exports/jobs/2026-02-10-1520-pricing-system/
184
+
185
+ 💡 建议:
186
+ 1. 使用不同的名称
187
+ 2. 删除旧的 Job 目录
188
+ 3. 加载已有 Job 继续工作
189
+ ```
190
+
191
+ ### 错误 3:目录创建失败
192
+
193
+ ```
194
+ ❌ 错误: 无法创建目录
195
+ 🔍 原因: 权限不足
196
+
197
+ 💡 建议:
198
+ 1. 检查文件系统权限
199
+ 2. 检查磁盘空间
200
+ 3. 手动创建目录后重试
201
+ ```
202
+
203
+ ## 相关脚本
204
+
205
+ 需要创建:`src/scripts/create-job.ts`
206
+
207
+ ```typescript
208
+ /**
209
+ * Create Job
210
+ *
211
+ * Create new Job directory structure and metadata
212
+ */
213
+
214
+ import fs from 'fs';
215
+ import path from 'path';
216
+
217
+ interface JobInput {
218
+ name: string;
219
+ goal: string;
220
+ mdxPath: string;
221
+ }
222
+
223
+ function createJob(input: JobInput) {
224
+ // 1. Generate Job ID
225
+ const timestamp = new Date().toISOString().slice(0, 16).replace('T', '-').replace(/:/g, '');
226
+ const cleanName = input.name.toLowerCase().replace(/\s+/g, '-');
227
+ const jobId = `${timestamp}-${cleanName}`;
228
+
229
+ // 2. Create directories
230
+ const jobDir = path.join('exports', 'jobs', jobId);
231
+ fs.mkdirSync(path.join(jobDir, 'source'), { recursive: true });
232
+ fs.mkdirSync(path.join(jobDir, 'parsed'), { recursive: true });
233
+ fs.mkdirSync(path.join(jobDir, 'analysis'), { recursive: true });
234
+ fs.mkdirSync(path.join(jobDir, 'specs'), { recursive: true });
235
+
236
+ // 3. Generate metadata.json
237
+ const metadata = {
238
+ $schema: 'https://waoooo.com/schemas/job-metadata-v1.json',
239
+ version: '1.0.0',
240
+ id: jobId,
241
+ name: input.name,
242
+ description: input.goal,
243
+ createdAt: new Date().toISOString(),
244
+ updatedAt: new Date().toISOString(),
245
+ status: 'pending',
246
+ source: {
247
+ mdxPath: input.mdxPath,
248
+ hasForm: false,
249
+ },
250
+ summary: {
251
+ totalCapabilities: 0,
252
+ available: 0,
253
+ partial: 0,
254
+ missing: 0,
255
+ totalTasks: 0,
256
+ estimatedHours: 0,
257
+ },
258
+ };
259
+
260
+ fs.writeFileSync(
261
+ path.join(jobDir, 'metadata.json'),
262
+ JSON.stringify(metadata, null, 2)
263
+ );
264
+
265
+ console.log(`✅ Job created: ${jobId}`);
266
+ return { jobId, jobDir };
267
+ }
268
+
269
+ // CLI
270
+ if (import.meta.url === `file://${process.argv[1]}`) {
271
+ const [name, goal, mdxPath] = process.argv.slice(2);
272
+
273
+ if (!name || !goal || !mdxPath) {
274
+ console.error('Usage: tsx create-job.ts <name> <goal> <mdx-path>');
275
+ process.exit(1);
276
+ }
277
+
278
+ try {
279
+ createJob({ name, goal, mdxPath });
280
+ } catch (error) {
281
+ console.error('❌ Error:', error);
282
+ process.exit(1);
283
+ }
284
+ }
285
+
286
+ export { createJob };
287
+ ```
288
+
289
+ ## 注意事项
290
+
291
+ 1. **Job ID 唯一性** - 使用时间戳确保唯一
292
+ 2. **目录结构固定** - 必须包含 source, parsed, analysis, specs
293
+ 3. **metadata.json 必需** - 后续所有步骤都依赖它
294
+ 4. **验证 MDX 路径** - 创建前检查文件是否存在
@@ -0,0 +1,105 @@
1
+ /**
2
+ * Create Job
3
+ *
4
+ * Create new Job directory structure and metadata
5
+ */
6
+
7
+ import fs from 'fs';
8
+ import path from 'path';
9
+
10
+ interface JobInput {
11
+ name: string;
12
+ goal: string;
13
+ mdxPath?: string;
14
+ }
15
+
16
+ function createJob(input: JobInput) {
17
+ // 1. Generate Job ID
18
+ const now = new Date();
19
+ const year = now.getFullYear();
20
+ const month = String(now.getMonth() + 1).padStart(2, '0');
21
+ const day = String(now.getDate()).padStart(2, '0');
22
+ const hour = String(now.getHours()).padStart(2, '0');
23
+ const minute = String(now.getMinutes()).padStart(2, '0');
24
+ const timestamp = `${year}-${month}-${day}-${hour}${minute}`;
25
+
26
+ const cleanName = input.name.toLowerCase().replace(/\s+/g, '-');
27
+ const jobId = `${timestamp}-${cleanName}`;
28
+
29
+ // 2. Create directories
30
+ const jobDir = path.join('exports', 'jobs', jobId);
31
+ fs.mkdirSync(path.join(jobDir, 'source'), { recursive: true });
32
+ fs.mkdirSync(path.join(jobDir, 'parsed'), { recursive: true });
33
+ fs.mkdirSync(path.join(jobDir, 'analysis'), { recursive: true });
34
+ fs.mkdirSync(path.join(jobDir, 'specs'), { recursive: true });
35
+
36
+ // 3. Generate metadata.json
37
+ const metadata = {
38
+ $schema: 'https://waoooo.com/schemas/job-metadata-v1.json',
39
+ version: '1.0.0',
40
+ id: jobId,
41
+ name: input.name,
42
+ description: input.goal,
43
+ createdAt: now.toISOString(),
44
+ updatedAt: now.toISOString(),
45
+ status: 'pending',
46
+ source: {
47
+ mdxPath: input.mdxPath || null,
48
+ hasForm: false,
49
+ },
50
+ summary: {
51
+ totalCapabilities: 0,
52
+ available: 0,
53
+ partial: 0,
54
+ missing: 0,
55
+ totalTasks: 0,
56
+ estimatedHours: 0,
57
+ },
58
+ };
59
+
60
+ fs.writeFileSync(
61
+ path.join(jobDir, 'metadata.json'),
62
+ JSON.stringify(metadata, null, 2)
63
+ );
64
+
65
+ console.log(`✅ Job created: ${jobId}`);
66
+ console.log(`📁 Directory: ${jobDir}`);
67
+ return { jobId, jobDir };
68
+ }
69
+
70
+ // CLI
71
+ if (import.meta.url === `file://${process.argv[1]}`) {
72
+ const args = process.argv.slice(2);
73
+
74
+ // Parse arguments
75
+ let name = '';
76
+ let goal = '';
77
+ let mdxPath = '';
78
+
79
+ for (let i = 0; i < args.length; i++) {
80
+ if (args[i] === '--name' && args[i + 1]) {
81
+ name = args[i + 1];
82
+ i++;
83
+ } else if (args[i] === '--goal' && args[i + 1]) {
84
+ goal = args[i + 1];
85
+ i++;
86
+ } else if (args[i] === '--mdx-path' && args[i + 1]) {
87
+ mdxPath = args[i + 1];
88
+ i++;
89
+ }
90
+ }
91
+
92
+ if (!name || !goal) {
93
+ console.error('Usage: tsx create-job.ts --name <name> --goal <goal> [--mdx-path <path>]');
94
+ process.exit(1);
95
+ }
96
+
97
+ try {
98
+ createJob({ name, goal, mdxPath: mdxPath || undefined });
99
+ } catch (error) {
100
+ console.error('❌ Error:', error);
101
+ process.exit(1);
102
+ }
103
+ }
104
+
105
+ export { createJob };
@@ -0,0 +1,212 @@
1
+ # Job Workflow Skill
2
+
3
+ 自动化 Job 创建和分析的完整工作流程。
4
+
5
+ ## 触发条件
6
+
7
+ 当用户说以下关键词时触发:
8
+ - "创建 job"
9
+ - "新建任务"
10
+ - "开始新项目"
11
+ - "分析需求"
12
+
13
+ ## 工作流程
14
+
15
+ ### 阶段 1: 准备工作
16
+
17
+ 1. **更新能力树**
18
+ ```bash
19
+ cd waoooo-web/tools/waoooo-product-builder
20
+ pnpm capability:build-tree
21
+ ```
22
+
23
+ ### 阶段 2: 创建 Job
24
+
25
+ 2. **询问用户信息**
26
+ - Job 名称(例如:pricing-system)
27
+ - Job 目标(例如:实现多货币定价系统)
28
+ - MDX 文档路径(例如:../../../waoooo-docs/developer-docs/planning/pricing-system.mdx)
29
+
30
+ 3. **生成 Job ID**
31
+ ```
32
+ 格式: YYYY-MM-DD-HHMM-<name>
33
+ 例如: 2026-02-10-1520-pricing-system
34
+ ```
35
+
36
+ 4. **创建 Job 目录结构**
37
+ ```bash
38
+ mkdir -p exports/jobs/<job-id>/source
39
+ mkdir -p exports/jobs/<job-id>/parsed
40
+ mkdir -p exports/jobs/<job-id>/analysis
41
+ mkdir -p exports/jobs/<job-id>/progress
42
+ ```
43
+
44
+ 5. **创建 metadata.json**
45
+ ```json
46
+ {
47
+ "id": "<job-id>",
48
+ "name": "<name>",
49
+ "goal": "<goal>",
50
+ "createdAt": "<timestamp>",
51
+ "status": "pending",
52
+ "mdxPath": "<mdx-path>"
53
+ }
54
+ ```
55
+
56
+ ### 阶段 3: 解析 MDX
57
+
58
+ 6. **检查 MDX 是否存在**
59
+ ```bash
60
+ # 如果不存在,提示用户先编写 MDX 文档
61
+ ```
62
+
63
+ 7. **解析 MDX 文档**
64
+ ```bash
65
+ pnpm spec:parse-docs \
66
+ <mdx-path> \
67
+ exports/jobs/<job-id>/parsed/docs.json
68
+ ```
69
+
70
+ ### 阶段 4: 推断/生成 form.json
71
+
72
+ 8. **检查是否有 form.json**
73
+ - 如果没有,自动推断生成
74
+
75
+ 9. **推断能力配置**
76
+ ```bash
77
+ pnpm spec:infer-builder \
78
+ exports/jobs/<job-id>/parsed/docs.json \
79
+ exports/jobs/<job-id>/parsed/form.json
80
+ ```
81
+
82
+ ### 阶段 5: 合并
83
+
84
+ 10. **合并 docs.json 和 form.json**
85
+ ```bash
86
+ pnpm spec:merge \
87
+ exports/jobs/<job-id>/parsed/docs.json \
88
+ exports/jobs/<job-id>/parsed/form.json \
89
+ exports/jobs/<job-id>/parsed/unified.json
90
+ ```
91
+
92
+ ### 阶段 6: 分析能力
93
+
94
+ 11. **分析能力依赖**
95
+ ```bash
96
+ pnpm spec:analyze-capabilities \
97
+ exports/jobs/<job-id>/parsed/unified.json \
98
+ exports/capability-tree/capability-tree.json \
99
+ exports/jobs/<job-id>/analysis/capability-analysis.json
100
+ ```
101
+
102
+ 12. **显示分析结果**
103
+ - 已有能力列表
104
+ - 缺失能力列表
105
+ - 依赖关系
106
+
107
+ ### 阶段 7: 生成任务
108
+
109
+ 13. **生成任务列表**
110
+ ```bash
111
+ pnpm spec:generate-tasks \
112
+ exports/jobs/<job-id>/analysis/capability-analysis.json \
113
+ exports/jobs/<job-id>/analysis/tasks.json
114
+ ```
115
+
116
+ ### 阶段 8: 生成全局视图
117
+
118
+ 14. **生成全局 ROADMAP**
119
+ ```bash
120
+ pnpm generate:roadmap
121
+ ```
122
+
123
+ 15. **显示执行计划**
124
+ - 读取 `exports/jobs/<job-id>/analysis/tasks.json`
125
+ - 显示任务列表和执行顺序
126
+
127
+ ### 阶段 9: 询问是否开始执行
128
+
129
+ 16. **询问用户**
130
+ ```
131
+ Job 分析完成!
132
+
133
+ 📊 能力分析:
134
+ - 已有: X 个
135
+ - 缺失: Y 个
136
+
137
+ 📋 执行计划:
138
+ 1. 开发能力 A
139
+ 2. 开发能力 B
140
+ 3. 对接 Job 主功能
141
+
142
+ 是否开始执行?(y/n)
143
+ ```
144
+
145
+ 17. **如果用户确认,开始执行**
146
+ - 读取 tasks.json
147
+ - 按顺序执行每个任务
148
+ - 更新任务状态
149
+ - 更新能力树
150
+ - 回写 MDX
151
+
152
+ ## 命令快捷方式
153
+
154
+ 在 package.json 中添加:
155
+
156
+ ```json
157
+ {
158
+ "scripts": {
159
+ "job:create": "tsx src/scripts/job-workflow.ts create",
160
+ "job:analyze": "tsx src/scripts/job-workflow.ts analyze",
161
+ "job:execute": "tsx src/scripts/job-workflow.ts execute"
162
+ }
163
+ }
164
+ ```
165
+
166
+ ## 使用示例
167
+
168
+ ```bash
169
+ # 方式 1: 使用 Skill(推荐)
170
+ # 直接对 AI 说:"创建一个新 job,名称是 pricing-system"
171
+
172
+ # 方式 2: 使用命令行
173
+ pnpm job:create pricing-system "实现多货币定价系统" ../../../waoooo-docs/developer-docs/planning/pricing-system.mdx
174
+ ```
175
+
176
+ ## 输出文件结构
177
+
178
+ ```
179
+ exports/jobs/2026-02-10-1520-pricing-system/
180
+ ├── metadata.json # Job 元信息
181
+ ├── source/
182
+ │ └── planning.mdx # 原始 MDX(链接)
183
+ ├── parsed/
184
+ │ ├── docs.json # 从 MDX 解析
185
+ │ ├── form.json # 推断的配置
186
+ │ └── unified.json # 合并结果
187
+ ├── analysis/
188
+ │ ├── capability-analysis.json # 能力分析
189
+ │ └── tasks.json # 任务列表
190
+ └── progress/
191
+ └── execution.json # 执行进度
192
+ ```
193
+
194
+ ## 注意事项
195
+
196
+ 1. **MDX 文档必须存在**:如果不存在,先提示用户编写
197
+ 2. **能力树必须最新**:执行前先运行 `pnpm capability:build-tree`
198
+ 3. **依赖关系自动分析**:系统会自动检测能力之间的依赖
199
+ 4. **执行顺序自动排序**:使用拓扑排序确定执行顺序
200
+
201
+ ## 错误处理
202
+
203
+ - 如果 MDX 解析失败 → 检查 MDX 格式
204
+ - 如果能力分析失败 → 检查 capability-tree.json
205
+ - 如果依赖关系有环 → 手动调整依赖
206
+
207
+ ## 下一步
208
+
209
+ 完成 Job 分析后,可以:
210
+ 1. 查看全局视图:`pnpm generate:roadmap`
211
+ 2. 开始执行开发:按 tasks.json 顺序执行
212
+ 3. 更新进度:实时更新 execution.json