@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,59 @@
1
+ ---
2
+ name: finance-chain
3
+ description: 财务技能链总控(岗位×场景→技能路由、月结/审计/资金/投资四条端到端工作流、财务自动化例程配方)。当用户的财务诉求跨多个环节(如"帮我把月结做完""从预测到融资"),或不确定该用哪个财务技能时先载入本技能。
4
+ version: 1.0.0
5
+ ---
6
+
7
+ # 财务技能链总控(一图定位,按链作业)
8
+
9
+ 财务域已形成 **9 个技能的完整链**。跨环节任务按本技能的工作流串行调用(逐个 load_skill),
10
+ 单环节任务直接路由到对应技能。
11
+
12
+ ## 岗位 × 场景路由表
13
+
14
+ | 财务岗位 | 高频场景 | 技能 |
15
+ |---|---|---|
16
+ | 总账/应收应付/资产会计 | 账龄催款、流水核对、三单匹配、折旧摊销、结账出表 | **accounting-ops** |
17
+ | 税务会计 | 各税种申报测算、汇算清缴调整、优惠适配、稽查应对 | **tax-compliance**(稽查资料组织参 audit-assist) |
18
+ | 资金专员(Treasury) | 13 周预测、授信融资、调拨权限、外汇套保 | **treasury-mgmt**(银行视角材料参 banking-credit) |
19
+ | FP&A/管理会计 | 全面预算、预实与量价差、成本分摊、定价支持 | **management-accounting** |
20
+ | 财务分析师 | 财报勾稽、比率杜邦、现金流质量、预警 | **finance-analysis** |
21
+ | 战略财务/董秘 | 投融资测算、尽调资料室、增资 ESOP、清算注销 | **capital-ops**(+business-plan/financial-modeling/securities-research) |
22
+ | 内控与内审 | 抽样底稿、内控矩阵、函证、反舞弊筛查 | **audit-assist** + risk-compliance |
23
+
24
+ ## 端到端工作流(跨技能串行,每步产物=下步输入)
25
+
26
+ ### ① 月度结账链(每月跑)
27
+ D-3 单据截止提醒 → **accounting-ops** 结账清单(计提/暂估/结转)→ 试算平衡(不平先查错)→
28
+ 出三大报表 → **finance-analysis** 勾稽校验+比率预警(不过回查,不带病出表)→
29
+ **management-accounting** 预实差异+量价差(超阈值归因到动作)→ 经营分析报告
30
+ (docx-author)+ 汇报页(slides-html)→ 下月改进项进跟踪表。
31
+
32
+ ### ② 年度审计与汇算链(年初跑)
33
+ **audit-assist** 配合年审(重要性/抽样/函证台账/调整分录承接)→ 审定报表 →
34
+ **tax-compliance** 汇算清缴(纳税调整逐项,与审计调整核对一致)→
35
+ **finance-analysis** 年报深度分析 → 董事会汇报材料。
36
+
37
+ ### ③ 资金安全链(每周滚动)
38
+ **treasury-mgmt** 13 周预测(accounting-ops 的账龄回款率+排款计划喂入)→ 缺口预警 →
39
+ 应对三路(催收:账龄催款函 / 压排款:重排付款计划 / 融资:授信材料包→banking-credit 视角自查)→
40
+ 付款权限矩阵季检(risk-compliance)。
41
+
42
+ ### ④ 投资决策链(按需)
43
+ 业务测算(**management-accounting** 增量现金流)→ **financial-modeling** 驱动式模型 →
44
+ NPV/IRR+敏感性(valuation/property_calc)→ 决策材料(business-plan 结构)→
45
+ **capital-ops** 交割与投后台账 → 投后季度回顾(对着测算假设复盘)。
46
+
47
+ ## 自动化例程配方(office-automation 落地)
48
+
49
+ - 月结日历:每月 25 日提醒单据截止清单;次月 3 日催结账进度;
50
+ - 账龄周报:每周一跑 aging() 出催款优先表,90+ 新增客户即时提醒;
51
+ - 现金流周报:每周五滚动 13 周预测,低于安全垫触发预警报告;
52
+ - 预实月报:每月 5 日自动出 budget_variance 初稿,超阈值项挂"待归因"。
53
+
54
+ ## 使用纪律
55
+
56
+ - 跨环节任务先在回复中列出将走的链与产物清单,再逐环执行(todo_write 跟踪);
57
+ - 每环的验收清单必须过(各技能自带);链上数字**同源**(上一环的产物文件是下一环的输入,
58
+ 不许重算一遍出第二套数);
59
+ - 全链条产物归档到统一目录(`财务/YYYY-MM/`),命名带期间。
@@ -0,0 +1,58 @@
1
+ ---
2
+ name: financial-modeling
3
+ description: 财务建模与预测(驱动式三年模型、预算模型、情景与敏感性、单位经济模型)。当用户说"做财务模型/收入预测/预算模型/测算三年/情景分析"时使用。
4
+ version: 1.0.0
5
+ ---
6
+
7
+ # 财务建模(驱动式 + 公式联动 + 假设与输出分离)
8
+
9
+ ## 建模纪律(模型的可信度=结构的纪律性)
10
+
11
+ 1. **假设与计算分离**:所有可调参数集中「假设」表(蓝色惯例),计算区只有公式不许硬编码数字——
12
+ 审阅者改一个增速,全模型联动;
13
+ 2. **收入必须驱动式**:收入=驱动因子分解(客户数×客单/量×价/漏斗转化),直接拍"收入增长 30%"
14
+ 的模型没有信息量;
15
+ 3. **勾稽内置**:营运资本与现金流联动(应收/存货/应付天数 → ΔWC → 经营现金流),
16
+ 期末现金滚动,**现金为负的月份要触发融资需求提示**;
17
+ 4. 每个输出表带「口径注」(含税否/单位/期间)。
18
+
19
+ ## 模型生成(`read_skill_file` 读 `scripts/fin_model.py`)
20
+
21
+ `build_model()` 生成公式联动的 xlsx 骨架:
22
+ - 「假设」:收入驱动(量/价/增速)、毛利率、费用率(销售/管理/研发)、税率、
23
+ 营运资本天数(DSO/DIO/DPO)、资本开支、期初现金——全部可改;
24
+ - 「利润表」:三年(可扩月度),全公式引用假设;
25
+ - 「现金流」:简化间接法(净利+折旧−ΔWC−CapEx),期末现金滚动,负现金单元格条件格式预警;
26
+ - 结构自校验(verify:公式引用完整性)。
27
+ 生成后按业务**替换驱动结构**(模型骨架是通用的,驱动分解是业务的)。
28
+
29
+ ## 情景与敏感性
30
+
31
+ - 情景三案:基准/乐观/悲观——**改的是假设组合**(各情景假设表列对比),不是改结果;
32
+ - 敏感性:关键假设 ±(增速/毛利率/DSO)对净利与期末现金的单因素表(数据表功能或脚本循环);
33
+ - 结论句式:"现金安全垫在悲观情景下 X 月耗尽,融资窗口应早于 Y 月"。
34
+
35
+ ## 常见模型场景
36
+
37
+ - **融资 BP 模型**(business-plan 衔接):里程碑与资金消耗挂钩,给 runway 测算;
38
+ - **预算模型**:部门维度展开,实际数逐月回填对比(预算-实际-差异-全年预测 rolling forecast);
39
+ - **单位经济**:单客模型(CAC/LTV/回收期/贡献毛利)→ 规模化桥(单客 × 客户数 → 公司 P&L);
40
+ - 估值衔接:模型 FCF → securities-research 的 dcf()。
41
+
42
+ ## 审阅清单(拿到别人模型先跑这个)
43
+
44
+ 硬编码扫描(计算区有无数字)/ 勾稽(BS 平不平、现金滚动对不对)/ 假设合理性
45
+ (增速 vs 行业、费用率 vs 历史)/ 公式一致性(同行公式是否一致拖拽)/ 循环引用。
46
+
47
+ ## 验收自查
48
+
49
+ - [ ] 假设区外无硬编码;收入驱动式
50
+ - [ ] 现金滚动联动,负现金有预警
51
+ - [ ] 情景是假设组合;敏感性覆盖关键变量
52
+ - [ ] 口径注齐全
53
+
54
+ ## 附件
55
+
56
+ - `scripts/fin_model.py` — 驱动式三年模型 xlsx 生成(假设/利润表/现金流全公式联动+结构校验);可直接执行自测
57
+
58
+ > 本技能属**财务技能链**——岗位路由与端到端工作流(月结 · 审计 · 资金 · 投资)见 `finance-chain`。
@@ -0,0 +1,123 @@
1
+ # 驱动式财务模型生成器(经 run_python 执行):假设/利润表/现金流三表 xlsx,全公式联动——
2
+ # 改「假设」任一参数,利润表与现金流自动更新;负现金条件格式预警。
3
+ # 直接执行本文件 = 自测(生成+结构校验)。
4
+ import openpyxl
5
+ from openpyxl.formatting.rule import CellIsRule
6
+ from openpyxl.styles import Font, PatternFill
7
+
8
+ BLUE = Font(color='1F4E79', bold=True) # 假设=蓝色惯例
9
+ HEAD = PatternFill('solid', fgColor='1F4E79')
10
+
11
+ # 假设区行号布局(B 列为第 1 年基准值 / 部分为逐年值)
12
+ ASSUMPTIONS = [
13
+ ('销量(件)', 100000), ('单价(元)', 50.0), ('销量年增速', 0.25),
14
+ ('单价年涨幅', 0.03), ('毛利率', 0.42), ('销售费用率', 0.15),
15
+ ('管理费用率', 0.08), ('研发费用率', 0.10), ('所得税率', 0.25),
16
+ ('DSO 应收天数', 45), ('DIO 存货天数', 60), ('DPO 应付天数', 30),
17
+ ('折旧(元/年)', 800000), ('资本开支(元/年)', 1500000), ('期初现金', 5000000),
18
+ ]
19
+ A = {name: i + 2 for i, (name, _) in enumerate(ASSUMPTIONS)} # 名称→行号
20
+
21
+
22
+ def _hd(ws, row, texts):
23
+ for j, t in enumerate(texts, 1):
24
+ c = ws.cell(row=row, column=j, value=t)
25
+ c.font = Font(bold=True, color='FFFFFF')
26
+ c.fill = HEAD
27
+
28
+
29
+ def build_model(path, years=3):
30
+ wb = openpyxl.Workbook()
31
+ asm = wb.active
32
+ asm.title = '假设'
33
+ _hd(asm, 1, ['参数(蓝色可调)', '取值', '口径注'])
34
+ notes = {'毛利率': '不含税口径', 'DSO 应收天数': '含税应收/日均含税收入简化', '期初现金': '模型起点'}
35
+ for name, val in ASSUMPTIONS:
36
+ r = A[name]
37
+ asm.cell(row=r, column=1, value=name)
38
+ c = asm.cell(row=r, column=2, value=val)
39
+ c.font = BLUE
40
+ asm.cell(row=r, column=3, value=notes.get(name, ''))
41
+
42
+ pl = wb.create_sheet('利润表')
43
+ cols = [f'第{i}年' for i in range(1, years + 1)]
44
+ _hd(pl, 1, ['项目'] + cols)
45
+ rows = ['销量', '单价', '营业收入', '营业成本', '毛利', '销售费用', '管理费用', '研发费用',
46
+ '折旧', 'EBIT', '所得税', '净利润']
47
+ R = {n: i + 2 for i, n in enumerate(rows)}
48
+ for n in rows:
49
+ pl.cell(row=R[n], column=1, value=n)
50
+ for y in range(1, years + 1):
51
+ col = chr(ord('A') + y) # B/C/D
52
+ prev = chr(ord('A') + y - 1)
53
+ f = {
54
+ '销量': f"=假设!B{A['销量(件)']}" if y == 1 else f"={prev}{R['销量']}*(1+假设!B{A['销量年增速']})",
55
+ '单价': f"=假设!B{A['单价(元)']}" if y == 1 else f"={prev}{R['单价']}*(1+假设!B{A['单价年涨幅']})",
56
+ '营业收入': f"={col}{R['销量']}*{col}{R['单价']}",
57
+ '营业成本': f"={col}{R['营业收入']}*(1-假设!B{A['毛利率']})",
58
+ '毛利': f"={col}{R['营业收入']}-{col}{R['营业成本']}",
59
+ '销售费用': f"={col}{R['营业收入']}*假设!B{A['销售费用率']}",
60
+ '管理费用': f"={col}{R['营业收入']}*假设!B{A['管理费用率']}",
61
+ '研发费用': f"={col}{R['营业收入']}*假设!B{A['研发费用率']}",
62
+ '折旧': f"=假设!B{A['折旧(元/年)']}",
63
+ 'EBIT': f"={col}{R['毛利']}-{col}{R['销售费用']}-{col}{R['管理费用']}-{col}{R['研发费用']}-{col}{R['折旧']}",
64
+ '所得税': f"=MAX({col}{R['EBIT']},0)*假设!B{A['所得税率']}",
65
+ '净利润': f"={col}{R['EBIT']}-{col}{R['所得税']}",
66
+ }
67
+ for n, formula in f.items():
68
+ pl.cell(row=R[n], column=y + 1, value=formula)
69
+
70
+ cf = wb.create_sheet('现金流')
71
+ _hd(cf, 1, ['项目'] + cols)
72
+ crows = ['净利润', '加:折旧', '应收', '存货', '应付', 'ΔWC(增加为负)', '经营现金流',
73
+ '资本开支', '净现金流', '期末现金']
74
+ C = {n: i + 2 for i, n in enumerate(crows)}
75
+ for n in crows:
76
+ cf.cell(row=C[n], column=1, value=n)
77
+ for y in range(1, years + 1):
78
+ col = chr(ord('A') + y)
79
+ prev = chr(ord('A') + y - 1)
80
+ wc = {
81
+ '应收': f"=利润表!{col}{R['营业收入']}/365*假设!B{A['DSO 应收天数']}",
82
+ '存货': f"=利润表!{col}{R['营业成本']}/365*假设!B{A['DIO 存货天数']}",
83
+ '应付': f"=利润表!{col}{R['营业成本']}/365*假设!B{A['DPO 应付天数']}",
84
+ }
85
+ f = {
86
+ '净利润': f"=利润表!{col}{R['净利润']}",
87
+ '加:折旧': f"=利润表!{col}{R['折旧']}",
88
+ **wc,
89
+ 'ΔWC(增加为负)': (f"=-({col}{C['应收']}+{col}{C['存货']}-{col}{C['应付']})" if y == 1 else
90
+ f"=-(({col}{C['应收']}+{col}{C['存货']}-{col}{C['应付']})-({prev}{C['应收']}+{prev}{C['存货']}-{prev}{C['应付']}))"),
91
+ '经营现金流': f"={col}{C['净利润']}+{col}{C['加:折旧']}+{col}{C['ΔWC(增加为负)']}",
92
+ '资本开支': f"=-假设!B{A['资本开支(元/年)']}",
93
+ '净现金流': f"={col}{C['经营现金流']}+{col}{C['资本开支']}",
94
+ '期末现金': (f"=假设!B{A['期初现金']}+{col}{C['净现金流']}" if y == 1 else
95
+ f"={prev}{C['期末现金']}+{col}{C['净现金流']}"),
96
+ }
97
+ for n, formula in f.items():
98
+ cf.cell(row=C[n], column=y + 1, value=formula)
99
+ rng = f"B{C['期末现金']}:{chr(ord('A') + years)}{C['期末现金']}"
100
+ cf.conditional_formatting.add(rng, CellIsRule(operator='lessThan', formula=['0'],
101
+ fill=PatternFill('solid', fgColor='FFC7CE')))
102
+ wb.save(path)
103
+ print(f'[模型] 已生成 {path}:假设 {len(ASSUMPTIONS)} 参数 → 利润表/现金流 {years} 年全公式联动(负现金红色预警)')
104
+ return path
105
+
106
+
107
+ def verify(path):
108
+ """结构校验:计算区不得有硬编码数字;关键公式引用假设表。"""
109
+ wb = openpyxl.load_workbook(path)
110
+ pl, cf = wb['利润表'], wb['现金流']
111
+ hard = [f'{ws.title}!{c.coordinate}' for ws in (pl, cf) for row in ws.iter_rows(min_row=2, min_col=2)
112
+ for c in row if isinstance(c.value, (int, float))]
113
+ assert not hard, f'计算区出现硬编码:{hard[:5]}'
114
+ assert '假设!B' in str(pl['B4'].value) or '假设!B' in str(pl['B2'].value), '利润表应引用假设'
115
+ assert str(cf.cell(row=11, column=2).value or '').startswith('='), '现金流应为公式'
116
+ print('[模型] 结构校验通过(无硬编码、公式联动齐备)')
117
+ return True
118
+
119
+
120
+ if __name__ == '__main__':
121
+ p = build_model('fin_model_check.xlsx')
122
+ verify(p)
123
+ print('OK fin_model.py')
@@ -0,0 +1,54 @@
1
+ ---
2
+ name: foreign-trade
3
+ description: 外贸与跨境(外贸单证制作与审单、信用证条款审查、Incoterms 责任划分、出口退税资料、跨境客户开发信)。当用户说"做外贸单据/审信用证/PI/CI/箱单/贸易术语/开发信"时使用。
4
+ version: 1.0.0
5
+ ---
6
+
7
+ # 外贸单证与跨境实务(单单一致、单证一致,是外贸的命)
8
+
9
+ ## 核心单证链(制单顺序即业务顺序)
10
+
11
+ 询盘 → 报价单/形式发票 **PI**(品名规格/数量/单价与贸易术语/付款方式/交期/有效期/银行信息)→
12
+ 合同 → 商业发票 **CI** + 装箱单 **PL**(件数毛净重尺码,与提单一致)→ 报关单证 →
13
+ 提单 **B/L**(收发货人/通知人/唛头/运费条款)→ 原产地证(CO/FORM 系列按目的国优惠协定选)→
14
+ 出口退税资料(报关单/发票/收汇凭证配齐)。
15
+ **一致性铁律**:品名/数量/金额/唛头/贸易术语在全链单证与信用证之间逐字一致——
16
+ `一致性核对表`(字段×单证矩阵,逐格打勾)是本技能的固定产出。
17
+
18
+ ## 信用证审单(收到 L/C 先审后做,UCP600 思路)
19
+
20
+ 审证清单(逐条过):
21
+ - 基础:不可撤销?保兑?开证行资信(小行/高风险地区行提示做保兑或改付款方式);
22
+ - 金额与溢短装(数量允差 ±5% 是否适用/金额是否够);
23
+ - **期限三查**:装运期(来得及生产吗)/交单期(通常装运后 21 天内且不迟于效期)/效期与地点
24
+ (效期在国外=风险,争取改国内);
25
+ - 单据要求逐条可满足性判定(要求"船公司证明"类**非我方可控单据**要警惕;领事认证周期够不够);
26
+ - **软条款扫描**(开证人验货后才生效/1/1 正本提单直寄开证人/未明确检验机构——本质是付款主动权
27
+ 旁落,标红并给改证建议函草稿);
28
+ - 拼写核对:受益人名称地址与营业执照/发票抬头逐字符一致(一个字母=不符点)。
29
+ 不符点成本要点:每个不符点银行扣费且付款主动权转移——**制单前审证,交单前自审**(模拟银行审单:
30
+ 单证一致/单单一致/表面合规三查)。
31
+
32
+ ## Incoterms 责任划分(报价与纠纷的地基)
33
+
34
+ 常用术语速查(风险转移点/运费/保险责任方):EXW(工厂交货,买方全责——新手卖方慎用,
35
+ 出口清关都是买方的)/ FOB(越船舷转移,海运)/ CIF(卖方付运保费但**风险仍在装港转移**——
36
+ "CIF=货到才算交货"是最贵的误解)/ CPT·CIP(多式联运版)/ DDP(卖方包到底含关税,
37
+ 关税波动风险自担)。报价单必须"术语+版本年+地点"(如 FOB Shanghai Incoterms 2020)。
38
+
39
+ ## 跨境收款与风控
40
+
41
+ 方式风险梯度:前 TT > L/C > D/P > D/A > 后 TT(赊销);新客户首单建议前 TT 比例 ≥30%;
42
+ 出口信用保险提示;客户尽调清单(注册信息/海关数据/网站与邮箱域名一致性)。
43
+
44
+ ## 开发信(转 email-writing 英文范式 + 外贸特化)
45
+
46
+ 首封≤120 词:客户业务的具体切入点("看到你们在售 X 系列")+ 我方一个可验证优势 + 低门槛 CTA
47
+ (要目录还是要样品报价);禁全大写/多感叹号/附件首封直发(进垃圾箱三件套);跟进节奏 3-7-15 天。
48
+
49
+ ## 验收自查
50
+
51
+ - [ ] 一致性核对表逐格完成
52
+ - [ ] L/C 软条款扫描过,期限三查通过
53
+ - [ ] 报价含术语版本年与地点
54
+ - [ ] 单据可满足性逐条判定,不可控单据已标红
@@ -0,0 +1,53 @@
1
+ ---
2
+ name: funnel-cohort
3
+ description: 漏斗转化与同期群留存(转化漏斗、流失定位、Cohort 留存矩阵、路径流向、生命周期分析)。当用户说"漏斗/转化率/流失在哪/留存/复购/同期群/cohort/用户路径"时使用。Excel 分析链之流向环。
4
+ version: 1.0.0
5
+ ---
6
+
7
+ # 漏斗转化与留存(Excel 分析链 · 流向环;全景见 excel-analysis-chain)
8
+
9
+ 漏斗看"一次旅程的流失",留存看"跨时间的回来"——两个视角缺一不可。
10
+
11
+ ## 漏斗分析(`read_skill_file` 读 `scripts/funnel.py`)
12
+
13
+ - `funnel()`:逐级转化率 + 逐级流失 + 整体转化——**口径先定死**:人数漏斗还是次数漏斗?
14
+ 去重口径?时间窗(同一 session 内还是跨天允许)?——marketing-analytics 同源纪律;
15
+ - **断点定位**:跌幅最大层高亮 → 分维度下钻(`funnel(by='渠道')` 分组漏斗,
16
+ 找"哪类人在哪一步掉得多")→ 该群体专项;
17
+ - 漏斗对比:改版前后/AB 组/不同渠道同口径对比——绝对转化率无意义,**对比才有诊断力**;
18
+ - 反漏斗(从结果倒推):成交用户的来源路径分布,找高价值路径放大。
19
+
20
+ ## Cohort 留存矩阵
21
+
22
+ - `retention_matrix()`:行=获取周期(注册周/首购月),列=第 N 期,值=留存率——
23
+ **对角线读单期表现,竖列读同期群衰减,横行读某批用户的生命周期**;
24
+ - 留存曲线形态诊断:陡降后平缓(有 PMF 的健康形态)vs 持续下滑(漏水的桶,
25
+ 拉新填不满流失);次日/7 日/30 日留存基准(按行业);
26
+ - 分群留存对比(渠道/首购品类/是否用核心功能)——**找到"高留存用户的共同行为",
27
+ 这是产品北极星的线索**(metrics-system 衔接)。
28
+
29
+ ## 路径与流向
30
+
31
+ 关键路径 Top-N(用户到达目标的主要路径与步数);循环与折返(反复横跳=体验卡点);
32
+ 流失前最后动作分布(流失预警信号)。
33
+
34
+ ## LTV 与生命周期
35
+
36
+ 留存 × 客单 → LTV 估算(marketing-analytics 口径,给计算窗口);
37
+ 生命周期分层(新/成长/成熟/衰退/流失)× 对应运营动作(精细化运营衔接)。
38
+
39
+ ## 产出
40
+
41
+ 漏斗图(逐级条形)+ Cohort 热力图(留存矩阵,data-analysis 出图,颜色深浅一眼看衰减)+
42
+ 断点结论与动作。可例程化为周度漏斗/留存监控(office-automation)。
43
+
44
+ ## 验收自查
45
+
46
+ - [ ] 漏斗口径(人数/次数/去重/时间窗)写死
47
+ - [ ] 断点做了分维度下钻找责任群体
48
+ - [ ] 留存矩阵三向读法都给了结论
49
+ - [ ] 找了高留存用户共同行为
50
+
51
+ ## 附件
52
+
53
+ - `scripts/funnel.py` — funnel(逐级+分组下钻)/retention_matrix(同期群留存)/ltv_simple;可直接执行自测
@@ -0,0 +1,105 @@
1
+ # 漏斗与留存件(经 run_python 执行):逐级漏斗(可分组下钻)/ Cohort 留存矩阵 / 简易 LTV。
2
+ # 直接执行本文件 = 自测。
3
+ import numpy as np
4
+ import pandas as pd
5
+
6
+
7
+ def funnel(counts, steps=None, by=None):
8
+ """漏斗:counts 为各级人数列表(降序)或 {步骤:人数}。返回逐级转化/流失表。"""
9
+ if isinstance(counts, dict):
10
+ steps, counts = list(counts.keys()), list(counts.values())
11
+ steps = steps or [f'步骤{i+1}' for i in range(len(counts))]
12
+ c = [float(x) for x in counts]
13
+ rows = []
14
+ for i, (s, v) in enumerate(zip(steps, c)):
15
+ step_cvr = (v / c[i - 1] if c[i - 1] else np.nan) if i > 0 else 1.0 # 上级为0不除零
16
+ overall = v / c[0] if c[0] else np.nan
17
+ rows.append({'步骤': s, '人数': int(v), '本级转化%': round(step_cvr * 100, 1),
18
+ '累计转化%': round(overall * 100, 1),
19
+ '本级流失': int(c[i - 1] - v) if i > 0 else 0})
20
+ df = pd.DataFrame(rows)
21
+ _sub = df.iloc[1:]['本级转化%'].dropna() # 全为 NaN(如全零漏斗)时不取 idxmin,避免 KeyError
22
+ worst = _sub.idxmin() if len(_sub) else None
23
+ tag = f"(最大断点:{df.loc[worst, '步骤']},本级仅 {df.loc[worst, '本级转化%']}%)" if worst is not None else ''
24
+ print(f'[漏斗] 整体转化 {df.iloc[-1]["累计转化%"]}% {tag}')
25
+ print(df.to_markdown(index=False))
26
+ return df
27
+
28
+
29
+ def funnel_by(df_events, user_col, step_col, step_order, group_col=None):
30
+ """从事件明细算漏斗(去重用户口径)。step_order 定义步骤顺序;group_col 分组下钻。"""
31
+ def one(sub):
32
+ reached = {}
33
+ for st in step_order:
34
+ reached[st] = sub[sub[step_col] == st][user_col].nunique()
35
+ # 漏斗单调:后一步不超过前一步(用户须先到前步)
36
+ vals, prev = [], np.inf
37
+ for st in step_order:
38
+ v = min(reached[st], prev)
39
+ vals.append(v)
40
+ prev = v
41
+ return vals
42
+ if group_col:
43
+ out = {}
44
+ for g, sub in df_events.groupby(group_col):
45
+ out[g] = funnel(one(sub), steps=step_order)['累计转化%'].iloc[-1]
46
+ res = pd.Series(out).sort_values()
47
+ print(f'[分组漏斗] 各 {group_col} 整体转化%(升序,最低者优先诊断):\n' + res.to_markdown())
48
+ return res
49
+ return funnel(one(df_events), steps=step_order)
50
+
51
+
52
+ def retention_matrix(df, user_col, cohort_col, period_col, max_p=6):
53
+ """Cohort 留存矩阵:cohort_col=获取期,period_col=活跃期偏移(0,1,2…)。值=留存率。"""
54
+ base = df.groupby(cohort_col)[user_col].nunique().rename('规模')
55
+ piv = df.pivot_table(index=cohort_col, columns=period_col, values=user_col,
56
+ aggfunc='nunique', observed=True)
57
+ ret = piv.div(piv[0], axis=0).round(3)
58
+ ret = ret[[c for c in ret.columns if c <= max_p]]
59
+ out = ret.copy()
60
+ out.insert(0, '规模', base)
61
+ print('[留存矩阵](行=获取期,列=第N期留存率)')
62
+ print(out.to_markdown())
63
+ # 平均各期留存(跨 cohort)
64
+ avg = ret.mean().round(3)
65
+ print(f' 平均留存:第1期 {avg.get(1, float("nan")):.1%} · 第3期 {avg.get(3, float("nan")):.1%}')
66
+ return ret
67
+
68
+
69
+ def ltv_simple(arpu, retention_curve):
70
+ """简易 LTV = ARPU × Σ留存率(离散求和)。retention_curve: 各期留存率列表(含第0期=1)。"""
71
+ ltv = arpu * sum(retention_curve)
72
+ print(f'[LTV] ARPU {arpu} × Σ留存 {sum(retention_curve):.2f} = {ltv:.1f}({len(retention_curve)} 期口径)')
73
+ return round(ltv, 1)
74
+
75
+
76
+ if __name__ == '__main__':
77
+ f = funnel({'曝光': 10000, '点击': 3200, '加购': 900, '下单': 620, '支付': 580})
78
+ assert f.iloc[-1]['累计转化%'] == 5.8
79
+ assert f.iloc[1]['本级转化%'] == 32.0
80
+ # 事件明细漏斗
81
+ rng = np.random.default_rng(3)
82
+ ev = []
83
+ for u in range(1000):
84
+ ev.append((u, '曝光', rng.choice(['A', 'B'])))
85
+ if rng.random() < 0.4:
86
+ ev.append((u, '点击', ev[-1][2]))
87
+ if rng.random() < 0.3:
88
+ ev.append((u, '下单', ev[-1][2]))
89
+ dfe = pd.DataFrame(ev, columns=['用户', '步骤', '渠道'])
90
+ fb = funnel_by(dfe, '用户', '步骤', ['曝光', '点击', '下单'], group_col='渠道')
91
+ assert len(fb) == 2
92
+ # 留存
93
+ coh = []
94
+ for c in ['2026-01', '2026-02']:
95
+ size = 200
96
+ for p in range(5):
97
+ keep = int(size * (0.6 ** p))
98
+ for u in range(keep):
99
+ coh.append((f'{c}-{u}', c, p))
100
+ dc = pd.DataFrame(coh, columns=['用户', 'cohort', '期'])
101
+ rm = retention_matrix(dc, '用户', 'cohort', '期')
102
+ assert abs(rm.loc['2026-01', 0] - 1.0) < 1e-9 and rm.loc['2026-01', 1] < 1
103
+ assert ltv_simple(50, [1, 0.6, 0.36, 0.22]) == round(50 * 2.18, 1)
104
+ assert not funnel([0, 0, 0]).empty and funnel([100]).iloc[0]['累计转化%'] == 100.0 # 退化输入不崩
105
+ print('OK funnel.py')
@@ -0,0 +1,57 @@
1
+ ---
2
+ name: gov-document
3
+ description: 党政机关与企事业单位公文(请示、报告、通知、函、纪要、决定、意见等 15 文种)与规范版式。当用户说"写个请示/通知/红头文件/上报材料/公文"时使用。
4
+ version: 1.0.0
5
+ ---
6
+
7
+ # 公文写作(文种判定 → 结构范式 → 版式要点)
8
+
9
+ ## 第一步:判定文种(用错文种=退回重写)
10
+
11
+ | 情形 | 文种 | 关键区别 |
12
+ |---|---|---|
13
+ | 向上级请求指示/批准(事前) | **请示** | 一文一事;必须有明确请求事项;结尾"妥否,请批示" |
14
+ | 向上级汇报工作/反映情况(事后/过程) | **报告** | 不得夹带请示事项;结尾"特此报告" |
15
+ | 向下级布置工作/周知事项 | **通知** | 有执行要求与时限 |
16
+ | 不相隶属单位之间商洽/询问/答复 | **函** | 平行语气;复函须引来函标题与文号 |
17
+ | 会议议定事项的记载与传达 | **纪要** | 只记决议与分工,不记过程争论 |
18
+ | 对重要事项作出安排/处理 | 决定/意见/批复/通报/公告/通告/命令/议案/决议/公报 | 按机关权限与场景 |
19
+
20
+ 常见误用主动纠正:请示写成报告(导致无人批复)、越级请示、函写成通知(对不相隶属单位没有指令权)。
21
+
22
+ ## 结构范式(正文三段法为骨)
23
+
24
+ - **请示**:缘由(依据+现状+必要性,短)→ 事项(请求什么,涉及钱/编/物给准确数字)→
25
+ 结语("妥否,请批示。");附件列证明材料。
26
+ - **报告**:概况 → 主要做法与成效(数据说话)→ 存在问题 → 下一步打算 → "特此报告。"
27
+ - **通知**:目的依据 → 事项(分条,每条=要求+责任主体+时限)→ 执行要求("请…贯彻落实")。
28
+ - **函**:缘由 → 商洽/询问/答复事项 → 结语(商洽函"盼复"、复函"特此函复")。
29
+ - **纪要**:会议概况(时间/地点/主持/出席)→ 议定事项(一、二、三…每条含责任单位与时限)→
30
+ 其他事项。**未议定的不写进纪要**。
31
+
32
+ ## 版式要点(GB/T 9704 口径,Word 落版时对照)
33
+
34
+ - 眉首:份号/密级紧急程度(如有)、发文机关标志(红头)、发文字号(〔〕年份+序号,如
35
+ ×政发〔2026〕3 号——**六角括号不是方括号**)、签发人(上行文必标);
36
+ - 标题:发文机关+事由+文种,居中,回行时词意完整、排列对称;**标题中除法规名可用书名号外一般不用标点**;
37
+ - 主送机关顶格;正文一级"一、"二级"(一)"三级"1."四级"(1)";
38
+ - 落款:成文日期用**阿拉伯数字全写**(2026年7月16日),加盖印章骑年压月(有章不签名);
39
+ - 附件说明在正文下空一行标注"附件:1. ×××";
40
+ - 字体惯例:标题方正小标宋二号,正文仿宋GB2312 三号(docx-author 落版时设置并注明"按 9704 惯例")。
41
+
42
+ ## 语言红线
43
+
44
+ 准确庄重、一文一事、不用"大概/尽快/相关部门"这类模糊词——时限给日期、主体给单位全称;
45
+ 杜绝口语与网络语;数字用法规范(概数用汉字,精确数用阿拉伯)。
46
+
47
+ ## 产出
48
+
49
+ 正文(docx-author 落版,版式按上)+ 发文说明(拟稿人/核稿/会签栏,如单位有 OA 模板则按模板);
50
+ 重要公文给**两版**:送审版(留批注说明拟法)与净版。
51
+
52
+ ## 验收自查
53
+
54
+ - [ ] 文种判定有依据,无误用
55
+ - [ ] 一文一事;请求/议定事项具体(数字/主体/时限)
56
+ - [ ] 发文字号六角括号、成文日期格式、结语套语正确
57
+ - [ ] 上行文标注签发人;附件说明规范
@@ -0,0 +1,51 @@
1
+ ---
2
+ name: hr-chain
3
+ description: 人力资源技能链总控(选育用留全场景→技能路由、招聘/绩效/离职三条端到端工作流、HR 自动化例程)。当 HR 诉求跨环节("从 JD 到入职全流程""年度绩效整个周期")或不确定用哪个技能时先载入。
4
+ version: 1.0.0
5
+ ---
6
+
7
+ # 人力资源技能链总控
8
+
9
+ ## 场景路由表
10
+
11
+ | HR 模块 | 高频场景 | 技能 |
12
+ |---|---|---|
13
+ | 组织与规划 | 编制测算、组织调整方案、人力成本预算 | strategy-planning + management-accounting(人力成本口径) |
14
+ | 招聘配置 | JD/结构化筛选/面试题库/评估表/Offer | **hr-operations** |
15
+ | 入转调离 | 入职包/转正评估/调岗协商/离职面谈 | hr-operations + knowledge-sop(新人上手包) |
16
+ | 薪酬福利 | 工资核算/社保个税/年终奖计税/薪酬报表 | **accounting-ops** 薪酬模块 + tax-compliance(个税) |
17
+ | 绩效管理 | OKR 制定/过程跟踪/评估/结果应用 | **okr-review** + hr-operations(评估表/PIP) |
18
+ | 培训发展 | 课程设计/内训项目/效果评估 | **education-training** |
19
+ | 员工关系 | 劳动合同/竞业/辞退合规/仲裁应对 | **legal-contract**(劳动清单)+ litigation-support |
20
+ | HR 数据 | 离职率/人效/招聘漏斗分析 | hr-operations 报表节 + data-report-pro |
21
+
22
+ ## 端到端工作流
23
+
24
+ ### ① 招聘到入职链
25
+ 用人部门需求确认(岗位使命+编制依据)→ hr-operations:JD → 渠道发布文案(content-creation
26
+ 平台范式)→ **批量简历结构化评分**(run_python,评分表+待澄清点)→ 面试题库与评估表(先独立后合议)→
27
+ Offer 要素与谈薪区间 → 背调授权与要点 → 入职包(knowledge-sop:第 1 天/周/月清单)→
28
+ 转正评估(试用期目标在入职时就写下)。全程漏斗数据落 `招聘台账.xlsx`(分渠道转化,月度复盘渠道 ROI)。
29
+
30
+ ### ② 绩效全周期链(半年/年度)
31
+ 目标制定(okr-review:KR 反模式扫描+上级对齐)→ 过程(周报纪律+季度 1on1 提纲)→
32
+ 评估(hr-operations 评估表:证据制打分→校准会材料:强制分布争议项逐个过)→
33
+ 结果沟通(SBI 反馈;低绩效 PIP:目标/支持/检查点,**legal 复核**)→ 结果应用
34
+ (调薪矩阵:绩效×薪酬分位;晋升答辩材料 okr-review)。
35
+
36
+ ### ③ 离职与风险链
37
+ 离职申请 → 面谈提纲(真实原因挖掘,归类进离职分析)→ 交接清单(knowledge-sop 萃取:
38
+ 关键知识别跟人走)→ 结算(accounting-ops:工资/未休假/经济补偿测算——**补偿方案 legal-contract
39
+ 劳动清单复核**)→ 竞业限制启动判断(启动=要付补偿,不启动=书面豁免)→ 离职证明(如实、无负面评价义务)→
40
+ 风险场景(协商不成→litigation-support 证据与时间线预备)。
41
+
42
+ ## 自动化例程配方
43
+
44
+ - 简历批筛:新简历落入约定目录即触发结构化评分,周一汇总排序表;
45
+ - 试用期到期 T-14 提醒转正评估;合同到期 T-60 提醒续签决策;
46
+ - 证书/资质到期台账月检;离职率月报自动出分部门趋势。
47
+
48
+ ## 使用纪律
49
+
50
+ 歧视性表述零容忍(全链产出过 hr-operations 合规扫描);涉劳动法律风险节点(辞退/调岗/竞业/PIP)
51
+ 一律标注律师复核;薪酬数据最小可见。
@@ -0,0 +1,53 @@
1
+ ---
2
+ name: hr-operations
3
+ description: 人力资源(JD 编写、简历结构化筛选、面试题库与评估表、绩效方案、人力报表、员工沟通文书)。当用户说"写 JD/筛简历/面试题/绩效方案/人力分析/offer/辞退沟通"时使用。
4
+ version: 1.0.0
5
+ ---
6
+
7
+ # 人力资源(招聘漏斗到绩效闭环,文书全覆盖)
8
+
9
+ ## 合规红线(先行)
10
+
11
+ 招聘文书**不得出现**性别/年龄/婚育/地域/民族等歧视性限制(法定特殊岗位除外并注明依据);
12
+ 辞退/调岗类文书标注"涉劳动法律风险,建议法务/律师复核"(细则转 legal-contract);
13
+ 薪酬数据处理注意最小可见范围,产出前问脱敏要求。
14
+
15
+ ## 招聘线
16
+
17
+ - **JD**:岗位使命一句话(这个岗位为什么存在)→ 职责(≤6 条,动词开头,可衡量)→
18
+ 任职要求分「必须/加分」两档(必须项过多=招不到,逐条挑战必要性)→ 亮点(真实可兑现的才写)。
19
+ - **简历筛选(结构化,拒绝印象流)**:先从 JD 提取 5–8 个评估维度与权重 → 每份简历逐维打分
20
+ (1–5,每分给简历原文证据)→ 输出排序表 + 「待澄清点」(空窗期/短任职/表述矛盾——是面试问题
21
+ 不是直接扣分项)。批量简历(几十份+)用 run_python 结构化提取后统一评分,xlsx 落盘。
22
+ - **面试题库**:按维度出题,行为面试用 STAR 追问链(情境→任务→行动→结果→"你个人的贡献具体是哪部分?");
23
+ 每题附「好答案特征/危险信号」;技术岗给分层题(基础/进阶/开放设计)。
24
+ - **面试评估表**:维度×评分×证据(面试官必须写行为证据,"感觉不错"无效)+ 独立结论
25
+ (强烈推荐/推荐/待定/否)——先各自打分再合议,防锚定。
26
+ - **Offer 沟通**:书面要素齐(岗位/职级/薪酬结构/期权条款/入职日/背调条件);谈薪给区间策略与
27
+ 说辞(对标依据),超权限的明确升级路径。
28
+
29
+ ## 绩效线
30
+
31
+ - 方案设计:目标制(OKR/KPI)选择依据 → 周期与校准机制(强制分布要慎,写明申诉通道)→
32
+ 结果应用(调薪/晋升/PIP 的挂钩规则要事先公示);
33
+ - 绩效反馈文书:SBI 结构(情境-行为-影响),低绩效沟通配改进计划(PIP:目标/支持/检查点/后果,
34
+ 期限明确)——PIP 文书标法务复核;
35
+ - 述职材料转 okr-review。
36
+
37
+ ## 人力报表(数据侧走 data-analysis/xlsx-analysis)
38
+
39
+ 编制与在编/入离职趋势与离职率(口径:月均在编)/司龄与年龄结构/招聘漏斗转化
40
+ (简历→初筛→面试→offer→入职,分渠道)/人效(人均营收/人均利润,口径注明);
41
+ 离职分析按「部门×司龄×绩效」下钻,访谈原因归类后给结构性结论。
42
+
43
+ ## 员工关系文书
44
+
45
+ 入职欢迎/转正评估/调岗协商(自愿协商函,单方调岗风险提示)/离职面谈提纲/
46
+ 证明类文书(收入/在职,按模板,不虚开)。
47
+
48
+ ## 验收自查
49
+
50
+ - [ ] 招聘文书无歧视性表述
51
+ - [ ] 筛选/评估每个分数有证据;先独立后合议
52
+ - [ ] 涉劳动法律风险文书已标注复核建议
53
+ - [ ] 报表口径(离职率/人效)已注明