weaver-work-cli 0.1.8 → 0.1.20

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 (263) hide show
  1. package/README.md +11 -11
  2. package/dist/cmd/action.js +76 -0
  3. package/dist/cmd/index.js +2 -0
  4. package/dist/cmd/refs/index.js +103 -0
  5. package/dist/cmd/register.js +31 -0
  6. package/dist/cmd/root.js +1 -0
  7. package/dist/cmd/setup/index.js +25 -5
  8. package/dist/cmd/skills/index.js +37 -5
  9. package/dist/core/connector.js +54 -0
  10. package/dist/core/context.js +2 -1
  11. package/dist/core/input.js +48 -0
  12. package/dist/core/output.js +298 -3
  13. package/dist/core/refs.js +432 -0
  14. package/dist/core/state.js +26 -0
  15. package/dist/internal/e10/auth/commands.js +2 -2
  16. package/dist/internal/e10/auth/session.js +14 -0
  17. package/dist/internal/e10/auth/xiaoe.js +116 -51
  18. package/dist/internal/e10/request-runtime.js +5 -0
  19. package/dist/internal/skills/install.js +148 -28
  20. package/dist/internal/skills/reader.js +12 -9
  21. package/dist/shortcuts/blog/continuation.js +74 -0
  22. package/dist/shortcuts/blog/errors.js +60 -0
  23. package/dist/shortcuts/blog/host.js +175 -0
  24. package/dist/shortcuts/blog/index.js +324 -0
  25. package/dist/shortcuts/blog/manifest.js +415 -0
  26. package/dist/shortcuts/blog/operations/comment.js +125 -0
  27. package/dist/shortcuts/blog/operations/comments.js +31 -0
  28. package/dist/shortcuts/blog/operations/edit.js +131 -0
  29. package/dist/shortcuts/blog/operations/export.js +46 -0
  30. package/dist/shortcuts/blog/operations/like.js +80 -0
  31. package/dist/shortcuts/blog/operations/publish.js +157 -0
  32. package/dist/shortcuts/blog/operations/query-user.js +58 -0
  33. package/dist/shortcuts/blog/operations/query.js +96 -0
  34. package/dist/shortcuts/blog/operations/registry.js +54 -0
  35. package/dist/shortcuts/blog/operations/remind.js +176 -0
  36. package/dist/shortcuts/blog/operations/shared.js +330 -0
  37. package/dist/shortcuts/blog/operations/types.js +16 -0
  38. package/dist/shortcuts/blog/operations.js +9 -0
  39. package/dist/shortcuts/caizhilian/continuation.js +70 -0
  40. package/dist/shortcuts/caizhilian/errors.js +53 -0
  41. package/dist/shortcuts/caizhilian/host.js +190 -0
  42. package/dist/shortcuts/caizhilian/index.js +186 -0
  43. package/dist/shortcuts/caizhilian/manifest.js +42 -0
  44. package/dist/shortcuts/caizhilian/operations/api.js +801 -0
  45. package/dist/shortcuts/caizhilian/operations/confirm.js +75 -0
  46. package/dist/shortcuts/caizhilian/operations/files.js +306 -0
  47. package/dist/shortcuts/caizhilian/operations/form.js +170 -0
  48. package/dist/shortcuts/caizhilian/operations/handlers/collab.js +611 -0
  49. package/dist/shortcuts/caizhilian/operations/handlers/document.js +890 -0
  50. package/dist/shortcuts/caizhilian/operations/handlers/file-collection.js +346 -0
  51. package/dist/shortcuts/caizhilian/operations/handlers/file-upload.js +192 -0
  52. package/dist/shortcuts/caizhilian/operations/handlers/fileops.js +570 -0
  53. package/dist/shortcuts/caizhilian/operations/handlers/folder.js +969 -0
  54. package/dist/shortcuts/caizhilian/operations/handlers/search.js +318 -0
  55. package/dist/shortcuts/caizhilian/operations/handlers/setting-attach.js +294 -0
  56. package/dist/shortcuts/caizhilian/operations/handlers/setting-backup.js +423 -0
  57. package/dist/shortcuts/caizhilian/operations/handlers/setting-encrypt.js +238 -0
  58. package/dist/shortcuts/caizhilian/operations/handlers/setting-storage.js +364 -0
  59. package/dist/shortcuts/caizhilian/operations/handlers/system.js +106 -0
  60. package/dist/shortcuts/caizhilian/operations/registry.js +151 -0
  61. package/dist/shortcuts/caizhilian/operations/shared.js +408 -0
  62. package/dist/shortcuts/caizhilian/operations/specs.js +623 -0
  63. package/dist/shortcuts/caizhilian/operations/types.js +57 -0
  64. package/dist/shortcuts/caizhilian/operations.js +21 -0
  65. package/dist/shortcuts/contract/continuation.js +70 -0
  66. package/dist/shortcuts/contract/errors.js +62 -0
  67. package/dist/shortcuts/contract/host.js +205 -0
  68. package/dist/shortcuts/contract/index.js +318 -0
  69. package/dist/shortcuts/contract/manifest.js +596 -0
  70. package/dist/shortcuts/contract/operations/clause-reference.js +78 -0
  71. package/dist/shortcuts/contract/operations/form-info.js +371 -0
  72. package/dist/shortcuts/contract/operations/read.js +118 -0
  73. package/dist/shortcuts/contract/operations/registry.js +43 -0
  74. package/dist/shortcuts/contract/operations/request.js +300 -0
  75. package/dist/shortcuts/contract/operations/shared.js +133 -0
  76. package/dist/shortcuts/contract/operations/subject.js +157 -0
  77. package/dist/shortcuts/contract/operations/template.js +81 -0
  78. package/dist/shortcuts/contract/operations/types.js +7 -0
  79. package/dist/shortcuts/contract/operations/workflow.js +52 -0
  80. package/dist/shortcuts/contract/operations/write.js +131 -0
  81. package/dist/shortcuts/contract/operations.js +8 -0
  82. package/dist/shortcuts/hrm/index.js +83 -2
  83. package/dist/shortcuts/hrm/operations/employee.js +160 -30
  84. package/dist/shortcuts/hrm/operations/org.js +17 -3
  85. package/dist/shortcuts/hrm/operations/position.js +18 -2
  86. package/dist/shortcuts/index.js +5 -1
  87. package/dist/shortcuts/invoice/index.js +74 -36
  88. package/dist/shortcuts/invoice/manifest.js +674 -4
  89. package/dist/shortcuts/invoice/markdown.js +172 -0
  90. package/dist/shortcuts/invoice/operations/add.js +3 -3
  91. package/dist/shortcuts/invoice/operations/delete.js +2 -2
  92. package/dist/shortcuts/invoice/operations/get.js +10 -2
  93. package/dist/shortcuts/invoice/operations/import.js +2 -2
  94. package/dist/shortcuts/invoice/operations/registry.js +8 -1
  95. package/dist/shortcuts/invoice/operations/reim-auto.js +719 -0
  96. package/dist/shortcuts/invoice/operations/reim.js +85 -2
  97. package/dist/shortcuts/invoice/operations/shared.js +75 -8
  98. package/dist/shortcuts/invoice/operations/update.js +2 -2
  99. package/dist/shortcuts/invoice/operations/upload-and-validate.js +93 -0
  100. package/dist/shortcuts/invoice/operations/validate-preview.js +2 -1
  101. package/dist/shortcuts/invoice/projection.js +328 -0
  102. package/dist/shortcuts/meeting/host.js +18 -1
  103. package/dist/shortcuts/meeting/manifest.js +30 -18
  104. package/dist/shortcuts/meeting/operations/eb/catalog.js +390 -0
  105. package/dist/shortcuts/meeting/operations/eb/conflict.js +389 -0
  106. package/dist/shortcuts/meeting/operations/eb/factory.js +389 -0
  107. package/dist/shortcuts/meeting/operations/eb/index.js +22 -0
  108. package/dist/shortcuts/meeting/operations/env.js +8 -1
  109. package/dist/shortcuts/meeting/operations/registry.js +2 -0
  110. package/dist/shortcuts/meeting/operations/signs.js +216 -2
  111. package/dist/shortcuts/workflow/endpoints.js +2 -1
  112. package/dist/shortcuts/workflow/errors.js +8 -2
  113. package/dist/shortcuts/workflow/host.js +6 -3
  114. package/dist/shortcuts/workflow/operations/form.js +931 -589
  115. package/dist/shortcuts/workflow/operations/read.js +128 -205
  116. package/dist/shortcuts/workflow/operations/shared.js +21 -0
  117. package/dist/shortcuts/workflow/operations/write.js +750 -52
  118. package/dist/shortcuts/workflow/operations.js +36 -10
  119. package/docs/_catalog.md +6 -0
  120. package/docs/agent-invoice.md +5 -1
  121. package/docs/agent-io-channel-design.md +468 -0
  122. package/docs/agent-skill-install.md +9 -4
  123. package/docs/blog.md +123 -0
  124. package/docs/caizhilian.md +304 -0
  125. package/docs/contract.md +91 -0
  126. package/docs/e10-auth.md +2 -2
  127. package/docs/hrm.md +19 -9
  128. package/docs/invoice.md +5 -1
  129. package/docs/meeting.md +1 -1
  130. package/docs/operation-manual.md +15 -3
  131. package/docs/skill-review-2026-09-19.md +2 -2
  132. package/package.json +2 -2
  133. package/scripts/package-skill.mjs +32 -20
  134. package/skill-template/business-info.json +113 -14
  135. package/skill-template/domains/blog.md +24 -0
  136. package/skill-template/domains/caizhilian.md +22 -0
  137. package/skill-template/domains/jinchengda.md +23 -0
  138. package/skill-template/domains/meeting.md +1 -1
  139. package/skill-template/domains/workflow.md +1 -1
  140. package/skill-template/skill-template.md +1 -1
  141. package/skills/weaver-e10-blog/SKILL.md +111 -0
  142. package/skills/weaver-e10-blog/references/blog-comment.md +51 -0
  143. package/skills/weaver-e10-blog/references/blog-comments.md +39 -0
  144. package/skills/weaver-e10-blog/references/blog-default-permission.md +38 -0
  145. package/skills/weaver-e10-blog/references/blog-disabled-capabilities.md +11 -0
  146. package/skills/weaver-e10-blog/references/blog-edit.md +51 -0
  147. package/skills/weaver-e10-blog/references/blog-export.md +42 -0
  148. package/skills/weaver-e10-blog/references/blog-like.md +50 -0
  149. package/skills/weaver-e10-blog/references/blog-publish.md +52 -0
  150. package/skills/weaver-e10-blog/references/blog-query-user.md +45 -0
  151. package/skills/weaver-e10-blog/references/blog-query.md +49 -0
  152. package/skills/weaver-e10-blog/references/blog-remind.md +51 -0
  153. package/skills/weaver-e10-blog/references/blog-resolve-users.md +38 -0
  154. package/skills/weaver-e10-blog/references/source-manifest.json +1540 -0
  155. package/skills/weaver-e10-caizhilian/SKILL.md +216 -0
  156. package/skills/weaver-e10-caizhilian/references/agent-entry.md +106 -0
  157. package/skills/weaver-e10-caizhilian/references/collaboration.md +112 -0
  158. package/skills/weaver-e10-caizhilian/references/document.md +111 -0
  159. package/skills/weaver-e10-caizhilian/references/file-collection.md +136 -0
  160. package/skills/weaver-e10-caizhilian/references/file-upload.md +309 -0
  161. package/skills/weaver-e10-caizhilian/references/files.md +120 -0
  162. package/skills/weaver-e10-caizhilian/references/folder.md +118 -0
  163. package/skills/weaver-e10-caizhilian/references/org-browser.md +104 -0
  164. package/skills/weaver-e10-caizhilian/references/setting-attach.md +410 -0
  165. package/skills/weaver-e10-caizhilian/references/setting-backup.md +372 -0
  166. package/skills/weaver-e10-caizhilian/references/setting-encrypt.md +399 -0
  167. package/skills/weaver-e10-caizhilian/references/setting-storage.md +603 -0
  168. package/skills/weaver-e10-caizhilian/references/source-manifest.json +5079 -0
  169. package/skills/weaver-e10-caizhilian/references/withheld.md +93 -0
  170. package/skills/weaver-e10-caizhilian/references/write-protocol.md +120 -0
  171. package/skills/weaver-e10-calendar/SKILL.md +4 -3
  172. package/skills/weaver-e10-ebuilder-form/SKILL.md +4 -9
  173. package/skills/weaver-e10-ebuilder-form/references/context-routing.md +0 -9
  174. package/skills/weaver-e10-ebuilder-form/references/custom-api.md +1 -5
  175. package/skills/weaver-e10-ebuilder-form/references/fields-browser.md +1 -5
  176. package/skills/weaver-e10-ebuilder-form/references/list-nlist.md +1 -5
  177. package/skills/weaver-e10-ebuilder-form/references/openapi-read.md +1 -5
  178. package/skills/weaver-e10-ebuilder-form/references/openapi-write.md +1 -5
  179. package/skills/weaver-e10-esb/SKILL.md +2 -2
  180. package/skills/weaver-e10-esb/references/source-manifest.json +9 -9
  181. package/skills/weaver-e10-hrm/SKILL.md +54 -6
  182. package/skills/weaver-e10-hrm/references/employee.md +89 -15
  183. package/skills/weaver-e10-hrm/references/org.md +7 -4
  184. package/skills/weaver-e10-hrm/references/position.md +14 -7
  185. package/skills/weaver-e10-hrm/references/source-manifest.json +1 -1
  186. package/skills/weaver-e10-jinchengda/SKILL.md +166 -0
  187. package/skills/weaver-e10-jinchengda/references/contract-agent-entry.md +82 -0
  188. package/skills/weaver-e10-jinchengda/references/contract-clause-recommender.md +69 -0
  189. package/skills/weaver-e10-jinchengda/references/contract-clause-reference-save.md +78 -0
  190. package/skills/weaver-e10-jinchengda/references/contract-disabled-capabilities.md +27 -0
  191. package/skills/weaver-e10-jinchengda/references/contract-request-status.md +71 -0
  192. package/skills/weaver-e10-jinchengda/references/contract-request-write.md +94 -0
  193. package/skills/weaver-e10-jinchengda/references/contract-signing-subjects.md +89 -0
  194. package/skills/weaver-e10-jinchengda/references/contract-subject-create.md +77 -0
  195. package/skills/weaver-e10-jinchengda/references/contract-template-selector.md +66 -0
  196. package/skills/weaver-e10-jinchengda/references/contract-workflow-discovery.md +94 -0
  197. package/skills/weaver-e10-jinchengda/references/source-manifest.json +259 -0
  198. package/skills/weaver-e10-jiuchuanhui/SKILL.md +5 -11
  199. package/skills/weaver-e10-jucailin/SKILL.md +4 -3
  200. package/skills/weaver-e10-mail/SKILL.md +4 -11
  201. package/skills/weaver-e10-meeting/SKILL.md +66 -32
  202. package/skills/weaver-e10-meeting/references/meeting-change.md +5 -2
  203. package/skills/weaver-e10-meeting/references/meeting-create.md +2 -1
  204. package/skills/weaver-e10-meeting/references/meeting-eb.md +114 -0
  205. package/skills/weaver-e10-meeting/references/meeting-lifecycle.md +9 -8
  206. package/skills/weaver-e10-meeting/references/meeting-receipts-signs.md +35 -7
  207. package/skills/weaver-e10-meeting/references/meeting-update.md +1 -1
  208. package/skills/weaver-e10-okr/SKILL.md +6 -11
  209. package/skills/weaver-e10-okr/references/source-manifest.json +3 -3
  210. package/skills/weaver-e10-plan/SKILL.md +3 -3
  211. package/skills/weaver-e10-plan/references/plan-collect-and-compose.md +1 -1
  212. package/skills/weaver-e10-plan/references/plan-overview-and-routing.md +1 -1
  213. package/skills/weaver-e10-plan/references/source-manifest.json +13 -13
  214. package/skills/weaver-e10-qiyecheng/SKILL.md +4 -10
  215. package/skills/weaver-e10-qiyecheng/references/source-manifest.json +9 -9
  216. package/skills/weaver-e10-shared/SKILL.md +36 -25
  217. package/skills/weaver-e10-shared/references/e10-auth-and-session.md +10 -31
  218. package/skills/weaver-e10-shared/references/json-output-contract.md +20 -11
  219. package/skills/weaver-e10-shijingran/SKILL.md +2 -1
  220. package/skills/weaver-e10-shijingran/references/source-manifest.json +9 -9
  221. package/skills/weaver-e10-skill-maker/SKILL.md +4 -10
  222. package/skills/weaver-e10-skill-maker/references/business-skill-generation.md +5 -3
  223. package/skills/weaver-e10-skill-maker/references/module-cli-generation.md +12 -27
  224. package/skills/weaver-e10-skill-maker/references/module-gap-audit-and-repair.md +17 -5
  225. package/skills/weaver-e10-skill-maker/references/source-update-detection.md +4 -27
  226. package/skills/weaver-e10-wenshuding/SKILL.md +5 -16
  227. package/skills/weaver-e10-wenshuding/references/source-manifest.json +7 -7
  228. package/skills/weaver-e10-workflow/SKILL.md +32 -37
  229. package/skills/weaver-e10-workflow/references/source-manifest.json +39 -75
  230. package/skills/weaver-e10-workflow/references/workflow-batch.md +90 -29
  231. package/skills/weaver-e10-workflow/references/workflow-create.md +79 -109
  232. package/skills/weaver-e10-workflow/references/workflow-memory.md +19 -9
  233. package/skills/weaver-e10-workflow/references/workflow-operate.md +2 -2
  234. package/skills/weaver-e10-workflow/references/workflow-query.md +38 -20
  235. package/skills/weaver-e10-workflow/references/workflow-share.md +18 -2
  236. package/skills/weaver-e10-workflow/references/workflow-view.md +3 -4
  237. package/skills/weaver-e10-yepiaotong/SKILL.md +75 -39
  238. package/skills/weaver-e10-yepiaotong/references/invoice-detail.md +22 -1
  239. package/skills/weaver-e10-yepiaotong/references/invoice-enterprise-list.md +3 -1
  240. package/skills/weaver-e10-yepiaotong/references/invoice-output-view.md +135 -0
  241. package/skills/weaver-e10-yepiaotong/references/invoice-personal-list.md +15 -3
  242. package/skills/weaver-e10-yepiaotong/references/invoice-reim.md +1 -1
  243. package/skills/weaver-e10-yepiaotong/references/invoice-summarize.py +217 -0
  244. package/skills/weaver-e10-yepiaotong/references/invoice-upload-and-validate.md +88 -0
  245. package/skills/weaver-e10-yepiaotong/references/invoice-validation-preview.md +7 -2
  246. package/skills/weaver-e10-yepiaotong/references/reim-api-reference.md +89 -9
  247. package/skills/weaver-e10-yepiaotong/references/reim-examples.md +1 -0
  248. package/skills/weaver-e10-yepiaotong/references/reim-expense-subject-rules.md +70 -49
  249. package/skills/weaver-e10-yepiaotong/references/reim-fast-path.md +119 -0
  250. package/skills/weaver-e10-yepiaotong/references/reim-form-fill-rules.md +55 -36
  251. package/skills/weaver-e10-yepiaotong/references/reim-matching-rules.md +4 -0
  252. package/skills/weaver-e10-yepiaotong/references/reim-phone-subsidy-rules.md +149 -0
  253. package/skills/weaver-e10-yepiaotong/references/reim-workflow.md +125 -5
  254. package/skills/weaver-e10-yepiaotong/references/source-manifest.json +430 -63
  255. package/skills/weaver-e10-yimiaoban/SKILL.md +4 -12
  256. package/skills/weaver-e10-yimiaoban/references/source-manifest.json +3 -3
  257. package/skills/weaver-e10-ziguanjia/SKILL.md +2 -1
  258. package/skills/weaver-e10-ziguanjia/references/ziguanjia-agent-entry.md +3 -3
  259. package/tools/weaver-skill-detector-1.0.13/SKILL.md +9 -9
  260. package/tools/weaver-skill-detector-1.0.13/references/checklist.md +3 -3
  261. package/tools/weaver-skill-detector-1.0.13/scripts/__pycache__/validate_skill.cpython-313.pyc +0 -0
  262. package/tools/weaver-skill-detector-1.0.13/scripts/validate_skill.py +98 -91
  263. package/scripts/sync-connector-skills.mjs +0 -172
