dsh-crwu-workbench 0.0.10

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 (479) hide show
  1. package/CHANGELOG.md +1516 -0
  2. package/LICENSE +26 -0
  3. package/README.en.md +204 -0
  4. package/README.md +521 -0
  5. package/SECURITY.md +39 -0
  6. package/bin/darwin-arm64/crwu +0 -0
  7. package/bin/darwin-arm64/dws +0 -0
  8. package/bin/darwin-arm64/ossutil +0 -0
  9. package/bin/manifest.json +82 -0
  10. package/bin/win32-x64/crwu.exe +0 -0
  11. package/bin/win32-x64/dws.exe +4 -0
  12. package/bin/win32-x64/ossutil.exe +0 -0
  13. package/common/skills/.synced.json +8 -0
  14. package/common/skills/crwu-dws/SKILL.md +208 -0
  15. package/common/skills/crwu-dws/references/00-/347/233/256/345/275/225/345/277/253/347/205/247schema.md +113 -0
  16. package/common/skills/crwu-dws/references/01-/345/256/241/346/240/270/344/270/213/350/275/275/344/270/216manifest/350/247/204/350/214/203.md +115 -0
  17. package/common/skills/crwu-dws/references/02-/347/274/223/345/255/230/344/270/216/345/205/234/345/272/225/346/237/245/346/211/276/350/247/204/350/214/203.md +119 -0
  18. package/common/skills/crwu-dws/scripts/test_dws_source_contract.py +493 -0
  19. package/common/skills/crwu-h3yun-login/SKILL.md +130 -0
  20. package/common/skills/crwu-h3yun-query/SKILL.md +192 -0
  21. package/config/crwu-workbench.yml +26 -0
  22. package/cordis.patch.yml +46 -0
  23. package/lib/client.js +10346 -0
  24. package/lib/index.js +11584 -0
  25. package/package.json +119 -0
  26. package/scripts/prepare.mjs +59 -0
  27. package/skills/README.md +26 -0
  28. package/skills/crwu/crwu-audit/SKILL.md +152 -0
  29. package/skills/crwu/crwu-audit/references/00-input-and-route-profile.md +232 -0
  30. package/skills/crwu/crwu-audit/references/01-report-id-resolution.md +13 -0
  31. package/skills/crwu/crwu-audit/references/02-scope-classification.md +25 -0
  32. package/skills/crwu/crwu-audit/references/03-asset-classification.md +27 -0
  33. package/skills/crwu/crwu-audit/references/04-business-classification.md +63 -0
  34. package/skills/crwu/crwu-audit/references/05-method-classification.md +66 -0
  35. package/skills/crwu/crwu-audit/references/06-overlay-classification.md +42 -0
  36. package/skills/crwu/crwu-audit/references/07-skill-registry.md +57 -0
  37. package/skills/crwu/crwu-audit/references/08-union-dispatch-rules.md +142 -0
  38. package/skills/crwu/crwu-audit/references/09-review-risk-classification.md +85 -0
  39. package/skills/crwu/crwu-audit/references/10-capability-gap-proposal.md +68 -0
  40. package/skills/crwu/crwu-audit/references/11-html-delivery-spec.md +881 -0
  41. package/skills/crwu/crwu-audit/references/12-leaf-common-contract.md +202 -0
  42. package/skills/crwu/crwu-audit/references/13-dingtalk-result-publish.md +88 -0
  43. package/skills/crwu/crwu-audit/references/14-orchestration-workflow.md +52 -0
  44. package/skills/crwu/crwu-audit/references/99-maintenance.md +62 -0
  45. package/skills/crwu/crwu-audit/scripts/README.md +157 -0
  46. package/skills/crwu/crwu-audit/scripts/audit_delivery.py +2736 -0
  47. package/skills/crwu/crwu-audit/scripts/audit_result.schema.json +1659 -0
  48. package/skills/crwu/crwu-audit/scripts/examples/audit-result.sample.json +739 -0
  49. package/skills/crwu/crwu-audit/scripts/fetch_review_records.py +85 -0
  50. package/skills/crwu/crwu-audit/scripts/media_extract.py +513 -0
  51. package/skills/crwu/crwu-audit/scripts/prepare_materials.py +1252 -0
  52. package/skills/crwu/crwu-audit/scripts/test_audit_delivery.py +1678 -0
  53. package/skills/crwu/crwu-audit/scripts/test_audit_multiaxis_router.py +1339 -0
  54. package/skills/crwu/crwu-audit/scripts/test_fetch_review_records.py +77 -0
  55. package/skills/crwu/crwu-audit/scripts/test_media_extract.py +332 -0
  56. package/skills/crwu/crwu-audit/scripts/test_prepare_materials.py +1081 -0
  57. package/skills/crwu/crwu-audit/template/audit-report.html +435 -0
  58. package/skills/crwu/crwu-audit-asset-asset-group-goodwill/SKILL.md +38 -0
  59. package/skills/crwu/crwu-audit-asset-asset-group-goodwill/references/00-applicability.md +28 -0
  60. package/skills/crwu/crwu-audit-asset-asset-group-goodwill/references/01-kb-assembly.md +31 -0
  61. package/skills/crwu/crwu-audit-asset-asset-group-goodwill/references/02-review-focus.md +21 -0
  62. package/skills/crwu/crwu-audit-asset-asset-group-goodwill/references/03-common-contract.md +202 -0
  63. package/skills/crwu/crwu-audit-asset-debt/SKILL.md +38 -0
  64. package/skills/crwu/crwu-audit-asset-debt/references/00-applicability.md +40 -0
  65. package/skills/crwu/crwu-audit-asset-debt/references/01-kb-assembly.md +41 -0
  66. package/skills/crwu/crwu-audit-asset-debt/references/02-review-focus.md +54 -0
  67. package/skills/crwu/crwu-audit-asset-debt/references/03-common-contract.md +202 -0
  68. package/skills/crwu/crwu-audit-asset-enterprise-value/SKILL.md +38 -0
  69. package/skills/crwu/crwu-audit-asset-enterprise-value/references/00-applicability.md +31 -0
  70. package/skills/crwu/crwu-audit-asset-enterprise-value/references/01-kb-assembly.md +35 -0
  71. package/skills/crwu/crwu-audit-asset-enterprise-value/references/02-review-focus.md +33 -0
  72. package/skills/crwu/crwu-audit-asset-enterprise-value/references/03-common-contract.md +202 -0
  73. package/skills/crwu/crwu-audit-asset-equipment/SKILL.md +38 -0
  74. package/skills/crwu/crwu-audit-asset-equipment/references/00-applicability.md +40 -0
  75. package/skills/crwu/crwu-audit-asset-equipment/references/01-kb-assembly.md +39 -0
  76. package/skills/crwu/crwu-audit-asset-equipment/references/02-review-focus.md +52 -0
  77. package/skills/crwu/crwu-audit-asset-equipment/references/03-common-contract.md +202 -0
  78. package/skills/crwu/crwu-audit-asset-intangible/SKILL.md +38 -0
  79. package/skills/crwu/crwu-audit-asset-intangible/references/00-applicability.md +36 -0
  80. package/skills/crwu/crwu-audit-asset-intangible/references/01-kb-assembly.md +40 -0
  81. package/skills/crwu/crwu-audit-asset-intangible/references/02-review-focus.md +68 -0
  82. package/skills/crwu/crwu-audit-asset-intangible/references/03-common-contract.md +202 -0
  83. package/skills/crwu/crwu-audit-asset-inventory/SKILL.md +38 -0
  84. package/skills/crwu/crwu-audit-asset-inventory/references/00-applicability.md +28 -0
  85. package/skills/crwu/crwu-audit-asset-inventory/references/01-kb-assembly.md +31 -0
  86. package/skills/crwu/crwu-audit-asset-inventory/references/02-review-focus.md +21 -0
  87. package/skills/crwu/crwu-audit-asset-inventory/references/03-common-contract.md +202 -0
  88. package/skills/crwu/crwu-audit-asset-mining-right/SKILL.md +38 -0
  89. package/skills/crwu/crwu-audit-asset-mining-right/references/00-applicability.md +31 -0
  90. package/skills/crwu/crwu-audit-asset-mining-right/references/01-kb-assembly.md +35 -0
  91. package/skills/crwu/crwu-audit-asset-mining-right/references/02-review-focus.md +33 -0
  92. package/skills/crwu/crwu-audit-asset-mining-right/references/03-common-contract.md +202 -0
  93. package/skills/crwu/crwu-audit-asset-other/SKILL.md +38 -0
  94. package/skills/crwu/crwu-audit-asset-other/references/00-applicability.md +28 -0
  95. package/skills/crwu/crwu-audit-asset-other/references/01-kb-assembly.md +31 -0
  96. package/skills/crwu/crwu-audit-asset-other/references/02-review-focus.md +21 -0
  97. package/skills/crwu/crwu-audit-asset-other/references/03-common-contract.md +202 -0
  98. package/skills/crwu/crwu-audit-asset-portfolio/SKILL.md +38 -0
  99. package/skills/crwu/crwu-audit-asset-portfolio/references/00-applicability.md +28 -0
  100. package/skills/crwu/crwu-audit-asset-portfolio/references/01-kb-assembly.md +31 -0
  101. package/skills/crwu/crwu-audit-asset-portfolio/references/02-review-focus.md +21 -0
  102. package/skills/crwu/crwu-audit-asset-portfolio/references/03-common-contract.md +202 -0
  103. package/skills/crwu/crwu-audit-asset-realestate/SKILL.md +38 -0
  104. package/skills/crwu/crwu-audit-asset-realestate/references/00-applicability.md +43 -0
  105. package/skills/crwu/crwu-audit-asset-realestate/references/01-kb-assembly.md +75 -0
  106. package/skills/crwu/crwu-audit-asset-realestate/references/02-review-focus.md +93 -0
  107. package/skills/crwu/crwu-audit-asset-realestate/references/03-common-contract.md +202 -0
  108. package/skills/crwu/crwu-audit-asset-scrap-materials/SKILL.md +38 -0
  109. package/skills/crwu/crwu-audit-asset-scrap-materials/references/00-applicability.md +28 -0
  110. package/skills/crwu/crwu-audit-asset-scrap-materials/references/01-kb-assembly.md +31 -0
  111. package/skills/crwu/crwu-audit-asset-scrap-materials/references/02-review-focus.md +21 -0
  112. package/skills/crwu/crwu-audit-asset-scrap-materials/references/03-common-contract.md +202 -0
  113. package/skills/crwu/crwu-audit-asset-transport-equipment/SKILL.md +38 -0
  114. package/skills/crwu/crwu-audit-asset-transport-equipment/references/00-applicability.md +31 -0
  115. package/skills/crwu/crwu-audit-asset-transport-equipment/references/01-kb-assembly.md +35 -0
  116. package/skills/crwu/crwu-audit-asset-transport-equipment/references/02-review-focus.md +33 -0
  117. package/skills/crwu/crwu-audit-asset-transport-equipment/references/03-common-contract.md +202 -0
  118. package/skills/crwu/crwu-audit-biz-asset-operation/SKILL.md +38 -0
  119. package/skills/crwu/crwu-audit-biz-asset-operation/references/00-applicability.md +30 -0
  120. package/skills/crwu/crwu-audit-biz-asset-operation/references/01-kb-assembly.md +32 -0
  121. package/skills/crwu/crwu-audit-biz-asset-operation/references/02-review-focus.md +42 -0
  122. package/skills/crwu/crwu-audit-biz-asset-operation/references/03-common-contract.md +202 -0
  123. package/skills/crwu/crwu-audit-biz-consulting-review/SKILL.md +38 -0
  124. package/skills/crwu/crwu-audit-biz-consulting-review/references/00-applicability.md +30 -0
  125. package/skills/crwu/crwu-audit-biz-consulting-review/references/01-kb-assembly.md +32 -0
  126. package/skills/crwu/crwu-audit-biz-consulting-review/references/02-review-focus.md +40 -0
  127. package/skills/crwu/crwu-audit-biz-consulting-review/references/03-common-contract.md +202 -0
  128. package/skills/crwu/crwu-audit-biz-financial-reporting/SKILL.md +38 -0
  129. package/skills/crwu/crwu-audit-biz-financial-reporting/references/00-applicability.md +41 -0
  130. package/skills/crwu/crwu-audit-biz-financial-reporting/references/01-kb-assembly.md +40 -0
  131. package/skills/crwu/crwu-audit-biz-financial-reporting/references/02-review-focus.md +64 -0
  132. package/skills/crwu/crwu-audit-biz-financial-reporting/references/03-common-contract.md +202 -0
  133. package/skills/crwu/crwu-audit-biz-financing-debt/SKILL.md +38 -0
  134. package/skills/crwu/crwu-audit-biz-financing-debt/references/00-applicability.md +31 -0
  135. package/skills/crwu/crwu-audit-biz-financing-debt/references/01-kb-assembly.md +34 -0
  136. package/skills/crwu/crwu-audit-biz-financing-debt/references/02-review-focus.md +47 -0
  137. package/skills/crwu/crwu-audit-biz-financing-debt/references/03-common-contract.md +202 -0
  138. package/skills/crwu/crwu-audit-biz-investment-capital/SKILL.md +38 -0
  139. package/skills/crwu/crwu-audit-biz-investment-capital/references/00-applicability.md +31 -0
  140. package/skills/crwu/crwu-audit-biz-investment-capital/references/01-kb-assembly.md +34 -0
  141. package/skills/crwu/crwu-audit-biz-investment-capital/references/02-review-focus.md +47 -0
  142. package/skills/crwu/crwu-audit-biz-investment-capital/references/03-common-contract.md +202 -0
  143. package/skills/crwu/crwu-audit-biz-judicial-liquidation-compensation/SKILL.md +38 -0
  144. package/skills/crwu/crwu-audit-biz-judicial-liquidation-compensation/references/00-applicability.md +30 -0
  145. package/skills/crwu/crwu-audit-biz-judicial-liquidation-compensation/references/01-kb-assembly.md +32 -0
  146. package/skills/crwu/crwu-audit-biz-judicial-liquidation-compensation/references/02-review-focus.md +40 -0
  147. package/skills/crwu/crwu-audit-biz-judicial-liquidation-compensation/references/03-common-contract.md +202 -0
  148. package/skills/crwu/crwu-audit-biz-tax-history/SKILL.md +38 -0
  149. package/skills/crwu/crwu-audit-biz-tax-history/references/00-applicability.md +29 -0
  150. package/skills/crwu/crwu-audit-biz-tax-history/references/01-kb-assembly.md +30 -0
  151. package/skills/crwu/crwu-audit-biz-tax-history/references/02-review-focus.md +33 -0
  152. package/skills/crwu/crwu-audit-biz-tax-history/references/03-common-contract.md +202 -0
  153. package/skills/crwu/crwu-audit-biz-transaction-disposal/SKILL.md +38 -0
  154. package/skills/crwu/crwu-audit-biz-transaction-disposal/references/00-applicability.md +31 -0
  155. package/skills/crwu/crwu-audit-biz-transaction-disposal/references/01-kb-assembly.md +34 -0
  156. package/skills/crwu/crwu-audit-biz-transaction-disposal/references/02-review-focus.md +47 -0
  157. package/skills/crwu/crwu-audit-biz-transaction-disposal/references/03-common-contract.md +202 -0
  158. package/skills/crwu/crwu-audit-datacheck/SKILL.md +59 -0
  159. package/skills/crwu/crwu-audit-datacheck/references/00-KB/350/243/205/351/205/215/350/241/250.md +25 -0
  160. package/skills/crwu/crwu-audit-datacheck/references/01-runtime-and-check-catalog.md +139 -0
  161. package/skills/crwu/crwu-audit-datacheck/scripts/recalc_check.py +521 -0
  162. package/skills/crwu/crwu-audit-datacheck/scripts/test_recalc_check.py +419 -0
  163. package/skills/crwu/crwu-audit-datacheck/scripts/test_skill_self_containment.py +44 -0
  164. package/skills/crwu/crwu-audit-external-data/SKILL.md +73 -0
  165. package/skills/crwu/crwu-audit-external-data/references/00-KB/350/243/205/351/205/215/350/241/250.md +38 -0
  166. package/skills/crwu/crwu-audit-external-data/references/01-connector-access.md +116 -0
  167. package/skills/crwu/crwu-audit-external-data/references/02-verification-workflow.md +78 -0
  168. package/skills/crwu/crwu-audit-external-data/scripts/connector_probe.py +374 -0
  169. package/skills/crwu/crwu-audit-external-data/scripts/test_connector_probe.py +264 -0
  170. package/skills/crwu/crwu-audit-output-filter/SKILL.md +34 -0
  171. package/skills/crwu/crwu-audit-output-filter/references/00-applicability.md +7 -0
  172. package/skills/crwu/crwu-audit-output-filter/references/01-kb-assembly.md +11 -0
  173. package/skills/crwu/crwu-audit-output-filter/references/02-review-focus.md +25 -0
  174. package/skills/crwu/crwu-audit-public-general-standards/SKILL.md +46 -0
  175. package/skills/crwu/crwu-audit-public-general-standards/references/00-applicability.md +41 -0
  176. package/skills/crwu/crwu-audit-public-general-standards/references/01-kb-assembly.md +66 -0
  177. package/skills/crwu/crwu-audit-public-general-standards/references/02-review-focus.md +111 -0
  178. package/skills/crwu/crwu-audit-public-general-standards/references/03-execution-contract.md +89 -0
  179. package/skills/crwu/crwu-dev-audit-optimize/SKILL.md +98 -0
  180. package/skills/crwu/crwu-dev-audit-optimize/references/00-/344/274/230/345/214/226/350/247/204/350/214/203/344/270/216/346/226/207/344/273/266/350/220/275/347/202/271.md +132 -0
  181. package/skills/crwu/crwu-dev-audit-optimize/references/01-/345/217/215/351/246/210/345/256/232/344/275/215/344/270/216/347/224/273/345/203/217/346/265/201/347/250/213.md +108 -0
  182. package/skills/crwu/crwu-dev-audit-optimize/references/02-/346/226/271/346/241/210/346/250/241/346/235/277/344/270/216/347/241/256/350/256/244/351/227/250/347/246/201.md +92 -0
  183. package/skills/crwu/crwu-dev-audit-optimize/references/03-AI/344/272/272/345/267/245/345/267/256/350/267/235/345/210/206/346/236/220/346/265/201/347/250/213.md +95 -0
  184. package/skills/crwu/crwu-dev-audit-optimize/scripts/examples/gap-analysis.sample.json +116 -0
  185. package/skills/crwu/crwu-dev-audit-optimize/scripts/gap_analysis.schema.json +33 -0
  186. package/skills/crwu/crwu-dev-audit-optimize/scripts/gap_analysis_delivery.py +475 -0
  187. package/skills/crwu/crwu-dev-audit-optimize/scripts/test_gap_analysis_delivery.py +855 -0
  188. package/skills/crwu/crwu-dev-audit-optimize/template/NOTICE.echarts.txt +7 -0
  189. package/skills/crwu/crwu-dev-audit-optimize/template/echarts.min.js +45 -0
  190. package/skills/crwu/crwu-dev-audit-optimize/template/gap-analysis-report.html +71 -0
  191. package/skills/crwu/crwu-dev-audit-skill-maintainer/SKILL.md +74 -0
  192. package/skills/crwu/crwu-dev-audit-skill-maintainer/references/00-responsibility-and-modes.md +62 -0
  193. package/skills/crwu/crwu-dev-audit-skill-maintainer/references/01-kb-source-discovery.md +89 -0
  194. package/skills/crwu/crwu-dev-audit-skill-maintainer/references/02-child-skill-contract.md +99 -0
  195. package/skills/crwu/crwu-dev-audit-skill-maintainer/references/03-review-item-execution-contract.md +51 -0
  196. package/skills/crwu/crwu-dev-audit-skill-maintainer/references/04-registry-and-mapping-update.md +73 -0
  197. package/skills/crwu/crwu-dev-audit-skill-maintainer/references/05-validation-and-delivery.md +127 -0
  198. package/skills/crwu/crwu-dev-audit-skill-maintainer/references/06-live-routing-reconciliation.md +136 -0
  199. package/skills/crwu/crwu-dev-audit-skill-maintainer/references/07-kb-skill-map.md +411 -0
  200. package/skills/crwu/crwu-dev-audit-skill-maintainer/scripts/README.md +200 -0
  201. package/skills/crwu/crwu-dev-audit-skill-maintainer/scripts/check_audit_skill_mappings.py +2477 -0
  202. package/skills/crwu/crwu-dev-audit-skill-maintainer/scripts/kb_tool.py +577 -0
  203. package/skills/crwu/crwu-dev-audit-skill-maintainer/scripts/test_audit_skill_maintainer.py +5097 -0
  204. package/skills/dws/LICENSE +178 -0
  205. package/skills/dws/NOTICE +17 -0
  206. package/skills/dws/dingtalk-aisearch/SKILL.md +83 -0
  207. package/skills/dws/dingtalk-aisearch/references/aisearch.md +249 -0
  208. package/skills/dws/dingtalk-aisearch/references/intent-guide.md +15 -0
  209. package/skills/dws/dingtalk-aisearch/references/lite-recipes.md +31 -0
  210. package/skills/dws/dingtalk-aitable/SKILL.md +139 -0
  211. package/skills/dws/dingtalk-aitable/references/06-data-analytics.md +11 -0
  212. package/skills/dws/dingtalk-aitable/references/aitable/aitable-advperm.md +251 -0
  213. package/skills/dws/dingtalk-aitable/references/aitable/aitable-attachment.md +49 -0
  214. package/skills/dws/dingtalk-aitable/references/aitable/aitable-best-practices.md +48 -0
  215. package/skills/dws/dingtalk-aitable/references/aitable/aitable-cell-value.md +346 -0
  216. package/skills/dws/dingtalk-aitable/references/aitable/aitable-dashboard-chart.md +46 -0
  217. package/skills/dws/dingtalk-aitable/references/aitable/aitable-data-analysis-sop.md +131 -0
  218. package/skills/dws/dingtalk-aitable/references/aitable/aitable-datasource.md +272 -0
  219. package/skills/dws/dingtalk-aitable/references/aitable/aitable-error-recovery.md +128 -0
  220. package/skills/dws/dingtalk-aitable/references/aitable/aitable-export-import.md +113 -0
  221. package/skills/dws/dingtalk-aitable/references/aitable/aitable-field-properties.md +238 -0
  222. package/skills/dws/dingtalk-aitable/references/aitable/aitable-field.md +186 -0
  223. package/skills/dws/dingtalk-aitable/references/aitable/aitable-filter-sort.md +135 -0
  224. package/skills/dws/dingtalk-aitable/references/aitable/aitable-form.md +130 -0
  225. package/skills/dws/dingtalk-aitable/references/aitable/aitable-formula-guide.md +224 -0
  226. package/skills/dws/dingtalk-aitable/references/aitable/aitable-primary-doc.md +58 -0
  227. package/skills/dws/dingtalk-aitable/references/aitable/aitable-record-create.md +52 -0
  228. package/skills/dws/dingtalk-aitable/references/aitable/aitable-record-delete.md +20 -0
  229. package/skills/dws/dingtalk-aitable/references/aitable/aitable-record-history.md +97 -0
  230. package/skills/dws/dingtalk-aitable/references/aitable/aitable-record-name-key.md +47 -0
  231. package/skills/dws/dingtalk-aitable/references/aitable/aitable-record-query.md +120 -0
  232. package/skills/dws/dingtalk-aitable/references/aitable/aitable-record-share.md +54 -0
  233. package/skills/dws/dingtalk-aitable/references/aitable/aitable-record-stats.md +59 -0
  234. package/skills/dws/dingtalk-aitable/references/aitable/aitable-record-update.md +66 -0
  235. package/skills/dws/dingtalk-aitable/references/aitable/aitable-record-upsert.md +89 -0
  236. package/skills/dws/dingtalk-aitable/references/aitable/aitable-view-config.md +140 -0
  237. package/skills/dws/dingtalk-aitable/references/aitable/aitable-view-extras.md +195 -0
  238. package/skills/dws/dingtalk-aitable/references/aitable/aitable-view-types.md +95 -0
  239. package/skills/dws/dingtalk-aitable/references/aitable/aitable-workflow.md +384 -0
  240. package/skills/dws/dingtalk-aitable/references/aitable-record-ops.md +80 -0
  241. package/skills/dws/dingtalk-aitable/references/aitable-section.md +30 -0
  242. package/skills/dws/dingtalk-aitable/references/aitable.md +59 -0
  243. package/skills/dws/dingtalk-aitable/references/field-rules.md +17 -0
  244. package/skills/dws/dingtalk-aitable/references/intent-guide.md +17 -0
  245. package/skills/dws/dingtalk-aitable/references/recipes/conventions.md +44 -0
  246. package/skills/dws/dingtalk-aitable/references/url-patterns.md +144 -0
  247. package/skills/dws/dingtalk-aitable/scripts/aitable_export_via_task.py +210 -0
  248. package/skills/dws/dingtalk-aitable/scripts/aitable_import_via_task.py +173 -0
  249. package/skills/dws/dingtalk-aitable/scripts/bulk_add_fields.py +273 -0
  250. package/skills/dws/dingtalk-aitable/scripts/import_records.py +333 -0
  251. package/skills/dws/dingtalk-aitable/scripts/upload_attachment.py +190 -0
  252. package/skills/dws/dingtalk-calendar/SKILL.md +137 -0
  253. package/skills/dws/dingtalk-calendar/references/03-meeting.md +56 -0
  254. package/skills/dws/dingtalk-calendar/references/calendar.md +760 -0
  255. package/skills/dws/dingtalk-calendar/references/intent-guide.md +9 -0
  256. package/skills/dws/dingtalk-calendar/references/lite-recipes.md +25 -0
  257. package/skills/dws/dingtalk-calendar/scripts/calendar_free_slot_finder.py +199 -0
  258. package/skills/dws/dingtalk-calendar/scripts/calendar_schedule_meeting.py +233 -0
  259. package/skills/dws/dingtalk-calendar/scripts/calendar_today_agenda.py +139 -0
  260. package/skills/dws/dingtalk-chat/SKILL.md +127 -0
  261. package/skills/dws/dingtalk-chat/references/01-messaging.md +103 -0
  262. package/skills/dws/dingtalk-chat/references/card/callback.md +10 -0
  263. package/skills/dws/dingtalk-chat/references/card/create.md +27 -0
  264. package/skills/dws/dingtalk-chat/references/card/schema.md +14 -0
  265. package/skills/dws/dingtalk-chat/references/card/update.md +13 -0
  266. package/skills/dws/dingtalk-chat/references/chat/chat-bot.md +187 -0
  267. package/skills/dws/dingtalk-chat/references/chat/chat-conversation.md +165 -0
  268. package/skills/dws/dingtalk-chat/references/chat/group-admin.md +144 -0
  269. package/skills/dws/dingtalk-chat/references/chat/group-discovery.md +121 -0
  270. package/skills/dws/dingtalk-chat/references/chat/message-actions.md +132 -0
  271. package/skills/dws/dingtalk-chat/references/chat/message-media.md +76 -0
  272. package/skills/dws/dingtalk-chat/references/chat/message-query.md +135 -0
  273. package/skills/dws/dingtalk-chat/references/chat/thread.md +46 -0
  274. package/skills/dws/dingtalk-chat/references/chat-emoji-list.md +216 -0
  275. package/skills/dws/dingtalk-chat/references/chat.md +140 -0
  276. package/skills/dws/dingtalk-chat/references/contracts.md +70 -0
  277. package/skills/dws/dingtalk-chat/references/intent-guide.md +56 -0
  278. package/skills/dws/dingtalk-contact/SKILL.md +122 -0
  279. package/skills/dws/dingtalk-contact/references/08-directory.md +51 -0
  280. package/skills/dws/dingtalk-contact/references/contact.md +595 -0
  281. package/skills/dws/dingtalk-contact/references/intent-guide.md +14 -0
  282. package/skills/dws/dingtalk-contact/references/lite-recipes.md +30 -0
  283. package/skills/dws/dingtalk-contact/references/recipes/conventions.md +44 -0
  284. package/skills/dws/dingtalk-contact/scripts/contact_dept_members.py +130 -0
  285. package/skills/dws/dingtalk-doc/SKILL.md +112 -0
  286. package/skills/dws/dingtalk-doc/references/04-document.md +57 -0
  287. package/skills/dws/dingtalk-doc/references/contracts.md +40 -0
  288. package/skills/dws/dingtalk-doc/references/doc/doc-block.md +39 -0
  289. package/skills/dws/dingtalk-doc/references/doc/doc-comment.md +29 -0
  290. package/skills/dws/dingtalk-doc/references/doc/doc-create.md +54 -0
  291. package/skills/dws/dingtalk-doc/references/doc/doc-export.md +30 -0
  292. package/skills/dws/dingtalk-doc/references/doc/doc-import.md +28 -0
  293. package/skills/dws/dingtalk-doc/references/doc/doc-info.md +12 -0
  294. package/skills/dws/dingtalk-doc/references/doc/doc-media.md +46 -0
  295. package/skills/dws/dingtalk-doc/references/doc/doc-read.md +56 -0
  296. package/skills/dws/dingtalk-doc/references/doc/doc-update.md +87 -0
  297. package/skills/dws/dingtalk-doc/references/doc/format/doc-jsonml-cookbook.md +469 -0
  298. package/skills/dws/dingtalk-doc/references/doc/format/doc-jsonml-schema.json +526 -0
  299. package/skills/dws/dingtalk-doc/references/doc/format/doc-jsonml-schema.md +711 -0
  300. package/skills/dws/dingtalk-doc/references/doc/style/doc-create-workflow.md +414 -0
  301. package/skills/dws/dingtalk-doc/references/doc/style/doc-style-guideline.md +404 -0
  302. package/skills/dws/dingtalk-doc/references/doc/style/doc-update-workflow.md +316 -0
  303. package/skills/dws/dingtalk-doc/references/doc.md +82 -0
  304. package/skills/dws/dingtalk-doc/references/intent-guide.md +20 -0
  305. package/skills/dws/dingtalk-drive/SKILL.md +128 -0
  306. package/skills/dws/dingtalk-drive/references/drive.md +126 -0
  307. package/skills/dws/dingtalk-drive/references/folder-sync.md +40 -0
  308. package/skills/dws/dingtalk-drive/references/intent-guide.md +22 -0
  309. package/skills/dws/dingtalk-drive/references/lite-recipes.md +39 -0
  310. package/skills/dws/dingtalk-event/SKILL.md +106 -0
  311. package/skills/dws/dingtalk-event/references/event-im-keys.md +54 -0
  312. package/skills/dws/dingtalk-event/references/event-im-lifecycle.md +35 -0
  313. package/skills/dws/dingtalk-event/references/event-im-operations.md +52 -0
  314. package/skills/dws/dingtalk-event/references/event-im-output.md +39 -0
  315. package/skills/dws/dingtalk-event/references/event-im.md +58 -0
  316. package/skills/dws/dingtalk-event/references/event-oa.md +155 -0
  317. package/skills/dws/dingtalk-event/references/event-todo.md +50 -0
  318. package/skills/dws/dingtalk-event/references/event-voip.md +69 -0
  319. package/skills/dws/dingtalk-mail/SKILL.md +113 -0
  320. package/skills/dws/dingtalk-mail/references/09-mail.md +45 -0
  321. package/skills/dws/dingtalk-mail/references/intent-guide.md +8 -0
  322. package/skills/dws/dingtalk-mail/references/lite-recipes.md +45 -0
  323. package/skills/dws/dingtalk-mail/references/mail.md +1889 -0
  324. package/skills/dws/dingtalk-mail/references/recipes/conventions.md +44 -0
  325. package/skills/dws/dingtalk-mail/scripts/mail_send_with_cc.py +122 -0
  326. package/skills/dws/dingtalk-mail/scripts/mail_unread_summary.py +114 -0
  327. package/skills/dws/dingtalk-minutes/SKILL.md +116 -0
  328. package/skills/dws/dingtalk-minutes/references/07-minutes.md +149 -0
  329. package/skills/dws/dingtalk-minutes/references/10-minutes-speaker-match.md +32 -0
  330. package/skills/dws/dingtalk-minutes/references/11-minutes-speaker-correct.md +40 -0
  331. package/skills/dws/dingtalk-minutes/references/intent-guide.md +79 -0
  332. package/skills/dws/dingtalk-minutes/references/lite-recipes.md +25 -0
  333. package/skills/dws/dingtalk-minutes/references/minutes.md +210 -0
  334. package/skills/dws/dingtalk-minutes/references/recipes/conventions.md +33 -0
  335. package/skills/dws/dingtalk-minutes/scripts/minutes_recent_summary.py +196 -0
  336. package/skills/dws/dingtalk-minutes/scripts/test_minutes_scripts.py +222 -0
  337. package/skills/dws/dingtalk-misc/SKILL.md +55 -0
  338. package/skills/dws/dingtalk-misc/references/05-reporting.md +29 -0
  339. package/skills/dws/dingtalk-misc/references/agoal.md +302 -0
  340. package/skills/dws/dingtalk-misc/references/attendance-intent-guide.md +7 -0
  341. package/skills/dws/dingtalk-misc/references/attendance-report.md +109 -0
  342. package/skills/dws/dingtalk-misc/references/attendance-schedule.md +115 -0
  343. package/skills/dws/dingtalk-misc/references/attendance-vacation.md +129 -0
  344. package/skills/dws/dingtalk-misc/references/attendance.md +149 -0
  345. package/skills/dws/dingtalk-misc/references/dev/app.md +42 -0
  346. package/skills/dws/dingtalk-misc/references/dev/connect.md +108 -0
  347. package/skills/dws/dingtalk-misc/references/dev/credentials.md +26 -0
  348. package/skills/dws/dingtalk-misc/references/dev/dev-index.md +13 -0
  349. package/skills/dws/dingtalk-misc/references/dev/event.md +47 -0
  350. package/skills/dws/dingtalk-misc/references/dev/mcp.md +106 -0
  351. package/skills/dws/dingtalk-misc/references/dev/member.md +19 -0
  352. package/skills/dws/dingtalk-misc/references/dev/permission.md +56 -0
  353. package/skills/dws/dingtalk-misc/references/dev/recipes.md +58 -0
  354. package/skills/dws/dingtalk-misc/references/dev/robot.md +74 -0
  355. package/skills/dws/dingtalk-misc/references/dev/security.md +21 -0
  356. package/skills/dws/dingtalk-misc/references/dev/version.md +99 -0
  357. package/skills/dws/dingtalk-misc/references/dev/webapp.md +22 -0
  358. package/skills/dws/dingtalk-misc/references/devapp.md +148 -0
  359. package/skills/dws/dingtalk-misc/references/devdoc-intent-guide.md +7 -0
  360. package/skills/dws/dingtalk-misc/references/devdoc.md +42 -0
  361. package/skills/dws/dingtalk-misc/references/ding.md +184 -0
  362. package/skills/dws/dingtalk-misc/references/hrbrain.md +67 -0
  363. package/skills/dws/dingtalk-misc/references/live.md +23 -0
  364. package/skills/dws/dingtalk-misc/references/markdown.md +167 -0
  365. package/skills/dws/dingtalk-misc/references/oa/oa-form-components.md +345 -0
  366. package/skills/dws/dingtalk-misc/references/oa/oa-process-nodes.md +374 -0
  367. package/skills/dws/dingtalk-misc/references/oa.md +1014 -0
  368. package/skills/dws/dingtalk-misc/references/openapi-explorer.md +47 -0
  369. package/skills/dws/dingtalk-misc/references/pat.md +52 -0
  370. package/skills/dws/dingtalk-misc/references/profile.md +41 -0
  371. package/skills/dws/dingtalk-misc/references/recruit.md +89 -0
  372. package/skills/dws/dingtalk-misc/references/report-conventions.md +44 -0
  373. package/skills/dws/dingtalk-misc/references/report-intent-guide.md +11 -0
  374. package/skills/dws/dingtalk-misc/references/report-lite-recipes.md +25 -0
  375. package/skills/dws/dingtalk-misc/references/report.md +109 -0
  376. package/skills/dws/dingtalk-misc/references/sheet/sheet-batch-operations.md +104 -0
  377. package/skills/dws/dingtalk-misc/references/sheet/sheet-chart.md +69 -0
  378. package/skills/dws/dingtalk-misc/references/sheet/sheet-comment.md +166 -0
  379. package/skills/dws/dingtalk-misc/references/sheet/sheet-conditional-format.md +59 -0
  380. package/skills/dws/dingtalk-misc/references/sheet/sheet-dimension-operations.md +60 -0
  381. package/skills/dws/dingtalk-misc/references/sheet/sheet-dropdown.md +103 -0
  382. package/skills/dws/dingtalk-misc/references/sheet/sheet-export.md +135 -0
  383. package/skills/dws/dingtalk-misc/references/sheet/sheet-filter-view.md +51 -0
  384. package/skills/dws/dingtalk-misc/references/sheet/sheet-filter.md +181 -0
  385. package/skills/dws/dingtalk-misc/references/sheet/sheet-formula.md +192 -0
  386. package/skills/dws/dingtalk-misc/references/sheet/sheet-import.md +76 -0
  387. package/skills/dws/dingtalk-misc/references/sheet/sheet-media-image.md +263 -0
  388. package/skills/dws/dingtalk-misc/references/sheet/sheet-pivot-table.md +292 -0
  389. package/skills/dws/dingtalk-misc/references/sheet/sheet-range-operations.md +161 -0
  390. package/skills/dws/dingtalk-misc/references/sheet/sheet-read-data.md +60 -0
  391. package/skills/dws/dingtalk-misc/references/sheet/sheet-revision-changeset.md +46 -0
  392. package/skills/dws/dingtalk-misc/references/sheet/sheet-search-replace.md +120 -0
  393. package/skills/dws/dingtalk-misc/references/sheet/sheet-style-format.md +71 -0
  394. package/skills/dws/dingtalk-misc/references/sheet/sheet-version.md +84 -0
  395. package/skills/dws/dingtalk-misc/references/sheet/sheet-workbook.md +59 -0
  396. package/skills/dws/dingtalk-misc/references/sheet/sheet-write-data.md +93 -0
  397. package/skills/dws/dingtalk-misc/references/sheet-conventions.md +44 -0
  398. package/skills/dws/dingtalk-misc/references/sheet-intent-guide.md +12 -0
  399. package/skills/dws/dingtalk-misc/references/sheet.md +166 -0
  400. package/skills/dws/dingtalk-misc/references/skill.md +98 -0
  401. package/skills/dws/dingtalk-misc/references/unsupported-scripts.md +49 -0
  402. package/skills/dws/dingtalk-misc/references/url-patterns.md +144 -0
  403. package/skills/dws/dingtalk-misc/references/whiteboard/compose.md +200 -0
  404. package/skills/dws/dingtalk-misc/references/whiteboard/open-nodes-v1/01-overview.md +57 -0
  405. package/skills/dws/dingtalk-misc/references/whiteboard/open-nodes-v1/02-query.md +288 -0
  406. package/skills/dws/dingtalk-misc/references/whiteboard/open-nodes-v1/03-update.md +249 -0
  407. package/skills/dws/dingtalk-misc/references/whiteboard/open-nodes-v1/04-text-style.md +395 -0
  408. package/skills/dws/dingtalk-misc/references/whiteboard/open-nodes-v1/05-shape-frame-group-connector.md +186 -0
  409. package/skills/dws/dingtalk-misc/references/whiteboard/open-nodes-v1/06-vector-icon-path.md +313 -0
  410. package/skills/dws/dingtalk-misc/references/whiteboard/open-nodes-v1/07-examples-errors-write-support.md +270 -0
  411. package/skills/dws/dingtalk-misc/references/whiteboard/open-nodes-v1/08-catalogs.md +61 -0
  412. package/skills/dws/dingtalk-misc/references/whiteboard/open-nodes-v1.md +54 -0
  413. package/skills/dws/dingtalk-misc/references/whiteboard/replace.md +41 -0
  414. package/skills/dws/dingtalk-misc/references/whiteboard/vector.md +51 -0
  415. package/skills/dws/dingtalk-misc/references/whiteboard.md +115 -0
  416. package/skills/dws/dingtalk-misc/scripts/aiapp_create_and_poll.py +138 -0
  417. package/skills/dws/dingtalk-misc/scripts/attendance_my_record.py +91 -0
  418. package/skills/dws/dingtalk-misc/scripts/attendance_report_checkin.py +440 -0
  419. package/skills/dws/dingtalk-misc/scripts/attendance_report_common.py +1698 -0
  420. package/skills/dws/dingtalk-misc/scripts/attendance_report_daily.py +558 -0
  421. package/skills/dws/dingtalk-misc/scripts/attendance_report_detail.py +809 -0
  422. package/skills/dws/dingtalk-misc/scripts/attendance_report_monthly.py +758 -0
  423. package/skills/dws/dingtalk-misc/scripts/attendance_report_record.py +947 -0
  424. package/skills/dws/dingtalk-misc/scripts/attendance_schedule_export.py +344 -0
  425. package/skills/dws/dingtalk-misc/scripts/attendance_schedule_import.py +498 -0
  426. package/skills/dws/dingtalk-misc/scripts/attendance_team_shift.py +89 -0
  427. package/skills/dws/dingtalk-misc/scripts/attendance_vacation_balance.py +617 -0
  428. package/skills/dws/dingtalk-misc/scripts/finance_daily_cashflow.py +70 -0
  429. package/skills/dws/dingtalk-misc/scripts/finance_expense_flow.py +138 -0
  430. package/skills/dws/dingtalk-misc/scripts/oa_batch_approve.py +158 -0
  431. package/skills/dws/dingtalk-misc/scripts/oa_pending_review.py +132 -0
  432. package/skills/dws/dingtalk-misc/scripts/report_received_today.py +315 -0
  433. package/skills/dws/dingtalk-misc/scripts/yida_custom_page_update.py +401 -0
  434. package/skills/dws/dingtalk-misc/scripts/yida_form_builder.py +526 -0
  435. package/skills/dws/dingtalk-misc/scripts/yida_form_fields.py +315 -0
  436. package/skills/dws/dingtalk-misc/scripts/yida_form_inspector.py +311 -0
  437. package/skills/dws/dingtalk-misc/scripts/yida_form_update.py +185 -0
  438. package/skills/dws/dingtalk-misc/scripts/yida_jsx_pipeline.py +1588 -0
  439. package/skills/dws/dingtalk-misc/scripts/yida_page_compiler.py +1441 -0
  440. package/skills/dws/dingtalk-misc/scripts/yida_page_generate.py +514 -0
  441. package/skills/dws/dingtalk-misc/scripts/yida_page_schema.py +519 -0
  442. package/skills/dws/dingtalk-misc/scripts/yida_page_self_check.py +398 -0
  443. package/skills/dws/dingtalk-misc/scripts/yida_process_flow.py +1478 -0
  444. package/skills/dws/dingtalk-misc/scripts/yida_process_update.py +589 -0
  445. package/skills/dws/dingtalk-misc/scripts/yida_report_builder.py +494 -0
  446. package/skills/dws/dingtalk-misc/scripts/yida_report_charts.py +1434 -0
  447. package/skills/dws/dingtalk-misc/scripts/yida_report_update.py +244 -0
  448. package/skills/dws/dingtalk-misc/scripts/yida_schema_common.py +340 -0
  449. package/skills/dws/dingtalk-shared/SKILL.md +83 -0
  450. package/skills/dws/dingtalk-shared/references/capability-limits.md +31 -0
  451. package/skills/dws/dingtalk-shared/references/channel-login.md +26 -0
  452. package/skills/dws/dingtalk-shared/references/confirmation.md +59 -0
  453. package/skills/dws/dingtalk-shared/references/error-codes.md +155 -0
  454. package/skills/dws/dingtalk-shared/references/global-reference.md +122 -0
  455. package/skills/dws/dingtalk-shared/references/intent-guide.md +537 -0
  456. package/skills/dws/dingtalk-shared/references/recipes/conventions.md +45 -0
  457. package/skills/dws/dingtalk-shared/references/recipes/lite-catalog.md +275 -0
  458. package/skills/dws/dingtalk-shared/references/recipes/meta.md +67 -0
  459. package/skills/dws/dingtalk-shared/references/routing.md +52 -0
  460. package/skills/dws/dingtalk-shared/references/runtime-contract.md +11 -0
  461. package/skills/dws/dingtalk-shared/references/schema-usage.md +88 -0
  462. package/skills/dws/dingtalk-shared/references/url-patterns.md +144 -0
  463. package/skills/dws/dingtalk-shared/references/workflow-routing.md +45 -0
  464. package/skills/dws/dingtalk-todo/SKILL.md +119 -0
  465. package/skills/dws/dingtalk-todo/references/02-task.md +70 -0
  466. package/skills/dws/dingtalk-todo/references/intent-guide.md +15 -0
  467. package/skills/dws/dingtalk-todo/references/lite-recipes.md +68 -0
  468. package/skills/dws/dingtalk-todo/references/recipes/conventions.md +44 -0
  469. package/skills/dws/dingtalk-todo/references/todo.md +517 -0
  470. package/skills/dws/dingtalk-todo/scripts/todo_batch_create.py +354 -0
  471. package/skills/dws/dingtalk-todo/scripts/todo_daily_summary.py +153 -0
  472. package/skills/dws/dingtalk-todo/scripts/todo_overdue_check.py +101 -0
  473. package/skills/dws/dingtalk-wiki/SKILL.md +117 -0
  474. package/skills/dws/dingtalk-wiki/references/intent-guide.md +14 -0
  475. package/skills/dws/dingtalk-wiki/references/lite-recipes.md +44 -0
  476. package/skills/dws/dingtalk-wiki/references/wiki-members.md +32 -0
  477. package/skills/dws/dingtalk-wiki/references/wiki-node-ops.md +46 -0
  478. package/skills/dws/dingtalk-wiki/references/wiki.md +65 -0
  479. package/skills/dws/provenance.json +27 -0
