@huicai/cli 2026.714.0 → 2026.721.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (335) hide show
  1. package/README.md +2 -1
  2. package/bin/huicai.js +83 -0
  3. package/package.json +2 -2
  4. package/skills/ab-testing/SKILL.md +58 -0
  5. package/skills/ab-testing/scripts/__pycache__/ab_test.cpython-312.pyc +0 -0
  6. package/skills/ab-testing/scripts/ab_test.py +71 -0
  7. package/skills/academic-writing/SKILL.md +54 -0
  8. package/skills/accounting-ops/SKILL.md +68 -0
  9. package/skills/accounting-ops/scripts/__pycache__/acct_tools.cpython-312.pyc +0 -0
  10. package/skills/accounting-ops/scripts/acct_tools.py +89 -0
  11. package/skills/ai-agent/SKILL.md +85 -0
  12. package/skills/ai-agent/references/tool-design-checklist.md +51 -0
  13. package/skills/ai-aiops/SKILL.md +73 -0
  14. package/skills/ai-aiops/references/aiops-rollout-checklist.md +36 -0
  15. package/skills/ai-coding/SKILL.md +89 -0
  16. package/skills/ai-coding/references/task-brief-template.md +48 -0
  17. package/skills/ai-compliance/SKILL.md +74 -0
  18. package/skills/ai-compliance/references/genai-compliance-checklist.md +40 -0
  19. package/skills/ai-eval/SKILL.md +80 -0
  20. package/skills/ai-eval/scripts/eval-runner.py +150 -0
  21. package/skills/ai-llm-app/SKILL.md +90 -0
  22. package/skills/ai-llm-app/references/llm-integration-checklist.md +39 -0
  23. package/skills/ai-mlops/SKILL.md +72 -0
  24. package/skills/ai-mlops/scripts/token-cost-calc.py +108 -0
  25. package/skills/ai-multimodal/SKILL.md +86 -0
  26. package/skills/ai-multimodal/scripts/field-validate.py +182 -0
  27. package/skills/ai-prompt/SKILL.md +75 -0
  28. package/skills/ai-prompt/references/prompt-template.md +46 -0
  29. package/skills/ai-rag/SKILL.md +76 -0
  30. package/skills/ai-rag/scripts/chunk-inspect.py +129 -0
  31. package/skills/anomaly-detection/SKILL.md +54 -0
  32. package/skills/anomaly-detection/scripts/__pycache__/anomaly.cpython-312.pyc +0 -0
  33. package/skills/anomaly-detection/scripts/anomaly.py +99 -0
  34. package/skills/api-integration/SKILL.md +74 -0
  35. package/skills/api-integration/references/signing-recipes.md +141 -0
  36. package/skills/arch-design/SKILL.md +57 -0
  37. package/skills/arch-distributed/SKILL.md +81 -0
  38. package/skills/arch-distributed/references/idempotency-review.md +43 -0
  39. package/skills/arch-multitenant/SKILL.md +73 -0
  40. package/skills/arch-multitenant/references/tenant-isolation-checklist.md +34 -0
  41. package/skills/audit-assist/SKILL.md +63 -0
  42. package/skills/audit-assist/scripts/__pycache__/audit_sampling.cpython-312.pyc +0 -0
  43. package/skills/audit-assist/scripts/audit_sampling.py +93 -0
  44. package/skills/audit-chain/SKILL.md +60 -0
  45. package/skills/banking-credit/SKILL.md +59 -0
  46. package/skills/banking-credit/scripts/__pycache__/credit_metrics.cpython-312.pyc +0 -0
  47. package/skills/banking-credit/scripts/credit_metrics.py +53 -0
  48. package/skills/brand-design/SKILL.md +56 -0
  49. package/skills/business-plan/SKILL.md +56 -0
  50. package/skills/capital-ops/SKILL.md +52 -0
  51. package/skills/cicd-pipeline/SKILL.md +85 -0
  52. package/skills/cicd-pipeline/references/pipeline-review-checklist.md +39 -0
  53. package/skills/content-creation/SKILL.md +56 -0
  54. package/skills/corporate-governance/SKILL.md +56 -0
  55. package/skills/crawl-chain/SKILL.md +61 -0
  56. package/skills/customer-service/SKILL.md +51 -0
  57. package/skills/data-analysis/SKILL.md +46 -0
  58. package/skills/data-analysis/scripts/cjk_font.py +56 -0
  59. package/skills/data-chain/SKILL.md +54 -0
  60. package/skills/data-governance/SKILL.md +54 -0
  61. package/skills/data-report-pro/SKILL.md +65 -0
  62. package/skills/data-report-pro/scripts/__pycache__/bigdata.cpython-312.pyc +0 -0
  63. package/skills/data-report-pro/scripts/bigdata.py +79 -0
  64. package/skills/data-streaming/SKILL.md +87 -0
  65. package/skills/data-streaming/references/job-checklist.md +36 -0
  66. package/skills/data-wrangling/SKILL.md +52 -0
  67. package/skills/data-wrangling/scripts/__pycache__/join_tools.cpython-312.pyc +0 -0
  68. package/skills/data-wrangling/scripts/join_tools.py +99 -0
  69. package/skills/db-es/SKILL.md +68 -0
  70. package/skills/db-es/scripts/es-health.sh +72 -0
  71. package/skills/db-migration/SKILL.md +72 -0
  72. package/skills/db-migration/scripts/checksum-mysql.sql +46 -0
  73. package/skills/db-migration/scripts/checksum-postgres.sql +39 -0
  74. package/skills/db-migration/scripts/compare-reports.py +98 -0
  75. package/skills/db-mysql/SKILL.md +78 -0
  76. package/skills/db-mysql/scripts/mysql-health.sql +80 -0
  77. package/skills/db-postgres/SKILL.md +86 -0
  78. package/skills/db-postgres/scripts/pg-health.sql +67 -0
  79. package/skills/db-redis/SKILL.md +83 -0
  80. package/skills/db-redis/scripts/redis-health.sh +92 -0
  81. package/skills/dev-cpp/SKILL.md +94 -0
  82. package/skills/dev-cpp/references/cmake-sanitizer-snippets.md +56 -0
  83. package/skills/dev-cross-platform/SKILL.md +73 -0
  84. package/skills/dev-cross-platform/references/capability-matrix-template.md +39 -0
  85. package/skills/dev-csharp/SKILL.md +96 -0
  86. package/skills/dev-csharp/references/review-checklist.md +37 -0
  87. package/skills/dev-frontend/SKILL.md +91 -0
  88. package/skills/dev-frontend/scripts/bundle-budget.py +106 -0
  89. package/skills/dev-go/SKILL.md +88 -0
  90. package/skills/dev-go/scripts/go-triage.sh +54 -0
  91. package/skills/dev-harmony/SKILL.md +64 -0
  92. package/skills/dev-harmony/references/harmony-checklist.md +40 -0
  93. package/skills/dev-java/SKILL.md +77 -0
  94. package/skills/dev-java/scripts/jvm-triage.sh +84 -0
  95. package/skills/dev-mobile/SKILL.md +82 -0
  96. package/skills/dev-mobile/references/store-compliance-checklist.md +33 -0
  97. package/skills/dev-node/SKILL.md +82 -0
  98. package/skills/dev-node/scripts/node-triage.sh +78 -0
  99. package/skills/dev-php/SKILL.md +86 -0
  100. package/skills/dev-php/scripts/fpm-calc.py +48 -0
  101. package/skills/dev-python/SKILL.md +81 -0
  102. package/skills/dev-python/scripts/venv-doctor.sh +75 -0
  103. package/skills/dev-rust/SKILL.md +84 -0
  104. package/skills/dev-rust/references/cargo-ci-snippets.md +50 -0
  105. package/skills/dev-toolchain/SKILL.md +78 -0
  106. package/skills/dev-toolchain/scripts/secret-scan.sh +83 -0
  107. package/skills/doc-chain/SKILL.md +58 -0
  108. package/skills/doc-compare/SKILL.md +44 -0
  109. package/skills/doc-compare/scripts/compare.py +93 -0
  110. package/skills/docx-author/SKILL.md +39 -0
  111. package/skills/docx-author/scripts/docx_doc.py +161 -0
  112. package/skills/ecommerce-ops/SKILL.md +54 -0
  113. package/skills/ecommerce-ops/scripts/__pycache__/gmv_decompose.cpython-312.pyc +0 -0
  114. package/skills/ecommerce-ops/scripts/gmv_decompose.py +61 -0
  115. package/skills/education-training/SKILL.md +53 -0
  116. package/skills/ehs-safety/SKILL.md +63 -0
  117. package/skills/email-writing/SKILL.md +52 -0
  118. package/skills/eng-ai/SKILL.md +74 -0
  119. package/skills/eng-ai/references/ai-feature-checklist.md +36 -0
  120. package/skills/eng-architecture/SKILL.md +85 -0
  121. package/skills/eng-architecture/scripts/capacity-calc.py +100 -0
  122. package/skills/eng-automation/SKILL.md +84 -0
  123. package/skills/eng-automation/references/automation-inventory.md +38 -0
  124. package/skills/eng-automation/references/routine-presets.md +73 -0
  125. package/skills/eng-collaboration/SKILL.md +76 -0
  126. package/skills/eng-collaboration/references/collab-templates.md +43 -0
  127. package/skills/eng-complex-env/SKILL.md +84 -0
  128. package/skills/eng-complex-env/references/env-dossier-template.md +52 -0
  129. package/skills/eng-complex-env/scripts/env-recon.sh +152 -0
  130. package/skills/eng-data-platform/SKILL.md +81 -0
  131. package/skills/eng-data-platform/references/table-spec-template.md +39 -0
  132. package/skills/eng-database/SKILL.md +79 -0
  133. package/skills/eng-database/references/schema-review-checklist.md +37 -0
  134. package/skills/eng-develop/SKILL.md +76 -0
  135. package/skills/eng-develop/references/dod-checklist.md +43 -0
  136. package/skills/eng-docs/SKILL.md +71 -0
  137. package/skills/eng-docs/references/runbook-template.md +57 -0
  138. package/skills/eng-efficiency/SKILL.md +75 -0
  139. package/skills/eng-efficiency/scripts/dora-calc.py +104 -0
  140. package/skills/eng-infra/SKILL.md +81 -0
  141. package/skills/eng-infra/references/production-readiness.md +46 -0
  142. package/skills/eng-integration/SKILL.md +82 -0
  143. package/skills/eng-integration/references/integration-dossier-template.md +38 -0
  144. package/skills/eng-legacy/SKILL.md +81 -0
  145. package/skills/eng-legacy/references/modernization-workbook.md +46 -0
  146. package/skills/eng-observability/SKILL.md +78 -0
  147. package/skills/eng-observability/scripts/slo-calc.py +82 -0
  148. package/skills/eng-ops/SKILL.md +74 -0
  149. package/skills/eng-ops/references/postmortem-template.md +67 -0
  150. package/skills/eng-performance/SKILL.md +73 -0
  151. package/skills/eng-performance/scripts/perf-baseline.py +110 -0
  152. package/skills/eng-planning/SKILL.md +79 -0
  153. package/skills/eng-planning/scripts/schedule-calc.py +101 -0
  154. package/skills/eng-quality/SKILL.md +74 -0
  155. package/skills/eng-quality/references/test-plan-templates.md +46 -0
  156. package/skills/eng-release/SKILL.md +78 -0
  157. package/skills/eng-release/references/release-plan-template.md +36 -0
  158. package/skills/eng-reliability/SKILL.md +72 -0
  159. package/skills/eng-reliability/references/resilience-review.md +43 -0
  160. package/skills/eng-requirements/SKILL.md +86 -0
  161. package/skills/eng-requirements/references/story-templates.md +47 -0
  162. package/skills/eng-research/SKILL.md +73 -0
  163. package/skills/eng-research/references/research-templates.md +42 -0
  164. package/skills/eng-security/SKILL.md +73 -0
  165. package/skills/eng-security/references/security-review-checklist.md +33 -0
  166. package/skills/eng-ux/SKILL.md +85 -0
  167. package/skills/eng-ux/references/ux-review-checklist.md +36 -0
  168. package/skills/engineering-chain/SKILL.md +101 -0
  169. package/skills/engineering-chain/references/eng-health-review.md +37 -0
  170. package/skills/env-offline/SKILL.md +81 -0
  171. package/skills/env-offline/scripts/bundle-manifest.sh +94 -0
  172. package/skills/env-private-deploy/SKILL.md +72 -0
  173. package/skills/env-private-deploy/references/delivery-templates.md +35 -0
  174. package/skills/env-xinchuang/SKILL.md +73 -0
  175. package/skills/env-xinchuang/references/adaptation-matrix-template.md +41 -0
  176. package/skills/equipment-tpm/SKILL.md +56 -0
  177. package/skills/equipment-tpm/scripts/oee.py +58 -0
  178. package/skills/esg-report/SKILL.md +58 -0
  179. package/skills/esg-report/scripts/carbon_calc.py +61 -0
  180. package/skills/event-management/SKILL.md +51 -0
  181. package/skills/excel-analysis-chain/SKILL.md +73 -0
  182. package/skills/file-ingest/SKILL.md +51 -0
  183. package/skills/file-ingest/scripts/__pycache__/file_toolkit.cpython-312.pyc +0 -0
  184. package/skills/file-ingest/scripts/file_toolkit.py +404 -0
  185. package/skills/finance-analysis/SKILL.md +60 -0
  186. package/skills/finance-analysis/references/ratios.md +54 -0
  187. package/skills/finance-analysis/scripts/fin_ratios.py +132 -0
  188. package/skills/finance-chain/SKILL.md +59 -0
  189. package/skills/financial-modeling/SKILL.md +58 -0
  190. package/skills/financial-modeling/scripts/fin_model.py +123 -0
  191. package/skills/foreign-trade/SKILL.md +54 -0
  192. package/skills/funnel-cohort/SKILL.md +53 -0
  193. package/skills/funnel-cohort/scripts/__pycache__/funnel.cpython-312.pyc +0 -0
  194. package/skills/funnel-cohort/scripts/funnel.py +105 -0
  195. package/skills/gov-document/SKILL.md +57 -0
  196. package/skills/hr-chain/SKILL.md +51 -0
  197. package/skills/hr-operations/SKILL.md +53 -0
  198. package/skills/info-disclosure/SKILL.md +56 -0
  199. package/skills/infra-gateway/SKILL.md +85 -0
  200. package/skills/infra-gateway/references/golive-checklist.md +36 -0
  201. package/skills/infra-k8s/SKILL.md +78 -0
  202. package/skills/infra-k8s/scripts/k8s-triage.sh +84 -0
  203. package/skills/infra-mq/SKILL.md +87 -0
  204. package/skills/infra-mq/references/mq-review-checklist.md +36 -0
  205. package/skills/insurance-advisory/SKILL.md +57 -0
  206. package/skills/internal-audit/SKILL.md +66 -0
  207. package/skills/ip-management/SKILL.md +54 -0
  208. package/skills/ipo-listing/SKILL.md +60 -0
  209. package/skills/it-audit/SKILL.md +56 -0
  210. package/skills/itsm-ops/SKILL.md +55 -0
  211. package/skills/knowledge-sop/SKILL.md +51 -0
  212. package/skills/legal-chain/SKILL.md +55 -0
  213. package/skills/legal-contract/SKILL.md +58 -0
  214. package/skills/legal-contract/references/contract-checklists.md +59 -0
  215. package/skills/litigation-support/SKILL.md +53 -0
  216. package/skills/logistics-warehouse/SKILL.md +53 -0
  217. package/skills/logistics-warehouse/scripts/freight_check.py +71 -0
  218. package/skills/long-doc-analysis/SKILL.md +52 -0
  219. package/skills/management-accounting/SKILL.md +57 -0
  220. package/skills/management-accounting/scripts/__pycache__/costing.cpython-312.pyc +0 -0
  221. package/skills/management-accounting/scripts/costing.py +90 -0
  222. package/skills/manufacturing-chain/SKILL.md +57 -0
  223. package/skills/manufacturing-quality/SKILL.md +57 -0
  224. package/skills/manufacturing-quality/scripts/__pycache__/spc.cpython-312.pyc +0 -0
  225. package/skills/manufacturing-quality/scripts/spc.py +86 -0
  226. package/skills/marketing-analytics/SKILL.md +59 -0
  227. package/skills/marketing-analytics/scripts/__pycache__/rfm.cpython-312.pyc +0 -0
  228. package/skills/marketing-analytics/scripts/rfm.py +60 -0
  229. package/skills/marketing-chain/SKILL.md +57 -0
  230. package/skills/meeting-minutes/SKILL.md +55 -0
  231. package/skills/metrics-system/SKILL.md +55 -0
  232. package/skills/negotiation-prep/SKILL.md +56 -0
  233. package/skills/obs-prometheus/SKILL.md +74 -0
  234. package/skills/obs-prometheus/references/promql-cheatsheet.md +78 -0
  235. package/skills/office-automation/SKILL.md +54 -0
  236. package/skills/okr-review/SKILL.md +44 -0
  237. package/skills/ops-fleet/SKILL.md +69 -0
  238. package/skills/ops-fleet/scripts/batch-exec-guard.sh +119 -0
  239. package/skills/ops-linux/SKILL.md +69 -0
  240. package/skills/ops-linux/scripts/quick-triage.sh +138 -0
  241. package/skills/optimization-solver/SKILL.md +53 -0
  242. package/skills/optimization-solver/scripts/__pycache__/solver.cpython-312.pyc +0 -0
  243. package/skills/optimization-solver/scripts/solver.py +107 -0
  244. package/skills/pdf-toolkit/SKILL.md +43 -0
  245. package/skills/pdf-toolkit/scripts/pdf_ops.py +137 -0
  246. package/skills/pivot-crosstab/SKILL.md +44 -0
  247. package/skills/pivot-crosstab/scripts/__pycache__/pivot_tools.cpython-312.pyc +0 -0
  248. package/skills/pivot-crosstab/scripts/pivot_tools.py +90 -0
  249. package/skills/policy-analysis/SKILL.md +47 -0
  250. package/skills/portfolio-analysis/SKILL.md +56 -0
  251. package/skills/portfolio-analysis/scripts/__pycache__/portfolio.cpython-312.pyc +0 -0
  252. package/skills/portfolio-analysis/scripts/portfolio.py +78 -0
  253. package/skills/ppt-chain/SKILL.md +61 -0
  254. package/skills/pptx-author/SKILL.md +48 -0
  255. package/skills/pptx-author/scripts/pptx_deck.py +193 -0
  256. package/skills/pr-comms/SKILL.md +58 -0
  257. package/skills/pr-comms/references/pr-templates.md +54 -0
  258. package/skills/procurement-supply/SKILL.md +47 -0
  259. package/skills/procurement-supply/scripts/__pycache__/supply.cpython-312.pyc +0 -0
  260. package/skills/procurement-supply/scripts/supply.py +71 -0
  261. package/skills/product-design/SKILL.md +66 -0
  262. package/skills/product-design/references/prd-framework.md +60 -0
  263. package/skills/production-planning/SKILL.md +56 -0
  264. package/skills/production-planning/scripts/__pycache__/mrp_capacity.cpython-312.pyc +0 -0
  265. package/skills/production-planning/scripts/mrp_capacity.py +70 -0
  266. package/skills/project-management/SKILL.md +53 -0
  267. package/skills/project-management/scripts/__pycache__/cpm.cpython-312.pyc +0 -0
  268. package/skills/project-management/scripts/cpm.py +84 -0
  269. package/skills/project-proposal/SKILL.md +54 -0
  270. package/skills/project-proposal/scripts/budget_sheet.py +90 -0
  271. package/skills/qa-api-automation/SKILL.md +67 -0
  272. package/skills/qa-api-automation/references/three-layer-skeleton.md +61 -0
  273. package/skills/qa-mobile-automation/SKILL.md +70 -0
  274. package/skills/qa-mobile-automation/references/device-matrix-template.md +34 -0
  275. package/skills/qa-ui-automation/SKILL.md +80 -0
  276. package/skills/qa-ui-automation/references/stability-conventions.md +41 -0
  277. package/skills/quant-analysis/SKILL.md +60 -0
  278. package/skills/quant-analysis/scripts/__pycache__/quant.cpython-312.pyc +0 -0
  279. package/skills/quant-analysis/scripts/quant.py +102 -0
  280. package/skills/real-estate-property/SKILL.md +51 -0
  281. package/skills/real-estate-property/scripts/__pycache__/property_calc.cpython-312.pyc +0 -0
  282. package/skills/real-estate-property/scripts/property_calc.py +106 -0
  283. package/skills/regression-forecast/SKILL.md +52 -0
  284. package/skills/regression-forecast/scripts/__pycache__/regress.cpython-312.pyc +0 -0
  285. package/skills/regression-forecast/scripts/regress.py +106 -0
  286. package/skills/retail-store-ops/SKILL.md +57 -0
  287. package/skills/retail-store-ops/scripts/store_ops.py +57 -0
  288. package/skills/risk-compliance/SKILL.md +51 -0
  289. package/skills/sec-auth/SKILL.md +89 -0
  290. package/skills/sec-auth/references/auth-review-checklist.md +38 -0
  291. package/skills/sec-compliance/SKILL.md +74 -0
  292. package/skills/sec-compliance/references/dengbao-checklist.md +43 -0
  293. package/skills/securities-chain/SKILL.md +69 -0
  294. package/skills/securities-research/SKILL.md +58 -0
  295. package/skills/securities-research/scripts/__pycache__/valuation.cpython-312.pyc +0 -0
  296. package/skills/securities-research/scripts/valuation.py +93 -0
  297. package/skills/slides-html/SKILL.md +50 -0
  298. package/skills/slides-html/scripts/template.html +117 -0
  299. package/skills/statistical-testing/SKILL.md +51 -0
  300. package/skills/statistical-testing/scripts/__pycache__/stat_tests.cpython-312.pyc +0 -0
  301. package/skills/statistical-testing/scripts/stat_tests.py +131 -0
  302. package/skills/strategy-planning/SKILL.md +53 -0
  303. package/skills/supply-chain/SKILL.md +53 -0
  304. package/skills/tax-compliance/SKILL.md +57 -0
  305. package/skills/tax-compliance/scripts/tax_calc.py +90 -0
  306. package/skills/tech-research/SKILL.md +55 -0
  307. package/skills/tech-research/references/research-framework.md +50 -0
  308. package/skills/tender-bidding/SKILL.md +65 -0
  309. package/skills/tender-bidding/references/bid-checklist.md +44 -0
  310. package/skills/translation-pro/SKILL.md +44 -0
  311. package/skills/treasury-mgmt/SKILL.md +56 -0
  312. package/skills/treasury-mgmt/scripts/__pycache__/cashflow_forecast.cpython-312.pyc +0 -0
  313. package/skills/treasury-mgmt/scripts/cashflow_forecast.py +51 -0
  314. package/skills/web-scraping/SKILL.md +81 -0
  315. package/skills/web-search/SKILL.md +67 -0
  316. package/skills/xlsx-analysis/SKILL.md +96 -0
  317. package/skills/xlsx-analysis/scripts/__pycache__/xlsx_toolkit.cpython-312.pyc +0 -0
  318. package/skills/xlsx-analysis/scripts/xlsx_style.py +71 -0
  319. package/skills/xlsx-analysis/scripts/xlsx_toolkit.py +335 -0
  320. package/src/agent.js +1 -1
  321. package/src/api.js +1 -1
  322. package/src/codeindex.js +1 -1
  323. package/src/commands.js +1 -1
  324. package/src/config.js +1 -1
  325. package/src/context.js +1 -1
  326. package/src/doccache.js +1 -0
  327. package/src/doctor.js +1 -1
  328. package/src/executors.js +1 -1
  329. package/src/input.js +1 -1
  330. package/src/permissions.js +1 -1
  331. package/src/pyruntime.js +1 -0
  332. package/src/repl.js +1 -1
  333. package/src/scan.js +1 -1
  334. package/src/tools.js +1 -1
  335. package/src/tui/app.js +1 -1
