@huicai/cli 2026.804.0 → 2026.1019.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 (486) hide show
  1. package/LICENSE +391 -32
  2. package/README.md +176 -10
  3. package/bin/huicai.js +166 -73
  4. package/package.json +27 -8
  5. package/skills/ab-testing/trigger-cases.json +30 -0
  6. package/skills/academic-writing/trigger-cases.json +30 -0
  7. package/skills/accounting-ops/trigger-cases.json +30 -0
  8. package/skills/ai-agent/trigger-cases.json +30 -0
  9. package/skills/ai-aiops/trigger-cases.json +30 -0
  10. package/skills/ai-coding/trigger-cases.json +30 -0
  11. package/skills/ai-compliance/trigger-cases.json +30 -0
  12. package/skills/ai-eval/trigger-cases.json +30 -0
  13. package/skills/ai-llm-app/trigger-cases.json +30 -0
  14. package/skills/ai-mlops/trigger-cases.json +30 -0
  15. package/skills/ai-multimodal/trigger-cases.json +30 -0
  16. package/skills/ai-prompt/trigger-cases.json +30 -0
  17. package/skills/ai-rag/trigger-cases.json +30 -0
  18. package/skills/anomaly-detection/trigger-cases.json +30 -0
  19. package/skills/api-design/trigger-cases.json +31 -0
  20. package/skills/api-integration/trigger-cases.json +31 -0
  21. package/skills/arch-design/trigger-cases.json +12 -0
  22. package/skills/arch-diagram/SKILL.md +118 -0
  23. package/skills/arch-diagram/trigger-cases.json +30 -0
  24. package/skills/arch-distributed/trigger-cases.json +30 -0
  25. package/skills/arch-multitenant/trigger-cases.json +30 -0
  26. package/skills/audio-brief/SKILL.md +65 -0
  27. package/skills/audio-brief/trigger-cases.json +30 -0
  28. package/skills/audit-assist/trigger-cases.json +30 -0
  29. package/skills/audit-chain/trigger-cases.json +31 -0
  30. package/skills/banking-credit/trigger-cases.json +30 -0
  31. package/skills/brand-design/trigger-cases.json +30 -0
  32. package/skills/business-plan/trigger-cases.json +30 -0
  33. package/skills/capital-ops/trigger-cases.json +30 -0
  34. package/skills/cicd-pipeline/trigger-cases.json +31 -0
  35. package/skills/code-archaeology/SKILL.md +55 -0
  36. package/skills/code-archaeology/trigger-cases.json +9 -0
  37. package/skills/code-quality/SKILL.md +138 -0
  38. package/skills/code-quality/references/languages.md +107 -0
  39. package/skills/code-quality/scripts/__pycache__/code_battery.cpython-312.pyc +0 -0
  40. package/skills/code-quality/scripts/__pycache__/code_check.cpython-312.pyc +0 -0
  41. package/skills/code-quality/scripts/__pycache__/code_check.cpython-313.pyc +0 -0
  42. package/skills/code-quality/scripts/__pycache__/code_csharp.cpython-312.pyc +0 -0
  43. package/skills/code-quality/scripts/__pycache__/code_csharp.cpython-313.pyc +0 -0
  44. package/skills/code-quality/scripts/__pycache__/code_fix.cpython-312.pyc +0 -0
  45. package/skills/code-quality/scripts/__pycache__/code_fix.cpython-313.pyc +0 -0
  46. package/skills/code-quality/scripts/__pycache__/code_java.cpython-312.pyc +0 -0
  47. package/skills/code-quality/scripts/__pycache__/code_java.cpython-313.pyc +0 -0
  48. package/skills/code-quality/scripts/__pycache__/code_jsts.cpython-312.pyc +0 -0
  49. package/skills/code-quality/scripts/__pycache__/code_jsts.cpython-313.pyc +0 -0
  50. package/skills/code-quality/scripts/__pycache__/code_lens.cpython-312.pyc +0 -0
  51. package/skills/code-quality/scripts/__pycache__/code_lens.cpython-313.pyc +0 -0
  52. package/skills/code-quality/scripts/__pycache__/code_python.cpython-312.pyc +0 -0
  53. package/skills/code-quality/scripts/__pycache__/code_python.cpython-313.pyc +0 -0
  54. package/skills/code-quality/scripts/__pycache__/code_testplan.cpython-312.pyc +0 -0
  55. package/skills/code-quality/scripts/code_battery.py +1072 -0
  56. package/skills/code-quality/scripts/code_check.py +1269 -0
  57. package/skills/code-quality/scripts/code_csharp.py +371 -0
  58. package/skills/code-quality/scripts/code_fix.py +201 -0
  59. package/skills/code-quality/scripts/code_java.py +695 -0
  60. package/skills/code-quality/scripts/code_jsts.py +313 -0
  61. package/skills/code-quality/scripts/code_lens.py +1079 -0
  62. package/skills/code-quality/scripts/code_python.py +536 -0
  63. package/skills/code-quality/scripts/code_testplan.py +239 -0
  64. package/skills/code-quality/trigger-cases.json +45 -0
  65. package/skills/code-review/SKILL.md +24 -0
  66. package/skills/code-review/trigger-cases.json +35 -0
  67. package/skills/commit-and-pr/trigger-cases.json +31 -0
  68. package/skills/content-creation/trigger-cases.json +30 -0
  69. package/skills/corporate-governance/trigger-cases.json +30 -0
  70. package/skills/crawl-chain/trigger-cases.json +31 -0
  71. package/skills/customer-service/trigger-cases.json +30 -0
  72. package/skills/data-analysis/trigger-cases.json +30 -0
  73. package/skills/data-chain/SKILL.md +1 -1
  74. package/skills/data-chain/trigger-cases.json +31 -0
  75. package/skills/data-governance/trigger-cases.json +30 -0
  76. package/skills/data-report-pro/trigger-cases.json +30 -0
  77. package/skills/data-streaming/trigger-cases.json +30 -0
  78. package/skills/data-wrangling/SKILL.md +1 -1
  79. package/skills/data-wrangling/trigger-cases.json +30 -0
  80. package/skills/db-es/trigger-cases.json +30 -0
  81. package/skills/db-migration/trigger-cases.json +30 -0
  82. package/skills/db-mysql/trigger-cases.json +30 -0
  83. package/skills/db-postgres/trigger-cases.json +30 -0
  84. package/skills/db-redis/trigger-cases.json +30 -0
  85. package/skills/debug-root-cause/trigger-cases.json +30 -0
  86. package/skills/dependency-audit/SKILL.md +56 -0
  87. package/skills/dependency-audit/trigger-cases.json +7 -0
  88. package/skills/dependency-upgrade/trigger-cases.json +31 -0
  89. package/skills/dev-cpp/trigger-cases.json +30 -0
  90. package/skills/dev-cross-platform/trigger-cases.json +30 -0
  91. package/skills/dev-csharp/SKILL.md +23 -0
  92. package/skills/dev-csharp/trigger-cases.json +30 -0
  93. package/skills/dev-frontend/SKILL.md +19 -0
  94. package/skills/dev-frontend/trigger-cases.json +30 -0
  95. package/skills/dev-go/trigger-cases.json +30 -0
  96. package/skills/dev-harmony/trigger-cases.json +30 -0
  97. package/skills/dev-java/SKILL.md +20 -0
  98. package/skills/dev-java/trigger-cases.json +30 -0
  99. package/skills/dev-mobile/trigger-cases.json +30 -0
  100. package/skills/dev-node/trigger-cases.json +30 -0
  101. package/skills/dev-php/trigger-cases.json +30 -0
  102. package/skills/dev-python/SKILL.md +21 -0
  103. package/skills/dev-python/trigger-cases.json +30 -0
  104. package/skills/dev-rust/trigger-cases.json +30 -0
  105. package/skills/dev-toolchain/trigger-cases.json +31 -0
  106. package/skills/doc-chain/trigger-cases.json +31 -0
  107. package/skills/doc-compare/trigger-cases.json +30 -0
  108. package/skills/docx-author/SKILL.md +127 -25
  109. package/skills/docx-author/scripts/__pycache__/docx_battery.cpython-312.pyc +0 -0
  110. package/skills/docx-author/scripts/__pycache__/docx_build.cpython-312.pyc +0 -0
  111. package/skills/docx-author/scripts/__pycache__/docx_check.cpython-312.pyc +0 -0
  112. package/skills/docx-author/scripts/__pycache__/docx_layout.cpython-312.pyc +0 -0
  113. package/skills/docx-author/scripts/__pycache__/zh_prose.cpython-312.pyc +0 -0
  114. package/skills/docx-author/scripts/docx_battery.py +586 -0
  115. package/skills/docx-author/scripts/docx_build.py +995 -0
  116. package/skills/docx-author/scripts/docx_check.py +1306 -0
  117. package/skills/docx-author/scripts/docx_doc.py +14 -154
  118. package/skills/docx-author/scripts/docx_layout.py +490 -0
  119. package/skills/docx-author/scripts/zh_prose.py +639 -0
  120. package/skills/docx-author/trigger-cases.json +58 -0
  121. package/skills/echo-brief/SKILL.md +84 -0
  122. package/skills/echo-brief/references/echo-format.md +68 -0
  123. package/skills/echo-brief/trigger-cases.json +40 -0
  124. package/skills/ecommerce-ops/trigger-cases.json +30 -0
  125. package/skills/education-training/trigger-cases.json +30 -0
  126. package/skills/ehs-safety/trigger-cases.json +30 -0
  127. package/skills/email-writing/trigger-cases.json +30 -0
  128. package/skills/eng-ai/trigger-cases.json +30 -0
  129. package/skills/eng-architecture/trigger-cases.json +31 -0
  130. package/skills/eng-automation/trigger-cases.json +31 -0
  131. package/skills/eng-collaboration/trigger-cases.json +30 -0
  132. package/skills/eng-complex-env/trigger-cases.json +30 -0
  133. package/skills/eng-data-platform/trigger-cases.json +31 -0
  134. package/skills/eng-database/trigger-cases.json +31 -0
  135. package/skills/eng-develop/trigger-cases.json +30 -0
  136. package/skills/eng-docs/SKILL.md +24 -0
  137. package/skills/eng-docs/trigger-cases.json +30 -0
  138. package/skills/eng-efficiency/trigger-cases.json +30 -0
  139. package/skills/eng-infra/trigger-cases.json +30 -0
  140. package/skills/eng-integration/trigger-cases.json +31 -0
  141. package/skills/eng-legacy/trigger-cases.json +31 -0
  142. package/skills/eng-observability/trigger-cases.json +31 -0
  143. package/skills/eng-ops/trigger-cases.json +31 -0
  144. package/skills/eng-performance/trigger-cases.json +31 -0
  145. package/skills/eng-planning/trigger-cases.json +31 -0
  146. package/skills/eng-quality/SKILL.md +8 -0
  147. package/skills/eng-quality/trigger-cases.json +31 -0
  148. package/skills/eng-release/trigger-cases.json +31 -0
  149. package/skills/eng-reliability/trigger-cases.json +31 -0
  150. package/skills/eng-requirements/trigger-cases.json +12 -0
  151. package/skills/eng-research/trigger-cases.json +30 -0
  152. package/skills/eng-security/trigger-cases.json +31 -0
  153. package/skills/eng-ux/trigger-cases.json +30 -0
  154. package/skills/engineering-chain/trigger-cases.json +30 -0
  155. package/skills/env-offline/trigger-cases.json +31 -0
  156. package/skills/env-private-deploy/trigger-cases.json +31 -0
  157. package/skills/env-xinchuang/trigger-cases.json +31 -0
  158. package/skills/equipment-tpm/trigger-cases.json +30 -0
  159. package/skills/esg-report/trigger-cases.json +30 -0
  160. package/skills/event-management/trigger-cases.json +30 -0
  161. package/skills/excel-analysis-chain/SKILL.md +17 -4
  162. package/skills/excel-analysis-chain/trigger-cases.json +31 -0
  163. package/skills/explain-codebase/trigger-cases.json +11 -0
  164. package/skills/file-ingest/trigger-cases.json +30 -0
  165. package/skills/finance-analysis/trigger-cases.json +31 -0
  166. package/skills/finance-chain/trigger-cases.json +31 -0
  167. package/skills/financial-modeling/trigger-cases.json +31 -0
  168. package/skills/find-simplifications/SKILL.md +43 -0
  169. package/skills/find-simplifications/trigger-cases.json +23 -0
  170. package/skills/foreign-trade/trigger-cases.json +30 -0
  171. package/skills/funnel-cohort/trigger-cases.json +30 -0
  172. package/skills/gov-document/trigger-cases.json +30 -0
  173. package/skills/gui-change-evidence/SKILL.md +47 -0
  174. package/skills/gui-change-evidence/trigger-cases.json +23 -0
  175. package/skills/hr-chain/trigger-cases.json +31 -0
  176. package/skills/hr-operations/trigger-cases.json +30 -0
  177. package/skills/info-disclosure/trigger-cases.json +31 -0
  178. package/skills/infra-gateway/trigger-cases.json +31 -0
  179. package/skills/infra-k8s/trigger-cases.json +31 -0
  180. package/skills/infra-mq/trigger-cases.json +30 -0
  181. package/skills/insurance-advisory/trigger-cases.json +30 -0
  182. package/skills/internal-audit/trigger-cases.json +30 -0
  183. package/skills/ip-management/trigger-cases.json +31 -0
  184. package/skills/ipo-listing/trigger-cases.json +31 -0
  185. package/skills/it-audit/trigger-cases.json +31 -0
  186. package/skills/itsm-ops/trigger-cases.json +31 -0
  187. package/skills/knowledge-sop/trigger-cases.json +31 -0
  188. package/skills/legal-chain/trigger-cases.json +31 -0
  189. package/skills/legal-contract/trigger-cases.json +30 -0
  190. package/skills/litigation-support/trigger-cases.json +31 -0
  191. package/skills/logistics-warehouse/trigger-cases.json +30 -0
  192. package/skills/long-doc-analysis/trigger-cases.json +31 -0
  193. package/skills/management-accounting/trigger-cases.json +30 -0
  194. package/skills/manufacturing-chain/trigger-cases.json +31 -0
  195. package/skills/manufacturing-quality/trigger-cases.json +30 -0
  196. package/skills/marketing-analytics/trigger-cases.json +31 -0
  197. package/skills/marketing-chain/trigger-cases.json +31 -0
  198. package/skills/meeting-minutes/trigger-cases.json +30 -0
  199. package/skills/metrics-system/trigger-cases.json +31 -0
  200. package/skills/negotiation-prep/trigger-cases.json +30 -0
  201. package/skills/obs-prometheus/trigger-cases.json +31 -0
  202. package/skills/office-automation/trigger-cases.json +31 -0
  203. package/skills/okr-review/trigger-cases.json +30 -0
  204. package/skills/ops-fleet/trigger-cases.json +31 -0
  205. package/skills/ops-linux/trigger-cases.json +31 -0
  206. package/skills/optimization-solver/trigger-cases.json +30 -0
  207. package/skills/patent-disclosure/SKILL.md +105 -0
  208. package/skills/patent-disclosure/references/figures.md +110 -0
  209. package/skills/patent-disclosure/references/outline.md +162 -0
  210. package/skills/patent-disclosure/scripts/patent_docx.py +230 -0
  211. package/skills/patent-disclosure/trigger-cases.json +31 -0
  212. package/skills/patent-drafting/SKILL.md +108 -0
  213. package/skills/patent-drafting/trigger-cases.json +31 -0
  214. package/skills/patent-portfolio/SKILL.md +81 -0
  215. package/skills/patent-portfolio/trigger-cases.json +31 -0
  216. package/skills/pdf-toolkit/trigger-cases.json +31 -0
  217. package/skills/perf-optimize/trigger-cases.json +31 -0
  218. package/skills/pivot-crosstab/trigger-cases.json +30 -0
  219. package/skills/policy-analysis/trigger-cases.json +31 -0
  220. package/skills/portfolio-analysis/trigger-cases.json +31 -0
  221. package/skills/ppt-chain/SKILL.md +14 -6
  222. package/skills/ppt-chain/trigger-cases.json +31 -0
  223. package/skills/pptx-author/SKILL.md +86 -33
  224. package/skills/pptx-author/scripts/__pycache__/pptx_check.cpython-312.pyc +0 -0
  225. package/skills/pptx-author/scripts/__pycache__/pptx_deck.cpython-312.pyc +0 -0
  226. package/skills/pptx-author/scripts/__pycache__/pptx_layout.cpython-312.pyc +0 -0
  227. package/skills/pptx-author/scripts/pptx_battery.py +178 -0
  228. package/skills/pptx-author/scripts/pptx_build.py +119 -0
  229. package/skills/pptx-author/scripts/pptx_check.py +1182 -0
  230. package/skills/pptx-author/scripts/pptx_deck.py +736 -145
  231. package/skills/pptx-author/scripts/pptx_layout.py +384 -0
  232. package/skills/pptx-author/trigger-cases.json +15 -0
  233. package/skills/pr-comms/trigger-cases.json +30 -0
  234. package/skills/procurement-supply/trigger-cases.json +31 -0
  235. package/skills/product-design/trigger-cases.json +31 -0
  236. package/skills/production-planning/trigger-cases.json +31 -0
  237. package/skills/project-management/trigger-cases.json +31 -0
  238. package/skills/project-proposal/trigger-cases.json +31 -0
  239. package/skills/prose-standard/SKILL.md +53 -0
  240. package/skills/prose-standard/trigger-cases.json +23 -0
  241. package/skills/qa-api-automation/trigger-cases.json +31 -0
  242. package/skills/qa-mobile-automation/trigger-cases.json +31 -0
  243. package/skills/qa-ui-automation/trigger-cases.json +31 -0
  244. package/skills/quant-analysis/trigger-cases.json +31 -0
  245. package/skills/rag-triage/SKILL.md +64 -0
  246. package/skills/rag-triage/evals.json +57 -0
  247. package/skills/rag-triage/references/triage-playbook.md +75 -0
  248. package/skills/rag-triage/trigger-cases.json +31 -0
  249. package/skills/real-estate-property/trigger-cases.json +30 -0
  250. package/skills/refactor-safely/SKILL.md +1 -1
  251. package/skills/refactor-safely/trigger-cases.json +30 -0
  252. package/skills/regression-forecast/trigger-cases.json +31 -0
  253. package/skills/release-checklist/trigger-cases.json +31 -0
  254. package/skills/report-craft/SKILL.md +76 -0
  255. package/skills/report-craft/references/feasibility.md +118 -0
  256. package/skills/report-craft/references/review-checklist.md +51 -0
  257. package/skills/report-craft/references/visuals.md +114 -0
  258. package/skills/report-craft/references/writing.md +80 -0
  259. package/skills/report-craft/scripts/__pycache__/chart_render.cpython-312.pyc +0 -0
  260. package/skills/report-craft/scripts/__pycache__/fin_model.cpython-312.pyc +0 -0
  261. package/skills/report-craft/scripts/__pycache__/project_facts.cpython-312.pyc +0 -0
  262. package/skills/report-craft/scripts/chart_render.py +1222 -0
  263. package/skills/report-craft/scripts/fin_model.py +602 -0
  264. package/skills/report-craft/scripts/project_facts.py +580 -0
  265. package/skills/report-craft/scripts/report_battery.py +349 -0
  266. package/skills/report-craft/trigger-cases.json +15 -0
  267. package/skills/retail-store-ops/trigger-cases.json +30 -0
  268. package/skills/risk-compliance/trigger-cases.json +31 -0
  269. package/skills/scope-creep/SKILL.md +45 -0
  270. package/skills/scope-creep/trigger-cases.json +7 -0
  271. package/skills/sec-auth/trigger-cases.json +31 -0
  272. package/skills/sec-compliance/trigger-cases.json +31 -0
  273. package/skills/securities-chain/trigger-cases.json +31 -0
  274. package/skills/securities-research/trigger-cases.json +31 -0
  275. package/skills/security-audit/trigger-cases.json +31 -0
  276. package/skills/slides-html/SKILL.md +25 -10
  277. package/skills/slides-html/trigger-cases.json +11 -0
  278. package/skills/sql-analysis/SKILL.md +110 -0
  279. package/skills/sql-analysis/trigger-cases.json +34 -0
  280. package/skills/sql-tuning/trigger-cases.json +31 -0
  281. package/skills/statistical-testing/trigger-cases.json +31 -0
  282. package/skills/strategy-planning/trigger-cases.json +30 -0
  283. package/skills/supply-chain/trigger-cases.json +31 -0
  284. package/skills/tax-compliance/trigger-cases.json +30 -0
  285. package/skills/tech-doc/SKILL.md +262 -0
  286. package/skills/tech-doc/scripts/__pycache__/archive_battery.cpython-312.pyc +0 -0
  287. package/skills/tech-doc/scripts/__pycache__/archive_build.cpython-312.pyc +0 -0
  288. package/skills/tech-doc/scripts/__pycache__/archive_check.cpython-312.pyc +0 -0
  289. package/skills/tech-doc/scripts/__pycache__/archive_spec.cpython-312.pyc +0 -0
  290. package/skills/tech-doc/scripts/__pycache__/doc_templates.cpython-312.pyc +0 -0
  291. package/skills/tech-doc/scripts/archive_battery.py +860 -0
  292. package/skills/tech-doc/scripts/archive_build.py +599 -0
  293. package/skills/tech-doc/scripts/archive_check.py +1307 -0
  294. package/skills/tech-doc/scripts/archive_spec.py +499 -0
  295. package/skills/tech-doc/scripts/doc_templates.py +624 -0
  296. package/skills/tech-doc/trigger-cases.json +57 -0
  297. package/skills/tech-research/trigger-cases.json +31 -0
  298. package/skills/tender-bidding/trigger-cases.json +31 -0
  299. package/skills/translation-pro/trigger-cases.json +30 -0
  300. package/skills/treasury-mgmt/trigger-cases.json +31 -0
  301. package/skills/trim-cot-leakage/SKILL.md +58 -0
  302. package/skills/trim-cot-leakage/trigger-cases.json +23 -0
  303. package/skills/web-craft/SKILL.md +103 -0
  304. package/skills/web-craft/references/craft-checklist.md +75 -0
  305. package/skills/web-craft/references/design-direction.md +122 -0
  306. package/skills/web-craft/references/h5-mobile.md +100 -0
  307. package/skills/web-craft/references/motion.md +136 -0
  308. package/skills/web-craft/references/recipes.md +74 -0
  309. package/skills/web-craft/templates/wedding-invitation.html +1180 -0
  310. package/skills/web-craft/trigger-cases.json +14 -0
  311. package/skills/web-scraping/trigger-cases.json +34 -0
  312. package/skills/web-search/SKILL.md +11 -10
  313. package/skills/web-search/trigger-cases.json +31 -0
  314. package/skills/weekly-report/SKILL.md +134 -0
  315. package/skills/weekly-report/trigger-cases.json +11 -0
  316. package/skills/write-tests/trigger-cases.json +31 -0
  317. package/skills/xlsx-analysis/SKILL.md +143 -77
  318. package/skills/xlsx-analysis/scripts/__pycache__/data_profile.cpython-312.pyc +0 -0
  319. package/skills/xlsx-analysis/scripts/__pycache__/xlsx_build.cpython-312.pyc +0 -0
  320. package/skills/xlsx-analysis/scripts/__pycache__/xlsx_check.cpython-312.pyc +0 -0
  321. package/skills/xlsx-analysis/scripts/__pycache__/xlsx_layout.cpython-312.pyc +0 -0
  322. package/skills/xlsx-analysis/scripts/__pycache__/xlsx_toolkit.cpython-312.pyc +0 -0
  323. package/skills/xlsx-analysis/scripts/data_profile.py +391 -0
  324. package/skills/xlsx-analysis/scripts/xlsx_battery.py +389 -0
  325. package/skills/xlsx-analysis/scripts/xlsx_build.py +522 -0
  326. package/skills/xlsx-analysis/scripts/xlsx_check.py +924 -0
  327. package/skills/xlsx-analysis/scripts/xlsx_layout.py +235 -0
  328. package/skills/xlsx-analysis/scripts/xlsx_style.py +28 -66
  329. package/skills/xlsx-analysis/scripts/xlsx_toolkit.py +61 -5
  330. package/skills/xlsx-analysis/trigger-cases.json +59 -0
  331. package/squads/hc-defense.md +47 -0
  332. package/squads/hc-rdarchive.md +110 -0
  333. package/squads/hc-redteam.md +50 -0
  334. package/squads/hc-weekly.md +125 -0
  335. package/src/account.js +1 -0
  336. package/src/acp.js +1 -0
  337. package/src/advisor.js +1 -1
  338. package/src/agent.js +1 -1
  339. package/src/api.js +1 -1
  340. package/src/archaeology.js +1 -0
  341. package/src/ask-ui.js +1 -0
  342. package/src/assets-import.js +1 -1
  343. package/src/autofix.js +1 -1
  344. package/src/automation-tools.js +1 -0
  345. package/src/automation.js +1 -1
  346. package/src/autorun.js +1 -1
  347. package/src/banner.js +1 -1
  348. package/src/capability-probe.js +1 -0
  349. package/src/checkpoints.js +1 -1
  350. package/src/code-tools.js +1 -0
  351. package/src/codeindex.js +1 -1
  352. package/src/codemode.js +1 -0
  353. package/src/command-bridge.js +1 -0
  354. package/src/command-ui.js +1 -0
  355. package/src/commands.js +1 -1
  356. package/src/compaction.js +1 -1
  357. package/src/computer.js +1 -0
  358. package/src/config.js +1 -1
  359. package/src/consult.js +1 -1
  360. package/src/context-report.js +1 -1
  361. package/src/context-window.js +1 -0
  362. package/src/context.js +1 -1
  363. package/src/crew.js +1 -0
  364. package/src/crush.js +1 -0
  365. package/src/daemon.js +1 -1
  366. package/src/decisions.js +1 -1
  367. package/src/depaudit.js +1 -0
  368. package/src/device.js +1 -1
  369. package/src/diagram-draw.js +1 -0
  370. package/src/diagram-layouts.js +1 -0
  371. package/src/diagram-raster.js +1 -0
  372. package/src/diagram.js +1 -0
  373. package/src/dictation.js +1 -0
  374. package/src/diffview.js +1 -1
  375. package/src/doctor.js +1 -1
  376. package/src/docx-tools.js +1 -0
  377. package/src/errkind.js +1 -0
  378. package/src/evidence.js +1 -0
  379. package/src/executors.js +1 -1
  380. package/src/expert-catalog.js +1 -1
  381. package/src/experts-store.js +1 -1
  382. package/src/experts.js +1 -1
  383. package/src/external-agents.js +1 -0
  384. package/src/forks.js +1 -1
  385. package/src/fs-observe.js +1 -0
  386. package/src/gitflow.js +1 -1
  387. package/src/goalround.js +1 -0
  388. package/src/hooks.js +1 -1
  389. package/src/input.js +1 -1
  390. package/src/insights.js +1 -1
  391. package/src/jobs.js +1 -0
  392. package/src/kbsync.js +1 -1
  393. package/src/lsp.js +1 -0
  394. package/src/mcp-apps.js +1 -0
  395. package/src/mcp.js +1 -1
  396. package/src/memory.js +1 -1
  397. package/src/notify.js +1 -0
  398. package/src/permissions.js +1 -1
  399. package/src/plan-limits.js +1 -0
  400. package/src/policy.js +1 -0
  401. package/src/pptx-tools.js +1 -0
  402. package/src/presence.js +1 -0
  403. package/src/privatedir.js +1 -0
  404. package/src/pyruntime.js +1 -1
  405. package/src/radar.js +1 -0
  406. package/src/render.js +1 -1
  407. package/src/repl.js +1 -1
  408. package/src/report-tools.js +1 -0
  409. package/src/routing.js +1 -0
  410. package/src/sandbox-probe.js +1 -0
  411. package/src/sandbox-win-launcher.mjs +156 -0
  412. package/src/sandbox.js +1 -0
  413. package/src/scan.js +1 -1
  414. package/src/schedule.js +1 -1
  415. package/src/scopecreep.js +1 -0
  416. package/src/sdk.js +1 -0
  417. package/src/selection.js +1 -0
  418. package/src/session-events.js +1 -0
  419. package/src/session.js +1 -1
  420. package/src/sessionindex.js +1 -0
  421. package/src/sessionlog.js +1 -0
  422. package/src/skill-catalog.js +1 -0
  423. package/src/skill-lint.js +1 -0
  424. package/src/skill-optimize.js +1 -0
  425. package/src/skill-scan.js +1 -0
  426. package/src/skills.js +1 -1
  427. package/src/spill.js +1 -0
  428. package/src/squad.js +1 -1
  429. package/src/subagent.js +1 -1
  430. package/src/surface-state.js +1 -0
  431. package/src/tapd.js +1 -0
  432. package/src/terminal-select.js +1 -0
  433. package/src/terminal.js +1 -0
  434. package/src/test-runner.js +1 -0
  435. package/src/todo.js +1 -1
  436. package/src/toolpipe.js +1 -0
  437. package/src/tools.js +1 -1
  438. package/src/toon.js +1 -0
  439. package/src/transcript.js +1 -1
  440. package/src/tui/app.js +1 -1
  441. package/src/tui/command-menu.js +1 -0
  442. package/src/tui/progress.js +1 -0
  443. package/src/tui/scroll.js +1 -0
  444. package/src/tui/welcome.js +1 -0
  445. package/src/tui/workbench.js +1 -0
  446. package/src/ui-spec.js +1 -0
  447. package/src/uitree.js +1 -0
  448. package/src/uninstall.js +1 -1
  449. package/src/vision.js +1 -0
  450. package/src/visual.js +1 -0
  451. package/src/voice-form.js +1 -0
  452. package/src/voice.js +1 -0
  453. package/src/watch.js +1 -1
  454. package/src/web-audit.js +1 -0
  455. package/src/web-cdp.js +1 -0
  456. package/src/web-inspect.js +1 -0
  457. package/src/websearch.js +1 -0
  458. package/src/weekly.js +1 -0
  459. package/src/workflow.js +1 -0
  460. package/src/worklog.js +1 -0
  461. package/src/xlsx-tools.js +1 -0
  462. package/ui/command-picker.js +79 -0
  463. package/skills/ab-testing/scripts/__pycache__/ab_test.cpython-312.pyc +0 -0
  464. package/skills/accounting-ops/scripts/__pycache__/acct_tools.cpython-312.pyc +0 -0
  465. package/skills/anomaly-detection/scripts/__pycache__/anomaly.cpython-312.pyc +0 -0
  466. package/skills/audit-assist/scripts/__pycache__/audit_sampling.cpython-312.pyc +0 -0
  467. package/skills/banking-credit/scripts/__pycache__/credit_metrics.cpython-312.pyc +0 -0
  468. package/skills/data-report-pro/scripts/__pycache__/bigdata.cpython-312.pyc +0 -0
  469. package/skills/data-wrangling/scripts/__pycache__/join_tools.cpython-312.pyc +0 -0
  470. package/skills/ecommerce-ops/scripts/__pycache__/gmv_decompose.cpython-312.pyc +0 -0
  471. package/skills/funnel-cohort/scripts/__pycache__/funnel.cpython-312.pyc +0 -0
  472. package/skills/management-accounting/scripts/__pycache__/costing.cpython-312.pyc +0 -0
  473. package/skills/manufacturing-quality/scripts/__pycache__/spc.cpython-312.pyc +0 -0
  474. package/skills/marketing-analytics/scripts/__pycache__/rfm.cpython-312.pyc +0 -0
  475. package/skills/optimization-solver/scripts/__pycache__/solver.cpython-312.pyc +0 -0
  476. package/skills/pivot-crosstab/scripts/__pycache__/pivot_tools.cpython-312.pyc +0 -0
  477. package/skills/portfolio-analysis/scripts/__pycache__/portfolio.cpython-312.pyc +0 -0
  478. package/skills/procurement-supply/scripts/__pycache__/supply.cpython-312.pyc +0 -0
  479. package/skills/production-planning/scripts/__pycache__/mrp_capacity.cpython-312.pyc +0 -0
  480. package/skills/project-management/scripts/__pycache__/cpm.cpython-312.pyc +0 -0
  481. package/skills/quant-analysis/scripts/__pycache__/quant.cpython-312.pyc +0 -0
  482. package/skills/real-estate-property/scripts/__pycache__/property_calc.cpython-312.pyc +0 -0
  483. package/skills/regression-forecast/scripts/__pycache__/regress.cpython-312.pyc +0 -0
  484. package/skills/securities-research/scripts/__pycache__/valuation.cpython-312.pyc +0 -0
  485. package/skills/statistical-testing/scripts/__pycache__/stat_tests.cpython-312.pyc +0 -0
  486. package/skills/treasury-mgmt/scripts/__pycache__/cashflow_forecast.cpython-312.pyc +0 -0