@@ -0,0 +1,109 @@
1
+ # 考勤 Excel / 报表导出
2
+
3
+ 仅当用户明确要求“导出、Excel、表格、生成报表”时加载本 Reference。单次 JSON 查询、个人摘要、排班表和假期余额表分别走 [attendance.md](attendance.md)、[attendance-schedule.md](attendance-schedule.md)、[attendance-vacation.md](attendance-vacation.md)。
4
+
5
+ 已知脚本入口时直接执行,不先查 Help、产品 Schema 或原子命令。脚本内部负责数据查询、分批、分页、聚合、姓名补齐和 Excel 生成;Agent 不重复这些远程读取,也不目测聚合。
6
+
7
+ 性能优化只能消除重复发现、重复查询和 Agent 目测聚合,不能删减用户要求的人员、日期、字段、分页、失败项或 warning。脚本输出 partial/incomplete 时必须原样保留,不能用已有部分数据宣称完整。
8
+
9
+ ## 报表类型 Golden Route
10
+
11
+ | 用户意图 | 脚本 | 说明 |
12
+ |---|---|---|
13
+ | 未指定粒度的“考勤报表”/明确月度汇总 | `attendance_report_monthly.py` | 默认;按人汇总并生成日历 Sheet |
14
+ | 每日统计/按天汇总 | `attendance_report_daily.py` | 按人按日 |
15
+ | 打卡明细/原始上下班明细 | `attendance_report_detail.py` | 数据源是打卡结果 + 打卡流水 |
16
+ | 请假/补卡/出差/外出审批记录表 | `attendance_report_record.py` | 审批单粒度;必须选择一种记录类型 |
17
+ | 签到/外勤签到报表 | `attendance_report_checkin.py` | 签到不是上下班打卡 |
18
+
19
+ “请假记录”走 record;“请假时长统计/请假报表”在未要求审批单明细时走 monthly/daily,并通过列关键词选取假期字段。“导出排班表”不属于本文件。
20
+
21
+ ## 1. 解析范围
22
+
23
+ - 人员范围必填。姓名用 `dws aisearch person --query "<姓名>" --dimension name --format json`;部门先唯一解析 deptId,再获取完整成员;用户已给 userId 时直接使用。
24
+ - 零命中、多候选或部门分页未完成时停止,禁止默认第一项或只导出第一页成员。
25
+ - 时间范围必填,脚本参数使用 `YYYY-MM-DD`。本周=周一到周日,本月=1 日到真实月末;自定义范围按用户原值。
26
+ - 用户未指定报表粒度时默认 monthly,不追问;执行结果中说明“已按月度汇总生成”。人员或时间缺失时一次性询问。
27
+ - 所有解析和脚本执行保持同一 profile;不得复用历史 userId/deptId。
28
+
29
+ ## 2. 选择列
30
+
31
+ monthly/daily 支持 `--column-keywords`;detail/record/checkin 列固定,不传该参数。
32
+
33
+ | 关注维度 | `--column-keywords` |
34
+ |---|---|
35
+ | 未指定 | 省略,使用脚本默认列 |
36
+ | 加班 | `加班-审批单统计,加班总时长,考勤结果` |
37
+ | 请假/出差/外出 | `请假,出差时长,外出时长,考勤结果` |
38
+ | 异常/迟到早退/缺卡 | `迟到次数,迟到时长,严重迟到次数,严重迟到时长,旷工迟到次数,早退次数,早退时长,上班缺卡次数,下班缺卡次数,旷工天数,考勤结果` |
39
+ | 其他明确字段 | 使用用户原词组成逗号列表 |
40
+
41
+ 字段 ID 由脚本实时调用 `attendance report columns` 建立映射,禁止硬编码。无权限字段、未匹配字段和无数据字段必须分别保留在 warning 中,不能都说成 0。
42
+
43
+ ## 3. 执行脚本
44
+
45
+ ### 月度汇总
46
+
47
+ ```bash
48
+ python3 scripts/attendance_report_monthly.py \
49
+ --users <USER_IDS> --start <YYYY-MM-DD> --end <YYYY-MM-DD> \
50
+ [--column-keywords "<关键词>"] [--out <相对路径.xlsx>]
51
+ ```
52
+
53
+ ### 每日统计
54
+
55
+ ```bash
56
+ python3 scripts/attendance_report_daily.py \
57
+ --users <USER_IDS> --start <YYYY-MM-DD> --end <YYYY-MM-DD> \
58
+ [--column-keywords "<关键词>"] [--out <相对路径.xlsx>]
59
+ ```
60
+
61
+ ### 打卡明细
62
+
63
+ ```bash
64
+ python3 scripts/attendance_report_detail.py \
65
+ --users <USER_IDS> --start <YYYY-MM-DD> --end <YYYY-MM-DD> \
66
+ [--out <相对路径.xlsx>]
67
+ ```
68
+
69
+ ### 审批记录
70
+
71
+ ```bash
72
+ python3 scripts/attendance_report_record.py \
73
+ --type <leave|trip|out|patch> \
74
+ --users <USER_IDS> --start <YYYY-MM-DD> --end <YYYY-MM-DD> \
75
+ [--out <相对路径.xlsx>]
76
+ ```
77
+
78
+ 映射:请假/年假/调休/病假=`leave`,出差=`trip`,外出=`out`,补卡=`patch`。用户同时要求多种记录时按类型分别生成或明确给出多个文件,禁止把一种类型冒充完整集合。
79
+
80
+ ### 签到报表
81
+
82
+ ```bash
83
+ python3 scripts/attendance_report_checkin.py \
84
+ --users <USER_IDS> --start <YYYY-MM-DD> --end <YYYY-MM-DD> \
85
+ [--out <相对路径.xlsx>]
86
+ ```
87
+
88
+ 仅使用工作目录内安全相对输出路径;默认不覆盖已有文件。`--inspect` 仅在真实返回结构漂移、脚本明确提示时使用一次,不作为正常流程。
89
+
90
+ ## 脚本负责的边界
91
+
92
+ - [attendance_report_common.py](../scripts/attendance_report_common.py) 是上述导出脚本共享的内部模块,不可单独执行。
93
+ - monthly/daily:实时列权限、最多 20 人/请求、最多 32 天/请求,按月切片并聚合。
94
+ - detail:打卡结果自动翻页、打卡流水按用户/月份分批,区分无流水与 NotSigned/Absenteeism。
95
+ - record:查询考勤审批摘要、按真实实例取详情并拆行;不代替用户提交审批。
96
+ - checkin:最多 7 天一段并分批查询,按签到时间/地点整理;不混用 check record。
97
+ - 所有脚本:userId→姓名、原始单位保留、失败/warning 统计、xlsx 输出。
98
+
99
+ Agent 不应先手动执行 `report columns/query-data`、`check result/record` 或 `approve list` 再让脚本重复查询。只有脚本报出一个明确、可复现的结构问题时,才做一次精确 leaf Schema/Help 审计。
100
+
101
+ ## 结果与失败
102
+
103
+ - 返回脚本 stdout 中的输出路径、人员数、日期范围、记录数、使用列和 warning;不要把整个 Excel 粘贴到对话。
104
+ - 只有文件成功写入且脚本完成数据核对后报告成功。部分用户/字段/日期失败时报告 partial,不把其余数据当成完整报表。
105
+ - 403/权限错误:说明需要考勤管理员或相应管理范围,不重试、不切身份。
106
+ - 无人员、无可见字段、日期非法:本地停止,零业务查询;让用户修正输入。
107
+ - 无业务数据:可以生成空表但必须明确“查询成功、无记录”;不能转换成“所有人正常”。
108
+ - 脚本依赖缺失:报告缺失依赖,不自动联网安装。
109
+ - 远端超时且请求可能已完成时,先检查目标文件和脚本摘要;不要重新发起整批导出造成重复查询。
@@ -0,0 +1,115 @@
1
+ # 考勤排班导入与排班表导出
2
+
3
+ 只在以下两类任务加载本 Reference:
4
+
5
+ - 写:导入排班、给员工排班、调班、换班、排休、临时安排后恢复。
6
+ - 读:明确要求把排班导出为 Excel/排班表。
7
+
8
+ 只需查看排班数据或对照班次时直接使用 `attendance schedule get` / `attendance shift list`,按 [attendance.md](attendance.md) 执行,不加载本文件。
9
+
10
+ ## 入口选择
11
+
12
+ | 意图 | 唯一推荐入口 | 说明 |
13
+ |---|---|---|
14
+ | 导入/修改/恢复排班 | `python3 scripts/attendance_schedule_import.py` | 脚本负责组类型、班次归属、记录格式和确认门禁;不要手拼底层 import payload |
15
+ | 导出排班 Excel | `python3 scripts/attendance_schedule_export.py` | 脚本分批查询、补齐姓名/班次名并生成日历表 |
16
+ | 仅查看 JSON | `dws attendance schedule get --users ... --start ... --end ... --format json` | 无需脚本和 Excel |
17
+ | 仅看 7 天计划上下班/休息日 | `dws attendance shift list --users ... --start ... --end ... --format json` | 最多 50 人、7 天 |
18
+
19
+ 已知上述入口时不要先查 Help、产品 Schema 或 Shortcut 列表。只有脚本真实报 `unknown command/flag` 时查一次对应 leaf Help;参数/确认不明时只查一次精确 leaf compact Schema。
20
+
21
+ `schedule get` 的 CLI 日期入参仍使用 `YYYY-MM-DD` 或 `YYYY-MM-DD HH:mm:ss`;CLI 会把日期规范化为上游要求的 datetime 字符串。不要自行换算或传 Unix 毫秒时间戳。
22
+
23
+ 性能优化只能消除重复发现和重复查询,不能省略排班记录、日期、班次身份、休息状态、失败项或写后回读。需要完整范围时必须覆盖所有目标用户和日期;空记录、休息日和查询不完整必须分别表达。
24
+
25
+ ## 排班写入 Golden Route
26
+
27
+ ### 1. 解析真实目标
28
+
29
+ - 人名:`dws aisearch person --query "<姓名>" --dimension name --format json`。零命中或多候选时停止。
30
+ - 明确给出考勤组名称:`dws attendance group search --query "<名称>" --type TURN --page 1 --limit 20 --format json`,必须唯一命中。
31
+ - 只给“我的考勤组”:可用 `dws attendance rules --date <YYYY-MM-DD> --format json` 取得当前用户 groupId;该命令不能据此推断其他员工的考勤组。
32
+ - 部门成员:先唯一解析部门,再 `dws contact dept list-members --ids <deptId> --format json`;不要把 deptId 当 userId。
33
+
34
+ 所有 ID 都必须来自本轮同一 profile 的真实返回,禁止复用历史 ID。
35
+
36
+ ### 2. 校验考勤组与班次
37
+
38
+ 执行:
39
+
40
+ ```bash
41
+ dws attendance group get --group-id <GROUP_ID> --format json
42
+ ```
43
+
44
+ 必须满足:
45
+
46
+ - `groupVO.type == TURN`。FIXED/NONE 不能导入排班。
47
+ - 目标用户属于该组;需要时用 `group filtered-get --group-id <GROUP_ID> --member` 验证。
48
+ - 班次只能来自该组的 `shiftVOList` / `classIds`。先在组返回的班次中按名称匹配;零命中或多候选停止。
49
+ - 只有组结果缺班次名称时,才按组内已有 classId 调 `class get` 补齐;禁止用企业全局 `class search` 随意选一个同名班次。
50
+
51
+ ### 3. 写前保存与预览
52
+
53
+ 临时修改/恢复或覆盖已有日期时,先保存原排班:
54
+
55
+ ```bash
56
+ dws attendance schedule get --users <USER_IDS> --start <START> --end <END> --format json
57
+ ```
58
+
59
+ 构建非空 JSON 数组,每项至少包含:
60
+
61
+ ```json
62
+ {"userId":"user001","workDate":"2026-08-31","classId":123456,"isRest":"N"}
63
+ ```
64
+
65
+ 排休使用真实约定 `isRest="Y"`,并保留脚本/当前接口要求的 classId。向用户展示完整预览:考勤组、员工姓名、日期、星期、班次名称/排休、覆盖范围。不能只显示 userId/classId。
66
+
67
+ `schedule import` 是 `confirmation=user_required`。只有用户确认了这份完整预览后,才能进入执行;确认前可用脚本 `--dry-run` 做零写入校验。
68
+
69
+ ### 4. 执行
70
+
71
+ ```bash
72
+ python3 scripts/attendance_schedule_import.py \
73
+ --group-id <GROUP_ID> \
74
+ --schedules '<JSON数组>' \
75
+ --confirm
76
+ ```
77
+
78
+ 脚本会二次校验 TURN、组内班次和记录格式,再调用当前真实 leaf(底层参数为 `--groupId/--scheduleVOS`)。Agent 不要绕过脚本改用旧的 `--group-id/--schedules` 原子命令写法。
79
+
80
+ ### 5. 回读、恢复与结果
81
+
82
+ - 写后用相同 users/date 调 `schedule get`,逐项核对 userId、workDate、classId/isRest;只凭脚本退出码不能宣称成功。
83
+ - 用户要求“临时修改后恢复”时,用步骤 3 保存的原排班恢复,再次回读。原来无排班与休息日必须按真实结构区分,禁止编造默认班次。
84
+ - 修改已提交但回读失败时,不要盲目重放;先保留目标范围并再次只读对账。无法确定时报告 commit-unknown。
85
+ - 批量中部分员工失败时逐项列出成功/失败/未知;不得把部分成功表述为全部成功。
86
+
87
+ ## 排班表 Excel 导出
88
+
89
+ ### 1. 收集范围
90
+
91
+ - 员工范围必填:指定员工、部门、考勤组成员或明确 userId 列表。
92
+ - 日期范围必填,格式 `YYYY-MM-DD`。本周=周一到周日,本月=1 日到真实月末;使用当前会话时区。
93
+ - 人员/日期缺失时一次性询问;不追问输出文件名,缺省交给脚本生成。
94
+
95
+ ### 2. 执行
96
+
97
+ ```bash
98
+ python3 scripts/attendance_schedule_export.py \
99
+ --users <USER_ID_1,USER_ID_2> \
100
+ --start <YYYY-MM-DD> \
101
+ --end <YYYY-MM-DD> \
102
+ [--output <相对路径.xlsx>]
103
+ ```
104
+
105
+ 脚本自动完成:按 20 人分批调用 `schedule get`、userId→姓名、classId→班次名称、按人×日期生成 Excel。不要在 Agent 中重复查同一批排班或手工拼表。
106
+
107
+ 只允许工作目录内安全相对输出路径,默认不覆盖已有文件。向用户返回脚本 stdout 的路径、人数、日期范围、记录数和 warning,不粘贴完整 Excel 内容。
108
+
109
+ ## 错误最短路径
110
+
111
+ 1. 考勤组非 TURN、目标不在组内、班次不属于组:写入前停止,展示真实冲突,不换同名目标。
112
+ 2. 权限错误:提示需要考勤管理员/对应管理范围,不切 profile、不改用底层 API。
113
+ 3. `unknown flag`:只查真实失败的 leaf Help 一次;不要尝试旧 flag 组合。
114
+ 4. 脚本依赖缺失:报告缺失依赖,不自动联网安装。
115
+ 5. 空/异常返回:保留员工和日期范围,按失败或不完整处理;禁止把空结构当作“全部休息”。
@@ -0,0 +1,129 @@
1
+ # 考勤假期、余额与变更流水
2
+
3
+ 本 Reference 处理假期类型、余额、余额变更记录、假期规则修改、余额设置和假期余额 Excel。请假/加班/补卡审批表单与记录走 [attendance.md](attendance.md);考勤统计 Excel 走 [attendance-report.md](attendance-report.md)。
4
+
5
+ 已知下列路由时直接执行,不先查 vacation Help、产品 Schema 或 Shortcut 列表。只有参数/确认不确定时查一次精确 leaf compact Schema;只有真实 `unknown flag` 时查一次 leaf Help。
6
+
7
+ ## Golden Route
8
+
9
+ | 用户意图 | 唯一推荐入口 | 关键边界 |
10
+ |---|---|---|
11
+ | 列出可用假期规则/类型 | `dws attendance vacation types --format json` | 无业务参数;从真实返回读取 leaveCode、名称、单位、来源和适用范围 |
12
+ | 查询某人某类当前余额 | `dws attendance vacation balance` | `--users <ids> --leave-code <code>`;当前 main 的 leave-code 必填 |
13
+ | 查询某人某类余额变更流水 | `dws attendance vacation records` | `--user <id> --leave-code <code> --start YYYY-MM-DD --end YYYY-MM-DD`;四项均必填 |
14
+ | 查询某时间段假期使用数据(管理员) | `dws attendance report query-leave` | `--users --leave-names --start/--end "YYYY-MM-DD HH:mm:ss"`;最多 20 人、32 天 |
15
+ | 修改假期规则 | `dws attendance vacation update-type` | 仅目标规则当前 `leaveStatisticType=freedom`;`--leave-code` 加至少一个修改字段;user_required |
16
+ | 设置员工假期余额 | `dws attendance vacation save-balance` | SET 替换,不是 ADD;user_required |
17
+ | 导出多员工/多假期余额 Excel | `python3 scripts/attendance_vacation_balance.py` | 脚本逐个真实 leaveCode 查询并横向汇总 |
18
+
19
+ ## 只读查询
20
+
21
+ ### 1. 解析人和假期规则
22
+
23
+ - 姓名先用 `dws aisearch person --query "<姓名>" --dimension name --format json`;零命中、多候选停止。
24
+ - 先调用 `vacation types`,按假期名称唯一匹配 leaveCode。不要猜 UUID,不跨 profile 复用历史 code。
25
+ - 用户要求年假和调休等多个类型时,对每个匹配 leaveCode 分别查询;不能省略 leave-code 后声称查询了全部。
26
+ - `corpId` / `opUserId` 由当前登录上下文注入,不向用户索要。
27
+
28
+ ### 2. 当前余额
29
+
30
+ ```bash
31
+ dws attendance vacation balance \
32
+ --users <USER_ID_1,USER_ID_2> \
33
+ --leave-code <LEAVE_CODE> \
34
+ --format json
35
+ ```
36
+
37
+ 返回时同时展示假期名称、leaveCode 对应单位和真实余额。`visible=false` 表示该员工不适用该规则,不等于余额 0;“假期类型没有余额”按“不限制余额”处理;权限错误不做同义重试。
38
+
39
+ ### 3. 变更流水
40
+
41
+ ```bash
42
+ dws attendance vacation records \
43
+ --user <USER_ID> --leave-code <LEAVE_CODE> \
44
+ --start <YYYY-MM-DD> --end <YYYY-MM-DD> \
45
+ --format json
46
+ ```
47
+
48
+ 按服务端真实时间、变更数量、原因和有效期展示;不要把空数组描述成“没有发放过”,只能说“该查询范围返回 0 条记录”。用户要求“今年”时使用当年 1 月 1 日到当前日期;不得查询未来日期补齐全年。
49
+
50
+ ## 修改假期规则
51
+
52
+ `vacation update-type` 为 `confirmation=user_required`。流程:
53
+
54
+ 1. `vacation types` 唯一定位规则并保存完整当前值。
55
+ 2. 检查目标规则的精确 `leaveStatisticType`。只有值严格等于 `freedom` 时才能继续;其他值立即报告后端不支持,不调用写接口、不改写枚举、不查 Help、不重试。能力缺陷允许正确阻塞,不为追求 case 成功而绕过。
56
+ 3. 仅组装用户要求的变更字段;展示名称/code、`当前值 → 新值`、适用范围影响。
57
+ 4. 用户确认后执行;写后再次 `vacation types`,按同一 leaveCode 核对。
58
+
59
+ 可用修改字段:`--name`、`--unit day|halfDay|hour`、`--paid`、`--per-hours`、`--when-can-leave entry|formal`、`--visibility-rules '<JSON数组>'`。至少传一项。
60
+
61
+ 可见范围约定:
62
+
63
+ - 不传 `--visibility-rules`:不修改。
64
+ - 指定范围:`[{"type":"staff|dept|label|employee_type","visible":["id1"]}]`。
65
+ - 全公司:必须显式使用哨兵 `[{"type":"dept","visible":["-1"]}]`。
66
+ - `[]`、`[{}]` 或空 visible 无效,禁止用来表达全公司或清空。
67
+
68
+ 临时修改单位/一天折算时长后恢复时,确认计划必须同时覆盖修改和恢复;修改后回读,再用步骤 1 保存值恢复并回读。恢复失败报告 partial,不得宣称完成。
69
+
70
+ ## 设置假期余额
71
+
72
+ `vacation save-balance` 是 SET:传入新总余额会替换当前余额。即使用户说“增加 3 天”,也必须先读取当前值再计算新总值。
73
+
74
+ 1. 用 `vacation balance --users <单个目标> --leave-code <code>` 查询当前值和单位。
75
+ 2. 计算并展示:目标员工、假期、当前余额、新总余额、差额、原因、可选有效期。
76
+ 3. 获得明确确认后执行:
77
+
78
+ ```bash
79
+ dws attendance vacation save-balance \
80
+ --target <USER_ID> --leave-code <LEAVE_CODE> \
81
+ --num <NEW_TOTAL> --reason "<REASON>" \
82
+ [--start <YYYY-MM-DD> --end <YYYY-MM-DD>] \
83
+ --format json
84
+ ```
85
+
86
+ 4. 再次调用 `vacation balance` 验证新总值。CLI 会把实际单位数量乘以 100 发送(例如 8→800),Agent 传用户可读的 8,不自行乘 100。
87
+
88
+ 可能提交后超时不得盲目重试,先读余额对账。批量调整需逐员工保留成功/失败/未知账本;不要把一人成功扩展成全部成功。
89
+
90
+ ## 假期余额 Excel
91
+
92
+ ### 1. 解析范围
93
+
94
+ - 人员范围必填:指定员工、部门/多部门或明确 userId 列表。完整解析并去重,禁止只取部门第一页。
95
+ - 用户未指定假期类型时导出全部可见规则,不传 `--leave-keywords`;指定类型时传名称关键词,脚本实时映射 leaveCode。
96
+
97
+ ### 2. 执行
98
+
99
+ ```bash
100
+ python3 scripts/attendance_vacation_balance.py \
101
+ --users <USER_ID_1,USER_ID_2> \
102
+ [--leave-keywords "年假,病假,调休"] \
103
+ [--out <相对路径.xlsx>]
104
+ ```
105
+
106
+ `--leave-keywords` 是脚本参数,不是 `dws attendance vacation balance` 参数。脚本自动执行:
107
+
108
+ - `vacation types` 建立名称、leaveCode、单位、source 和列顺序。
109
+ - 对每个匹配规则逐个调用 `vacation balance --leave-code`。
110
+ - userId→姓名/部门/入职信息。
111
+ - 每名员工一行,假期规则横向展开并在表头保留单位。
112
+
113
+ 特殊值必须保真:
114
+
115
+ - 服务端表示无余额上限 → `不限制余额`。
116
+ - `visible=false` 或员工缺少规则依赖的入职/首次工作时间 → `不适用`。
117
+ - `source=external` 且非权限类余额错误 → `外部规则暂无余额,需通过接口初始化更新余额`。
118
+ - 真实无返回且无上述证据 → `未设置`,不得填 0。
119
+
120
+ 返回脚本 stdout 中的路径、员工数、规则列数、筛选关键词和 warning,不粘贴完整 Excel。只允许工作目录内安全相对路径,默认不覆盖。
121
+
122
+ ## 错误最短路径
123
+
124
+ 1. 假期名称零命中/多候选:停止,展示候选;禁止按列表首项继续。
125
+ 2. 权限不足:说明目标员工不在管理范围或需要管理员权限,不切换组织/身份。
126
+ 3. leaveCode 为空或过期:重新调用一次 `vacation types`;仍不存在则停止,不猜 code。
127
+ 4. 写请求可能已提交:先按同一 user/code 回读对账;禁止自动重放。
128
+ 5. Excel 脚本依赖缺失:报告缺失依赖,不自动联网安装。
129
+ 6. 返回结构漂移:脚本明确提示后才用一次 `--inspect`;不要先加载产品 Schema。
@@ -0,0 +1,149 @@
1
+ # 考勤查询、规则与设置
2
+
3
+ 本 Reference 处理打卡流水/结果、个人详情、签到、审批记录与入口、班次定义、考勤组、考勤规则、个人/全局设置和管理员修正。
4
+
5
+ 以下场景不要先读本文件:
6
+
7
+ - 排班导入、调班、排休、排班表 Excel → [attendance-schedule.md](attendance-schedule.md)
8
+ - 考勤/月度/每日/明细/审批记录/签到 Excel → [attendance-report.md](attendance-report.md)
9
+ - 假期类型、余额、变更流水、假期规则或余额导出 → [attendance-vacation.md](attendance-vacation.md)
10
+
11
+ ## 最小执行契约
12
+
13
+ - 已知路由和参数足够时直接执行,结构化结果统一加 `--format json`。不要先查产品级 Schema、Shortcut 列表或 Help。
14
+ - 只有参数/约束/确认语义不确定时查一次精确 leaf Schema;只有真实出现 `unknown command` / `unknown flag` 时查一次精确 leaf Help。禁止连续试探同义命令。
15
+ - 姓名先用 `dws aisearch person --query "<姓名>" --dimension name --format json` 解析;零命中、多候选或跨 profile 时停止,禁止选择第一项。后续只复用本轮真实返回的 userId/groupId/classId/ruleId/leaveCode。
16
+ - profile、组织和操作者身份从目标解析到最终读取/写入必须保持一致。宿主或 CLI 自动注入的 `corpId` / `opUserId` 不向用户索要;精确 leaf 明确要求的操作者字段除外。
17
+ - 写操作是否确认以 Runtime/精确 Schema 的 `confirmation` 为准。`user_required` 时先读当前值、展示目标和差异、获得确认,再执行并回读;存储示例不预填 `--yes`。
18
+ - 退出码 0 或传输成功不等于业务成功;检查真实业务结果、稳定 ID、分页完整性和失败项。可能已提交的写请求不得盲目重试。
19
+ - 性能优化只减少重复发现和重复请求,不删减用户要求的记录、字段、分页、失败项或验证。窄投影必须保留稳定 ID、请求所需业务字段、业务状态和完整性元数据;最终回答必须自包含,不用“以上/如上”代替结果。
20
+
21
+ ## Golden Route
22
+
23
+ ### 记录、结果与统计
24
+
25
+ | 用户意图 | 推荐入口 | 关键参数/边界 |
26
+ |---|---|---|
27
+ | 某人某天个人考勤详情 | `dws attendance record get` | `--user <userId> --date YYYY-MM-DD`;返回详情,不替代跨日统计 |
28
+ | 原始打卡流水:实际时间、地点、定位方式 | `dws attendance +check-record` | `--users <ids> --start YYYY-MM-DD --end YYYY-MM-DD`;区间不超过 1 个月 |
29
+ | 打卡判定:Normal/Late/Early/NotSigned/Absenteeism | `dws attendance +check-result` | 同上;最多 100 人;`--limit 1..1000 --offset >=0` |
30
+ | 周/月摘要 | `dws attendance summary` | `--user <id> --date <日期> --stats-type week\|month` |
31
+ | 当天适用考勤组、范围与规则 | `dws attendance rules` | `--date YYYY-MM-DD` 或 `YYYY-MM-DD HH:mm:ss` |
32
+ | 未来 7 天内计划班次 | `dws attendance shift list` | `--users <ids> --start YYYY-MM-DD --end YYYY-MM-DD`;最多 50 人、最多 7 天 |
33
+ | 已导入的排班记录 | `dws attendance schedule get` | `--users <ids> --start <日期> --end <日期>`;只查看/对照时直接用,不强制导出 Excel |
34
+ | 签到/外勤签到记录 | `dws attendance checkin records` | `--operator-corp-id`、`--operator-staff-id`、`--staff-ids`、`--start/--end "YYYY-MM-DD HH:mm:ss"`;最多 100 人、最多 7 天 |
35
+
36
+ `签到` 是外勤签到,走 `checkin records`;`打卡流水` 走 `+check-record`;`打卡结果/迟到/缺卡/旷工` 走 `+check-result`。三者不能互换。
37
+
38
+ 分页规则:
39
+
40
+ - 用户明确要“前 50 条再下一页”时,先 `+check-result --limit 50 --offset 0`,再使用返回 continuation/下一 offset;不要重复第一页。
41
+ - “全部/完整”需要继续到 `meta.pagination.endpoint_exhausted=true`;达到边界但未耗尽时返回 next token,不得宣称完整。
42
+ - 无流水只是“无打卡数据”,不等于正常,也不等于缺卡。缺卡/旷工以 `+check-result` 的判定为准;完全无记录单独列出。
43
+
44
+ ### 考勤审批
45
+
46
+ | 用户意图 | 推荐入口 | 关键参数/边界 |
47
+ |---|---|---|
48
+ | 查已提交的请假/加班/出差外出/补卡记录 | `dws attendance +list-approve` | `--users <ids> --types overtime,trip,leave,patch --start YYYY-MM-DD --end YYYY-MM-DD` |
49
+ | 获取可提交表单入口 | `dws attendance +get-approve-template` | `--type leave\|overtime\|repair-check\|travel\|out`;只返回入口,不代填提交 |
50
+
51
+ 查询接口把出差和外出合并为 `trip`;表单入口必须区分外出 `travel` 与出差 `out`。多个模板全部返回,将名称最匹配者置前,并用 `[表单名称](submitUrl)` 展示,禁止裸露 URL 或只返回一个模板。
52
+
53
+ ### 补卡规则、加班规则与班次定义
54
+
55
+ | 用户意图 | 推荐入口 | 关键参数/边界 |
56
+ |---|---|---|
57
+ | 补卡规则候选 ID/名称 | `dws attendance +search-adjustment-rule` | `--query <名称> --page <n> --limit <=200`;投影只保证 ID/名称 |
58
+ | 补卡规则完整列表字段 | `dws attendance adjustment search` | 同样使用 `--query/--page/--limit`;需要有效期、次数、适用范围时用此原子入口 |
59
+ | 已知补卡规则 ID 取详情 | `dws attendance adjustment get --adjustment-id <id>` | 当前下游可能返回空详情;空 result 必须报告 unavailable,不把搜索摘要冒充详情 |
60
+ | 加班规则候选 ID/名称 | `dws attendance +search-overtime-rule` | `--query <名称> --page <n> --limit <=200` |
61
+ | 加班规则完整列表字段 | `dws attendance overtime search` | 比较工作日/休息日/节假日计算方式时使用 |
62
+ | 已知加班规则 ID 取完整详情 | `dws attendance +get-overtime-rule --overtime-id <id>` | 响应 ID 必须匹配请求 ID |
63
+ | 班次候选 ID/名称 | `dws attendance +search-class` | `--query <名称> --filter-type ALL\|MINE_OWN --page <n> --limit <=200`;窄投影 |
64
+ | 班次完整配置列表 | `dws attendance class search` | 需要上下班、休息段或完整配置时使用;分页参数仍是 `--page/--limit` |
65
+ | 已知班次 ID 精确详情 | `dws attendance class get --class-id <id>` | 仅对当轮真实 ID 使用 |
66
+
67
+ 按名称搜索时,严格使用 `--query`,不要猜 `--name` 或 `--page-size`。用户指定“前两页”时只读 page 1 和 page 2;若需唯一目标,零命中停止,多候选先消歧。
68
+
69
+ ### 考勤组与设置
70
+
71
+ | 用户意图 | 推荐入口 | 关键参数/边界 |
72
+ |---|---|---|
73
+ | 搜索考勤组 | `dws attendance group search` | `--query`、`--type FIXED\|TURN\|NONE`、`--page/--limit`;按需 `--query-position/--query-ble` |
74
+ | 考勤组完整配置 | `dws attendance group get --group-id <id>` | 完整配置、负责人、班次与范围 |
75
+ | 只取成员/地址/Wifi/蓝牙 | `dws attendance group filtered-get` | `--group-id` 加 `--member/--position/--wifi/--bles`;避免全量读取 |
76
+ | 当前登录用户本人的个人提醒/极速打卡/通知设置 | `dws attendance selfsetting get` | `--user <本人 userId> --setting-scene <scene>`;不支持查询其他员工,管理员也不能代查 |
77
+ | 企业全局设置(管理员) | `dws attendance globalsetting get` | `--scope 企业\|全公司\|所有人 --setting-scene <scene>` |
78
+ | 简单报表字段查询(非 Excel) | `dws attendance report columns` → `report query-data` | 先取有权字段 ID;`query-data` 最多 20 人、32 天 |
79
+ | 简单假期报表查询(非 Excel) | `dws attendance report query-leave` | `--users --leave-names --start/--end "YYYY-MM-DD HH:mm:ss"` |
80
+
81
+ `setting-scene` 只取:`checkRemind`、`fastCheck`、`checkResultNotify`、`lackRemind`、`personalAttendStatNotify`、`bossAttendStatNotify`。只查询用户指定的 scene,不默认把六类全部读取。
82
+
83
+ `selfsetting get/save` 仅支持当前登录用户本人,`--user` 必须是本人 userId。目标为其他员工时立即报告能力不支持;禁止调用 selfsetting,禁止改查当前用户,禁止用 globalsetting 冒充替代,也不要 Help 或重复尝试。能力缺陷允许正确阻塞,不为追求成功率绕过服务端边界。
84
+
85
+ ## 写操作最短路径
86
+
87
+ 下列命令均为 `confirmation=user_required`:
88
+
89
+ | 操作 | 命令 | 写前/写后要求 |
90
+ |---|---|---|
91
+ | 创建班次 | `attendance class create --name --class-vo` | `class-vo.sections[].times` 明确上下班;先按同名 search 防重复,写后按返回 ID/唯一名称回读 |
92
+ | 更新班次 | `attendance class update --class-id [--name/--owner/--class-vo]` | 先 `class get` 保存完整原值;只改目标字段;写后回读 |
93
+ | 创建考勤组 | `attendance group create --name --type [--owner/--group-vo]` | 同名 search 防重复;FIXED 的 `group-vo` 必须含 `defaultClassId` 和 7 天 `workDayClassList` |
94
+ | 更新考勤组 | `attendance group update --group-id [--name/--type/--owner/--enable-outside-check/--classIds/--group-vo]` | 先 `group get` 保存原值;复杂对象以当前配置为基线,禁止凭空全量覆盖 |
95
+ | 更新成员 | `attendance group update-members --group-id` 加至少一个增删 flag | 每类最多 20 个 ID;写前 `filtered-get --member`,写后回查目标差异 |
96
+ | 更新本人个人设置 | `attendance selfsetting save --user <本人 userId> --setting-scene <scene> <scene字段>` | 仅当前登录用户本人;先同 scene `get`;禁止把不同 scene 字段混用 |
97
+ | 更新全局设置 | `attendance globalsetting save --scope --setting-scene <scene> <scene字段>` | 仅管理员;先同 scope/scene `get`,写后回读 |
98
+ | 管理员修正打卡 | `attendance boss-check --plan-id <id>` 或 `--result-id <id>` | 两种 ID 至少一个;先定位唯一记录并展示 `当前值 → 新值`,写后重新查询结果 |
99
+
100
+ 临时修改并恢复时:写前保存完整原配置和稳定 ID;一次性展示“修改 + 验证 + 恢复”计划并获得明确确认;修改后回读,再用保存值恢复并再次回读。中途验证失败也要尝试恢复;恢复失败必须报告 partial/commit-unknown,不能宣称任务完成。
101
+
102
+ 复杂 payload、枚举和罕见字段只在精确 leaf Schema 中读取,禁止为已知简单 flag 加载产品级 Schema。班次/考勤组复杂 JSON 必须基于写前真实对象做最小变更。
103
+
104
+ <!-- VISIBLE_SHORTCUTS_START -->
105
+ ## Shortcuts(无专用脚本/recipe 时优先)
106
+
107
+ 以下 shortcut 同时进入公开 catalog 与 Runtime Schema。先按本 skill 的意图表、脚本和 recipe 路由:存在精确覆盖该场景的专用脚本/recipe 时按其执行;否则用户意图命中时,shortcut 优先于手写原子命令。命令已选中时直接执行;只在参数或安全语义不确定时读取 Agent leaf Schema(例如 `dws schema --cli-path "attendance +<shortcut>" --compact --format json`),在当前 Cobra flags 不确定时读取 `dws attendance <shortcut> --help`。只有参数映射、接口绑定或 provenance 审计才省略 `--compact`。仅当现有路由和 reference 都无法定位低频能力时,才用 `dws shortcut list --service attendance --format json` 批量发现。
108
+
109
+ | Shortcut | 风险 | 适用场景 |
110
+ |---|---|---|
111
+ | `dws attendance +check-record` | read | 查询用户打卡流水(打卡时间/地点/定位方式) |
112
+ | `dws attendance +check-result` | read | 查询用户打卡结果(迟到/早退/缺卡等) |
113
+ | `dws attendance +get-approve-template` | read | 查询补卡/请假/加班/外出/出差审批提交链接 |
114
+ | `dws attendance +get-overtime-rule` | read | 根据加班规则主键 ID 查询加班规则详情 |
115
+ | `dws attendance +list-approve` | read | 查询用户考勤审批单(补卡/加班/请假/出差外出) |
116
+ | `dws attendance +search-adjustment-rule` | read | 查询当前用户可管理的补卡规则列表 |
117
+ | `dws attendance +search-class` | read | 查询当前用户可管理的班次详情列表 |
118
+ | `dws attendance +search-overtime-rule` | read | 查询当前用户可管理的加班规则列表 |
119
+ <!-- VISIBLE_SHORTCUTS_END -->
120
+
121
+ ## 复用脚本
122
+
123
+ - [attendance_my_record.py](../scripts/attendance_my_record.py):自动解析当前用户,查询今天或指定日期的本人考勤记录;适合“查我今天考勤”这类单人快捷查询。
124
+ - [attendance_team_shift.py](../scripts/attendance_team_shift.py):按明确的 userId 列表查询团队日期范围内的排班;默认本周一至周五,最多 50 人。
125
+
126
+ 脚本已覆盖身份解析、日期默认值或批量边界时直接运行;不要先手写同一批查询再让脚本重复调用。
127
+
128
+ ## 日期、结果与聚合
129
+
130
+ - 本周=周一到周日;本月=1 日到真实月末;用户给定范围时原样使用。按当前会话时区计算,禁止硬编码。
131
+ - `check/approve/shift/schedule/vacation records` 使用 `YYYY-MM-DD`;`checkin/report` 使用 `YYYY-MM-DD HH:mm:ss`。不要混用。
132
+ - 超过 3 条记录的求和、分组、计数、排序或跨字段核对使用本地脚本处理,保留原始单位;不要靠目测。仅当用户要求 Excel 时切换专项报表脚本。
133
+ - 返回中没有某人/某日时标记“无记录”;`NotSigned`、`Absenteeism` 分别按真实结果展示;不把缺失数据补成 0 或 Normal。
134
+ - 对“最近一个有记录的日期”,从实际返回的日期字段取最大值,再把这个日期传给后续 `rules`/`record get`/`shift list`;禁止用今天或区间结束日代替。
135
+
136
+ ## 错误最短路径
137
+
138
+ 1. 零命中、多候选、目标类型不明:停止后续写入,展示候选或要求用户明确;禁止默认第一项。
139
+ 2. `unknown flag`:只查该 leaf Help 并修正一次;`unknown command`:只查一次精确父级/Shortcut 清单,禁止猜后缀。
140
+ 3. 参数或确认不清楚:只查一次精确 leaf compact Schema,字段投影限制为 `parameters,constraints,confirmation`;禁止产品级或 `--all`。
141
+ 4. 权限错误:说明需要的管理员/管理范围,不切 profile、不改目标、不用底层接口绕过。
142
+ 5. 只读后端依赖错误可保持原参数重试一次;写操作在无法证明未开始时先回读对账,禁止自动重放。
143
+ 6. 返回 `null`、缺稳定 ID、响应 ID 不匹配或分页停滞:按真实失败/不完整处理,不包装成空成功。
144
+
145
+ ## 跨产品边界
146
+
147
+ - 考勤类请假/加班/补卡/出差外出记录和提交入口属于 attendance;通用 OA 审批实例状态、同意/拒绝/转交属于 `dingtalk-misc` 的 OA Reference。
148
+ - 人名解析优先 `dingtalk-aisearch`;已知 userId 的批量姓名/部门补齐用 `dingtalk-contact`。
149
+ - 普通活动签到、日历会议、持续事件监听不属于 attendance;分别路由日历/事件产品。
@@ -0,0 +1,42 @@
1
+ # 应用基础操作
2
+
3
+ > 操作的是「应用」容器本体(见 [devapp.md](../devapp.md) 概念地图);启停/删除改的是应用 appStatus,不是版本 versionStatus。
4
+
5
+ 应用列表查询、详情、创建、修改、生命周期启停和删除。参数用对应命令的 `--help` 查询。
6
+
7
+ ## 应用定位
8
+
9
+ 写操作与多数单应用命令统一用 `--unified-app-id`(全树主键)定位。`dev app get` 额外支持只读按 `--app-key`(=clientId)查详情;`--name` 仍只在 `dev app list` 作列表过滤。拿到 appKey 时可先 `app get --app-key` 核验并拿回 `unifiedAppId`;写操作必须由用户或上游结果提供明确 `unifiedAppId`。
10
+
11
+ ## 应用状态 appStatus
12
+
13
+ `app get` 的 `appStatus` 是字符串,取值如 `normal`、`published`。`app list` 不回这个字段(恒 `null`),看应用状态以 `app get` 为准。应用状态 `appStatus` 和版本状态 `versionStatus` 是两套,别混。遇到没见过的 `appStatus` 值原样展示。
14
+
15
+ `app create`、`app update` 不返回状态字段;版本状态由 `version create` 返回的 `status`(值如 INIT)表达,见 version.md。
16
+
17
+ ## 要点
18
+
19
+ - `get` 主要用于定位核验;若返回里带 `appSecret`,脱敏处理,不复制到回答;主动读凭证走 `credentials get`。
20
+ - `disable/enable` 成功返回 `{disabled:true}` / `{enabled:true}` + `message`,不回 `appStatus`;以这个布尔判操作成败。要确认最终生效态再 `get` 看 `appStatus` 字符串值。
21
+ - `delete` 前必须展示应用摘要;删除是异步,成功后延迟从列表消失。
22
+
23
+ ## 错误处理
24
+
25
+ | 情况 | 处理 |
26
+ |------|------|
27
+ | 多应用命中 | 展示候选,停止写操作 |
28
+ | `ServiceResult.success=false` | 透传 `errorCode/errorMsg` |
29
+
30
+ ## 发现命令
31
+
32
+ 调用任何方法前先查清楚再敲:
33
+
34
+ ```
35
+ # 浏览命令组下的子命令与 flag
36
+ dws dev app --help
37
+
38
+ # 查某方法的必填参数、类型、默认值
39
+ dws dev <command-path> --help
40
+ ```
41
+
42
+ 按 `--help` 输出构造 flag;不要凭旧 schema 名称猜参数。