@@ -0,0 +1,161 @@
1
+ # Word 文档生成助手(经 run_python 执行)。核心入口 md_to_docx():
2
+ # Markdown(#/##/### 标题、-/1. 列表、| 表格、**粗体**、普通段落)→ 成品 docx,
3
+ # 自动带:封面(题目/作者/日期)、目录域(Word 内 F9 更新)、页脚"第 X 页 共 Y 页"、
4
+ # 中文字体(正文宋体/标题黑体,经 w:eastAsia 正确设置)。
5
+ # 直接执行本文件 = 自测:产出 docx_doc_check.docx 并重读校验。
6
+ import datetime
7
+ import re
8
+
9
+ from docx import Document
10
+ from docx.enum.text import WD_ALIGN_PARAGRAPH
11
+ from docx.oxml.ns import qn
12
+ from docx.oxml import OxmlElement
13
+ from docx.shared import Pt
14
+
15
+
16
+ def _set_ea(style, west, east, size=None, bold=None):
17
+ """中文字体必须同时设 w:eastAsia,只设 font.name 中文不生效。"""
18
+ style.font.name = west
19
+ style.element.rPr.rFonts.set(qn('w:eastAsia'), east)
20
+ if size is not None:
21
+ style.font.size = Pt(size)
22
+ if bold is not None:
23
+ style.font.bold = bold
24
+
25
+
26
+ def _field(run, instr, placeholder=''):
27
+ """在 run 上插入 Word 域(TOC/PAGE/NUMPAGES…)。"""
28
+ begin = OxmlElement('w:fldChar')
29
+ begin.set(qn('w:fldCharType'), 'begin')
30
+ it = OxmlElement('w:instrText')
31
+ it.set(qn('xml:space'), 'preserve')
32
+ it.text = instr
33
+ sep = OxmlElement('w:fldChar')
34
+ sep.set(qn('w:fldCharType'), 'separate')
35
+ t = OxmlElement('w:t')
36
+ t.text = placeholder
37
+ end = OxmlElement('w:fldChar')
38
+ end.set(qn('w:fldCharType'), 'end')
39
+ for el in (begin, it, sep, t, end):
40
+ run._r.append(el)
41
+
42
+
43
+ def new_doc():
44
+ """建空文档并配好中英文字体样式。"""
45
+ doc = Document()
46
+ _set_ea(doc.styles['Normal'], 'Calibri', '宋体', size=11)
47
+ for lvl, size in (('Heading 1', 16), ('Heading 2', 14), ('Heading 3', 12)):
48
+ _set_ea(doc.styles[lvl], 'Calibri', '黑体', size=size, bold=True)
49
+ return doc
50
+
51
+
52
+ def add_cover(doc, title, author='', subtitle=''):
53
+ for _ in range(6):
54
+ doc.add_paragraph()
55
+ p = doc.add_paragraph()
56
+ p.alignment = WD_ALIGN_PARAGRAPH.CENTER
57
+ r = p.add_run(title)
58
+ r.font.size = Pt(28)
59
+ r.font.bold = True
60
+ r.font.name = 'Calibri'
61
+ r._element.rPr.rFonts.set(qn('w:eastAsia'), '黑体')
62
+ if subtitle:
63
+ p2 = doc.add_paragraph()
64
+ p2.alignment = WD_ALIGN_PARAGRAPH.CENTER
65
+ p2.add_run(subtitle).font.size = Pt(14)
66
+ meta = doc.add_paragraph()
67
+ meta.alignment = WD_ALIGN_PARAGRAPH.CENTER
68
+ meta.add_run(f"{author + ' ' if author else ''}{datetime.date.today().strftime('%Y年%m月%d日')}").font.size = Pt(12)
69
+ doc.add_page_break()
70
+
71
+
72
+ def add_toc(doc):
73
+ doc.add_paragraph('目录', style='Heading 1')
74
+ _field(doc.add_paragraph().add_run(), 'TOC \\o "1-3" \\h \\z \\u', '(在 Word 中右键→更新域,或按 F9 生成目录)')
75
+ doc.add_page_break()
76
+
77
+
78
+ def add_page_footer(doc):
79
+ p = doc.sections[0].footer.paragraphs[0]
80
+ p.alignment = WD_ALIGN_PARAGRAPH.CENTER
81
+ p.add_run('第 ')
82
+ _field(p.add_run(), 'PAGE', '1')
83
+ p.add_run(' 页 共 ')
84
+ _field(p.add_run(), 'NUMPAGES', '1')
85
+ p.add_run(' 页')
86
+
87
+
88
+ def _add_runs(par, text):
89
+ """按 **粗体** 拆 run。"""
90
+ for i, seg in enumerate(re.split(r'\*\*(.+?)\*\*', text)):
91
+ if seg:
92
+ par.add_run(seg).bold = (i % 2 == 1)
93
+
94
+
95
+ def _flush_table(doc, rows):
96
+ cells = [[c.strip() for c in r.strip().strip('|').split('|')] for r in rows]
97
+ cells = [r for r in cells if not all(re.fullmatch(r':?-{2,}:?', c or '---') for c in r)] # 去分隔行
98
+ if not cells:
99
+ return
100
+ tb = doc.add_table(rows=len(cells), cols=len(cells[0]))
101
+ tb.style = 'Table Grid'
102
+ for i, row in enumerate(cells):
103
+ for j, val in enumerate(row[:len(tb.columns)]):
104
+ par = tb.cell(i, j).paragraphs[0]
105
+ _add_runs(par, val)
106
+ if i == 0:
107
+ for r in par.runs:
108
+ r.bold = True
109
+
110
+
111
+ def md_to_docx(md_path, out_path, title='', author='', subtitle='', toc=True):
112
+ """Markdown → Word。返回 out_path。"""
113
+ doc = new_doc()
114
+ add_page_footer(doc)
115
+ if title:
116
+ add_cover(doc, title, author, subtitle)
117
+ if toc:
118
+ add_toc(doc)
119
+ lines = open(md_path, encoding='utf-8').read().splitlines()
120
+ table = []
121
+ for line in lines + ['']: # 末尾哨兵,冲刷表格
122
+ s = line.rstrip()
123
+ if s.lstrip().startswith('|'):
124
+ table.append(s)
125
+ continue
126
+ if table:
127
+ _flush_table(doc, table)
128
+ table = []
129
+ if not s.strip():
130
+ continue
131
+ m = re.match(r'^(#{1,3})\s+(.*)', s)
132
+ if m:
133
+ doc.add_paragraph(m.group(2).strip(), style=f'Heading {len(m.group(1))}')
134
+ elif re.match(r'^\s*-\s+', s):
135
+ _add_runs(doc.add_paragraph(style='List Bullet'), re.sub(r'^\s*-\s+', '', s))
136
+ elif re.match(r'^\s*\d+[.、]\s*', s):
137
+ _add_runs(doc.add_paragraph(style='List Number'), re.sub(r'^\s*\d+[.、]\s*', '', s))
138
+ else:
139
+ _add_runs(doc.add_paragraph(), s)
140
+ doc.save(out_path)
141
+ return out_path
142
+
143
+
144
+ def verify(path):
145
+ """重读校验(验收步骤用):打印标题树与段落/表格数。"""
146
+ doc = Document(path)
147
+ heads = [(p.style.name, p.text) for p in doc.paragraphs if p.style.name.startswith('Heading')]
148
+ print(f'[verify] 段落 {len(doc.paragraphs)} · 表格 {len(doc.tables)} · 标题 {len(heads)}')
149
+ for style, text in heads:
150
+ print(' ' * (int(style[-1]) - 1) + f'- [{style}] {text}')
151
+ return heads
152
+
153
+
154
+ if __name__ == '__main__':
155
+ md = 'docx_doc_check.md'
156
+ open(md, 'w', encoding='utf-8').write(
157
+ '# 一、背景\n项目**按期**推进。\n\n## 1.1 目标\n- 目标甲\n- 目标乙\n\n'
158
+ '# 二、数据\n| 地区 | 销售额 |\n|---|---|\n| 华东 | 1200 |\n| 华南 | 950 |\n\n1. 结论一\n2. 结论二\n')
159
+ p = md_to_docx(md, 'docx_doc_check.docx', title='自测报告', author='Work Twin', subtitle='docx_doc.py 冒烟')
160
+ verify(p)
161
+ print('OK', p)
@@ -0,0 +1,54 @@
1
+ ---
2
+ name: ecommerce-ops
3
+ description: 电商运营分析(GMV 拆解归因、大促复盘、商品与库存运营、评价挖掘、直播/投放效率)。当用户说"GMV 分析/大促复盘/店铺数据/评价分析/售罄率/直播复盘"时使用。
4
+ version: 1.0.0
5
+ ---
6
+
7
+ # 电商运营(GMV 三因素拆到底 + 复盘挤水分 + 评价挖真声)
8
+
9
+ ## GMV 拆解(`read_skill_file` 读 `scripts/gmv_decompose.py`)
10
+
11
+ - 恒等式:GMV = 流量 UV × 转化率 × 客单价(AOV);`gmv_decompose()` 用对数分解法把
12
+ **增长精确归因到三因素**(各因素贡献率加总=100%,可复算),多期对比表+瀑布数据;
13
+ - 再下钻一层:UV 分渠道(自然/付费/直播/私域),转化分层(曝光→点击→加购→下单→支付,
14
+ 断点用 marketing-analytics 漏斗法),AOV 拆(件单价×连带率);
15
+ - 口径先行:GMV 是下单口径还是支付口径、是否含退款——**复盘会上一半的争论是口径之争**。
16
+
17
+ ## 大促复盘(挤水分版)
18
+
19
+ 1. 目标 vs 达成(GMV/新客/ROI 分目标,差额分解到三因素);
20
+ 2. **剥离基线**:大促增量 = 大促期 GMV − 基线(用前 4 周同口径均值或去年同期,方法注明)——
21
+ 把日常销量算进大促功劳=自欺;蓄水期透支效应看大促后两周是否塌陷;
22
+ 3. 全链路费效:投放 ROI 分渠道分素材;券与满减的**核销率与凑单毛利**(毛利口径的大促盈亏表,
23
+ 只报 GMV 不报毛利=半份复盘);
24
+ 4. 库存战备复盘:售罄率(爆款断货时点=丢单量估算)与滞销(大促后库存深度);
25
+ 5. 可复制清单:保留/放弃/加码,每条挂数据依据。
26
+
27
+ ## 商品运营
28
+
29
+ 商品分层(引流款/利润款/形象款/清仓款——四象限:销量×毛利率),各层策略与考核指标不同;
30
+ 售罄率节奏管理(上市 N 周售罄曲线 vs 计划,偏慢触发促销/偏快触发返单);
31
+ 价格带分析(成交价格带分布 vs 竞店,找空档与踩踏)。
32
+
33
+ ## 评价与问答挖掘(经 run_python)
34
+
35
+ 差评分类先建体系(质量/物流/客服/描述不符/价格)→ 分类统计+趋势 → 每类抽原文找具体问题
36
+ ("尺码偏小"要落到 SKU 与批次)→ 改进闭环(详情页修改/质检加严/话术更新);
37
+ 好评挖卖点(高频正面词→详情页与投放素材素材库);客服问答 TOP 问题 → 详情页前置解答。
38
+
39
+ ## 直播/投放效率
40
+
41
+ 直播场次复盘表:场观/停留/互动率/千次观看成交 GPM/转化率/退货率(**含退货的真实 GMV**);
42
+ 投放:分计划 ROI 与边际 ROI(加预算后的增量效率),素材衰减周期监控;
43
+ 自动化衔接:office-automation 例程周一自动出上周店铺周报。
44
+
45
+ ## 验收自查
46
+
47
+ - [ ] GMV 口径注明;三因素贡献加总=100%
48
+ - [ ] 大促复盘剥离了基线与透支效应;有毛利口径盈亏
49
+ - [ ] 差评结论落到 SKU/环节,有原文证据
50
+ - [ ] 直播/投放看含退货口径
51
+
52
+ ## 附件
53
+
54
+ - `scripts/gmv_decompose.py` — 对数分解法三因素归因(贡献率恒等校验)+ 多期对比;可直接执行自测
@@ -0,0 +1,61 @@
1
+ # GMV 三因素分解(经 run_python 执行):对数均值分解(LMDI),把 GMV 变化精确归因到
2
+ # UV / 转化率 / 客单价——三因素贡献额加总严格等于 GMV 变化额(恒等校验内置)。
3
+ # 直接执行本文件 = 自测。
4
+ import numpy as np
5
+ import pandas as pd
6
+
7
+
8
+ def _lmdi_weight(a, b):
9
+ """对数平均权重 L(a,b)=(a-b)/ln(a/b);a=b 时退化为 a。"""
10
+ return a if np.isclose(a, b) else (a - b) / np.log(a / b)
11
+
12
+
13
+ def gmv_decompose(base, cur, labels=('UV', '转化率', '客单价')):
14
+ """base/cur: (uv, cvr, aov) 两期三元组。返回 DataFrame(贡献额/贡献率),加总=ΔGMV。"""
15
+ g0 = float(np.prod(base))
16
+ g1 = float(np.prod(cur))
17
+ w = _lmdi_weight(g1, g0)
18
+ contrib = [w * np.log(c / b) for b, c in zip(base, cur)]
19
+ df = pd.DataFrame({
20
+ '因素': labels,
21
+ '基期': base, '本期': cur,
22
+ '变化%': [round((c / b - 1) * 100, 1) for b, c in zip(base, cur)],
23
+ '贡献额': [round(x, 2) for x in contrib],
24
+ })
25
+ dg = g1 - g0
26
+ df['贡献率%'] = (df['贡献额'] / dg * 100).round(1) if abs(dg) > 1e-9 else 0.0
27
+ assert abs(sum(contrib) - dg) < max(1e-6 * abs(dg), 1e-6), 'LMDI 恒等校验失败'
28
+ print(f'[GMV分解] {g0:,.0f} → {g1:,.0f}(Δ{dg:+,.0f},{(g1 / g0 - 1) * 100:+.1f}%)')
29
+ print(df.to_markdown(index=False))
30
+ print(f" 贡献额加总 = {sum(contrib):,.2f} ≡ ΔGMV ✓")
31
+ return df
32
+
33
+
34
+ def gmv_trend(df, uv_col, cvr_col, aov_col, period_col):
35
+ """多期逐期分解:返回 期间×因素 贡献额长表(瀑布图数据源)。"""
36
+ rows = []
37
+ d = df.sort_values(period_col).reset_index(drop=True)
38
+ for i in range(1, len(d)):
39
+ b = (d.loc[i - 1, uv_col], d.loc[i - 1, cvr_col], d.loc[i - 1, aov_col])
40
+ c = (d.loc[i, uv_col], d.loc[i, cvr_col], d.loc[i, aov_col])
41
+ r = gmv_decompose(b, c)
42
+ for _, x in r.iterrows():
43
+ rows.append({'期间': f"{d.loc[i - 1, period_col]}→{d.loc[i, period_col]}",
44
+ '因素': x['因素'], '贡献额': x['贡献额']})
45
+ return pd.DataFrame(rows)
46
+
47
+
48
+ if __name__ == '__main__':
49
+ # 基期:10万UV × 3% × 200元 = 60万;本期:12万 × 2.8% × 230元 = 77.28万
50
+ r = gmv_decompose((100_000, 0.03, 200), (120_000, 0.028, 230))
51
+ assert abs(r['贡献额'].sum() - (120_000 * 0.028 * 230 - 100_000 * 0.03 * 200)) < 0.01
52
+ assert r.loc[1, '贡献额'] < 0 # 转化率下降应为负贡献
53
+ assert abs(r['贡献率%'].sum() - 100) < 0.5
54
+ trend = gmv_trend(pd.DataFrame({
55
+ '月': ['4月', '5月', '6月'],
56
+ 'uv': [100_000, 110_000, 120_000],
57
+ 'cvr': [0.03, 0.029, 0.028],
58
+ 'aov': [200, 215, 230],
59
+ }), 'uv', 'cvr', 'aov', '月')
60
+ assert len(trend) == 6
61
+ print('OK gmv_decompose.py')
@@ -0,0 +1,53 @@
1
+ ---
2
+ name: education-training
3
+ description: 教育与培训(课程设计、教案讲义、题库与考核、企业内训项目、培训效果评估)。当用户说"设计一门课/做培训/出题/教案/内训方案/培训效果"时使用。
4
+ version: 1.0.0
5
+ ---
6
+
7
+ # 教育培训(目标倒推设计,效果分层评估)
8
+
9
+ ## 课程设计(反向设计法:先定考核再写内容)
10
+
11
+ 1. **教学目标**:用可观察动词分层写(记忆:列出/理解:解释/应用:操作/分析:诊断/评价:评审/
12
+ 创造:设计——Bloom 思路),"了解掌握熟悉"三连是无效目标;每个目标对应一道考核题——
13
+ **出不了题的目标删掉**;
14
+ 2. **学员画像**:基线水平(前测确认,别猜)/动机(考证/解决工作问题/被派来的——第三种要先设计
15
+ "为什么值得听"开场)/可用时长;
16
+ 3. **内容组织**:任务导向优于知识导向("处理一笔异常报销"优于"报销制度概述");
17
+ 每 15–20 分钟一个互动点(练习/提问/案例讨论);认知负荷控制(每节新概念 ≤3 个,
18
+ 先例子后定义);
19
+ 4. **讲义与教案分开**:讲义=学员带走的(要点+练习+速查表);教案=讲师用的
20
+ (逐环节:时长/讲法/提问设计/常见卡点应对/板书或翻页点)。
21
+
22
+ ## 题库与考核
23
+
24
+ - 题目质量规范:单选干扰项要"似是而非"(常见错误认知做干扰项,不是凑数);情景题优于概念题;
25
+ 每题标注(考核目标/难度/答案解析——**解析讲为什么错,不只给对的**);
26
+ - 题库结构化:xlsx(题干/选项/答案/解析/目标/难度/章节),按蓝图抽卷
27
+ (目标×难度配比先定,再抽题);
28
+ - 实操考核:评分量表(rubric:维度×等级描述,两评委独立打分后校准)。
29
+
30
+ ## 企业内训项目(转训与落地是难点)
31
+
32
+ 需求诊断(**绩效差距分析先行**:是不知道、不会做还是不愿做?——只有"不会做"该用培训解决,
33
+ 另两种是管理问题,如实告知)→ 方案(课程+练习+岗位实践任务的混合式,纯讲课留存率低)→
34
+ 讲师与教材(内部专家经 knowledge-sop 萃取成课)→ 运营(通知/签到/作业催交:office-automation
35
+ 可做提醒例程)→ 评估(下)。
36
+
37
+ ## 效果评估(柯氏四级,逐级取证)
38
+
39
+ L1 反应(满意度问卷,当场收,NPS 口径)→ L2 学习(前后测对比,**同卷不同序**)→
40
+ L3 行为(训后 30–60 天上级评估行为改变清单,抽样访谈)→ L4 结果(业务指标关联,
41
+ 如实说明归因局限——培训很少是唯一变量)。报告按四级呈现,只报 L1 的培训报告是不合格的。
42
+
43
+ ## 产出物
44
+
45
+ 课程大纲(目标-内容-考核映射表)/ 教案+讲义(docx-author)/ 课件(pptx-author 或 slides-html)/
46
+ 题库与试卷(xlsx+抽卷说明)/ 内训项目方案与评估报告。
47
+
48
+ ## 验收自查
49
+
50
+ - [ ] 每个教学目标可考核且有对应题目
51
+ - [ ] 教案有互动设计与时长分配
52
+ - [ ] 题目干扰项有认知依据,解析完整
53
+ - [ ] 评估覆盖至少 L1+L2,L3/L4 有计划
@@ -0,0 +1,63 @@
1
+ ---
2
+ name: ehs-safety
3
+ description: 安全生产与 EHS(危险源辨识 JSA/LEC、隐患排查治理闭环、特种作业许可、应急演练、事故调查、安全培训台账)。当用户说"安全检查/隐患/危险源/动火/受限空间/安全事故/安全培训"时使用。制造技能链之安全环。
4
+ version: 1.0.0
5
+ ---
6
+
7
+ # 安全生产与 EHS(制造技能链 · 安全环;全景见 manufacturing-chain)
8
+
9
+ **红线**:安全法规与标准以现行有效版本为准;重大危险源辨识评估、职业健康检测等法定事项
10
+ 由具备资质的专业机构执行,本技能做体系文件、台账与分析辅助。**安全投入不做性价比谈判**。
11
+
12
+ ## 1. 危险源辨识与风险评价
13
+
14
+ - **JSA 作业安全分析**(按岗位/作业活动):分解作业步骤 → 每步辨识危害
15
+ (机械/电气/高处/化学/粉尘/噪声…)→ 现有控制 → 风险评价 → 补充措施;
16
+ - **LEC 打分**:D = L(事故可能性) × E(暴露频率) × C(后果严重度),分级阈值表
17
+ (D>320 重大/160–320 高/70–160 中/<70 低)——打分标准先对齐再打,同 FMEA 纪律;
18
+ - 控制措施层级(**顺序不可倒**):消除 → 替代 → 工程控制(防护罩/联锁)→
19
+ 管理控制(制度/培训)→ PPE(最后防线,不是首选)——"发个口罩"式管控要在报告里点名。
20
+
21
+ ## 2. 隐患排查治理(闭环是生命线)
22
+
23
+ - 排查表体系:日巡检(班组)/ 周专业检查(设备/电气/消防分线)/ 月综合 + 季节性专项
24
+ (防汛/防暑/防冻);检查项可判定("消防通道畅通"→"通道无占用、宽度≥1.2m、指示灯完好");
25
+ - **治理五定**:定措施/定责任人/定资金/定期限/定预案——缺一项不算下发;
26
+ - 闭环台账:隐患描述(照片位)/级别/五定/整改验收(**复查人签字+整改后照片**)/超期升级
27
+ (超期自动上翻一级管理者,office-automation 例程盯);
28
+ - 月度分析:隐患分类帕累托(区域×类型×重复率)——**重复隐患=管理缺陷**,转专项而非继续开单。
29
+
30
+ ## 3. 特种作业与许可管理
31
+
32
+ 许可作业清单(动火/受限空间/高处/吊装/临时用电/断路/盲板抽堵);许可票要素:
33
+ 作业内容与范围/时限(**超时重新办票**)/风险分析与措施确认/气体检测记录(受限空间:
34
+ 测氧测爆测毒,作业中续测)/监护人(**受限空间监护人不得离岗兼职**)/审批签发/完工验收关闭;
35
+ 作业资质核验(特种作业操作证有效期台账,过期即停)。
36
+
37
+ ## 4. 应急管理
38
+
39
+ 预案体系(综合+专项:火灾/化学品泄漏/触电/机械伤害,联动 risk-compliance 预案五要素);
40
+ **演练可判定**:脚本注入情景 → 计时(报警/疏散/集结点名/初期处置)→ 复盘差距
41
+ ("演练成功"不是结论,"疏散 4 分 32 秒、3 人未到集结点、灭火器 2 具失效"才是);
42
+ 应急物资台账(点位/数量/有效期月检)。
43
+
44
+ ## 5. 事故管理
45
+
46
+ 分级上报时限(法定时限红线,瞒报是刑责级风险——如实上报写进制度第一条);
47
+ 调查**四不放过**:原因未查清不放过/责任人未处理不放过/整改未落实不放过/教育未开展不放过;
48
+ 调查方法:时间线+证据(litigation-support 同源方法)+ 根因(人机料法环+管理,
49
+ **直接原因之上必须挖管理原因**);未遂事件(near miss)同样登记分析——海因里希法则:
50
+ 重伤背后是 29 起轻伤 300 起未遂,**未遂库是最便宜的老师**。
51
+
52
+ ## 6. 培训与台账
53
+
54
+ 三级安全教育(公司/车间/班组,考核留痕);转岗复工再教育;年度培训计划与学时台账
55
+ (education-training 承接课程设计);体系台账全家福:危险源清单/隐患台账/许可票存根/
56
+ 演练记录/事故未遂库/培训档案——**审核与追责时,台账即证据**。
57
+
58
+ ## 验收自查
59
+
60
+ - [ ] 风险评价打分标准先对齐;控制措施层级未倒置
61
+ - [ ] 隐患五定齐全,复查有签字照片,重复隐患转专项
62
+ - [ ] 许可票要素完整,超时重办,监护不离岗
63
+ - [ ] 演练结论量化;未遂事件入库
@@ -0,0 +1,52 @@
1
+ ---
2
+ name: email-writing
3
+ description: 商务邮件与职场沟通(催办、拒绝、道歉、跨部门协调、向上汇报、英文商务信函、跟进节奏)。当用户说"帮我写封邮件/回复一下/怎么措辞/催一下对方"时使用。
4
+ version: 1.0.0
5
+ ---
6
+
7
+ # 商务邮件(先定目的与关系,再选结构与语气)
8
+
9
+ ## 写前三问(跳过=车轱辘话)
10
+
11
+ 1. **一句话目的**:读完这封邮件,对方要做什么(批准/回复数据/接受道歉/按期交付);
12
+ 2. **关系与权力位**:上级/平级/下级/客户/供应商——决定语气档位;
13
+ 3. **背景对齐度**:对方知道多少,决定铺垫长度(知道的不重复,不知道的一段讲清)。
14
+
15
+ ## 通用结构(BLUF:结论先行)
16
+
17
+ 主题行=动作+对象+时限(「【请审批】Q3 预算调整方案(周五 17:00 前)」——收件箱里就能被处理);
18
+ 首段=目的一句话;中段=必要背景+具体请求(可勾选:方案A/B);
19
+ 尾段=明确的下一步与时限;附件在正文点名("详见附件《…》第 3 节")。
20
+
21
+ ## 高频场景范式
22
+
23
+ - **催办(阶梯升级)**:一催=善意假设("想确认是否收到"+重给关键信息);二催=影响陈述
24
+ ("该项延后将影响 X 的 Y 节点")+ 降低回复成本("回复 1/2 即可");三催=抄送升级并给台阶
25
+ ("理解近期繁忙,如需协调资源请告知")。**每催间隔≥1个工作日,催前先自查是否给全了信息**。
26
+ - **拒绝**:肯定对方合理处 → 明确拒绝+真实可说的原因(一条就够,别堆砌)→ 给替代
27
+ (降级方案/推荐他人/未来窗口)。拒绝要一次说死,含糊的"再看看"是最差解。
28
+ - **道歉/事故通报**:事实(何时何事影响谁)→ 不找借口的担责 → 已做的补救 → 防复发措施 →
29
+ 补偿(如适用)。**先发制人优于被追问**。
30
+ - **跨部门协调(无权力位)**:把"帮我"改成"共同目标"(对齐到双方上级都认的目标);
31
+ 给足上下文与截止依据;明确对方成本("预计占用你 0.5 天");提前给出如无回复的默认路径。
32
+ - **向上汇报**:结论 → 数据 → 需要的决策/资源(选择题不是问答题);坏消息更要快报+带预案。
33
+ - **英文商务**:直接但礼貌;首次联系给 context 一句;避免中式直译("请知悉"→FYI/Please note);
34
+ 结尾按关系选 Best regards/Kind regards;**英美拼写一致**。
35
+
36
+ ## 语气分级速查
37
+
38
+ 正式度:致歉/合同类 > 客户往来 > 跨部门 > 团队内部;
39
+ 情绪敏感场景(拒绝/催办/纠纷)成稿后做**降火检查**:删掉所有反问句、"显然/请务必/早已",
40
+ 换成事实与选项。
41
+
42
+ ## 跟进节奏与线程管理
43
+
44
+ 一事一线程,改主题要 [更新] 标注;超过 3 轮未决 → 建议改会议并附议程;
45
+ 需存档的口头结论 → 邮件确认("如我理解有误请指正,否则将按此推进"——温和的书面固化)。
46
+
47
+ ## 验收自查
48
+
49
+ - [ ] 主题行含动作与时限;首段一句话目的
50
+ - [ ] 对方要做的事、截止时间明确且唯一
51
+ - [ ] 语气过了降火检查;拒绝类有替代方案
52
+ - [ ] 英文版拼写体系一致,无中式直译
@@ -0,0 +1,74 @@
1
+ ---
2
+ name: eng-ai
3
+ description: AI 工程子链总控(LLM 场景判据→评测集先行的交付工作流→效果劣化排查→成本优化;按专题路由 10 条孙链:LLM 应用开发/RAG/Agent/提示工程/评测/模型服务运维/AI 研发提效/多模态/智能运维/大模型合规)。工程链 AI 域入口:要给产品加 AI 能力、LLM 特性立项、AI 效果或成本失控、不确定用哪条 ai-* 链时载入。
4
+ version: 1.0.0
5
+ ---
6
+
7
+ # AI 工程子链总控
8
+
9
+ engineering-chain 的 AI 域子链,管**LLM 应用工程**(把模型能力做成可靠产品),不管模型训练。
10
+ AI 特性也是软件特性:需求/排期/测试/发布/运维各环节照走对应子链,本链只管 AI 特有的部分。
11
+
12
+ ## 孙链路由表(10 条专题深耕)
13
+
14
+ | 专题 | 孙链 | 一句定位 |
15
+ |---|---|---|
16
+ | LLM 应用开发 | **ai-llm-app** | 模型接入抽象/结构化输出三层/上下文预算/缓存/降级兜底/注入防护 |
17
+ | 检索增强 | **ai-rag** | RAG-微调-长上下文判据/分块与混合检索/引用溯源/权限过滤/坏例分类 |
18
+ | 智能体 | **ai-agent** | 工作流 vs Agent 判据/工具设计即 API 设计/循环护栏/沙箱分级/多 Agent 判据 |
19
+ | 提示工程 | **ai-prompt** | 六段式结构/技法判据/反模式/一次一变量迭代/提示资产版本化 |
20
+ | 评测 | **ai-eval** | 评测集建设/LLM-as-judge 校准/回归防线/在线信号回流——**AI 工程的地基** |
21
+ | 服务与运维 | **ai-mlops** | 部署形态判据/推理优化/漂移监控/成本归因/模型-提示-参数三元组版本化 |
22
+ | 研发提效 | **ai-coding** | 用 AI 加速工程本身:任务适配判据/上下文工程/质量纪律/提效度量(与 eng-develop 共挂) |
23
+ | 多模态 | **ai-multimodal** | 文档解析管道 vs VLM 判据/OCR 置信度分级/表格专项/图表读数低信任/生成合规 |
24
+ | 智能运维 | **ai-aiops** | 告警聚类/Runbook RAG 问答/排障 Copilot 纪律/影子转正(与 eng-ops 共挂) |
25
+ | 大模型合规 | **ai-compliance** | toC/toB 定性/双备案配合/内容双审/生成标识义务/义务到工程能力映射 |
26
+
27
+ ## 第一问:这个问题该不该上 LLM(判据表)
28
+
29
+ | 信号 | 结论 |
30
+ |---|---|
31
+ | 规则可穷举、输出必须 100% 确定(计费/权限判定) | **不上**,写代码;LLM 只做辅助建议 |
32
+ | 理解/生成/归纳非结构化内容(摘要/改写/抽取/分类/问答) | 适合,LLM 主场 |
33
+ | 低延迟硬约束(<100ms 同步链路) | 慎上;预计算/小模型/异步化改造后再看 |
34
+ | 错误代价高且无法人审(资金操作/对外承诺) | 不让 LLM 拍板:LLM 起草+人审,或强校验兜底 |
35
+ | 已有传统方案够用(正则/规则/统计模型) | 先用便宜的;LLM 是杀鸡的牛刀也是真金的牛刀 |
36
+
37
+ 判完"该不该",再判"多大规模":一次性任务用平台内置能力直接跑;高频在线特性才立项走下面的工作流。
38
+
39
+ ## 端到端工作流
40
+
41
+ ### ① LLM 特性交付链(评测集先行是与普通特性的最大差别)
42
+ 场景判据(上表)→ 需求(eng-requirements,验收标准含**质量口径**:准确率/幻觉率/拒答正确率目标值)→
43
+ **评测集先建**(ai-eval:20 条冒烟起步,没有评测集的 AI 特性=盲飞)→ 方案(ai-llm-app 接入形态+ai-rag/ai-agent 按需;
44
+ 成本预估:调用量×token 单价先算账)→ 提示与数据迭代(ai-prompt 一次一变量,对着评测集调)→
45
+ 工程化(结构化输出/超时降级/敏感数据边界)→ 测试(eng-quality 常规用例+评测集全量)→
46
+ 灰度(eng-release 金丝雀,**质量指标进观察项**)→ 监控回流(ai-mlops 漂移+坏例回流评测集)。
47
+
48
+ ### ② 效果劣化排查链("感觉变笨了"事件)
49
+ 先定量(评测集跑分对比基线,**没有数字不接受"变笨"结论**)→ 变更嫌疑(模型版本/提示改动/数据更新/参数,
50
+ 三元组版本对照 ai-mlops)→ 分段定位(RAG 特性:检索指标与生成指标分开测,ai-rag 坏例分类;
51
+ Agent:轨迹回放看哪步走偏)→ 修复验证(评测集回归+灰度)→ 坏例入集(ai-eval 回流纪律)。
52
+
53
+ ### ③ 成本优化链(账单异动或立项前)
54
+ 用量画像(ai-mlops 归因:哪个特性/哪类请求烧钱)→ 优化路径按序试:
55
+ 缓存(前缀缓存命中率,ai-llm-app)→ 模型分级路由(简单任务小模型,复杂才上大模型)→
56
+ 提示瘦身(冗余上下文/超长 few-shot)→ 输出约束(限制生成长度)→ 批处理与异步(非实时任务错峰)→
57
+ 自部署评估(量级判据见 ai-mlops)——**每步用评测集验证质量不掉,省钱不能省效果**。
58
+
59
+ ## AI 特有红线(各孙链细则,此处总纲)
60
+
61
+ - **评测集先于上线**:无评测集不进灰度(准入,eng-release 清单项);
62
+ - 敏感数据边界:进模型的数据过脱敏与分级审批(eng-security 数据分级;外部模型 API=数据出域);
63
+ - 幻觉兜底:面向用户的事实性输出要有溯源(引用)或置信度不足转人工/明示"不确定";
64
+ - 提示注入防护:外部输入与指令隔离,模型输出不直接执行(ai-llm-app 细则);
65
+ - 人审判据:错误代价高的动作,LLM 只起草不执行(Agent 工具分级,ai-agent);
66
+ - 合规:生成内容标识、个人信息处理、备案要求按属地法规过(工程落点载 **ai-compliance**;法务口径 legal-chain/risk-compliance)。
67
+
68
+ **作业包**:`references/ai-feature-checklist.md`(AI 特性准入:立项判据/评测四象限与口径/工程防线/合规/三元组与成本——三缺一不上线)。
69
+
70
+ ## 使用纪律
71
+
72
+ AI 特性的"完成"=评测达标+成本在预算内+降级预案演练过,三者缺一不上线;
73
+ 模型/提示/参数变更一律走评测回归(ai-eval 防线);
74
+ 每次效果事故回写坏例集与判据——**AI 工程的复利在评测集,不在提示词玄学**。
@@ -0,0 +1,36 @@
1
+ # AI 特性上线准入清单(eng-ai 落笔件:无评测集不进灰度)
2
+
3
+ ## 0. 立项判据(先答该不该上 LLM)
4
+
5
+ - 场景类型:□生成/理解非结构化(适合) □规则可穷举(不上,写代码) □低延迟硬约束(慎) □错误代价高(LLM 起草+人审)
6
+ - 规模:调用量预估 __/日 × 单次成本 __(token-cost-calc 先算账) = 月成本 __,预算 __
7
+
8
+ ## 1. 评测(ai-eval,地基)
9
+
10
+ - [ ] 评测集就位:冒烟 __ 条(≥20)/回归 __ 条;覆盖四象限: □常态 □边界 □对抗 □**拒答**
11
+ - [ ] 质量口径进验收标准:准确率 ≥__%;幻觉率 ≤__%;拒答正确率 ≥__%;格式合规 ≥__%
12
+ - [ ] 基线分数留档(eval-runner --out);劣化阻断阈值 __
13
+ - [ ] 坏例回流机制:线上失败→周入集,Owner __
14
+
15
+ ## 2. 工程防线(ai-llm-app)
16
+
17
+ - [ ] 超时按生成时长定(流式盯首 token);重试只对可恢复错误+预算
18
+ - [ ] 结构化输出三层:schema 约束/校验/修复重试;**模型输出当外部输入**(不 eval/不拼 SQL/不直接执行)
19
+ - [ ] 降级链演练过:主模型挂→ __ →规则/模板→人工(把模型 mock 挂测过产品还能用)
20
+ - [ ] 上下文预算四段分账;系统提示无时间戳(缓存友好)
21
+ - [ ] 提示注入:外部内容与指令结构隔离;会话与租户隔离强校验
22
+
23
+ ## 3. 安全与合规
24
+
25
+ - [ ] 进模型数据过分级与脱敏(外部 API=出域,审批 __)
26
+ - [ ] 事实性输出有溯源(引用)或"不确定"话术;高危动作人审(Agent 走工具四级)
27
+ - [ ] 生成内容标识义务确认(属地法规);(多模态)关键字段规则校验配齐(field-validate)
28
+
29
+ ## 4. 运维与成本(ai-mlops)
30
+
31
+ - [ ] 三元组(模型/提示/参数)版本登记:__;可整体回滚
32
+ - [ ] 监控三层:技术(时延/429)+质量(抽评/隐式信号:重试率点踩)+漂移(金丝雀题集日跑)
33
+ - [ ] 成本:特性级预算 __ +80% 预警+超额降级策略(预先声明)
34
+ - [ ] 灰度方案:__%→__%,质量指标进观察项(release-plan)
35
+
36
+ > 结论: □准入 □带条件(条件+Owner+期限) □打回。"完成"=评测达标+成本在预算+降级演练过,三缺一不上线。
@@ -0,0 +1,85 @@
1
+ ---
2
+ name: eng-architecture
3
+ description: 架构设计子链(非功能量化→容量估算公式→C4 分层设计→架构模式选型判据→技术选型评分卡→ADR 决策记录→ATAM 精简评审→技术债与演进治理)。工程链架构环节深耕:新系统方案、重大重构、选型决策、架构评审时载入。方案文档模板与画图细则由 arch-design 承接,接口契约由 api-design 承接。
4
+ version: 1.0.0
5
+ ---
6
+
7
+ # 架构设计子链
8
+
9
+ engineering-chain 的架构环节子链。输入:需求基线(eng-requirements)+存量现状;
10
+ 产物:方案文档(C4 图+ADR)、容量估算表、评审纪要、技术债台账更新。
11
+
12
+ ## 第一步:非功能需求量化——没有数字的约束不是约束
13
+
14
+ | 维度 | 量化口径 | 参考换算 |
15
+ |---|---|---|
16
+ | 可用性 | 全年/月不可用分钟 | 99.9%=月 43min;99.99%=月 4.3min(代价陡增,先问真需要吗) |
17
+ | 延迟 | P50/P99 分开写 | 只写平均值=没写;P99 才是用户体验 |
18
+ | 吞吐 | 峰值 QPS/TPS | 见容量估算 |
19
+ | 一致性 | 强一致 or 最终一致+不一致窗口+补偿手段 | "钱"相关默认强一致 |
20
+ | 数据 | 保留期/增速/RTO/RPO | RPO=0 意味着同步复制,写延迟上升 |
21
+ | 合规 | 数据出境/等保/行业监管 | 进 eng-security 数据分级 |
22
+
23
+ ## 容量估算公式(先算再设计)
24
+
25
+ - 峰值 QPS ≈ 日活 × 人均动作数 ÷ 86400 × 峰值系数(常态 3–5,秒杀类 10+);
26
+ - 存储年增 ≈ 日增行数 × 行宽 × 365 × 副本数 × 索引膨胀系数(1.3–2);
27
+ - 连接数 ≈ 实例数 × 池大小,对照 DB 上限留 50% 余量;带宽 ≈ QPS × 平均报文 × 8。
28
+ 估算精度要求一个数量级即可,但**必须写进方案供评审挑战**;上线后实测回填,校准系数。
29
+ **作业包**:`scripts/capacity-calc.py`(qps/storage/conn/bandwidth/pool/transfer 六个子命令,输出含公式过程——评审时逐行挑战数字)。
30
+
31
+ ## C4 分层表达
32
+
33
+ Context(系统与外部关系) → Container(可部署单元+技术栈+通信方式) → Component(容器内模块) → Code(一般不画)。
34
+ 方案评审最低要求:Context + Container 两层 + 核心时序图(最复杂的一条链路) + 数据流向(哪里是事实源)。
35
+
36
+ ## 架构模式选型判据表
37
+
38
+ | 模式 | 启用信号 | 代价(明说) |
39
+ |---|---|---|
40
+ | 模块化单体 | 团队<8 人/需求快变/边界未稳 | 部署耦合;**默认起点,微服务是演进结果不是起点** |
41
+ | 微服务拆分 | 团队按域分组/独立发布诉求/伸缩差异大 | 分布式事务、链路排障、基建成本全家桶 |
42
+ | 事件驱动 | 削峰/多下游订阅/最终一致可接受 | 消息重复与乱序处理、对账补偿必须设计 |
43
+ | CQRS/读写分离 | 读写比悬殊且读模型复杂 | 双模型同步延迟、复杂度翻倍 |
44
+ | 引入缓存 | 读写比>10:1 且容忍短暂陈旧 | 穿透/击穿/雪崩三防+失效策略要写进方案 |
45
+ | 分库分表 | 见 eng-database 三板斧用尽判据 | 跨片查询/事务/扩容迁移 |
46
+
47
+ 通用纪律:**每引入一个组件,方案里必须有它的失效应对**(缓存挂了怎么办/MQ 堆积怎么办),否则不许引入。
48
+ 深水区孙链:分布式(事务判据/幂等/CAP 实务/部分失败测试)载 **arch-distributed**;多租户 SaaS(隔离模型/租户贯穿/计量计费/定制边界)载 **arch-multitenant**。
49
+
50
+ ## 技术选型
51
+
52
+ 评分卡流程走 **eng-research**(权重先于候选/POC 时间盒/退出成本);本链只把关三件事:
53
+ 候选是否满足非功能数字、运维承接能力(现有团队会不会/值班谁接)、与存量技术栈的收敛度
54
+ (**每多一种存量技术,长期成本+1,新增技术要用"淘汰哪个旧的"来换**)。
55
+
56
+ ## ADR 决策记录(一决策一文件)
57
+
58
+ 编号 / 状态(提议|已采纳|已废弃|被 X 取代) / 上下文(约束与备选) / 决策 / 后果(正负都写) / **回退条件**(什么信号出现说明选错了,怎么退)。
59
+ 写 ADR 的判据:影响跨团队、改起来>2 周、或半年后会有人问"当初为什么"。
60
+ **后果栏半年后回填实际情况**——ADR 的价值一半在回填。
61
+
62
+ ## 架构评审(ATAM 精简版,90 分钟盒)
63
+
64
+ 1. 方案人 15min 讲约束与结构(不许讲实现细节);
65
+ 2. 场景压测 45min:把非功能变成具体场景轮流轰——"峰值 3 倍流量来了走哪条路""这个节点挂 10 分钟丢什么""数据错了怎么修";
66
+ 3. 输出三张表 20min:风险点(可能坏)/敏感点(参数一变全局变)/权衡点(A 好则 B 差,记进 ADR);
67
+ 4. 结论:通过/带条件通过(条件挂 Owner 和期限)/重做。
68
+ 评审员配置:至少一名不在本项目的资深工程师(利益无关者提问最狠)。
69
+
70
+ ## 技术债与演进
71
+
72
+ - 债台账字段:本金(修复工时)、利息(每迭代额外付出:绕行/加班/故障)、到期风险;**利息>本金/10 的优先还**。
73
+ - 迭代容量 10–20% 固定还债(eng-planning 落实);大重构用绞杀者模式:新旧并行→流量渐切→旧路径下线有日期。
74
+ - 每季架构健康检查:与 C4 图对照实际代码(腐化点)、依赖方向违规扫描、单点清单复核。
75
+
76
+ ## 与相邻链衔接
77
+
78
+ 对外接口契约先行走 **api-design**(兼容三原则:只加不改不删);数据模型细化进 **eng-database**;
79
+ 部署拓扑进 **eng-infra**;可观测设计(SLI 埋点)进 **eng-observability**——方案文档里各留一节,评审时四链视角都要有人问。
80
+
81
+ ## 使用纪律
82
+
83
+ 先约束后结构(需求基线没有非功能数字就退回 eng-requirements);
84
+ 方案必含"不做的备选"(证明比较过);每个组件有失效应对;决策落 ADR、后果回填;
85
+ **架构图与代码半年不对照=两份虚构**。