@@ -0,0 +1,118 @@
1
+ # 可研报告逐章要点
2
+
3
+ **默认用本单位归档体例**(科技计划项目十一节,下面逐章写):`create_doc` 带 `template:"可行性研究报告"` 时
4
+ 就按这十一节审章节,换别的骨架会收到一串「缺必备章节」再返工。只有用户明确要**投资建设类**可研(基建、
5
+ 设备采购)时才用通用体例,对应关系见文末。体例不同,**内容硬指标相同**:比选、测算、进度、风险一样都不能少。
6
+ 章节标题照抄下面十一节的原文(可加「一、」「二、」编号),别改写成同义词。
7
+
8
+ 每章按「评审在看什么 → 必须有 → 配什么图表 → 常见翻车」写。
9
+
10
+ ---
11
+
12
+ ## 一、立项的背景与意义
13
+
14
+ - **评审在看**:为什么非做不可。不是技术多先进,是不做会怎样。
15
+ - **必须有**:政策依据(文件全称 + 文号 + 原文关键句,不同义改写);行业现状用数字说(带来源);
16
+ 本单位的具体痛点并量化(耗时、成本、差错率、投诉量);不做的后果;意义分经济 / 技术 / 社会,每层落到具体对象。
17
+ - **图表**:痛点与对策对照(render_diagram `compare`);有可靠来源时画行业规模趋势(render_chart `line`/`bar`,`note` 写来源)。
18
+ - **翻车**:堆政策口号;以「随着……的快速发展」开头;整章没有一个数字。
19
+
20
+ ## 二、国内外研究现状与发展趋势
21
+
22
+ - **评审在看**:你懂不懂这个领域、差距在哪、本项目站在什么位置。
23
+ - **必须有**:国外、国内各 2~3 个代表(产品 / 开源项目 / 论文);按**同一组维度**对比(能力、架构、开放性、
24
+ 成本、国产化适配);趋势 2~3 条且有依据;本项目的定位与差异点。
25
+ - **图表**:同类方案对比表(表题如「同类方案核心能力对比」);可选技术演进时间线(render_diagram `timeline`)。
26
+ - **翻车**:维度挑着对自己有利的比;把竞品写成「功能单一」而说不出单一在哪;没有引用来源。
27
+
28
+ ## 三、项目实施主要内容、技术关键与创新点、预期目标
29
+
30
+ - **必须有**:建设内容按模块逐项写,与功能模块图一一对应;关键技术每项写「难点 — 方案 — 成熟度
31
+ (自研 / 引进 / 已验证)」;创新点写与现有技术的**区别**(可对应已申请的专利);预期目标量化:
32
+ 技术指标表(指标 / 现状值 / 目标值 / 测试方法与环境)+ 成果形式(软件著作权、专利、标准的数量)。
33
+ - **图表**:总体架构图(`layered`)、功能模块图(`tree`,用 project_facts 给的模块树,按报告口径改名)、
34
+ 关键技术原理图(`flow` / `sequence`)。
35
+ - **翻车**:创新点写成功能清单;目标写「达到国内领先水平」却没有一个可测指标。
36
+
37
+ ## 四、现有工作基础、条件和优势
38
+
39
+ - 代码库里已有东西的项目,**这一节最有说服力**:project_facts 的数字放在这里——已建成的模块与服务、
40
+ 接口数、测试用例数、代码规模、提交历史的起止时间、已有文档。有试点用户与运行数据才写,没有不编。
41
+ - **必须有**:团队规模与结构(不编人名)、已有知识产权、软硬件与算力条件、合作单位。
42
+ - **图表**:现有基础一览表(事实 / 数值 / 来源);可选已建成系统的截图。
43
+ - **时态**:这一节写「已完成」,进度安排写「将要做」。同一件事不能两边都出现。
44
+
45
+ ## 五、项目实施方案、组织方式与课题分解
46
+
47
+ - **必须有**:技术路线(分阶段);**方案比选**(2~3 个可比方案,维度:技术成熟度 / 投资 / 工期 / 风险 /
48
+ 可扩展性 / 国产化,给评分或结论与理由);部署方案;组织方式(决策 / 技术 / 质量 / 实施各由谁负责);
49
+ 课题分解(子课题 — 负责单位 — 交付物 — 考核指标)。
50
+ - **图表**:技术路线图(`flow`)、部署架构图(`layered`)、组织结构图(`tree`)、课题分解(`tree` 或表)、方案比选表。
51
+ - **翻车**:只写选定方案没有比选(「论证」变「介绍」);课题分解与第三章建设内容对不上。
52
+
53
+ ## 六、进度安排与年度计划内容
54
+
55
+ - **必须有**:阶段(需求 / 设计 / 开发 / 测试 / 试点 / 验收)的起止与交付物;里程碑与判定标准;
56
+ 关键路径与依赖;年度计划(每年做什么、花多少、考核什么)。
57
+ - **图表**:实施进度甘特图(render_chart `gantt`,`today` 填编制日期,里程碑用 `milestones`);里程碑表。
58
+ - **红线**:所有计划节点在编制日期之后;与经费的分年度计划、人员投入月数对得上。
59
+
60
+ ## 七、承担单位和主要研究人员简况
61
+
62
+ - **必须有**:单位简介(性质、规模、资质、相关业绩);人员表(姓名 / 职称 / 专业 / 项目分工 / 投入月数)。
63
+ - **不编造**:拿不到的写「[待补:项目负责人姓名、职称]」,交付时列进待补清单。
64
+
65
+ ## 八、经费预算来源、使用计划及还款能力分析
66
+
67
+ - **必须有**:投资估算表(科目 / 金额 / 占比 / 测算依据 = 单价 × 数量);分年度使用计划;
68
+ 资金来源(自筹 / 财政 / 贷款,比例合计 100%);还款能力(没有贷款就写「不涉及」,不要空着)。
69
+ - **工具**:fin_model 的投资估算表;投资构成图(`pie` 或 `waterfall`)。
70
+ - **翻车**:测算依据空着;各处总投资不一致;人工费与人员投入对不上(人数 × 月数 × 月均人工成本应当约等于人工费)。
71
+
72
+ ## 九、应用或产业化前景与市场需求分析
73
+
74
+ - **必须有**:目标客户与场景;市场规模(给口径与来源);竞争格局;推广计划(分年度客户数、收入);商业模式与定价。
75
+ - **图表**:推广计划或市场规模图(`bar` / `line`,注明来源)。
76
+ - **红线**:推广计划里的客户数和单价,就是 fin_model 收入假设里的 `volume` 和 `price`——两处必须是同一组数。
77
+
78
+ ## 十、经济、社会效益分析
79
+
80
+ - **必须有**:测算口径说明(fin_model 的 notes 原样用);项目投资现金流量表;财务评价指标表(NPV / IRR /
81
+ 静态与动态回收期 / 总投资收益率);情景分析;敏感性分析(表 + 龙卷风图 + 临界点);
82
+ 结论句(fin_model 的 conclusion);社会效益量化(受益对象、规模、可观测指标)。
83
+ - **图表**:累计现金流量图(`line`,零线交点即回收期)、敏感性龙卷风图(`tornado`)。
84
+ - **翻车**:只有「经济效益显著」;回收期心算(没扣成本);节约额大于被节约的支出;悲观情景转负却写「完全可行」。
85
+
86
+ ## 十一、项目的风险分析与对策
87
+
88
+ - **必须有**:技术、市场、进度、资金、人员、合规(数据安全、等保)六类;每条写描述、可能性(1~5)、
89
+ 影响(1~5)、等级、应对措施、责任人、触发条件或预警信号。
90
+ - **图表**:风险矩阵(render_chart `matrix`)+ 风险登记表。敏感性分析里的最敏感因素,要在这里有对应的风险条目。
91
+ - **翻车**:写成套话;没有责任人;「风险总体可控」却没有依据。
92
+
93
+ ---
94
+
95
+ ## 通用投资类可研体例(对照)
96
+
97
+ | 通用体例章节 | 对应上面哪几章的内容 |
98
+ |---|---|
99
+ | 总论(概况、依据、主要结论) | 一 + 各章结论汇总(总论要能脱离正文独立成立) |
100
+ | 需求分析与建设规模 | 一、九 |
101
+ | 技术方案(三方案比选) | 三、五 |
102
+ | 建设条件 | 四 |
103
+ | 节能环保与安全 | 十一(合规)+ 等保定级、数据合规、能耗 |
104
+ | 组织机构与人力资源 | 五、七 |
105
+ | 实施进度计划 | 六 |
106
+ | 投资估算与资金筹措 | 八 |
107
+ | 财务与效益评价 | 十 |
108
+ | 风险分析与对策 | 十一 |
109
+ | 研究结论与建议 | 明确「可行 / 有条件可行 / 不可行」,有条件的写清条件 |
110
+
111
+ ## 已有代码库的项目:时态怎么分
112
+
113
+ 项目往往是「边做边补可研」。这时最容易把已完成的开发写成计划。处理办法:
114
+
115
+ 1. 用 project_facts 与提交历史确定**已完成**的范围,写进「现有工作基础」(第四章);
116
+ 2. 可研论证的是**后续投入**:还要建什么(新模块、商业化、推广、运维体系、合规认证),
117
+ 投资估算只算后续投入(已发生的投入作为「前期投入」单列说明,不混进后续预算);
118
+ 3. 进度计划从编制日期之后排;甘特图的 `today` 设为编制日期,图上一眼看出「从现在起」。
@@ -0,0 +1,51 @@
1
+ # 交付前自审清单
2
+
3
+ 先机检,后人检。机检是 `docx_inspect`:必修必须清零;建议逐条过,保留的要能说出理由。
4
+ 人检是下面这张表——机器查不出「论证站不站得住」,只能自己像评审一样读一遍。
5
+
6
+ ## 一、机检(docx_inspect 会报的)
7
+
8
+ - 必修:进度计划整体早于编制时间、题注断号、引用了不存在的图表、表格或图片超版心、错别字……
9
+ - 建议:同一对象数量前后不一致(「七个维度 / 五个维度」)、可研缺评审常看的图表、财务评价缺 NPV / IRR / 敏感性、
10
+ 术语多种写法、AI 味套话……
11
+ - 提示:文中的「[待补:……]」清单——交付说明里要逐条列出。
12
+
13
+ create_doc 返回的警告同样要看:「引用了不存在的图表标签」「插图不存在」「缺少模板必备章节」。
14
+
15
+ ## 二、人检(像评审一样读)
16
+
17
+ **结论与论证**
18
+ 1. 总结论(可行 / 有条件可行 / 不可行)写在哪?条件写清了吗?与悲观情景的测算一致吗?
19
+ 2. 「为什么非做不可」有没有数据?政策依据写了文件全称和文号吗?
20
+ 3. 方案比选有没有至少两个真能比的方案?选择理由是比选表里的维度推出来的吗?
21
+
22
+ **数字**
23
+ 4. 总投资、工期、人数、模块数在全文每一处都一样吗?(`grep` 一遍)
24
+ 5. 财务数字是不是全部来自 fin_model 的同一次结果?改过假设之后正文、表、图都重新同步了吗?
25
+ 6. 人工费 ≈ 人数 × 月数 × 月均人工成本吗?分年度投资加起来等于总投资吗?
26
+ 7. 推广计划的客户数、单价与收入假设一致吗?
27
+
28
+ **时态与事实**
29
+ 8. 已完成的写在「现有工作基础」,计划的都在编制日期之后吗?
30
+ 9. 每个规模数字都能指出来源吗(代码库统计 / 文档 / 调研 / 测算)?
31
+ 10. 有没有编造的人名、客户、合同、市场数据?拿不到的是否都标了「待补」?
32
+
33
+ **图表**
34
+ 11. 每张图、每张表都被正文引用了吗?引用处说出了它证明什么吗?
35
+ 12. 图里的名称与正文、表里一致吗(模块名、阶段名、风险编号)?
36
+ 13. 结构图里「已建成」和「本期新建」分开了吗?
37
+ 13a. 结构图插进 A4 后最小的字 ≥5.5 磅吗(create_doc 会报「打印看不清」)?图里没有和题注重复的标题块吗(header:false)?
38
+
39
+ **风险**
40
+ 14. 敏感性分析里最敏感的因素,在风险表里有对应条目和应对措施吗?
41
+ 15. 每条风险有责任人和触发条件吗?
42
+
43
+ ## 三、交付说明模板
44
+
45
+ ```
46
+ 已完成《……可行性研究报告》:docs/……docx(约 N 页)。
47
+ - 图表:结构图 N 张(总体架构、功能模块、部署、业务流程……)、数据图 N 张(进度甘特、累计现金流、敏感性、风险矩阵)、表 N 张。
48
+ - 测算:总投资 …… 万元,所得税后 NPV …… 万元,IRR ……%,静态回收期 …… 年;最敏感因素:……(临界点 ……%)。
49
+ - 待补(需要您提供):项目负责人与团队成员信息、单位资质、……。
50
+ - 体检:必修 0 项;建议 N 项,其中「……」有意保留,原因是……。
51
+ ```
@@ -0,0 +1,114 @@
1
+ # 报告配图:现成写法
2
+
3
+ 两条通用约定:
4
+
5
+ - **插进文档的结构图加 `"header": false`**:图名交给文档题注(图 3-1 …),图里不再画一遍标题块。
6
+ `title` 照写,它用来命名文件和 SVG 的 `<title>`。
7
+ - **路径**:结构图 `docs/figures/<名>.svg`(引擎同时出 PNG),数据图 `docs/charts/<名>.png`。
8
+ Markdown 里引 PNG:`![系统总体架构](docs/figures/总体架构.png){#fig:arch}`,正文写「如@fig:arch 所示」。
9
+
10
+ - **为纸面画图**:A4 纵向版心 14.66cm 只相当于屏幕上 550px 宽。一层并排 8 个节点、每个都带说明和标签的架构图,
11
+ 缩进版心后字只剩 2~3 磅,打印出来一片蚂蚁。`render_diagram` 会报「插进 A4 后最小的字约 X 磅」,低于 5.5 磅就要改:
12
+ 每层压到 4~5 个节点(同类合并,明细放正文或第二张图)、tags 只留一两个;功能树分支超过 5 个用 `"direction":"LR"`;
13
+ 实在要整张放就横排插入:`![图题](图){#fig:arch .landscape}`(单独一个横向页,版心 23.4cm)。
14
+
15
+ 下面的例子用一个中性的「智能运维平台」演示字段,换成自己项目的内容即可。
16
+
17
+ ## 一、结构图(render_diagram)
18
+
19
+ ### 总体架构(layered)
20
+
21
+ ```json
22
+ {"type":"layered","title":"智能运维平台总体架构","header":false,"flow":"down",
23
+ "layers":[
24
+ {"name":"接入层","desc":"多端统一接入与鉴权","nodes":[
25
+ {"name":"Web 控制台","desc":"Vue 3"},{"name":"桌面客户端","desc":"Electron"},{"name":"开放 API","desc":"REST / SSE"}]},
26
+ {"name":"业务服务层","desc":"按业务域拆分的微服务","nodes":["告警与工单","用户与权限","计费结算"]},
27
+ {"name":"能力层","desc":"模型与数据能力","nodes":[{"name":"模型分发网关","emphasis":true},"知识库检索","规则引擎"]},
28
+ {"name":"数据层","nodes":[{"name":"PostgreSQL","tags":["分库分表"]},"Redis","对象存储"]}]}
29
+ ```
30
+
31
+ 这张每层 3 个节点、不带侧栏,纵向插入后最小的字约 6 磅,打印能读。层写职责(`desc`),节点写组件。
32
+ 要画「一层 4 个以上节点 + 安全/运维侧栏」的完整总体架构(`"sidebars":[{"name":"安全保障","side":"right","nodes":[…]}]`),
33
+ 就**横排插入**(`{#fig:arch .landscape}`),并把同类服务合并到每层 ≤5 个;服务明细另画一张或放进表格。规划中(还没建)的节点加 `"style":"dashed"`,
34
+ 并在 `legend` 里说明「虚线为本期新建」——可研里「现状」和「计划」在图上也要分得开。
35
+
36
+ ### 部署架构(layered,按网络区域分层)
37
+
38
+ ```json
39
+ {"type":"layered","title":"部署架构","header":false,
40
+ "layers":[
41
+ {"name":"互联网区","nodes":["用户浏览器","客户端"]},
42
+ {"name":"DMZ 区","nodes":[{"name":"负载均衡","tags":["双机热备"]},{"name":"API 网关","tags":["2 节点"]}]},
43
+ {"name":"应用区","groups":[{"name":"K8s 集群(3 主 6 工作节点)","nodes":["业务微服务 ×11","模型分发 ×3"]}]},
44
+ {"name":"数据区","nodes":[{"name":"PostgreSQL","tags":["一主两从"]},{"name":"Redis","tags":["哨兵"]},"对象存储"]}],
45
+ "notes":["生产与测试环境物理隔离;数据区仅允许应用区访问"]}
46
+ ```
47
+
48
+ ### 功能模块(tree)
49
+
50
+ `project_facts` 返回的模块树 spec 可直接用,但要改成**功能口径**(评审看「系统能干什么」,不看 Maven 模块名)。
51
+ 进文档的功能树用 `"direction":"LR"`(自左向右):四个分支的树从上往下画有 1700px 宽,插进 A4 字只剩 3 磅;
52
+ 自左向右只有 500 多 px 宽,字有 10 磅:
53
+
54
+ ```json
55
+ {"type":"tree","title":"系统功能结构","header":false,"direction":"LR",
56
+ "root":{"name":"智能运维平台","children":[
57
+ {"name":"监控告警","children":[{"name":"指标采集"},{"name":"告警收敛"},{"name":"根因分析"}]},
58
+ {"name":"运维工单","children":[{"name":"工单流转"},{"name":"知识推荐"},{"name":"满意度回访"}]},
59
+ {"name":"智能助手","children":[{"name":"自然语言查询"},{"name":"脚本生成"},{"name":"变更评审"}]},
60
+ {"name":"平台管理","children":[{"name":"用户权限"},{"name":"计费结算"},{"name":"审计日志"}]}]}}
61
+ ```
62
+
63
+ ### 业务流程(flow)与组织结构(tree)
64
+
65
+ 流程图用 `flow`(判断节点 `"shape":"diamond"`,存储 `"cylinder"`,跨角色用 `lanes` 画泳道);
66
+ 组织结构用 `tree`,节点 `desc` 写职责与人数(「技术组 · 6 人 · 架构与核心研发」)。
67
+
68
+ ## 二、数据图(render_chart)
69
+
70
+ ### 实施进度甘特图
71
+
72
+ ```json
73
+ {"type":"gantt","title":"实施进度计划","today":"2026-09-23",
74
+ "tasks":[
75
+ {"name":"需求调研与方案设计","start":"2026-10","end":"2026-11","group":"第一阶段"},
76
+ {"name":"核心模块开发","start":"2026-12","end":"2027-04","group":"第二阶段"},
77
+ {"name":"集成测试与安全测评","start":"2027-04","end":"2027-06","group":"第二阶段"},
78
+ {"name":"试点运行","start":"2027-06","end":"2027-08","group":"第三阶段"},
79
+ {"name":"推广与验收","start":"2027-08","end":"2027-09","group":"第三阶段"}],
80
+ "milestones":[{"name":"方案评审","date":"2026-11-30"},{"name":"试点上线","date":"2027-06-30"},
81
+ {"name":"项目验收","date":"2027-09-30"}]}
82
+ ```
83
+
84
+ `today` 填编制日期:图上的竖线让读者一眼看出计划从现在起。计划整体在竖线左边,就是时态写错了。
85
+
86
+ ### 风险矩阵
87
+
88
+ ```json
89
+ {"type":"matrix","title":"风险矩阵","items":[
90
+ {"id":"R1","name":"上游模型接口变更","p":4,"i":3},
91
+ {"id":"R2","name":"核心人员流失","p":2,"i":4},
92
+ {"id":"R3","name":"收入不及预期","p":3,"i":5},
93
+ {"id":"R4","name":"等保测评不通过","p":2,"i":5}]}
94
+ ```
95
+
96
+ 编号与风险登记表一致;登记表里写应对措施与责任人,图只负责「哪些最该盯」。
97
+
98
+ ### 财务图(直接用 fin_model 返回的 spec)
99
+
100
+ `fin_model` 的「可直接出图的 spec」里有:`cumulative_cashflow`(累计现金流量,零线交点即回收期)、
101
+ `sensitivity_tornado`(敏感性)、`investment_composition`(投资构成环形图)、`investment_waterfall`、
102
+ `revenue_vs_cost` / `revenue_by_line`。可研一般取前三张。拿到后原样交给 `render_chart`,
103
+ **不要改里面的数**——改假设就重跑 fin_model。
104
+
105
+ ### 其他常用
106
+
107
+ - 对比几个量:`bar`(类别名长或超过 8 个用 `hbar`);只想强调其中一个系列:`"highlight":"本项目"`,其余自动退为灰色;
108
+ - 构成:`pie`(≤6 块)或 `stacked`(多个整体的构成);
109
+ - 趋势:`line`;两个量纲不同的量**不要**画进一张图(引擎会拒绝双纵轴),拆成两张或换算成指数。
110
+
111
+ ## 三、配多少图
112
+
113
+ 可研报告 15~30 页,结构图 5~7 张、数据图 3~5 张、表 10 张以上是常见密度。
114
+ 图多不等于好:每张图都要有正文句子引出、说明它证明了什么;说不出来的图就删掉。
@@ -0,0 +1,80 @@
1
+ # 写得像行家:报告文字的做法
2
+
3
+ 评审读报告的方式是**跳读**:每节看第一句、看图表、看数字,觉得可疑才往下读。
4
+ 所以文字的首要任务是让跳读的人拿到结论,其次才是让细读的人找到依据。
5
+
6
+ ## 一、每节第一句就是结论
7
+
8
+ ✗ 「随着工业互联网的快速发展,智能运维在各行各业得到了广泛应用。企业在运维管理过程中……」
9
+ ✓ 「设备运维的主要损失不在故障本身,而在发现晚、定位慢:试点工厂 70% 的停机时间花在找原因上。本项目要缩短的正是这一段。」
10
+
11
+ 第一句写不出来,说明这一节还没想清楚要证明什么——先想清楚再写。
12
+
13
+ ## 二、段落按「主张 — 依据 — 含义」走
14
+
15
+ > **主张**:告警噪声是一线运维最先遇到的问题。
16
+ > **依据**:据试点单位统计,日均告警 1.8 万条,其中 83% 是重复或衍生告警,值班人员每条平均处理 40 秒。
17
+ > **含义**:统一的告警收敛能把有效告警压到每日 3000 条以内,这是本项目第一项建设内容的依据。
18
+
19
+ 没有依据的主张删掉;没有含义的依据(数字摆出来却不说明什么)也删掉。
20
+
21
+ ## 三、数字比形容词有力,来源比数字有力
22
+
23
+ | ✗ | ✓ |
24
+ |---|---|
25
+ | 显著提升运维效率 | 平均故障定位时间从 42 分钟降到 7.6 分钟(2026 年 6 月试点 30 天统计) |
26
+ | 具有广阔的市场前景 | 目标客群为年营收 5 亿元以上的制造企业,约 1.2 万家(来源:……);首年签约目标 30 家 |
27
+ | 系统规模较大、功能完善 | 后端 9 个模块、7 个可独立部署的服务,对外接口约 260 个(据代码库统计) |
28
+ | 经济效益良好 | 所得税后 NPV 355.40 万元(i=8%),IRR 27.12%,静态回收期 4.28 年(含建设期 1 年) |
29
+
30
+ **来源的写法**:「据 backend/pom.xml」「经 fin_model 测算(口径见 10.1 节)」「据《……》(文号)」
31
+ 「据 2026 年 7 月用户调研(有效样本 126 份)」。拿不到来源的数不写,或者明确写成假设:
32
+ 「按每家门店年订阅 1.2 万元估算(参照同类产品公开报价)」。
33
+
34
+ ## 四、不编造
35
+
36
+ 人名、职称、单位资质、客户名单、合同额、市场规模、试点数据——**拿不到就留空,不要编**:
37
+
38
+ ```
39
+ 项目负责人:[待补:姓名、职称、近三年主持的相关项目]
40
+ ```
41
+
42
+ `docx_inspect` 会把这些待补项列出来,交付时逐条告诉用户。编一个像样的数比留空危险得多:
43
+ 评审只要追问一次来源,整份报告的可信度就没了。
44
+
45
+ ## 五、时态要对
46
+
47
+ | 事情的状态 | 放在哪 | 怎么写 |
48
+ |---|---|---|
49
+ | 已经完成 | 现有工作基础 / 项目进展 | 「已完成……,已上线……,累计……」 |
50
+ | 正在做 | 现有工作基础(注明进度) | 「正在开展……,预计 2026 年 11 月完成」 |
51
+ | 计划做 | 实施内容 / 进度安排 | 「计划于 2027 年 3 月前完成……」 |
52
+
53
+ 判断标准只有一个:**编制日期**。编制日期之前的事不能写进计划。
54
+
55
+ ## 六、术语与格式
56
+
57
+ - 同一事物全文一个叫法(「智能体」就不要再出现「Agent」「代理」混用);缩略语首次出现写全称
58
+ (「大语言模型(LLM)」),并收进附录缩略语表。
59
+ - 金额统一单位(万元,保留两位小数),百分比保留一到两位小数;表内数字右对齐由引擎处理。
60
+ - 层级编号:一、(一)1.(1);不要在一个层级里混用。
61
+ - 图表都要被正文引用,用交叉引用写:「如@fig:arch 所示」「详见@tbl:invest」,编号由引擎生成。
62
+
63
+ ## 七、不写空话
64
+
65
+ 这些词单独出现时几乎不携带信息,出现一次就要问自己「具体是什么」:
66
+ 赋能、助力、打造、全方位、多维度、深度融合、有效提升、显著增强、极大地、进一步、
67
+ 为……奠定坚实基础、具有重要意义、开创……新局面。
68
+
69
+ ✗ 「平台将全面赋能企业数字化转型,助力企业实现降本增效。」
70
+ ✓ 「平台上线后,试点工厂的设备故障平均定位时间从 42 分钟降到 8 分钟,月度停机损失减少约 30 万元。」
71
+
72
+ ## 八、一段范例(财务评价开头)
73
+
74
+ > 按基准假设,项目总投资 453.00 万元,所得税后财务净现值 355.40 万元(基准收益率 8%),
75
+ > 财务内部收益率 27.12%,静态投资回收期 4.28 年(含建设期 1 年),财务上可行。
76
+ > 营业收入是最敏感的因素:收入下降 35.6% 时 NPV 降为零;在「悲观」情景(收入 -30%、经营成本 +10%)下
77
+ > NPV 为 -3.84 万元,接近盈亏平衡,因此把「首年签约不少于 20 家」列为项目推进的前置条件(见@tbl:risk 中 R3)。
78
+ > 测算口径与逐年现金流见@tbl:cashflow,敏感性见@fig:tornado。
79
+
80
+ 这段话的每个数字都来自 fin_model 的同一次结果,结论(可行)、条件(签约数)和风险(R3)互相印证。