@@ -0,0 +1,1540 @@
1
+ {
2
+ "schemaVersion": 2,
3
+ "module": "blog",
4
+ "cliCommand": "blog",
5
+ "skillName": "weaver-e10-blog",
6
+ "generatedAt": "2026-09-17",
7
+ "updatedAt": "2026-09-18",
8
+ "sourceRoot": "~/.workbuddy/skills/weaver-e10-blog",
9
+ "sourceSet": {
10
+ "detectionStrength": "weak",
11
+ "fileCount": 41,
12
+ "aggregateSha256": "54fdae1aa360100fd56973daeef8f0a74195a99779db9c5e05701b43375a9aad",
13
+ "reason": "源资料是已在生产使用的 Agent Skill(接口文档 + 实测脚本),没有 OpenAPI / JSON Schema / operation manifest 等机器可读契约;chunk 锚点使用「HTTP 方法 + 路径」与 Markdown 标题,不做行号级切块。"
14
+ },
15
+ "sources": [
16
+ {
17
+ "path": "~/.workbuddy/skills/weaver-e10-blog/SKILL.md",
18
+ "size": 16228,
19
+ "sha256": "4306f58b8099b63b338b0e56116e486a8e1dccf05eefaa014d3d79f9c5d8feb5",
20
+ "role": "existing-skill"
21
+ },
22
+ {
23
+ "path": "~/.workbuddy/skills/weaver-e10-blog/agents/openai.yaml",
24
+ "size": 3143,
25
+ "sha256": "f1cf09e6d46a7ea087da295080fce364e508da489f7e1b88cc67a387d8a50d10",
26
+ "role": "existing-skill"
27
+ },
28
+ {
29
+ "path": "~/.workbuddy/skills/weaver-e10-blog/references/blog-blog-query-blogs.md",
30
+ "size": 11415,
31
+ "sha256": "72ba5e259b2624ac2d9cf167aacd02ed036fd001c2b2afaadb1bdb70172ea2ed",
32
+ "role": "api-doc"
33
+ },
34
+ {
35
+ "path": "~/.workbuddy/skills/weaver-e10-blog/references/catalog.md",
36
+ "size": 10441,
37
+ "sha256": "f9d7cb1b72b00bac74483b35791973ad431d653f1f683a7640c85a38270a8899",
38
+ "role": "api-doc"
39
+ },
40
+ {
41
+ "path": "~/.workbuddy/skills/weaver-e10-blog/references/daily-report-blog-add-blog.md",
42
+ "size": 7102,
43
+ "sha256": "4b828c0195ac72eb1de1c75866ded7a1a18346b243534f3d05175bba845a8644",
44
+ "role": "api-doc"
45
+ },
46
+ {
47
+ "path": "~/.workbuddy/skills/weaver-e10-blog/references/daily-report-blog-comment-page.md",
48
+ "size": 3366,
49
+ "sha256": "4b5d70f090d7085ab3a082ee29408e851cb66488b1fcb1084aa85404b2a138ec",
50
+ "role": "api-doc"
51
+ },
52
+ {
53
+ "path": "~/.workbuddy/skills/weaver-e10-blog/references/daily-report-blog-create-comment.md",
54
+ "size": 2578,
55
+ "sha256": "04d7f9b679da5724e1fe15ff15edb28e3885e4273de2e385eccc2436836febfa",
56
+ "role": "api-doc"
57
+ },
58
+ {
59
+ "path": "~/.workbuddy/skills/weaver-e10-blog/references/daily-report-blog-details-by-date.md",
60
+ "size": 7161,
61
+ "sha256": "7519206069df8c1c64b9c72e5e1480cd152d7e7c245f9b7f63709e16963c413f",
62
+ "role": "api-doc"
63
+ },
64
+ {
65
+ "path": "~/.workbuddy/skills/weaver-e10-blog/references/daily-report-blog-get-default-permission.md",
66
+ "size": 4621,
67
+ "sha256": "aa73dc94a682f8dca2d46e6103edb5aa510279991fae48f2cd2cd8ae9bf20cfd",
68
+ "role": "api-doc"
69
+ },
70
+ {
71
+ "path": "~/.workbuddy/skills/weaver-e10-blog/references/daily-report-blog-send-urge.md",
72
+ "size": 3193,
73
+ "sha256": "343b56454d222f46fa9b0f6c04b80c9bb0fb848ff604fe4af3e2485b3811c79b",
74
+ "role": "api-doc"
75
+ },
76
+ {
77
+ "path": "~/.workbuddy/skills/weaver-e10-blog/references/daily-report-blog-update-blog.md",
78
+ "size": 3776,
79
+ "sha256": "76c3e1f441c2935ae9abffb15aafdb3709ef8db2927d514c439e3b8d070dfd0a",
80
+ "role": "api-doc"
81
+ },
82
+ {
83
+ "path": "~/.workbuddy/skills/weaver-e10-blog/references/daily-report-blog-upvote.md",
84
+ "size": 3643,
85
+ "sha256": "8a5b1dde7a07e0deacae145bc6e465126129671470bf7cac7f0a06e6bf382f7d",
86
+ "role": "api-doc"
87
+ },
88
+ {
89
+ "path": "~/.workbuddy/skills/weaver-e10-blog/references/eb-blog-add.md",
90
+ "size": 4276,
91
+ "sha256": "f1287bbcd5a39d88c08a54bacacc5815ac4d5787e2de9298b513186a773d011d",
92
+ "role": "api-doc"
93
+ },
94
+ {
95
+ "path": "~/.workbuddy/skills/weaver-e10-blog/references/eb-blog-edit.md",
96
+ "size": 3851,
97
+ "sha256": "4d11d7f165eba08e94ad5163c8cc3381c560c1f65b1b793ea949457638b1ff12",
98
+ "role": "api-doc"
99
+ },
100
+ {
101
+ "path": "~/.workbuddy/skills/weaver-e10-blog/references/eb-blog-form-fields.md",
102
+ "size": 6157,
103
+ "sha256": "8c5815749408422a228d7813bcc5591ef666b10bb98441b08e35cf6a20e04116",
104
+ "role": "api-doc"
105
+ },
106
+ {
107
+ "path": "~/.workbuddy/skills/weaver-e10-blog/references/eb-blog-gen-daily.md",
108
+ "size": 6165,
109
+ "sha256": "54d8b38ec388859f83e3d8f87721cb43b073c4651f5e6e434d9245fcf183e265",
110
+ "role": "api-doc"
111
+ },
112
+ {
113
+ "path": "~/.workbuddy/skills/weaver-e10-blog/references/eb-blog-remind.md",
114
+ "size": 4910,
115
+ "sha256": "455beedaf96c3b211e3a89bb648321f32e8ca9105834c31953c1850d50dacde6",
116
+ "role": "api-doc"
117
+ },
118
+ {
119
+ "path": "~/.workbuddy/skills/weaver-e10-blog/references/eb-blog-set-default-share.md",
120
+ "size": 3705,
121
+ "sha256": "c24c6ce3220efeab67caef07b42046e74c0776088f4667dc7d5f36dbd0c70294",
122
+ "role": "api-doc"
123
+ },
124
+ {
125
+ "path": "~/.workbuddy/skills/weaver-e10-blog/references/eb-blog-submit.md",
126
+ "size": 3688,
127
+ "sha256": "5dad2a629e6613bb581ad645114dd3d1a2a84cf441c07b70d0c38ad97f35ec98",
128
+ "role": "api-doc"
129
+ },
130
+ {
131
+ "path": "~/.workbuddy/skills/weaver-e10-blog/references/standard-blog-export.md",
132
+ "size": 2483,
133
+ "sha256": "7af340d872073d64e0601bf1cdd73c6d2eff3f4ed0be9f4d2799956e62bbf279",
134
+ "role": "api-doc"
135
+ },
136
+ {
137
+ "path": "~/.workbuddy/skills/weaver-e10-blog/references/workflow.md",
138
+ "size": 15913,
139
+ "sha256": "19ac168a7d31ad6e73e882ff08355dc7e936436e2b2d72eb08f084b9bfdcc09c",
140
+ "role": "api-doc"
141
+ },
142
+ {
143
+ "path": "~/.workbuddy/skills/weaver-e10-blog/scripts/add-eb-blog.mjs",
144
+ "size": 4389,
145
+ "sha256": "1ea49a14b8e6c349534f46f7b3443b157c7be35754a38f761fcb642afcd51715",
146
+ "role": "code"
147
+ },
148
+ {
149
+ "path": "~/.workbuddy/skills/weaver-e10-blog/scripts/comment-blog.mjs",
150
+ "size": 11050,
151
+ "sha256": "9f78fe0945027ad77e17947977b5d7935b53b596af1aec0d82788b9a3f1c0878",
152
+ "role": "code"
153
+ },
154
+ {
155
+ "path": "~/.workbuddy/skills/weaver-e10-blog/scripts/edit-blog.mjs",
156
+ "size": 10172,
157
+ "sha256": "59fe2296afd2c74749adb6f68462559c7d2ab5c7379c152dd9d0daef7719cb1c",
158
+ "role": "code"
159
+ },
160
+ {
161
+ "path": "~/.workbuddy/skills/weaver-e10-blog/scripts/edit-eb-blog.mjs",
162
+ "size": 4941,
163
+ "sha256": "57289f8a0c37d089e43eb7ac27e28830fb6d2e1cdc99b37362445575c2fd779a",
164
+ "role": "code"
165
+ },
166
+ {
167
+ "path": "~/.workbuddy/skills/weaver-e10-blog/scripts/export-blog.mjs",
168
+ "size": 4658,
169
+ "sha256": "4c837b949b5b7fae2f3d3df42759cfc7e8a6dd07266eb7ebb3e7f77f8a68ffea",
170
+ "role": "code"
171
+ },
172
+ {
173
+ "path": "~/.workbuddy/skills/weaver-e10-blog/scripts/gen-eb-blog-daily.mjs",
174
+ "size": 20419,
175
+ "sha256": "ddffddb2c700fd36161d4d0df69803bec3fe5a4ade52bc9f82d699a2bef94954",
176
+ "role": "code"
177
+ },
178
+ {
179
+ "path": "~/.workbuddy/skills/weaver-e10-blog/scripts/like-blog.mjs",
180
+ "size": 11374,
181
+ "sha256": "ce8ec51b26ed981b7e92a2b945ff2d36f1e89aa376e20f06178420647349185b",
182
+ "role": "code"
183
+ },
184
+ {
185
+ "path": "~/.workbuddy/skills/weaver-e10-blog/scripts/merge-blog-export.py",
186
+ "size": 5144,
187
+ "sha256": "9e28d81e78dbc4ff79a0abc76fbd6c38e0315ded017720dbec1b8a79657fd5f7",
188
+ "role": "code"
189
+ },
190
+ {
191
+ "path": "~/.workbuddy/skills/weaver-e10-blog/scripts/publish-blog.mjs",
192
+ "size": 5217,
193
+ "sha256": "18bbd6ee814c2ad08c117820ec51867cfe451aac8f3d34576ce39e740dc993b4",
194
+ "role": "code"
195
+ },
196
+ {
197
+ "path": "~/.workbuddy/skills/weaver-e10-blog/scripts/query-comments.mjs",
198
+ "size": 6652,
199
+ "sha256": "66425210d8b7deb6890f5d59ddea2d75159a04589ec1e88f04aeeee43c2c4c6e",
200
+ "role": "code"
201
+ },
202
+ {
203
+ "path": "~/.workbuddy/skills/weaver-e10-blog/scripts/query-day.mjs",
204
+ "size": 9634,
205
+ "sha256": "3c7773d907e53dbdc3e57cb3978d2ae8065103f1ab60e565f5ae27ba166d9edd",
206
+ "role": "code"
207
+ },
208
+ {
209
+ "path": "~/.workbuddy/skills/weaver-e10-blog/scripts/query-direct-eb-blog.mjs",
210
+ "size": 9391,
211
+ "sha256": "c37414ffc8589a253b3e357622746a2a539ed67a65986eebd2ca39ecf0c5f8e3",
212
+ "role": "code"
213
+ },
214
+ {
215
+ "path": "~/.workbuddy/skills/weaver-e10-blog/scripts/query-eb-blog-by-names.mjs",
216
+ "size": 6804,
217
+ "sha256": "b525a8a2a8a65cbea4c9b718ef511ad32708e586b52a7eca52eac876e8dae757",
218
+ "role": "code"
219
+ },
220
+ {
221
+ "path": "~/.workbuddy/skills/weaver-e10-blog/scripts/query-eb-blog-report.mjs",
222
+ "size": 10914,
223
+ "sha256": "8bc32739a51a1d93437704361cfc36dd3626807154bd48947e2257a323557208",
224
+ "role": "code"
225
+ },
226
+ {
227
+ "path": "~/.workbuddy/skills/weaver-e10-blog/scripts/query-weaver-e10-blog.mjs",
228
+ "size": 14066,
229
+ "sha256": "092461aaa6d89ba4aab30c667f83d4bcded41feb4c6b2f039b5a5f4c815a15f3",
230
+ "role": "code"
231
+ },
232
+ {
233
+ "path": "~/.workbuddy/skills/weaver-e10-blog/scripts/remind-blog.mjs",
234
+ "size": 12244,
235
+ "sha256": "39f03448fa5137e4c612bb6c0bbdae5c904183fe5e18360a8b2511aa273ce385",
236
+ "role": "code"
237
+ },
238
+ {
239
+ "path": "~/.workbuddy/skills/weaver-e10-blog/scripts/remind-eb-blog.mjs",
240
+ "size": 5812,
241
+ "sha256": "217e9dc1f6fc6c08f44985486523e9b1e1af968714c0f0ae028fd4c46679ac84",
242
+ "role": "code"
243
+ },
244
+ {
245
+ "path": "~/.workbuddy/skills/weaver-e10-blog/scripts/set-default-share.mjs",
246
+ "size": 3397,
247
+ "sha256": "60165a9280f67c4f7bb375989bee880b609e0be36e1b5db5913a285b0f081dcb",
248
+ "role": "code"
249
+ },
250
+ {
251
+ "path": "~/.workbuddy/skills/weaver-e10-blog/scripts/submit-eb-blog.mjs",
252
+ "size": 7365,
253
+ "sha256": "9c465bbd854088a8f3cf223183f4b2aa2757eaebb01ad52b2273ef8da39acffe",
254
+ "role": "code"
255
+ },
256
+ {
257
+ "path": "~/.workbuddy/skills/weaver-e10-blog/scripts/test-blog-apis.mjs",
258
+ "size": 9263,
259
+ "sha256": "74a5333fe6cc08dc69ed615b337209ee807bb2c7dacf84177dc161370b600f38",
260
+ "role": "code"
261
+ }
262
+ ],
263
+ "sourceChunks": [
264
+ {
265
+ "id": "POST /api/blog/query/blogs",
266
+ "source": "references/blog-blog-query-blogs.md",
267
+ "operations": [
268
+ "blog.query"
269
+ ],
270
+ "fields": [
271
+ "blogType",
272
+ "keywords",
273
+ "pageNo",
274
+ "pageSize",
275
+ "filter.userType",
276
+ "filter.startDate",
277
+ "filter.endDate",
278
+ "filter.timezoneOffset",
279
+ "filter.userIds",
280
+ "filter.empIds"
281
+ ],
282
+ "notes": "实测:filter.userIds/empIds/userId/creator 被服务端忽略(恒定返回登录人);startDate/endDate 不生效;pageNo 被忽略,pageSize 上限 300"
283
+ },
284
+ {
285
+ "id": "GET /api/blog/prior/detailsByDate",
286
+ "source": "references/daily-report-blog-details-by-date.md",
287
+ "operations": [
288
+ "blog.query_user",
289
+ "blog.publish.prepare",
290
+ "blog.publish.apply",
291
+ "blog.edit.prepare",
292
+ "blog.edit.apply",
293
+ "blog.comment.prepare",
294
+ "blog.like.prepare"
295
+ ],
296
+ "fields": [
297
+ "date",
298
+ "userId"
299
+ ],
300
+ "notes": "响应无 found 字段;无日报时返回空壳 blog 对象,判定必须看 blog.id"
301
+ },
302
+ {
303
+ "id": "POST /api/hrm/common/browser/count/resource",
304
+ "source": "references/daily-report-blog-details-by-date.md",
305
+ "operations": [
306
+ "blog.resolve_users",
307
+ "blog.query_user",
308
+ "blog.remind.prepare"
309
+ ],
310
+ "fields": [
311
+ "formDatas.username",
312
+ "status",
313
+ "subcompany",
314
+ "department",
315
+ "role",
316
+ "position",
317
+ "superior",
318
+ "cmd",
319
+ "type",
320
+ "containsNoneAccount",
321
+ "containsPartTimeEmployee"
322
+ ],
323
+ "notes": "11 字段必填模板;结果行取 id(不是 userid)作为 E10 业务 userId;先查 count 再查 data"
324
+ },
325
+ {
326
+ "id": "POST /api/hrm/common/browser/data/resource",
327
+ "source": "references/daily-report-blog-details-by-date.md",
328
+ "operations": [
329
+ "blog.resolve_users",
330
+ "blog.query_user",
331
+ "blog.remind.prepare"
332
+ ],
333
+ "fields": [
334
+ "id",
335
+ "name",
336
+ "department"
337
+ ],
338
+ "notes": "行数据在 data.data[];id 为业务 userId"
339
+ },
340
+ {
341
+ "id": "POST /api/blog/prior/addBlog",
342
+ "source": "references/daily-report-blog-add-blog.md",
343
+ "operations": [
344
+ "blog.publish.apply"
345
+ ],
346
+ "fields": [
347
+ "blog.blogTime",
348
+ "blog.content",
349
+ "blog.permissionList",
350
+ "blog.isTm",
351
+ "blog.isDbCheck",
352
+ "blog.formData",
353
+ "blog.attachmentIds",
354
+ "blog.atLinkList",
355
+ "blog.deleteTargetType",
356
+ "blog.client",
357
+ "timezoneOffset"
358
+ ],
359
+ "notes": "服务端不限制同日重复提交,发布前必须查重;发布后需另行设置默认共享"
360
+ },
361
+ {
362
+ "id": "POST /api/blog/prior/updateBlog",
363
+ "source": "references/daily-report-blog-update-blog.md",
364
+ "operations": [
365
+ "blog.edit.apply"
366
+ ],
367
+ "fields": [
368
+ "blog.id",
369
+ "blog.content",
370
+ "blog.attachmentIds",
371
+ "blog.atLinkList",
372
+ "blog.isTm",
373
+ "blog.isDbCheck",
374
+ "blog.client",
375
+ "timezoneOffset"
376
+ ],
377
+ "notes": "按 blog.id 覆盖内容;返回后需回查内容一致性"
378
+ },
379
+ {
380
+ "id": "POST /api/blog/common/comment/createComment",
381
+ "source": "references/daily-report-blog-create-comment.md",
382
+ "operations": [
383
+ "blog.comment.apply"
384
+ ],
385
+ "fields": [
386
+ "comment.targetId",
387
+ "comment.content",
388
+ "comment.originContent",
389
+ "comment.imAtContent",
390
+ "comment.module",
391
+ "comment.disableMessage",
392
+ "comment.relevanceList",
393
+ "comment.atLinkList",
394
+ "attachments",
395
+ "attachmentsList",
396
+ "client"
397
+ ],
398
+ "notes": "无幂等保证;写后需从 commentPage 回查该评论"
399
+ },
400
+ {
401
+ "id": "POST /api/blog/common/comment/commentPage",
402
+ "source": "references/daily-report-blog-comment-page.md",
403
+ "operations": [
404
+ "blog.comments",
405
+ "blog.comment.apply"
406
+ ],
407
+ "fields": [
408
+ "pageNo",
409
+ "pageSize",
410
+ "targetId",
411
+ "module",
412
+ "foldCommentList"
413
+ ],
414
+ "notes": "POST 方法(GET 返回 405);评论数组在 data.page.result[]"
415
+ },
416
+ {
417
+ "id": "POST /api/blog/common/upvoteComponent/vote",
418
+ "source": "references/daily-report-blog-upvote.md",
419
+ "operations": [
420
+ "blog.like.apply"
421
+ ],
422
+ "fields": [
423
+ "componentId",
424
+ "upvote"
425
+ ],
426
+ "notes": "返回 {code:200, fail:false, data:'点赞成功!'};无只读回查接口"
427
+ },
428
+ {
429
+ "id": "POST /api/blog/common/upvoteComponent/cancelVote",
430
+ "source": "references/daily-report-blog-upvote.md",
431
+ "operations": [
432
+ "blog.like.apply"
433
+ ],
434
+ "fields": [
435
+ "componentId",
436
+ "upvote"
437
+ ],
438
+ "notes": "取消点赞与点赞共用同一请求形状,仅路径不同"
439
+ },
440
+ {
441
+ "id": "POST /api/blog/message/sendUrge",
442
+ "source": "references/daily-report-blog-send-urge.md",
443
+ "operations": [
444
+ "blog.remind.prepare",
445
+ "blog.remind.apply"
446
+ ],
447
+ "fields": [
448
+ "content",
449
+ "definiteType",
450
+ "ids",
451
+ "targetId",
452
+ "type",
453
+ "year",
454
+ "checkStr"
455
+ ],
456
+ "notes": "ids 为单个 userId,多人必须逐个 POST;业务码非 0 即失败"
457
+ },
458
+ {
459
+ "id": "GET /api/blog/share/getDefaultPermission",
460
+ "source": "references/daily-report-blog-get-default-permission.md",
461
+ "operations": [
462
+ "blog.default_permission",
463
+ "blog.publish.prepare"
464
+ ],
465
+ "fields": [
466
+ "blogTime"
467
+ ],
468
+ "notes": "data.list 直接作为 addBlog 的 permissionList"
469
+ },
470
+ {
471
+ "id": "POST /api/blog/report/exportAllBlog",
472
+ "source": "references/standard-blog-export.md",
473
+ "operations": [
474
+ "blog.export"
475
+ ],
476
+ "fields": [
477
+ "startDate",
478
+ "endDate",
479
+ "blogType",
480
+ "searchType",
481
+ "disableType",
482
+ "pageNo",
483
+ "pageSize",
484
+ "isNeedConvert"
485
+ ],
486
+ "notes": "响应为 xlsx 文件流(PK 魔数);出错时返回 JSON 错误体"
487
+ },
488
+ {
489
+ "id": "workflow.md 意图判定与作业步骤链",
490
+ "source": "references/workflow.md",
491
+ "operations": [
492
+ "blog.query",
493
+ "blog.query_user",
494
+ "blog.publish.prepare",
495
+ "blog.edit.prepare",
496
+ "blog.comment.prepare",
497
+ "blog.like.prepare",
498
+ "blog.remind.prepare"
499
+ ],
500
+ "fields": [],
501
+ "notes": "补交口径、催交顺序、写操作前后查证规则迁移为 CLI 固定行为与 Skill 处理链"
502
+ },
503
+ {
504
+ "id": "eb-* 接口族(ebuilder getFormDataList + secondev addBlog/editBlog + ESB 提醒)",
505
+ "source": "references/eb-blog-add.md",
506
+ "operations": [],
507
+ "fields": [],
508
+ "notes": "当前租户未启用 EB 日报应用,整体 withheld"
509
+ }
510
+ ],
511
+ "sourceCoverage": [
512
+ {
513
+ "path": "~/.workbuddy/skills/weaver-e10-blog/SKILL.md",
514
+ "role": "existing-skill",
515
+ "status": "converted",
516
+ "operations": [
517
+ "blog.query",
518
+ "blog.query_user",
519
+ "blog.resolve_users",
520
+ "blog.comments",
521
+ "blog.default_permission",
522
+ "blog.export",
523
+ "blog.publish.prepare",
524
+ "blog.publish.apply",
525
+ "blog.edit.prepare",
526
+ "blog.edit.apply",
527
+ "blog.comment.prepare",
528
+ "blog.comment.apply",
529
+ "blog.like.prepare",
530
+ "blog.like.apply",
531
+ "blog.remind.prepare",
532
+ "blog.remind.apply"
533
+ ],
534
+ "reason": "能力表与路由规则迁移为 manifest operation 与 Skill 路由"
535
+ },
536
+ {
537
+ "path": "~/.workbuddy/skills/weaver-e10-blog/agents/openai.yaml",
538
+ "role": "existing-skill",
539
+ "status": "not-applicable",
540
+ "operations": [],
541
+ "reason": "Agent 平台元数据,不进 CLI 合约"
542
+ },
543
+ {
544
+ "path": "~/.workbuddy/skills/weaver-e10-blog/references/blog-blog-query-blogs.md",
545
+ "role": "api-doc",
546
+ "status": "converted",
547
+ "operations": [
548
+ "blog.query"
549
+ ],
550
+ "reason": "群体查询入参与实测结论"
551
+ },
552
+ {
553
+ "path": "~/.workbuddy/skills/weaver-e10-blog/references/catalog.md",
554
+ "role": "api-doc",
555
+ "status": "not-applicable",
556
+ "operations": [],
557
+ "reason": "reference 索引文件,内容由各 reference 与 manifest 覆盖"
558
+ },
559
+ {
560
+ "path": "~/.workbuddy/skills/weaver-e10-blog/references/daily-report-blog-add-blog.md",
561
+ "role": "api-doc",
562
+ "status": "converted",
563
+ "operations": [
564
+ "blog.publish.apply"
565
+ ],
566
+ "reason": "发布请求体"
567
+ },
568
+ {
569
+ "path": "~/.workbuddy/skills/weaver-e10-blog/references/daily-report-blog-comment-page.md",
570
+ "role": "api-doc",
571
+ "status": "converted",
572
+ "operations": [
573
+ "blog.comments",
574
+ "blog.comment.apply"
575
+ ],
576
+ "reason": "评论列表查询与写后回查"
577
+ },
578
+ {
579
+ "path": "~/.workbuddy/skills/weaver-e10-blog/references/daily-report-blog-create-comment.md",
580
+ "role": "api-doc",
581
+ "status": "converted",
582
+ "operations": [
583
+ "blog.comment.apply"
584
+ ],
585
+ "reason": "评论请求体"
586
+ },
587
+ {
588
+ "path": "~/.workbuddy/skills/weaver-e10-blog/references/daily-report-blog-details-by-date.md",
589
+ "role": "api-doc",
590
+ "status": "converted",
591
+ "operations": [
592
+ "blog.query_user",
593
+ "blog.publish.prepare",
594
+ "blog.edit.prepare",
595
+ "blog.comment.prepare",
596
+ "blog.like.prepare"
597
+ ],
598
+ "reason": "单人单日查询 + 目标定位"
599
+ },
600
+ {
601
+ "path": "~/.workbuddy/skills/weaver-e10-blog/references/daily-report-blog-get-default-permission.md",
602
+ "role": "api-doc",
603
+ "status": "converted",
604
+ "operations": [
605
+ "blog.default_permission",
606
+ "blog.publish.prepare"
607
+ ],
608
+ "reason": "默认共享回填"
609
+ },
610
+ {
611
+ "path": "~/.workbuddy/skills/weaver-e10-blog/references/daily-report-blog-send-urge.md",
612
+ "role": "api-doc",
613
+ "status": "converted",
614
+ "operations": [
615
+ "blog.remind.prepare",
616
+ "blog.remind.apply"
617
+ ],
618
+ "reason": "催交提醒请求体"
619
+ },
620
+ {
621
+ "path": "~/.workbuddy/skills/weaver-e10-blog/references/daily-report-blog-update-blog.md",
622
+ "role": "api-doc",
623
+ "status": "converted",
624
+ "operations": [
625
+ "blog.edit.apply"
626
+ ],
627
+ "reason": "编辑请求体"
628
+ },
629
+ {
630
+ "path": "~/.workbuddy/skills/weaver-e10-blog/references/daily-report-blog-upvote.md",
631
+ "role": "api-doc",
632
+ "status": "converted",
633
+ "operations": [
634
+ "blog.like.prepare",
635
+ "blog.like.apply"
636
+ ],
637
+ "reason": "点赞与取消点赞"
638
+ },
639
+ {
640
+ "path": "~/.workbuddy/skills/weaver-e10-blog/references/eb-blog-add.md",
641
+ "role": "api-doc",
642
+ "status": "withheld",
643
+ "operations": [],
644
+ "reason": "EB 日报应用未启用"
645
+ },
646
+ {
647
+ "path": "~/.workbuddy/skills/weaver-e10-blog/references/eb-blog-edit.md",
648
+ "role": "api-doc",
649
+ "status": "withheld",
650
+ "operations": [],
651
+ "reason": "EB 日报应用未启用"
652
+ },
653
+ {
654
+ "path": "~/.workbuddy/skills/weaver-e10-blog/references/eb-blog-form-fields.md",
655
+ "role": "api-doc",
656
+ "status": "withheld",
657
+ "operations": [],
658
+ "reason": "EB 日报应用未启用"
659
+ },
660
+ {
661
+ "path": "~/.workbuddy/skills/weaver-e10-blog/references/eb-blog-gen-daily.md",
662
+ "role": "api-doc",
663
+ "status": "withheld",
664
+ "operations": [],
665
+ "reason": "EB 日报应用未启用"
666
+ },
667
+ {
668
+ "path": "~/.workbuddy/skills/weaver-e10-blog/references/eb-blog-remind.md",
669
+ "role": "api-doc",
670
+ "status": "withheld",
671
+ "operations": [],
672
+ "reason": "EB 日报应用未启用"
673
+ },
674
+ {
675
+ "path": "~/.workbuddy/skills/weaver-e10-blog/references/eb-blog-set-default-share.md",
676
+ "role": "api-doc",
677
+ "status": "withheld",
678
+ "operations": [],
679
+ "reason": "EB 日报应用未启用"
680
+ },
681
+ {
682
+ "path": "~/.workbuddy/skills/weaver-e10-blog/references/eb-blog-submit.md",
683
+ "role": "api-doc",
684
+ "status": "withheld",
685
+ "operations": [],
686
+ "reason": "EB 日报应用未启用"
687
+ },
688
+ {
689
+ "path": "~/.workbuddy/skills/weaver-e10-blog/references/standard-blog-export.md",
690
+ "role": "api-doc",
691
+ "status": "converted",
692
+ "operations": [
693
+ "blog.export"
694
+ ],
695
+ "reason": "导出请求体与文件流"
696
+ },
697
+ {
698
+ "path": "~/.workbuddy/skills/weaver-e10-blog/references/workflow.md",
699
+ "role": "api-doc",
700
+ "status": "converted",
701
+ "operations": [
702
+ "blog.query",
703
+ "blog.query_user",
704
+ "blog.publish.prepare",
705
+ "blog.edit.prepare",
706
+ "blog.comment.prepare",
707
+ "blog.like.prepare",
708
+ "blog.remind.prepare"
709
+ ],
710
+ "reason": "补交口径、催交顺序与写前查证规则"
711
+ },
712
+ {
713
+ "path": "~/.workbuddy/skills/weaver-e10-blog/scripts/add-eb-blog.mjs",
714
+ "role": "code",
715
+ "status": "withheld",
716
+ "operations": [],
717
+ "reason": "EB 日报应用未启用"
718
+ },
719
+ {
720
+ "path": "~/.workbuddy/skills/weaver-e10-blog/scripts/comment-blog.mjs",
721
+ "role": "code",
722
+ "status": "converted",
723
+ "operations": [
724
+ "blog.comment.prepare",
725
+ "blog.comment.apply"
726
+ ],
727
+ "reason": "定位方式迁移为 inputExamples"
728
+ },
729
+ {
730
+ "path": "~/.workbuddy/skills/weaver-e10-blog/scripts/edit-blog.mjs",
731
+ "role": "code",
732
+ "status": "converted",
733
+ "operations": [
734
+ "blog.edit.prepare",
735
+ "blog.edit.apply"
736
+ ],
737
+ "reason": "blogTime + content 用法迁移为 inputExamples"
738
+ },
739
+ {
740
+ "path": "~/.workbuddy/skills/weaver-e10-blog/scripts/edit-eb-blog.mjs",
741
+ "role": "code",
742
+ "status": "withheld",
743
+ "operations": [],
744
+ "reason": "EB 日报应用未启用"
745
+ },
746
+ {
747
+ "path": "~/.workbuddy/skills/weaver-e10-blog/scripts/export-blog.mjs",
748
+ "role": "code",
749
+ "status": "converted",
750
+ "operations": [
751
+ "blog.export"
752
+ ],
753
+ "reason": "--out 用法迁移为 inputExamples"
754
+ },
755
+ {
756
+ "path": "~/.workbuddy/skills/weaver-e10-blog/scripts/gen-eb-blog-daily.mjs",
757
+ "role": "code",
758
+ "status": "withheld",
759
+ "operations": [],
760
+ "reason": "EB 日报应用未启用"
761
+ },
762
+ {
763
+ "path": "~/.workbuddy/skills/weaver-e10-blog/scripts/like-blog.mjs",
764
+ "role": "code",
765
+ "status": "converted",
766
+ "operations": [
767
+ "blog.like.prepare",
768
+ "blog.like.apply"
769
+ ],
770
+ "reason": "vote / cancelVote 双路径迁移"
771
+ },
772
+ {
773
+ "path": "~/.workbuddy/skills/weaver-e10-blog/scripts/merge-blog-export.py",
774
+ "role": "code",
775
+ "status": "not-applicable",
776
+ "operations": [],
777
+ "reason": "本地 xlsx 合并辅助脚本,不属于 CLI 能力边界"
778
+ },
779
+ {
780
+ "path": "~/.workbuddy/skills/weaver-e10-blog/scripts/publish-blog.mjs",
781
+ "role": "code",
782
+ "status": "converted",
783
+ "operations": [
784
+ "blog.publish.prepare",
785
+ "blog.publish.apply"
786
+ ],
787
+ "reason": "--share 用法迁移为 inputExamples"
788
+ },
789
+ {
790
+ "path": "~/.workbuddy/skills/weaver-e10-blog/scripts/query-comments.mjs",
791
+ "role": "code",
792
+ "status": "converted",
793
+ "operations": [
794
+ "blog.comments"
795
+ ],
796
+ "reason": "--blogId 用法迁移为 inputExamples"
797
+ },
798
+ {
799
+ "path": "~/.workbuddy/skills/weaver-e10-blog/scripts/query-day.mjs",
800
+ "role": "code",
801
+ "status": "converted",
802
+ "operations": [
803
+ "blog.query_user"
804
+ ],
805
+ "reason": "--name / --userId 用法迁移为 inputExamples"
806
+ },
807
+ {
808
+ "path": "~/.workbuddy/skills/weaver-e10-blog/scripts/query-direct-eb-blog.mjs",
809
+ "role": "code",
810
+ "status": "withheld",
811
+ "operations": [],
812
+ "reason": "EB 日报应用未启用"
813
+ },
814
+ {
815
+ "path": "~/.workbuddy/skills/weaver-e10-blog/scripts/query-eb-blog-by-names.mjs",
816
+ "role": "code",
817
+ "status": "withheld",
818
+ "operations": [],
819
+ "reason": "EB 日报应用未启用"
820
+ },
821
+ {
822
+ "path": "~/.workbuddy/skills/weaver-e10-blog/scripts/query-eb-blog-report.mjs",
823
+ "role": "code",
824
+ "status": "withheld",
825
+ "operations": [],
826
+ "reason": "EB 日报应用未启用"
827
+ },
828
+ {
829
+ "path": "~/.workbuddy/skills/weaver-e10-blog/scripts/query-weaver-e10-blog.mjs",
830
+ "role": "code",
831
+ "status": "converted",
832
+ "operations": [
833
+ "blog.query",
834
+ "blog.resolve_users"
835
+ ],
836
+ "reason": "userType 用法与 HRM 解析段迁移为 inputExamples"
837
+ },
838
+ {
839
+ "path": "~/.workbuddy/skills/weaver-e10-blog/scripts/remind-blog.mjs",
840
+ "role": "code",
841
+ "status": "converted",
842
+ "operations": [
843
+ "blog.remind.prepare",
844
+ "blog.remind.apply"
845
+ ],
846
+ "reason": "--userId/--name/--content/--year 迁移为 inputExamples"
847
+ },
848
+ {
849
+ "path": "~/.workbuddy/skills/weaver-e10-blog/scripts/remind-eb-blog.mjs",
850
+ "role": "code",
851
+ "status": "withheld",
852
+ "operations": [],
853
+ "reason": "EB 日报应用未启用"
854
+ },
855
+ {
856
+ "path": "~/.workbuddy/skills/weaver-e10-blog/scripts/set-default-share.mjs",
857
+ "role": "code",
858
+ "status": "withheld",
859
+ "operations": [],
860
+ "reason": "EB 日报应用专属默认共享接口"
861
+ },
862
+ {
863
+ "path": "~/.workbuddy/skills/weaver-e10-blog/scripts/submit-eb-blog.mjs",
864
+ "role": "code",
865
+ "status": "converted",
866
+ "operations": [],
867
+ "reason": "已迁移为 CLI operation / Skill reference"
868
+ },
869
+ {
870
+ "path": "~/.workbuddy/skills/weaver-e10-blog/scripts/test-blog-apis.mjs",
871
+ "role": "code",
872
+ "status": "not-applicable",
873
+ "operations": [],
874
+ "reason": "接口自测脚本,非业务能力"
875
+ }
876
+ ],
877
+ "operationImpact": [
878
+ {
879
+ "operation": "blog.query",
880
+ "sourceChunks": [
881
+ "POST /api/blog/query/blogs"
882
+ ],
883
+ "parameterCoverage": [
884
+ {
885
+ "parameter": "filter.userType",
886
+ "source": "POST /api/blog/query/blogs",
887
+ "inputSchema": "user_type",
888
+ "status": "converted",
889
+ "facts": "枚举 directSubordinate | indirectSubordinate | allSubordinate | myFollow,必填"
890
+ },
891
+ {
892
+ "parameter": "filter.startDate",
893
+ "source": "POST /api/blog/query/blogs",
894
+ "inputSchema": "start_date",
895
+ "status": "converted",
896
+ "facts": "必填 YYYY-MM-DD;服务端不过滤,窗口裁剪在客户端"
897
+ },
898
+ {
899
+ "parameter": "filter.endDate",
900
+ "source": "POST /api/blog/query/blogs",
901
+ "inputSchema": "end_date",
902
+ "status": "converted",
903
+ "facts": "必填 YYYY-MM-DD;含当日"
904
+ },
905
+ {
906
+ "parameter": "keywords",
907
+ "source": "POST /api/blog/query/blogs",
908
+ "inputSchema": "keywords",
909
+ "status": "converted",
910
+ "facts": "可选,缺省空串"
911
+ },
912
+ {
913
+ "parameter": "pageSize",
914
+ "source": "POST /api/blog/query/blogs",
915
+ "inputSchema": "page_size",
916
+ "status": "converted",
917
+ "facts": "实测上限 300,默认 300"
918
+ },
919
+ {
920
+ "parameter": "pageNo",
921
+ "source": "POST /api/blog/query/blogs",
922
+ "inputSchema": "page_no",
923
+ "status": "converted",
924
+ "facts": "透传;服务端忽略,调大不会拿到更多数据"
925
+ },
926
+ {
927
+ "parameter": "blogType",
928
+ "source": "POST /api/blog/query/blogs",
929
+ "inputSchema": null,
930
+ "status": "fixed",
931
+ "facts": "源接口要求但由 CLI 固定,不暴露给 Agent:'order'"
932
+ },
933
+ {
934
+ "parameter": "filter.timezoneOffset",
935
+ "source": "POST /api/blog/query/blogs",
936
+ "inputSchema": null,
937
+ "status": "fixed",
938
+ "facts": "源接口要求但由 CLI 固定,不暴露给 Agent:-8"
939
+ },
940
+ {
941
+ "parameter": "filter.userIds / empIds / userId / creator",
942
+ "source": "POST /api/blog/query/blogs",
943
+ "inputSchema": null,
944
+ "status": "withheld",
945
+ "facts": "服务端静默忽略该过滤,恒定返回当前登录人;按人查询改走 blog.query_user"
946
+ }
947
+ ]
948
+ },
949
+ {
950
+ "operation": "blog.query_user",
951
+ "sourceChunks": [
952
+ "GET /api/blog/prior/detailsByDate",
953
+ "POST /api/hrm/common/browser/count/resource",
954
+ "POST /api/hrm/common/browser/data/resource"
955
+ ],
956
+ "parameterCoverage": [
957
+ {
958
+ "parameter": "date",
959
+ "source": "GET /api/blog/prior/detailsByDate",
960
+ "inputSchema": "date",
961
+ "status": "converted",
962
+ "facts": "必填,逐日起点"
963
+ },
964
+ {
965
+ "parameter": "userId",
966
+ "source": "GET /api/blog/prior/detailsByDate",
967
+ "inputSchema": "user_id",
968
+ "status": "converted",
969
+ "facts": "与 name 二选一"
970
+ },
971
+ {
972
+ "parameter": "formDatas.username",
973
+ "source": "POST /api/hrm/common/browser/data/resource",
974
+ "inputSchema": "name",
975
+ "status": "derived",
976
+ "facts": "由 CLI 内部查询、解析或 continuation 绑定得到:姓名经 HRM 精确解析"
977
+ },
978
+ {
979
+ "parameter": "name",
980
+ "source": "POST /api/hrm/common/browser/data/resource",
981
+ "inputSchema": "name",
982
+ "status": "converted",
983
+ "facts": "同名多命中报 name_ambiguous 并列出候选"
984
+ },
985
+ {
986
+ "parameter": "endDate(区间)",
987
+ "source": "GET /api/blog/prior/detailsByDate",
988
+ "inputSchema": "end_date",
989
+ "status": "derived",
990
+ "facts": "由 CLI 内部查询、解析或 continuation 绑定得到:区间展开为逐日调用,上限 62 天"
991
+ }
992
+ ]
993
+ },
994
+ {
995
+ "operation": "blog.resolve_users",
996
+ "sourceChunks": [
997
+ "POST /api/hrm/common/browser/count/resource",
998
+ "POST /api/hrm/common/browser/data/resource"
999
+ ],
1000
+ "parameterCoverage": [
1001
+ {
1002
+ "parameter": "formDatas.username",
1003
+ "source": "POST /api/hrm/common/browser/data/resource",
1004
+ "inputSchema": "name",
1005
+ "status": "converted",
1006
+ "facts": "usernameOpt=eq 精确匹配"
1007
+ },
1008
+ {
1009
+ "parameter": "cmd / type / containsNoneAccount / containsPartTimeEmployee / quickSearchDatas 等 11 字段",
1010
+ "source": "POST /api/hrm/common/browser/data/resource",
1011
+ "inputSchema": null,
1012
+ "status": "fixed",
1013
+ "facts": "源接口要求但由 CLI 固定,不暴露给 Agent:实测必填模板,缺字段返回 0 行"
1014
+ },
1015
+ {
1016
+ "parameter": "rows[].id",
1017
+ "source": "POST /api/hrm/common/browser/data/resource",
1018
+ "inputSchema": null,
1019
+ "status": "derived",
1020
+ "facts": "由 CLI 内部查询、解析或 continuation 绑定得到:作为 user_id 输出(不是 userid)"
1021
+ }
1022
+ ]
1023
+ },
1024
+ {
1025
+ "operation": "blog.comments",
1026
+ "sourceChunks": [
1027
+ "POST /api/blog/common/comment/commentPage"
1028
+ ],
1029
+ "parameterCoverage": [
1030
+ {
1031
+ "parameter": "targetId",
1032
+ "source": "POST /api/blog/common/comment/commentPage",
1033
+ "inputSchema": "blog_id",
1034
+ "status": "converted",
1035
+ "facts": "必填正整数文本"
1036
+ },
1037
+ {
1038
+ "parameter": "pageNo",
1039
+ "source": "POST /api/blog/common/comment/commentPage",
1040
+ "inputSchema": "page_no",
1041
+ "status": "converted",
1042
+ "facts": "默认 1"
1043
+ },
1044
+ {
1045
+ "parameter": "pageSize",
1046
+ "source": "POST /api/blog/common/comment/commentPage",
1047
+ "inputSchema": "page_size",
1048
+ "status": "converted",
1049
+ "facts": "默认 20,上限 100"
1050
+ },
1051
+ {
1052
+ "parameter": "module / foldCommentList",
1053
+ "source": "POST /api/blog/common/comment/commentPage",
1054
+ "inputSchema": null,
1055
+ "status": "fixed",
1056
+ "facts": "源接口要求但由 CLI 固定,不暴露给 Agent:'blog' / false"
1057
+ }
1058
+ ]
1059
+ },
1060
+ {
1061
+ "operation": "blog.default_permission",
1062
+ "sourceChunks": [
1063
+ "GET /api/blog/share/getDefaultPermission"
1064
+ ],
1065
+ "parameterCoverage": [
1066
+ {
1067
+ "parameter": "blogTime",
1068
+ "source": "GET /api/blog/share/getDefaultPermission",
1069
+ "inputSchema": "date",
1070
+ "status": "converted",
1071
+ "facts": "必填 YYYY-MM-DD"
1072
+ }
1073
+ ]
1074
+ },
1075
+ {
1076
+ "operation": "blog.export",
1077
+ "sourceChunks": [
1078
+ "POST /api/blog/report/exportAllBlog"
1079
+ ],
1080
+ "parameterCoverage": [
1081
+ {
1082
+ "parameter": "startDate",
1083
+ "source": "POST /api/blog/report/exportAllBlog",
1084
+ "inputSchema": "start_date",
1085
+ "status": "converted",
1086
+ "facts": "必填"
1087
+ },
1088
+ {
1089
+ "parameter": "endDate",
1090
+ "source": "POST /api/blog/report/exportAllBlog",
1091
+ "inputSchema": "end_date",
1092
+ "status": "converted",
1093
+ "facts": "必填"
1094
+ },
1095
+ {
1096
+ "parameter": "pageSize",
1097
+ "source": "POST /api/blog/report/exportAllBlog",
1098
+ "inputSchema": "page_size",
1099
+ "status": "converted",
1100
+ "facts": "默认 200,上限 500"
1101
+ },
1102
+ {
1103
+ "parameter": "blogType / searchType / disableType / isNeedConvert / pageNo",
1104
+ "source": "POST /api/blog/report/exportAllBlog",
1105
+ "inputSchema": null,
1106
+ "status": "fixed",
1107
+ "facts": "源接口要求但由 CLI 固定,不暴露给 Agent:'all' / 'all' / 'all' / false / 1"
1108
+ },
1109
+ {
1110
+ "parameter": "输出文件路径",
1111
+ "source": "scripts/export-blog.mjs --out",
1112
+ "inputSchema": "output",
1113
+ "status": "derived",
1114
+ "facts": "由 CLI 内部查询、解析或 continuation 绑定得到:本地落点,父目录必须存在且拒绝覆盖"
1115
+ },
1116
+ {
1117
+ "parameter": "本地 xlsx 合并",
1118
+ "source": "scripts/merge-blog-export.py",
1119
+ "inputSchema": null,
1120
+ "status": "not-applicable",
1121
+ "facts": "多文件合并属本地后处理,不在 CLI 能力边界"
1122
+ }
1123
+ ]
1124
+ },
1125
+ {
1126
+ "operation": "blog.publish.prepare",
1127
+ "sourceChunks": [
1128
+ "POST /api/blog/prior/addBlog",
1129
+ "GET /api/blog/share/getDefaultPermission",
1130
+ "GET /api/blog/prior/detailsByDate"
1131
+ ],
1132
+ "parameterCoverage": [
1133
+ {
1134
+ "parameter": "blog.blogTime",
1135
+ "source": "POST /api/blog/prior/addBlog",
1136
+ "inputSchema": "date",
1137
+ "status": "converted",
1138
+ "facts": "必填 YYYY-MM-DD"
1139
+ },
1140
+ {
1141
+ "parameter": "blog.content",
1142
+ "source": "POST /api/blog/prior/addBlog",
1143
+ "inputSchema": "content",
1144
+ "status": "converted",
1145
+ "facts": "纯文本自动包裹 <p>,HTML 原样保留"
1146
+ },
1147
+ {
1148
+ "parameter": "blog.permissionList",
1149
+ "source": "GET /api/blog/share/getDefaultPermission",
1150
+ "inputSchema": null,
1151
+ "status": "derived",
1152
+ "facts": "由 CLI 内部查询、解析或 continuation 绑定得到:按 date 查默认共享回填;share_default=false 时为空"
1153
+ },
1154
+ {
1155
+ "parameter": "同日查重",
1156
+ "source": "POST /api/blog/prior/addBlog",
1157
+ "inputSchema": null,
1158
+ "status": "derived",
1159
+ "facts": "由 CLI 内部查询、解析或 continuation 绑定得到:服务端不限制重复提交,prepare 先查当天是否已有日报"
1160
+ },
1161
+ {
1162
+ "parameter": "isTm / isDbCheck / formData / attachmentIds / atLinkList / deleteTargetType / client / timezoneOffset",
1163
+ "source": "POST /api/blog/prior/addBlog",
1164
+ "inputSchema": null,
1165
+ "status": "fixed",
1166
+ "facts": "源接口要求但由 CLI 固定,不暴露给 Agent"
1167
+ }
1168
+ ]
1169
+ },
1170
+ {
1171
+ "operation": "blog.publish.apply",
1172
+ "sourceChunks": [
1173
+ "POST /api/blog/prior/addBlog"
1174
+ ],
1175
+ "parameterCoverage": [
1176
+ {
1177
+ "parameter": "确认凭据",
1178
+ "source": "scripts/publish-blog.mjs(无 continuation 概念)",
1179
+ "inputSchema": "continuation",
1180
+ "status": "converted",
1181
+ "facts": "CLI 新增:prepare 签发、apply 校验,10 分钟有效"
1182
+ },
1183
+ {
1184
+ "parameter": "显式确认",
1185
+ "source": "scripts/publish-blog.mjs(直接执行)",
1186
+ "inputSchema": "confirm",
1187
+ "status": "converted",
1188
+ "facts": "CLI 新增:必须 confirm=true 才落库"
1189
+ },
1190
+ {
1191
+ "parameter": "写前查重与写后回查",
1192
+ "source": "POST /api/blog/prior/detailsByDate",
1193
+ "inputSchema": null,
1194
+ "status": "derived",
1195
+ "facts": "由 CLI 内部查询、解析或 continuation 绑定得到:apply 再次查重并回查 blog_id 与补交状态"
1196
+ }
1197
+ ]
1198
+ },
1199
+ {
1200
+ "operation": "blog.edit.prepare",
1201
+ "sourceChunks": [
1202
+ "POST /api/blog/prior/updateBlog",
1203
+ "GET /api/blog/prior/detailsByDate"
1204
+ ],
1205
+ "parameterCoverage": [
1206
+ {
1207
+ "parameter": "blog.id",
1208
+ "source": "GET /api/blog/prior/detailsByDate",
1209
+ "inputSchema": null,
1210
+ "status": "derived",
1211
+ "facts": "由 CLI 内部查询、解析或 continuation 绑定得到:按 date + user 回查得到"
1212
+ },
1213
+ {
1214
+ "parameter": "blog.content",
1215
+ "source": "POST /api/blog/prior/updateBlog",
1216
+ "inputSchema": "content",
1217
+ "status": "converted",
1218
+ "facts": "必填;与原文相同报 changes_noop"
1219
+ },
1220
+ {
1221
+ "parameter": "target 用户",
1222
+ "source": "scripts/edit-blog.mjs",
1223
+ "inputSchema": "user_id / name",
1224
+ "status": "converted",
1225
+ "facts": "缺省为当前登录人;name 经 HRM 解析"
1226
+ },
1227
+ {
1228
+ "parameter": "无日报场景",
1229
+ "source": "POST /api/blog/prior/updateBlog",
1230
+ "inputSchema": null,
1231
+ "status": "derived",
1232
+ "facts": "由 CLI 内部查询、解析或 continuation 绑定得到:目标不存在报 edit_target_missing,不追问"
1233
+ }
1234
+ ]
1235
+ },
1236
+ {
1237
+ "operation": "blog.edit.apply",
1238
+ "sourceChunks": [
1239
+ "POST /api/blog/prior/updateBlog"
1240
+ ],
1241
+ "parameterCoverage": [
1242
+ {
1243
+ "parameter": "确认凭据",
1244
+ "source": "scripts/edit-blog.mjs(无 continuation 概念)",
1245
+ "inputSchema": "continuation",
1246
+ "status": "converted",
1247
+ "facts": "CLI 新增:绑定 blogId、content 与目标指纹"
1248
+ },
1249
+ {
1250
+ "parameter": "显式确认",
1251
+ "source": "scripts/edit-blog.mjs(直接执行)",
1252
+ "inputSchema": "confirm",
1253
+ "status": "converted",
1254
+ "facts": "CLI 新增:必须 confirm=true"
1255
+ },
1256
+ {
1257
+ "parameter": "attachmentIds / atLinkList / isTm / isDbCheck / client / timezoneOffset",
1258
+ "source": "POST /api/blog/prior/updateBlog",
1259
+ "inputSchema": null,
1260
+ "status": "fixed",
1261
+ "facts": "源接口要求但由 CLI 固定,不暴露给 Agent"
1262
+ },
1263
+ {
1264
+ "parameter": "写后回查内容",
1265
+ "source": "GET /api/blog/prior/detailsByDate",
1266
+ "inputSchema": null,
1267
+ "status": "derived",
1268
+ "facts": "由 CLI 内部查询、解析或 continuation 绑定得到:内容不一致返回 partial/write_uncertain"
1269
+ }
1270
+ ]
1271
+ },
1272
+ {
1273
+ "operation": "blog.comment.prepare",
1274
+ "sourceChunks": [
1275
+ "POST /api/blog/common/comment/createComment",
1276
+ "GET /api/blog/prior/detailsByDate"
1277
+ ],
1278
+ "parameterCoverage": [
1279
+ {
1280
+ "parameter": "comment.targetId",
1281
+ "source": "POST /api/blog/common/comment/createComment",
1282
+ "inputSchema": "blog_id",
1283
+ "status": "converted",
1284
+ "facts": "与 date(+user)二选一"
1285
+ },
1286
+ {
1287
+ "parameter": "comment.content",
1288
+ "source": "POST /api/blog/common/comment/createComment",
1289
+ "inputSchema": "content",
1290
+ "status": "converted",
1291
+ "facts": "必填"
1292
+ },
1293
+ {
1294
+ "parameter": "目标定位",
1295
+ "source": "GET /api/blog/prior/detailsByDate",
1296
+ "inputSchema": null,
1297
+ "status": "derived",
1298
+ "facts": "由 CLI 内部查询、解析或 continuation 绑定得到:无日报直接报 target_missing"
1299
+ }
1300
+ ]
1301
+ },
1302
+ {
1303
+ "operation": "blog.comment.apply",
1304
+ "sourceChunks": [
1305
+ "POST /api/blog/common/comment/createComment",
1306
+ "POST /api/blog/common/comment/commentPage"
1307
+ ],
1308
+ "parameterCoverage": [
1309
+ {
1310
+ "parameter": "确认凭据",
1311
+ "source": "scripts/comment-blog.mjs(无 continuation 概念)",
1312
+ "inputSchema": "continuation",
1313
+ "status": "converted",
1314
+ "facts": "CLI 新增"
1315
+ },
1316
+ {
1317
+ "parameter": "显式确认",
1318
+ "source": "scripts/comment-blog.mjs(直接执行)",
1319
+ "inputSchema": "confirm",
1320
+ "status": "converted",
1321
+ "facts": "CLI 新增:必须 confirm=true"
1322
+ },
1323
+ {
1324
+ "parameter": "disableMessage / relevanceList / imAtContent / atLinkList / originContent / module / attachments / attachmentsList / client",
1325
+ "source": "POST /api/blog/common/comment/createComment",
1326
+ "inputSchema": null,
1327
+ "status": "fixed",
1328
+ "facts": "源接口要求但由 CLI 固定,不暴露给 Agent"
1329
+ },
1330
+ {
1331
+ "parameter": "写后回查",
1332
+ "source": "POST /api/blog/common/comment/commentPage",
1333
+ "inputSchema": null,
1334
+ "status": "derived",
1335
+ "facts": "由 CLI 内部查询、解析或 continuation 绑定得到:回查未命中返回 partial/write_uncertain"
1336
+ }
1337
+ ]
1338
+ },
1339
+ {
1340
+ "operation": "blog.like.prepare",
1341
+ "sourceChunks": [
1342
+ "POST /api/blog/common/upvoteComponent/vote",
1343
+ "POST /api/blog/common/upvoteComponent/cancelVote"
1344
+ ],
1345
+ "parameterCoverage": [
1346
+ {
1347
+ "parameter": "componentId",
1348
+ "source": "POST /api/blog/common/upvoteComponent/vote",
1349
+ "inputSchema": "blog_id",
1350
+ "status": "converted",
1351
+ "facts": "与 date(+user)二选一"
1352
+ },
1353
+ {
1354
+ "parameter": "upvote",
1355
+ "source": "POST /api/blog/common/upvoteComponent/vote",
1356
+ "inputSchema": null,
1357
+ "status": "fixed",
1358
+ "facts": "源接口要求但由 CLI 固定,不暴露给 Agent:true"
1359
+ },
1360
+ {
1361
+ "parameter": "投票 / 取消投票路径",
1362
+ "source": "POST /api/blog/common/upvoteComponent/cancelVote",
1363
+ "inputSchema": "cancel",
1364
+ "status": "derived",
1365
+ "facts": "由 CLI 内部查询、解析或 continuation 绑定得到:cancel=true 走 cancelVote,否则走 vote"
1366
+ }
1367
+ ]
1368
+ },
1369
+ {
1370
+ "operation": "blog.like.apply",
1371
+ "sourceChunks": [
1372
+ "POST /api/blog/common/upvoteComponent/vote",
1373
+ "POST /api/blog/common/upvoteComponent/cancelVote"
1374
+ ],
1375
+ "parameterCoverage": [
1376
+ {
1377
+ "parameter": "确认凭据",
1378
+ "source": "scripts/like-blog.mjs(无 continuation 概念)",
1379
+ "inputSchema": "continuation",
1380
+ "status": "converted",
1381
+ "facts": "CLI 新增"
1382
+ },
1383
+ {
1384
+ "parameter": "显式确认",
1385
+ "source": "scripts/like-blog.mjs(直接执行)",
1386
+ "inputSchema": "confirm",
1387
+ "status": "converted",
1388
+ "facts": "CLI 新增:必须 confirm=true"
1389
+ },
1390
+ {
1391
+ "parameter": "生效判定",
1392
+ "source": "POST /api/blog/common/upvoteComponent/vote",
1393
+ "inputSchema": null,
1394
+ "status": "derived",
1395
+ "facts": "由 CLI 内部查询、解析或 continuation 绑定得到:无只读回查接口,以业务码为准,verified 恒为 false"
1396
+ }
1397
+ ]
1398
+ },
1399
+ {
1400
+ "operation": "blog.remind.prepare",
1401
+ "sourceChunks": [
1402
+ "POST /api/blog/message/sendUrge",
1403
+ "POST /api/hrm/common/browser/data/resource"
1404
+ ],
1405
+ "parameterCoverage": [
1406
+ {
1407
+ "parameter": "ids",
1408
+ "source": "POST /api/blog/message/sendUrge",
1409
+ "inputSchema": "user_ids",
1410
+ "status": "converted",
1411
+ "facts": "数组或逗号串,单次上限 50"
1412
+ },
1413
+ {
1414
+ "parameter": "ids(按姓名)",
1415
+ "source": "POST /api/hrm/common/browser/data/resource",
1416
+ "inputSchema": "names",
1417
+ "status": "derived",
1418
+ "facts": "由 CLI 内部查询、解析或 continuation 绑定得到:姓名经 HRM 解析为 id"
1419
+ },
1420
+ {
1421
+ "parameter": "content",
1422
+ "source": "POST /api/blog/message/sendUrge",
1423
+ "inputSchema": "content",
1424
+ "status": "converted",
1425
+ "facts": "缺省生成「请填写 YYYY年 M月 D日 的日报!」;自定义文案必须包含日期"
1426
+ },
1427
+ {
1428
+ "parameter": "year",
1429
+ "source": "POST /api/blog/message/sendUrge",
1430
+ "inputSchema": "year",
1431
+ "status": "derived",
1432
+ "facts": "由 CLI 内部查询、解析或 continuation 绑定得到:缺省从 date 推断"
1433
+ },
1434
+ {
1435
+ "parameter": "definiteType / type / targetId / checkStr",
1436
+ "source": "POST /api/blog/message/sendUrge",
1437
+ "inputSchema": null,
1438
+ "status": "fixed",
1439
+ "facts": "源接口要求但由 CLI 固定,不暴露给 Agent:'blog' / 'blog' / null / ''"
1440
+ }
1441
+ ]
1442
+ },
1443
+ {
1444
+ "operation": "blog.remind.apply",
1445
+ "sourceChunks": [
1446
+ "POST /api/blog/message/sendUrge"
1447
+ ],
1448
+ "parameterCoverage": [
1449
+ {
1450
+ "parameter": "确认凭据",
1451
+ "source": "scripts/remind-blog.mjs(无 continuation 概念)",
1452
+ "inputSchema": "continuation",
1453
+ "status": "converted",
1454
+ "facts": "CLI 新增:绑定目标列表、文案与年份指纹"
1455
+ },
1456
+ {
1457
+ "parameter": "显式确认",
1458
+ "source": "scripts/remind-blog.mjs(直接执行)",
1459
+ "inputSchema": "confirm",
1460
+ "status": "converted",
1461
+ "facts": "CLI 新增:必须 confirm=true"
1462
+ },
1463
+ {
1464
+ "parameter": "逐人发送",
1465
+ "source": "POST /api/blog/message/sendUrge",
1466
+ "inputSchema": null,
1467
+ "status": "derived",
1468
+ "facts": "由 CLI 内部查询、解析或 continuation 绑定得到:多人逐个 POST,部分失败返回 PARTIAL,中断返回 write_uncertain"
1469
+ },
1470
+ {
1471
+ "parameter": "撤回提醒",
1472
+ "source": "POST /api/blog/message/sendUrge",
1473
+ "inputSchema": null,
1474
+ "status": "withheld",
1475
+ "facts": "源资料无撤回接口"
1476
+ }
1477
+ ]
1478
+ }
1479
+ ],
1480
+ "artifactBaseline": [
1481
+ {
1482
+ "path": "src/shortcuts/blog/",
1483
+ "type": "directory",
1484
+ "fileCount": 18,
1485
+ "sha256": "89e250d5aa0fcfcacb45184e5c69c71c74c2a613e8601b23761e991c52966f89"
1486
+ },
1487
+ {
1488
+ "path": "skills/weaver-e10-blog/",
1489
+ "type": "directory",
1490
+ "fileCount": 14,
1491
+ "sha256": "6ee85652be1606716f817b8b091d488e599f082b092777a7847b401a94c600b6"
1492
+ },
1493
+ {
1494
+ "path": "docs/blog.md",
1495
+ "type": "file",
1496
+ "size": 7886,
1497
+ "sha256": "3412839fd4c4d86d1c4be9066b7a8fa7cf89a2eed04e27a9b3bc73dab836a267"
1498
+ },
1499
+ {
1500
+ "path": "test/business/blog-operations.test.ts",
1501
+ "type": "file",
1502
+ "size": 39092,
1503
+ "sha256": "ee199dcbedebaadd1e2a6b6b1863551277e0ca3f96410ece41c6367004452da2"
1504
+ },
1505
+ {
1506
+ "path": "test/business/blog-host.test.ts",
1507
+ "type": "file",
1508
+ "size": 10663,
1509
+ "sha256": "6806326fa8569ff8cba6f5c09bd9acdee370c86c0e0ebdb13b93daf37c081c0d"
1510
+ },
1511
+ {
1512
+ "path": "skill-template/business-info.json",
1513
+ "type": "file",
1514
+ "size": 6338,
1515
+ "sha256": "c14748f9c2855c92efc01aadbc5e19dd6db54202454d26113acb60932601d9f8"
1516
+ },
1517
+ {
1518
+ "path": "skill-template/domains/blog.md",
1519
+ "type": "file",
1520
+ "size": 2402,
1521
+ "sha256": "17cb35250c97b726ba027bab0e406878757f0bc89ea58befccc16b6aeade3b6d"
1522
+ }
1523
+ ],
1524
+ "generatedArtifacts": [
1525
+ "src/shortcuts/blog/",
1526
+ "skills/weaver-e10-blog/",
1527
+ "docs/blog.md",
1528
+ "test/business/blog-operations.test.ts",
1529
+ "test/business/blog-host.test.ts",
1530
+ "skill-template/business-info.json",
1531
+ "skill-template/domains/blog.md"
1532
+ ],
1533
+ "notes": [
1534
+ "补交判定统一为 createTime 与 blogTime 是否同日(blogs 接口的 later 字段实测不可靠,弃用)。",
1535
+ "blogs 接口的 filter.userIds / empIds / userId / creator 被服务端静默忽略,按人查询只能走 blog.query_user(detailsByDate 逐日扫描)。",
1536
+ "blogs 接口的 pageNo 被服务端忽略(第 1/2/3 页返回同一批数据),pageSize 上限 300,因此单页拉满并在截断时输出 _note。",
1537
+ "HRM 人员解析取 rows[].id 作为 E10 业务 userId,userid 字段对业务接口不可用。",
1538
+ "block 级 weak detection:源资料变更时按文件 sha256 与 aggregateSha256 判断,不能定位到具体字段级 diff。"
1539
+ ]
1540
+ }