@huicai/cli 2026.712.80880 → 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 (337) 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/device.js +1 -1
  327. package/src/doccache.js +1 -0
  328. package/src/doctor.js +1 -1
  329. package/src/executors.js +1 -1
  330. package/src/input.js +1 -1
  331. package/src/permissions.js +1 -1
  332. package/src/pyruntime.js +1 -0
  333. package/src/repl.js +1 -1
  334. package/src/scan.js +1 -1
  335. package/src/session.js +1 -1
  336. package/src/tools.js +1 -1
  337. package/src/tui/app.js +1 -1
@@ -0,0 +1,100 @@
1
+ #!/usr/bin/env python3
2
+ # 容量估算计算器(eng-architecture"先算再设计"公式的可执行版)。python3 stdlib,零依赖。
3
+ # 用法:
4
+ # python3 capacity-calc.py qps --dau 100000 --actions 20 [--peak 5]
5
+ # python3 capacity-calc.py storage --rows-per-day 500000 --row-bytes 512 [--days 730] [--replicas 3] [--index-factor 1.5]
6
+ # python3 capacity-calc.py conn --instances 20 --pool 30 [--db-max 1000]
7
+ # python3 capacity-calc.py bandwidth --qps 2000 --payload-kb 8
8
+ # python3 capacity-calc.py pool --cores 8 [--wait-ratio 4] # 线程池参考(dev-java IO 密集公式)
9
+ # python3 capacity-calc.py transfer --size-mb 100 --kbps 100 # 传输时长(eng-complex-env 载荷缩放)
10
+ # python3 capacity-calc.py --selftest
11
+ # 输出含公式过程——数字要能被评审挑战,黑盒结论没有价值。估算精度目标:一个数量级。
12
+ import argparse
13
+ import sys
14
+
15
+
16
+ def fmt_bytes(b):
17
+ for unit in ("B", "KB", "MB", "GB", "TB", "PB"):
18
+ if b < 1024 or unit == "PB":
19
+ return f"{b:.1f}{unit}"
20
+ b /= 1024
21
+
22
+
23
+ def cmd_qps(a):
24
+ avg = a.dau * a.actions / 86400
25
+ peak = avg * a.peak
26
+ cap = peak / 0.7
27
+ print(f"日活 {a.dau:,} × 人均 {a.actions} 次 ÷ 86400 = 平均 {avg:,.0f} QPS")
28
+ print(f"× 峰值系数 {a.peak}(常态 3–5,秒杀类 10+) = 峰值 {peak:,.0f} QPS")
29
+ print(f"÷ 0.7 安全水位(压测拐点×0.7 反推) = 建议容量 {cap:,.0f} QPS")
30
+ print("下一步: 压测验证拐点(eng-performance 阶梯加压),估算只定采购量级不定 SLA。")
31
+
32
+
33
+ def cmd_storage(a):
34
+ daily = a.rows_per_day * a.row_bytes
35
+ raw = daily * a.days
36
+ total = raw * a.replicas * a.index_factor
37
+ print(f"日增 {a.rows_per_day:,} 行 × {a.row_bytes}B = 日增 {fmt_bytes(daily)}")
38
+ print(f"× 保留 {a.days} 天 = 裸数据 {fmt_bytes(raw)}")
39
+ print(f"× 副本 {a.replicas} × 索引膨胀 {a.index_factor}(1.3–2) = 总占用 {fmt_bytes(total)}")
40
+ print(f"+ 50% 余量 → 规划 {fmt_bytes(total * 1.5)}")
41
+ print("提醒: 冷热分层与归档可大幅砍这个数(eng-database 三板斧/eng-infra 生命周期)。")
42
+
43
+
44
+ def cmd_conn(a):
45
+ need = a.instances * a.pool
46
+ pct = need * 100 / a.db_max
47
+ print(f"实例 {a.instances} × 池大小 {a.pool} = 需要连接 {need}")
48
+ print(f"DB 上限 {a.db_max} → 占用 {pct:.0f}%{' <== 超 50% 余量红线,砍池或加库' if pct > 50 else '(≤50% 合规)'}")
49
+ print("提醒: 池不是越大越好(eng-database 公式 核数×2+磁盘数);PG 场景必须过 pgbouncer(db-postgres)。")
50
+
51
+
52
+ def cmd_bandwidth(a):
53
+ mbps = a.qps * a.payload_kb * 8 / 1024
54
+ print(f"{a.qps:,} QPS × {a.payload_kb}KB × 8bit = {mbps:,.0f} Mbps(单向)")
55
+ print(f"+ 50% 余量 → 规划 {mbps * 1.5:,.0f} Mbps;跨机房/公网按双向与突发再评。")
56
+
57
+
58
+ def cmd_pool(a):
59
+ cpu_bound = a.cores + 1
60
+ io_bound = int(a.cores * (1 + a.wait_ratio))
61
+ print(f"CPU 密集参考: 核数+1 = {cpu_bound}")
62
+ print(f"IO 密集参考: 核数×(1+等待/计算={a.wait_ratio}) = {io_bound}")
63
+ print("纪律: 队列必须有界+拒绝策略显式+池指标上监控(dev-java 并发节);公式是起点,画像是终点。")
64
+
65
+
66
+ def cmd_transfer(a):
67
+ secs = a.size_mb * 1024 / a.kbps
68
+ print(f"{a.size_mb}MB ÷ {a.kbps}KB/s = {secs:,.0f}s ≈ {secs / 60:.1f} 分钟")
69
+ print(f"超时建议 ≥ {secs * 1.5:,.0f}s(×1.5);固定 30s 超时在慢链路=必失败(eng-complex-env 铁律)。")
70
+ print("上传 100% ≠ 送达:校验和两端比对才算(env-offline 三点校验)。")
71
+
72
+
73
+ def selftest():
74
+ ns = argparse.Namespace
75
+ cmd_qps(ns(dau=100000, actions=20, peak=5))
76
+ cmd_storage(ns(rows_per_day=500000, row_bytes=512, days=730, replicas=3, index_factor=1.5))
77
+ cmd_conn(ns(instances=20, pool=30, db_max=1000))
78
+ cmd_bandwidth(ns(qps=2000, payload_kb=8))
79
+ cmd_pool(ns(cores=8, wait_ratio=4))
80
+ cmd_transfer(ns(size_mb=100, kbps=100))
81
+ print("\nselftest ok")
82
+
83
+
84
+ def main():
85
+ if "--selftest" in sys.argv:
86
+ return selftest()
87
+ p = argparse.ArgumentParser(description="容量估算(公式过程可评审)")
88
+ sub = p.add_subparsers(dest="cmd", required=True)
89
+ q = sub.add_parser("qps"); q.add_argument("--dau", type=int, required=True); q.add_argument("--actions", type=float, required=True); q.add_argument("--peak", type=float, default=5)
90
+ s = sub.add_parser("storage"); s.add_argument("--rows-per-day", type=int, required=True); s.add_argument("--row-bytes", type=int, required=True); s.add_argument("--days", type=int, default=730); s.add_argument("--replicas", type=int, default=3); s.add_argument("--index-factor", type=float, default=1.5)
91
+ c = sub.add_parser("conn"); c.add_argument("--instances", type=int, required=True); c.add_argument("--pool", type=int, required=True); c.add_argument("--db-max", type=int, default=1000)
92
+ b = sub.add_parser("bandwidth"); b.add_argument("--qps", type=float, required=True); b.add_argument("--payload-kb", type=float, required=True)
93
+ t = sub.add_parser("pool"); t.add_argument("--cores", type=int, required=True); t.add_argument("--wait-ratio", type=float, default=4)
94
+ tr = sub.add_parser("transfer"); tr.add_argument("--size-mb", type=float, required=True); tr.add_argument("--kbps", type=float, required=True)
95
+ a = p.parse_args()
96
+ {"qps": cmd_qps, "storage": cmd_storage, "conn": cmd_conn, "bandwidth": cmd_bandwidth, "pool": cmd_pool, "transfer": cmd_transfer}[a.cmd](a)
97
+
98
+
99
+ if __name__ == "__main__":
100
+ main()
@@ -0,0 +1,84 @@
1
+ ---
2
+ name: eng-automation
3
+ description: 工程自动化链(五层自动化模型:本地钩子→CI 门禁→机器人→定时例程→自愈动作→ROI 判据与三次法则→脚手架与 golden path→机器人清单→自愈白名单分级→自动化债治理→覆盖率度量)。工程链自动化深耕:研发流程提效立项、重复劳动清点、机器人/例程建设、自动化脚本失控时载入。流水线工程细则由 cicd-pipeline、办公例程由 office-automation 承接。
4
+ version: 1.0.0
5
+ ---
6
+
7
+ # 工程自动化链
8
+
9
+ engineering-chain 的自动化子链。目标:**把工程师从例行劳动里解放到判断性劳动**;
10
+ 判据:凡是步骤可写清的重复劳动都是自动化候选,凡是需要权衡的判断都不许全自动。
11
+
12
+ ## 五层自动化模型(从近到远,逐层升级)
13
+
14
+ | 层 | 载体 | 典型内容 | 纪律 |
15
+ |---|---|---|---|
16
+ | L1 本地 | pre-commit/脚本/别名 | 格式化/敏感信息扫描/裸 TODO 拦截 | 秒级才有人用(dev-toolchain) |
17
+ | L2 门禁 | CI 流水线 | 构建/测试/扫描/体积预算 | 工程实现见 **cicd-pipeline** |
18
+ | L3 机器人 | 事件驱动 bot | PR 检查评论/依赖升级/构建红灯播报 | 见机器人清单 |
19
+ | L4 例程 | 定时任务 | 周报巡检/清理/台账提醒 | 平台例程能力承载(office-automation) |
20
+ | L5 自愈 | 告警触发动作 | 自动扩容/重启/切流/降级 | **白名单分级,见自愈节** |
21
+
22
+ 演进纪律:先 L1L2 打牢(个人与团队基本盘)再上 L3L4(组织资产),L5 最后(要预案与演练背书)。
23
+
24
+ ## ROI 判据(立项前先算)
25
+
26
+ - **三次法则**:同一操作手工干到第三遍→脚本化;脚本被 3 人以上使用→产品化(加参数校验/文档/Owner);
27
+ - 账要算全:收益=频率×单次耗时×人数;成本=开发+**维护**(环境变化就要修)——高频稳定流程收益最大,低频且易变的流程自动化常亏本(留清单化的手工步骤反而对);
28
+ - 隐性收益计入:消灭等待(自动触发替人盯)、消灭遗漏(清单必过)、留痕合规;
29
+ - **自动化债**:脆弱脚本(硬编码路径/无错误处理/无人敢动)也是债,进技术债台账(eng-architecture)同管。
30
+
31
+ ## 脚手架与 Golden Path
32
+
33
+ - 项目模板仓库:新服务从模板起步(目录结构/CI 配置/日志与监控接入/健康检查/README 骨架全带)——**新项目 30 分钟可部署第一版是脚手架的验收标准**;
34
+ - 模板要活:模板更新有 Owner,存量项目漂移检测(模板升级公告+迁移脚本);
35
+ - 代码生成judgment:样板代码(CRUD/接口层/客户端 SDK)从契约生成(api-design 同源),**生成物不手改**(要改改模板或生成器,手改=下次生成即冲突);
36
+ - Golden path 文档化:官方推荐路径(选型+模板+流程)让 80% 场景零决策直行,偏离 golden path 才需要评审(eng-architecture 收敛纪律的执行面)。
37
+
38
+ ## 机器人清单(L3,按收益排序建设)
39
+
40
+ - CI 看护 bot:红灯即时通报到群+@最近提交人,连续红 >2h 升级(engineering-chain 例程);
41
+ - 依赖升级 bot:锁文件级升级 PR 自动开(带 changelog 摘要),小版本自动合入判据(测试全绿+周知),大版本转人工(dependency-upgrade);
42
+ - PR 协作 bot:体积/覆盖率/性能基线对比自动评论;超 3 天无动作的 PR 提醒;巨型 PR(>800 行)自动提示拆分;
43
+ - 发布 bot:发布单自动生成(变更列表/关联工单)、发布窗口冲突提醒(eng-release 变更日历);
44
+ - 工单分诊 bot:报障自动带上环境与日志摘要模板,缺信息自动追问(itsm-ops 承接);
45
+ - **AI 加持判据**(eng-ai):摘要/分类/初诊类任务适合 LLM(PR 描述生成/坏例聚类/告警聚合摘要);判定类(能不能合入)只给建议不给决定。
46
+
47
+ ## 定时例程(L4,平台例程能力落地)
48
+
49
+ 工程域高价值例程配方(engineering-chain 例程节的执行面):
50
+ 依赖 CVE 周报/慢 SQL 周报/告警疲劳度月检/成本月报/证书与域名到期巡检/技术债季检/
51
+ 无主资源与僵尸开关清扫/文档保鲜期到期提醒(eng-docs)——
52
+ 每条例程四要素:触发时刻/产出物(报告落到哪)/异常升级路径/Owner。**没有 Owner 的例程=定时垃圾制造器**。
53
+
54
+ ## 自愈自动化(L5,白名单分级)
55
+
56
+ | 级 | 动作类型 | 授权 |
57
+ |---|---|---|
58
+ | 只读诊断 | 抓栈/抓日志/快照采集 | 告警触发自动执行,永远安全 |
59
+ | 无损缓解 | 摘除单实例/重启单 Pod/清理磁盘日志 | 白名单内自动,**执行即通报**(不是静默) |
60
+ | 有损变更 | 扩容/切流/开降级开关 | 预案编号+人一键确认(半自动);演练过的预案才进此级 |
61
+ | 危险动作 | 数据修复/回滚/权限变更 | 永不自动,人走 eng-ops 流程 |
62
+
63
+ 自愈三前提:动作幂等、有熔断(同一动作 N 分钟内只执行一次,防抖动风暴)、有全局开关(自愈系统自身失控时一键停)。
64
+
65
+ ## 自动化资产治理
66
+
67
+ 自动化脚本=代码:入库、评审、有测试(至少冒烟)、有 Owner;
68
+ **失败必须告警**——静默失败的自动化比没有更糟(以为有人管其实没人管);
69
+ 季度盘点:执行成功率/人工干预次数/失效脚本下线;交接纪律(人走脚本不留孤儿)。
70
+
71
+ ## 度量
72
+
73
+ 自动化覆盖率(发布步骤自动化占比/测试自动化占比)、人工例行工时趋势(月度采样)、
74
+ 例程与 bot 的干预率(自动化产出被人工修正的比例——高=不可信,治理或降级为提醒);
75
+ 与 eng-efficiency 效能度量联动(自动化是改善 DORA 前置时间的主力)。
76
+
77
+ **作业包**:`references/automation-inventory.md`(立项 ROI 卡/资产台账(失败必告警)/例程四要素/自愈白名单登记/高价值例程选单);
78
+ `references/routine-presets.md`(**工程巡检例程预设**:基于平台 /schedule 真实机制的 10 条复制即装配方——依赖安全/密钥扫描/数据库与缓存健康/AI 质量哨兵/成本周报/K8s 晨检/证书到期/保鲜季检,--yolo 安全纪律先读)。
79
+
80
+ ## 使用纪律
81
+
82
+ 先标准化后自动化(乱流程自动化=把乱加速);判断性决策永远留人(自动化提供信息与建议);
83
+ 每次"手工救火"复盘必问:哪一步可以自动化?(eng-ops 三回写延伸)——
84
+ **自动化的终态不是无人,是人只出现在值得人出现的地方**。
@@ -0,0 +1,38 @@
1
+ # 自动化资产台账与立项卡(eng-automation 落笔件)
2
+
3
+ ## 1. 自动化立项卡(三次法则触发后填)
4
+
5
+ | 项 | 内容 |
6
+ |---|---|
7
+ | 流程名 | __(先标准化后自动化——乱流程自动化=把乱加速) |
8
+ | 现状 | 频率 __/周 × 单次 __ 分钟 × __ 人 = 月耗 __ 小时 |
9
+ | 层级 | □L1 本地钩子 □L2 CI 门禁 □L3 机器人 □L4 例程 □L5 自愈 |
10
+ | ROI | 收益 __ 小时/月;开发 __ 天+维护 __ 时/月;回本 __ 月(高频稳定赚,低频易变亏) |
11
+ | 判断点留人 | 自动化到哪步为止,哪步必须人拍板:__ |
12
+
13
+ ## 2. 自动化资产台账(季度盘点用)
14
+
15
+ | 名称 | 层级 | Owner | 触发 | 产出物 | 失败告警到 | 成功率(近月) | 状态 |
16
+ |---|---|---|---|---|---|---|---|
17
+ | 例:依赖CVE周报 | L4 | __ | 周一 09:00 | 报告→群 | __ | __% | 在役/待修/下线 |
18
+
19
+ > 铁律:失败必须告警(静默失败的自动化比没有更糟);无 Owner 的例程=定时垃圾制造器;脚本入库有评审。
20
+
21
+ ## 3. 例程四要素登记(L4,平台例程能力落地)
22
+
23
+ - 触发时刻:__ / 产出物落到:__ / 异常升级路径:__ / Owner:__
24
+
25
+ ## 4. 自愈动作白名单登记(L5,逐条审批)
26
+
27
+ | 动作 | 级别(只读诊断/无损缓解/有损变更) | 幂等? | 熔断(N 分钟一次) | 全局开关 | 演练日期 |
28
+ |---|---|---|---|---|---|
29
+
30
+ > 有损级=预案编号+人一键确认;危险动作(数据修复/回滚/权限)永不自动。
31
+
32
+ ## 5. 工程域高价值例程配方速查(engineering-chain 例程节的选单)
33
+
34
+ CI 看护 / 依赖 CVE 周报 / 慢 SQL+Redis bigkey+ES 对账周扫 / 告警疲劳度月检 /
35
+ SLO 错误预算周报 / 成本月报(infra+token) / AI 质量哨兵(漂移金丝雀日跑) /
36
+ 数据库巡检(长事务/自增水位/复制槽/XID) / 证书与许可到期 / 客户升级日历与 EOL /
37
+ 技术债季检 / 文档保鲜期 / 单点模块与会议审计季盘
38
+ ——每条接对应链的作业包脚本,产出留档比趋势。
@@ -0,0 +1,73 @@
1
+ # 工程巡检例程预设(eng-automation 落笔件:基于平台 /schedule 真实能力,复制即装)
2
+
3
+ 平台机制(以当前版本为准):`/schedule add "<cron>" "<提示词>"` 登记到 `~/.huicai/schedule.json`,
4
+ 生成 crontab 行交系统 cron 运行(`huicai -p "<提示词>" --yolo --plain`,日志在 `~/.huicai/schedule-<id>.log`);
5
+ `/schedule list` 查看并复制 crontab 行,`/schedule remove <id>` 删除。
6
+
7
+ ## 安全纪律(先读再装,--yolo 运行的铁律)
8
+
9
+ - **提示词必须自限"只读巡检+报告落盘"**:例程提示词里明写"只读操作,不做任何变更/修复/提交"——
10
+ 自动化分层 L4 例程只产报告,处置永远留给人(eng-automation 白名单四级);
11
+ - 凭证不进提示词:数据库/Redis 连接信息走环境变量或本机配置(sec-auth/eng-infra 密钥纪律);
12
+ - 报告目录统一 `巡检报告/YYYY-MM-DD-<主题>.md`(留档比趋势);**失败也要落报告**(静默失败的自动化比没有更糟);
13
+ - 每条例程有 Owner,进自动化台账(automation-inventory.md)。
14
+
15
+ ## 预设清单(在目标项目目录下执行 /schedule add;按需改路径与频率)
16
+
17
+ **1. 依赖安全周报**(周一 09:00,eng-security SLA)
18
+ ```
19
+ /schedule add "0 9 * * 1" "只读巡检:载入 eng-security 技能,对本仓库各锁文件跑依赖漏洞扫描(npm audit 等按栈选),按 严重/高/中 分级汇总,高危以上逐条列包名与修复版本,写入 巡检报告/$(date +%F)-依赖安全周报.md;不做任何升级或变更"
20
+ ```
21
+
22
+ **2. 密钥泄漏周扫**(周日 22:00,dev-toolchain)
23
+ ```
24
+ /schedule add "0 22 * * 0" "只读巡检:载入 dev-toolchain 技能,用其作业包 secret-scan.sh 扫描本仓库全部源码目录,命中项写入 巡检报告/$(date +%F)-密钥扫描.md 并在报告开头标注'真密钥按已泄露处置(吊销重发)';零命中也要写报告说明扫描范围;不修改任何文件"
25
+ ```
26
+
27
+ **3. 数据库健康周检**(周二 07:30,db-mysql/db-postgres)
28
+ ```
29
+ /schedule add "30 7 * * 2" "只读巡检:载入 db-mysql 技能,用作业包 mysql-health.sql 对巡检配置中的库执行(凭证走本机配置不写入报告),重点摘录:长事务/锁等待/自增水位>70%/碎片 TOP,与上周报告对比变化,写入 巡检报告/$(date +%F)-MySQL健康.md;只读查询,不执行任何 DML/DDL"
30
+ ```
31
+ (PG 版同构:载 db-postgres 用 pg-health.sql,重点 XID age 与复制槽。)
32
+
33
+ **4. 缓存与搜索周扫**(周三 07:30,db-redis/db-es)
34
+ ```
35
+ /schedule add "30 7 * * 3" "只读巡检:载入 db-redis 与 db-es 技能,分别用 redis-health.sh(错峰时段可加 --scan)与 es-health.sh 检查巡检清单中的实例,异常项(碎片率/淘汰/未分配分片/磁盘水位)汇总写入 巡检报告/$(date +%F)-缓存搜索健康.md;只读命令"
36
+ ```
37
+
38
+ **5. AI 质量哨兵**(每日 07:00,ai-eval/ai-mlops 漂移金丝雀)
39
+ ```
40
+ /schedule add "0 7 * * *" "只读巡检:载入 ai-eval 技能,用作业包 eval-runner.py 跑金丝雀题集 评测/canary.jsonl(--baseline 上次结果,--out 覆盖留档),新挂案例即在报告开头标红,写入 巡检报告/$(date +%F)-AI质量哨兵.md;只评测不改提示不改配置"
41
+ ```
42
+
43
+ **6. Token 成本周报**(周五 17:00,ai-mlops)
44
+ ```
45
+ /schedule add "0 17 * * 5" "只读巡检:载入 ai-mlops 技能,导出本周用量数据后用 token-cost-calc.py 出维度归因与单位任务成本,对比预算与上周,写入 巡检报告/$(date +%F)-AI成本周报.md;只统计不做降级变更"
46
+ ```
47
+
48
+ **7. 前端体积周检**(周四 08:00,dev-frontend)
49
+ ```
50
+ /schedule add "0 8 * * 4" "只读巡检:构建产物存在则载入 dev-frontend 技能,用 bundle-budget.py 检查 dist 目录(预算沿用项目约定),超限文件与总量趋势写入 巡检报告/$(date +%F)-前端体积.md;不触发构建不改代码"
51
+ ```
52
+
53
+ **8. K8s 晨检**(工作日 08:30,infra-k8s)
54
+ ```
55
+ /schedule add "30 8 * * 1-5" "只读巡检:载入 infra-k8s 技能,用 k8s-triage.sh 采集集群快照(-o 巡检报告/k8s),Pending/CrashLoop/重启榜/Warning 事件摘要写入 巡检报告/$(date +%F)-K8s晨检.md;只读 kubectl,不改任何资源"
56
+ ```
57
+
58
+ **9. 证书与许可到期巡检**(每日 08:00,infra-gateway/env-offline)
59
+ ```
60
+ /schedule add "0 8 * * *" "只读巡检:读取 运维/证书清单.md 的域名与证书列表,逐个检查到期日(openssl 只读连接),30 天内到期的列入报告开头红区并@负责人栏,写入 巡检报告/$(date +%F)-证书到期.md;不做续期操作"
61
+ ```
62
+
63
+ **10. 文档保鲜与台账季检**(每季首月 1 日 09:30,eng-docs/eng-architecture)
64
+ ```
65
+ /schedule add "30 9 1 1,4,7,10 *" "只读巡检:扫描仓库文档的保鲜头部(最后验证日期),超保鲜期清单+技术债台账到期项+无 Owner 例程清单,写入 巡检报告/$(date +%F)-季度保鲜与台账.md;只列清单不改文档"
66
+ ```
67
+
68
+ ## 装配与治理
69
+
70
+ - 批量装配:上述命令逐条在对应项目目录执行(cwd 会被记录);`/schedule list` 取 crontab 行粘贴进 `crontab -e`;
71
+ - 主机侧批量巡检(多台 Linux 用 quick-triage)走 **ops-fleet** 的 batch-exec-guard(只读命令也过金丝雀习惯);
72
+ - 例程上线后第一周人工核对报告质量(eng-automation 干预率纪律),无人看的报告=定时垃圾,砍或改;
73
+ - 报告异常的**处置永远是人**:例程发现→工单/群提醒→人按对应链处置(L4 产报告,L5 自愈另走白名单审批)。
@@ -0,0 +1,76 @@
1
+ ---
2
+ name: eng-collaboration
3
+ description: 工程协作链(评审文化与 SLA(24h 首响/400 行上限/对事给理由)→结对与 mob 判据→巴士系数盘点与知识传承(轮岗/影子/分享沉淀)→跨团队依赖契约与升级路径→会议工程时间盒→异步协作默认与专注块→技术分歧处理(证据+决策人+disagree and commit)→新人融入设计)。工程链协作子链:评审拖沓、知识都在一个人脑里、跨团队扯皮、会议吞噬产能、技术争论无休时载入。
4
+ version: 1.0.0
5
+ ---
6
+
7
+ # 工程协作链
8
+
9
+ engineering-chain 的协作子链。工程是团队运动:流程与工具的上限,由协作质量决定;
10
+ 本链管"人与人的接口设计"——和 API 一样,要有契约、有 SLA、有版本。
11
+
12
+ ## 评审文化(协作的高频接口)
13
+
14
+ - **SLA**:首次响应 ≤24h(阻塞别人=最贵的等待,eng-efficiency 价值流第一杀手);紧急 PR 走 IM 直呼+说明为何急;
15
+ - 规模纪律:单 PR ≤400 行有效变更(超了评审质量断崖跌,"LGTM 眼盲"),大改动拆序列 PR(eng-develop 一 PR 一事);
16
+ - 评审姿势:对事不对人、指出问题给理由与建议("这里会 NPE,建议 Optional"而非"这写得不行");用问句探意图("这里不用缓存是有意的吗");**挑刺要挑大的**(架构与正确性优先,格式交给工具,dev-toolchain);
17
+ - 作者义务:自评先行(eng-develop)、PR 描述讲清 why、逐条回应评论(采纳或说明不采纳理由,不许已读不回);
18
+ - 批准纪律:approve=我愿意共担这段代码的责任;看不懂的部分说看不懂(装懂放行=虚假防线);
19
+ - 分歧超两轮评论→当面/语音十分钟(文字对喷一下午不如通话十分钟)。
20
+
21
+ ## 结对与 mob 判据
22
+
23
+ 上结对的信号:复杂设计落地初期/疑难排障(四只眼睛看栈)/新人带教/单点模块交接——**按需结对,不教条全天候**;
24
+ mob(全组围一屏)只用于:关键决策落地/全组都该懂的核心改造;
25
+ 轮换纪律:结对定时换手(驾驶员/领航员),防单向表演;
26
+ 远程结对用共享会话工具,效果打折要认,高价值场景才开。
27
+
28
+ ## 巴士系数与知识传承
29
+
30
+ - **单点模块季度盘点**:每个模块标"几个人敢改"(=1 的进风险清单,eng-research 巴士系数落点);治理三招:结对开发/文档补课(eng-docs)/轮岗安排;
31
+ - 影子机制:值班影子(新人跟班,eng-ops)/发布影子/评审影子——看三遍、做一遍、教一遍;
32
+ - 内部分享:双周 30 分钟,主题从实战来(事故复盘/新链新技能/踩坑);**录播+文档沉淀**(knowledge-sop),不沉淀的分享=一次性消费;
33
+ - 轮岗判据:核心模块两年一轮候选(防知识板结),轮岗成本(3 个月产能折损)与单点风险权衡,关键期不轮。
34
+
35
+ ## 跨团队协作契约
36
+
37
+ - **依赖显式化**:跨团队依赖开"依赖请求单"(要什么/何时要/接口人/承诺日期),口头拜托=没有依赖(eng-planning 外部依赖第一杀手的治理面);
38
+ - 接口冻结窗口:联调前 N 天接口冻结(再改走变更评审,api-design 契约纪律);
39
+ - 联调预约制:双方排期对齐+环境与测试数据提前备(eng-planning 联调工时);
40
+ - 升级路径:执行层两轮对不齐→各自上升一层对齐(**升级不是告状,是止损**,文化要讲明);
41
+ - 跨团队复盘:事故涉多团队时联合复盘,时间线拼全图(eng-ops 无指责纪律跨团队适用)。
42
+
43
+ ## 会议工程(会议是最贵的同步原语)
44
+
45
+ - 站会 15 分钟三问:昨天完成/今天计划/**有什么阻塞**(阻塞是站会的第一产出,会后立刻拆解);站会不讨论方案(超 2 分钟的话题拉小会);
46
+ - 决策会三件套:会前有底稿(异步先读,会上不念稿)/会中有决策人(吵不拢谁拍板,**缺席关键人则改期,不开"再对一次"的会**)/会后有纪要(决策+理由+行动项,meeting-minutes);
47
+ - 时间盒纪律:默认 30 分钟起排(不是 60);到点未决→记录分歧点约下一步,不拖堂;
48
+ - 会议审计季度做:例会逐个问"砍掉会怎样"——答不出恶果的砍(eng-efficiency 专注时间)。
49
+
50
+ ## 异步协作默认
51
+
52
+ - 文档先行:讨论带底稿(evidence 与选项列好),评论异步收敛,会议只处理真分歧(eng-docs docs-as-code);
53
+ - 打断分级:P1 电话/急事 IM 强提醒并说清"何事+需要什么+何时要"/常规异步不催——**"在吗"是最差的打断**(说不清成本挂着焦虑);
54
+ - 专注块保护:团队约定免打扰时段(如上午),会议集中排下午;深工作被打断恢复要 20 分钟,连环打断=全天零产出;
55
+ - 状态透明:任务看板即进度(问进度先看板),减少"进展如何"式打断(TaskList/工单系统)。
56
+
57
+ ## 技术分歧处理
58
+
59
+ 分歧上证据:各自给数据/POC/案例(eng-research 一手信息纪律),观点对观点=嗓门赛;
60
+ 时间盒:证据仍不能收敛→**预先声明的决策人拍板**(架构域=架构 Owner,eng-architecture ADR 记录分歧与理由);
61
+ **disagree and commit**:拍板后全力执行,保留复盘权(ADR 回退条件是"我保留意见"的正确出口);
62
+ 反刍禁止:已决事项无新证据不重开(新证据=数据变了,不是"我还是觉得")。
63
+
64
+ ## 新人融入设计
65
+
66
+ 首日环境跑通(eng-docs 上手路径+dev-toolchain 及格线)/首周首个小 PR(精心挑的低风险真任务,走全流程建立信心)/
67
+ 首月影子值班+模块导读;导师制:指定导师(答疑第一入口)+每周 1:1;
68
+ **新人是流程的免费审计**:他们卡住的每一步都是文档或流程的 bug(eng-docs 回写)——欢迎提问,更要把答案沉淀。
69
+
70
+ **作业包**:`references/collab-templates.md`(依赖请求单/决策纪要/评审 SLA 约定/单点盘点表/会议审计表/新人融入卡)。
71
+
72
+ ## 使用纪律
73
+
74
+ 评审 SLA 与单点清单进团队看板(eng-efficiency 采样);跨团队依赖必有请求单;
75
+ 决策必有决策人与纪要;每季会议审计+单点盘点各一轮——
76
+ **协作的复利来自把"默契"变成"契约":人可以换,接口不塌。**
@@ -0,0 +1,43 @@
1
+ # 协作契约模板包(eng-collaboration 落笔件:把默契变成契约)
2
+
3
+ ## 1. 跨团队依赖请求单(口头拜托=没有依赖)
4
+
5
+ | 项 | 内容 |
6
+ |---|---|
7
+ | 请求方/接口人 | __ / __ |
8
+ | 要什么 | __(接口/数据/评审/资源,验收标准可判定) |
9
+ | 何时要 | __(关键路径上?延期影响:__) |
10
+ | 承诺方/承诺日期 | __ / __(写进双方排期,eng-planning 外部依赖表) |
11
+ | 状态 | 待承诺/已承诺/交付/延期(延期即升级:两层各上升一级对齐) |
12
+
13
+ ## 2. 决策纪要模板(口头决策=没有决策)
14
+
15
+ - 议题:__;决策人:__(会前已明确,缺席关键人则改期)
16
+ - 底稿链接:__(会前异步读,会上不念稿)
17
+ - **决策**:__;理由:__;放弃的备选与原因:__(防考古重问)
18
+ - 分歧记录:__(disagree and commit;复盘条件:出现 __ 证据时重议)
19
+ - 行动项:| 事 | Owner | 期限 |
20
+ - 重大技术决策 → 落 ADR-__(eng-architecture)
21
+
22
+ ## 3. 评审 SLA 团队约定(贴在团队文档首页)
23
+
24
+ - 首响 ≤24h(紧急走 IM 直呼+说明为何急);单 PR ≤400 行
25
+ - 作者自评先行;评论逐条回应;分歧超两轮→十分钟通话
26
+ - approve=愿意共担责任;看不懂就说看不懂
27
+
28
+ ## 4. 单点模块盘点表(季度,巴士系数治理)
29
+
30
+ | 模块 | 敢改的人数 | 风险(=1 标红) | 治理动作(结对/文档/轮岗) | 期限 | 复盘 |
31
+ |---|---|---|---|---|---|
32
+
33
+ ## 5. 会议审计表(季度,砍会专用)
34
+
35
+ | 例会 | 频率×时长×人数=月耗时 | 产出(决策/行动项数) | 砍掉会怎样 | 处置(保留/减频/改异步/砍) |
36
+ |---|---|---|---|---|
37
+
38
+ ## 6. 新人融入计划卡
39
+
40
+ - 首日:环境跑通(README 快速开始;卡点记录→文档 bug)
41
+ - 首周:架构导读 __;首个小 PR:__(低风险真任务,走全流程)
42
+ - 首月:影子值班 __ 轮;导师 __ 每周 1:1
43
+ - 新人反哺:上手卡点清单 → eng-docs 回写(新人是流程的免费审计)
@@ -0,0 +1,84 @@
1
+ ---
2
+ name: eng-complex-env
3
+ description: 复杂环境作业链(全链横切纪律:进场侦察清单→受限网络作业(限速/超时按载荷缩放/校验和送达确认)→低权限与审批制作业→老旧约束共存→长任务断点续作与幂等重跑→每个关键操作的降级 PlanB→目标环境等价验证→现场作业纪律;路由孙链:离线内网/信创适配/私有化交付)。任何技能进入受限网络、离线内网、低权限、审批制生产、老旧系统等复杂环境执行任务前先载入本链——理想环境的流程在复杂环境会失效,本链是全链的降级手册。
4
+ version: 1.0.0
5
+ ---
6
+
7
+ # 复杂环境作业链
8
+
9
+ engineering-chain 的横切子链,**全链适用**:其余每条链的流程都默认"网络通畅、权限充足、工具齐全、环境可复现"——
10
+ 复杂环境里这些假设逐条失效。本链回答:假设失效时,任务照样完成。
11
+
12
+ ## 孙链路由表
13
+
14
+ | 环境形态 | 孙链 | 一句定位 |
15
+ |---|---|---|
16
+ | 离线/隔离内网 | **env-offline** | 依赖离线化/摆渡纪律/离线安装升级/内网证书与时间/诊断包自助 |
17
+ | 信创国产化 | **env-xinchuang** | 芯片×OS×DB×中间件适配矩阵/达梦金仓深坑/ARM 多架构/测评验收 |
18
+ | 私有化交付 | **env-private-deploy** | 版本碎片治理/环境预检/配置档案/多客户升级编排/远程受限支持 |
19
+
20
+ ## 进场侦察清单(复杂环境作业第一步,别带着假设开工)
21
+
22
+ - **网络**:出网可达性(哪些域名/端口通)/代理与认证方式/**带宽实测**(scp 一个 10MB 文件测真实速率,别信标称——限速 50KB/s 与 100MB/s 是两种作业方式)/是否单向(能拉不能推);
23
+ - **权限**:root/sudo 有无;能否装软件、起容器、开端口;生产操作是否审批制(审批链多长、一次审批的范围);
24
+ - **工具**:目标机上有什么(curl?python?tar?)——**清点可用工具再定方案**,方案依赖的工具现场没有=白设计;
25
+ - **版本约束**:OS/运行时/依赖版本是否锁死(不可升级的约束进方案前提);
26
+ - **窗口**:变更窗口(只能周日凌晨?)/冻结期/现场人员可配合时段;
27
+ - **数据**:敏感级与出域规则(日志能不能带出?eng-security 分级)。
28
+ 侦察结果写成**环境档案**(eng-docs),下次进场不重摸;方案评审必附环境档案(拿理想环境方案上会=返工预定)。
29
+ **作业包**:`scripts/env-recon.sh`(read_skill_file 读取→传目标机 `sh env-recon.sh` 执行,只读零依赖;`-H host:port` 探内网连通、`-u URL` 实测带宽、`-o` 落盘)——输出即环境档案底稿,红黄灯直指受限项;
30
+ `references/env-dossier-template.md`(环境档案归档模板:网络实测/权限窗口/工具约束/保底方案表/变化记录——侦察产物落到这里,下次进场不重摸)。
31
+
32
+ ## 受限网络作业纪律
33
+
34
+ - **超时按载荷缩放**:传输/上传超时=载荷大小÷实测带宽×1.5,固定 30s 超时在慢链路上传大文件=必失败——一切带传输的操作先算这笔账;
35
+ - 传输策略:压缩先行(文本类数倍收益)/分卷(单文件失败重传代价小)/**断点续传**(rsync/分段上传,闪断不从头);
36
+ - **送达确认**:上传进度 100% ≠ 对端可用——校验和(sha256)两端比对+对端解包验证才算送达;
37
+ - 依赖获取:私服/镜像源优先(dev-toolchain);现场无网→离线包预制(env-offline);
38
+ - 慢链路下的工作编排:大传输放后台并行推进其他任务,别让人和任务一起等文件。
39
+
40
+ ## 低权限与审批制作业
41
+
42
+ - 无 root 方案库:用户态安装(语言运行时 portable 版/~/.local 前缀)/无 docker 用用户态容器或直接进程/**方案设计时就按"最低可用权限"设计**,要高权限的步骤单列(审批只审这几步);
43
+ - 审批制生产:操作打包过审(一次审批含:操作清单+验证方式+**回滚步骤同批提交**——回滚再走一遍审批=事故拖长一倍,eng-ops 变更三要素);
44
+ - 借权作业红线:用别人的账号操作=审计断链,宁可等授权(eng-security 留痕)。
45
+
46
+ ## 老旧约束共存
47
+
48
+ 不能升级的老运行时(JDK8/老 glibc/Windows Server 2012):**隔离优于硬扛**——老组件圈起来(独立进程/机器),新代码新环境,边界走接口(eng-legacy 绞杀思路);
49
+ 新工具链兼容降级:构建产物按目标环境最低版本编译(语言链交叉编译/兼容目标设置);
50
+ "现场只有 XX 版本"进环境档案与 CI 矩阵(cicd-pipeline 按真实目标环境配矩阵,不是只测最新)。
51
+
52
+ ## 长任务纪律(断点续作与幂等重跑)
53
+
54
+ 复杂环境任务常跑数小时且会被打断(网络闪断/窗口到期/审批中断)——设计成**可恢复**:
55
+ 分段落盘(每阶段产物落盘,重跑从断点起——eng-data-platform 中间表纪律的通用化)/
56
+ 幂等重跑(重复执行不产生副作用,arch-distributed 幂等四模式)/
57
+ 进度外显(做到哪一步有记录,接手的人或重连的会话能续上)/
58
+ **会话中断预案**:长操作放 screen/tmux 或后台化+日志落盘(SSH 断了任务还在,回来看日志)。
59
+
60
+ ## 降级路径设计(每个关键操作的 PlanB)
61
+
62
+ 自动化不可用→**手册化清单**(自动化脚本的每一步同时维护人工版,eng-docs Runbook 标准:新人照着能做);
63
+ 在线服务不可用→离线替代(文档离线包/依赖离线仓);
64
+ 工具缺失→原生替代(没有 jq 用 python -c,没有 rsync 用 scp+校验——**方案库按"目标机只有 POSIX 基础命令"准备保底版**);
65
+ 降级路径也要测:PlanB 没演练=没有 PlanB(eng-reliability 同则)。
66
+
67
+ ## 目标环境等价验证
68
+
69
+ **本机跑通≠现场跑通**:交付前在目标环境等价物验证(同 OS 版本容器/同架构机器/同网络策略模拟——限速用 tc 模拟,离线用断网容器);
70
+ 环境差异高发清单:字符集与 locale/时区/文件路径与大小写敏感/代理环境变量/DNS 解析差异/SELinux 与防火墙;
71
+ 等价环境建不出来=风险声明+现场预留调试时间(排期里写明,eng-planning)。
72
+
73
+ ## 现场作业纪律
74
+
75
+ 改前快照(配置/数据/状态,能回去的底线);操作留痕加严(命令与输出全程记录,复杂环境的"为什么坏了"全靠它);
76
+ **撤退条件预定义**:干到什么情况停手撤退(窗口剩 30 分钟未过半→回滚,现场不纠结,eng-release 回滚量化同源);
77
+ 联络线:现场/远程支持/客户三方联络人与升级路径(eng-ops 作战通道的现场版);
78
+ 一次只改一个变量在复杂环境加倍适用(现场变量本来就多,eng-performance)。
79
+
80
+ ## 使用纪律
81
+
82
+ 进复杂环境的任务先过侦察清单,方案带环境档案评审;带传输的操作超时按载荷算;
83
+ 长任务必可断点续作;关键操作必有 PlanB 且演练过;
84
+ 每次现场翻车回写:环境差异清单+保底方案库——**复杂环境的复利=环境档案与保底方案库,让下一次进场从 60 分起步**。
@@ -0,0 +1,52 @@
1
+ # 环境档案模板(eng-complex-env 落笔件:env-recon.sh 产物的归档格式,下次进场不重摸)
2
+
3
+ > 一环境一档;方案评审必附;每次进场后更新"变化记录"。存放:项目 `环境档案/<客户或环境名>.md`
4
+ > (私有化场景并入客户档案 delivery-templates,信创组合并记 adaptation-matrix 格号)。
5
+
6
+ ## 1. 概要
7
+
8
+ | 项 | 内容 |
9
+ |---|---|
10
+ | 环境名/用途 | __(生产/预发/客户现场) |
11
+ | 隔离形态 | □在线 □审批出网 □单向闸 □全离线(env-offline 作业方式) |
12
+ | 侦察报告 | env-recon 输出:__(日期 __;红黄灯摘要:__) |
13
+ | 档案 Owner/最后核实 | __ / __(进场前若超 90 天,先重跑 env-recon) |
14
+
15
+ ## 2. 网络(决定一切传输方案)
16
+
17
+ - 出网:□无 □白名单(域名:__) □代理(地址/认证:__)
18
+ - **带宽实测**:__ KB/s(测法:__;日期:__)——传输超时一律按此换算(capacity-calc transfer)
19
+ - 内网关键连通:__:__ 通/不通(db/redis/registry/…)
20
+ - DNS:__;特殊(ndots/内网域):__
21
+
22
+ ## 3. 权限与窗口
23
+
24
+ - 账号形态:□root □sudo(免密?) □普通用户;审批链:__(一次审批范围:__;时长:__)
25
+ - 变更窗口:__;冻结期:__;现场可配合时段:__
26
+ - 堡垒机/跳板:__(留痕方式:__)
27
+
28
+ ## 4. 工具与版本约束
29
+
30
+ - 目标机已有:__(env-recon 工具清单粘贴)
31
+ - 缺失且方案依赖:__ → 保底替代:__(PlanB 方案库)
32
+ - 锁死版本:OS __ /运行时 __ /不可升级项:__(方案前提)
33
+
34
+ ## 5. 数据与合规
35
+
36
+ - 数据敏感级:__;日志出域规则:__(脱敏流程:__)
37
+ - 等保等级与到期:__(sec-compliance);行业约束:__
38
+
39
+ ## 6. 保底方案与断点设计(本环境专属 PlanB)
40
+
41
+ | 关键操作 | 首选方案 | PlanB(手册化/离线替代) | 演练过? |
42
+ |---|---|---|---|
43
+ | 传大文件 | | 分卷+校验(bundle-manifest) | |
44
+ | 装依赖 | | 离线仓/预制包 | |
45
+ | 远程排障 | | 诊断包自助采集 | |
46
+
47
+ - 长任务断点方案:__(screen/tmux/nohup 可用性:__;分段落盘目录:__)
48
+
49
+ ## 7. 变化记录(追加式,每次进场后写)
50
+
51
+ | 日期 | 变化/新坑 | 影响 | 回写(保底库/侦察脚本/本档案) |
52
+ |---|---|---|---|