@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,74 @@
1
+ ---
2
+ name: eng-quality
3
+ description: 质量测试链(测试金字塔与策略→用例设计六法判据→分层实施(单元/集成/契约/E2E)→回归圈定→测试数据管理→缺陷分级与闭环→准入准出门禁→逃逸分析)。工程链质量环节深耕:定测试方案、写用例、建质量门禁、缺陷失控或漏测复盘时载入。单测写法由 write-tests、评审由 code-review 承接。
4
+ version: 1.0.0
5
+ ---
6
+
7
+ # 质量测试链
8
+
9
+ engineering-chain 的质量环节子链。质量不是测出来的,是设计+防线+反馈闭环共同的产物;
10
+ 本链管防线设计与缺陷闭环。用例的唯一来源=验收标准(eng-requirements 同源纪律)。
11
+
12
+ ## 测试策略:金字塔与配比
13
+
14
+ - 参考配比:单元 70% / 集成 20% / E2E 10%(数量级示意,不是 KPI);
15
+ - **倒金字塔(E2E 一堆、单测没有)=维护灾难信号**:跑得慢、坏得勤、坏了不知道哪坏;
16
+ - 每层回答不同问题:单元=逻辑对不对;集成=拼起来通不通;契约=你我约定破没破;E2E=用户旅程走不走得通;
17
+ - 测试象限补盲:探索性测试(不可脚本化的"感觉不对")与非功能(性能→eng-performance,安全→eng-security)排进计划,不是有空才做。
18
+
19
+ ## 用例设计六法(判据+示例)
20
+
21
+ | 方法 | 启用信号 | 要点 |
22
+ |---|---|---|
23
+ | 等价类 | 输入有范围/分类 | 有效/无效类各取代表,别全排列 |
24
+ | 边界值 | 有 min/max/长度限制 | 三点法:边界-1、边界、边界+1;off-by-one 高发区 |
25
+ | 判定表 | 多条件组合决定行为 | 条件>3 个必用,防漏组合;先删不可能组合 |
26
+ | 状态迁移 | 有状态机(订单/审批/任务) | 每条合法迁移+**每条非法迁移**(已取消订单还能支付吗) |
27
+ | 正交法 | 参数组合爆炸(兼容矩阵) | 正交表压缩组合数,保证两两覆盖 |
28
+ | 错误推测 | 有历史缺陷库 | 空值/超长/重复提交/并发双击/权限窜号/时区,经验清单化 |
29
+
30
+ 每故事用例必含三类:主路径、边界、异常路径——与验收标准结构一一对应。
31
+
32
+ ## 分层实施要点
33
+
34
+ - **单元**(write-tests 承接):FIRST 原则(快/独立/可重复/自验证/及时);mock 边界纪律——只 mock 我不拥有的(外部服务/时钟/随机),自己的领域逻辑不 mock(mock 自己=测了个寂寞)。
35
+ - **集成**:真依赖优先(容器化数据库,如 testcontainers 思路),内存库与真库的方言差异会漏 bug;用例间数据隔离(事务回滚或独立数据集)。
36
+ - **契约**:消费者驱动;契约文件与 api-design 的接口文档同源;提供方 CI 跑契约验证,破坏性变更在合入时被拦而不是联调时被骂。
37
+ - **E2E**:只保关键用户旅程 **≤15 条**(多了必脆);选择器用语义属性(data-testid)不用样式类名;失败自动留证据(截图/日志/trace)。
38
+ - **自动化工程孙链**:接口自动化框架与治理(断言四层/造数/失败三分类)载 **qa-api-automation**;UI 自动化稳定性工程(等待纪律/flaky 治理)载 **qa-ui-automation**;移动端(云真机矩阵/弹窗 watcher/兼容云测)载 **qa-mobile-automation**。
39
+
40
+ ## 回归策略
41
+
42
+ - 变更影响圈定位:调用链(谁调我/我调谁)+数据链(读写哪些表)+配置面,圈内用例必跑;
43
+ - 全量回归判据:发版前、架构/框架升级后、核心模块重构后;
44
+ - 回归用例集分级:P0 冒烟(10 分钟内,每次提测跑)/P1 核心(每日)/P2 全量(发版)。
45
+
46
+ ## 测试数据管理
47
+
48
+ 构造器/工厂模式造数(测试自带数据,不依赖环境现存数据);敏感数据一律脱敏样本(eng-security 分级);
49
+ **用例间不共享可变数据**(共享=偶发失败之源);时间相关用固定时钟注入,不用 sleep 和 now()。
50
+
51
+ ## 缺陷管理
52
+
53
+ - 严重度定义表:**S1** 主流程不可用/数据损坏/资损(停下所有事)、**S2** 核心功能错但有绕行、**S3** 次要功能/体验、**S4** 建议;严重度看影响,优先级看处理顺序,两者分开标。
54
+ - 缺陷报告三要素:最小复现步骤 / 期望 vs 实际 / 环境与账号——缺一打回;
55
+ - **先复现后修复**:复现不了的缺陷挂起并加观测(eng-observability),不许"盲修一版试试";
56
+ - 修复必附回归用例(这条缺陷从此有人站岗);
57
+ - 缺陷逃逸分析(线上缺陷必做):漏在哪一层(用例没设计到/设计到没执行/执行了没发现)→ 对应补强,归因到环节不归因到人。
58
+
59
+ ## 准入准出门禁
60
+
61
+ - **提测准入**:冒烟自测通过(录屏或勾单)/部署与配置说明/变更影响范围声明/自测数据可复用——不满足退回,**带病提测浪费的是两个人的时间**;
62
+ - **发布准出**:S1S2 清零、S3 有绕行方案并知会业务、回归 P0P1 全绿、性能基线无劣化(eng-performance)——准出结论写进发布单(eng-release)。
63
+
64
+ ## 质量度量(看趋势不看单点)
65
+
66
+ 缺陷逃逸率(线上缺陷/总缺陷)、回归通过率、用例维护成本(修用例时间/写用例时间)、平均修复时长。
67
+ **反对唯覆盖率**:覆盖率是下限告警(过低说明没写),不是目标(为覆盖率写的断言空转用例更糟)。
68
+
69
+ **作业包**:`references/test-plan-templates.md`(测试方案一页纸/准入准出单/缺陷报告模板/逃逸分析卡)。
70
+
71
+ ## 使用纪律
72
+
73
+ 用例与验收标准同源,需求变更用例同步变;每个线上缺陷回写两件事:回归用例+逃逸分析补防线;
74
+ 质量门禁只加不减(要减必须走评审并留 ADR)。**测试的产出不是"发现了多少 bug",是"守住了哪些不再犯"。**
@@ -0,0 +1,46 @@
1
+ # 测试作业模板包(eng-quality 落笔件)
2
+
3
+ ## 1. 测试方案一页纸
4
+
5
+ | 项 | 内容 |
6
+ |---|---|
7
+ | 范围与不测 | 测 __;明确不测 __(理由) |
8
+ | 分层策略 | 单元 __%/集成 __/契约 __/E2E __ 条(≤15) |
9
+ | 用例来源 | 验收标准(同源纪律,REQ-__);六法适用: □等价类 □边界 □判定表 □状态迁移 □正交 □错误推测 |
10
+ | 数据与环境 | 造数方式 __;环境 __;敏感数据已脱敏 |
11
+ | 非功能 | 性能→eng-performance(基线 __);安全用例→eng-security;兼容矩阵 __ |
12
+ | 准入/准出 | 见下两单 |
13
+ | 风险 | 排期/环境/依赖 TOP3:__ |
14
+
15
+ ## 2. 提测准入单
16
+
17
+ - [ ] 冒烟自测通过(录屏或勾单) - [ ] 部署与配置说明
18
+ - [ ] 变更影响范围声明(调用链+数据链圈定) - [ ] 自测数据可复用
19
+ > 不满足退回——带病提测浪费两个人的时间。
20
+
21
+ ## 3. 发布准出单
22
+
23
+ - [ ] S1/S2 清零;S3 有绕行方案并知会业务
24
+ - [ ] 回归 P0/P1 全绿;flaky 重试通过的已标记复查
25
+ - [ ] 性能基线无劣化(perf-baseline compare 退出码 0)
26
+ - [ ] 遗留缺陷清单已同步(编号/绕行/计划)
27
+
28
+ ## 4. 缺陷报告模板(三要素缺一打回)
29
+
30
+ ```
31
+ 标题: <模块>-<一句话现象>
32
+ 严重度: S1|S2|S3|S4 优先级: P_(分开标)
33
+ 环境: <版本/环境/账号>
34
+ 复现步骤: 1.. 2.. 3..(最小步骤)
35
+ 期望: __
36
+ 实际: __(截图/日志/traceId)
37
+ ```
38
+
39
+ ## 5. 缺陷逃逸分析卡(线上缺陷必填)
40
+
41
+ | 问 | 答 |
42
+ |---|---|
43
+ | 漏在哪层 | □用例没设计到 □设计到没执行 □执行了没发现 |
44
+ | 六法哪法本可覆盖 | __(补用例 TC-__) |
45
+ | 防线补位 | 回归用例已加:__;规则/门禁已加:__ |
46
+ > 归因到环节不归因到人;每个线上缺陷回写两件事(用例+防线)。
@@ -0,0 +1,78 @@
1
+ ---
2
+ name: eng-release
3
+ description: 发布链(分支与版本策略判据→CI 流水线三级门禁→发布模式判据表(滚动/蓝绿/金丝雀/灰度)→DB 变更协同 expand-contract→发布清单→回滚预案量化→特性开关治理→紧急通道)。工程链发布环节深耕:定发布流程、上线方案评审、发布事故后加固、开关泛滥治理时载入。逐项清单由 release-checklist、提交规范由 commit-and-pr 承接。
4
+ version: 1.0.0
5
+ ---
6
+
7
+ # 发布链
8
+
9
+ engineering-chain 的发布环节子链。发布的目标不是"发出去",是**可预期地发出去+可秒回地退回来**。
10
+
11
+ ## 分支与版本策略判据
12
+
13
+ | 策略 | 启用信号 | 代价 |
14
+ |---|---|---|
15
+ | Trunk-Based | CI 强、开关成熟、日发布 | 要求纪律高:小步提交+开关隔离未完特性 |
16
+ | GitHub Flow | 单版本在线服务(默认推荐) | 分支寿命须短(<3 天),长寿分支=合并地狱 |
17
+ | GitFlow | 多版本并行维护(交付型/客户端) | 流程重;在线服务用它=自找麻烦 |
18
+
19
+ 版本号:对外契约用 SemVer(破坏性变更=major,别用 minor 偷渡);内部服务日期版本(2026.07.1)亦可;
20
+ CHANGELOG 面向使用者写"影响"(升级要做什么),不是 git log 复制。
21
+
22
+ ## CI 流水线三级门禁
23
+
24
+ - **L1 提交级(<10min)**:编译+单测+lint+敏感信息扫描——超 10 分钟没人等,治理见 dev-toolchain 构建缓存;
25
+ - **L2 合入级**:集成测试+契约验证(eng-quality)+SCA 依赖扫描(eng-security);
26
+ - **L3 发布级**:E2E 关键旅程+性能基线对照(eng-performance)+镜像扫描与制品签名。
27
+ 红灯纪律:主干红灯 15 分钟内认领,红灯期间**只允许修复性合入**;"先合了再说"=对全团队加税。
28
+ 制品纪律:一次构建多处部署(测试与生产同一制品,只换配置),**禁止各环境各自构建**。
29
+ 流水线工程实现(模板库/缓存工程/密钥安全/制品管理/flaky 治理)载 **cicd-pipeline**;
30
+ 私有化/多客户交付(版本碎片治理/环境预检/升级编排)载 **env-private-deploy**。
31
+
32
+ ## 发布模式判据表
33
+
34
+ | 模式 | 适用 | 回滚速度 | 代价 |
35
+ |---|---|---|---|
36
+ | 滚动 | 默认;无状态服务 | 分钟级(反向滚动) | 新旧版本短暂共存,兼容要求见下 |
37
+ | 蓝绿 | 回切要求秒级;有钱 | 秒级切流 | 双倍资源;DB 变更难以蓝绿 |
38
+ | 金丝雀 | 高风险变更 | 秒级摘除 | 1%→5%→25%→100%,**每级观察指标与时长预先固化**,不许"看着没事就放" |
39
+ | 按人群灰度 | 业务特征分流(新功能试点) | 开关级 | 需要分流基建;实验设计衔接 ab-testing |
40
+
41
+ 新旧共存兼容纪律:滚动/金丝雀期间新旧版本同时服务,**接口与消息格式必须兼容上一版**(api-design 只加不改不删)。
42
+
43
+ ## DB 变更协同(发布事故重灾区)
44
+
45
+ expand-contract 五步:加新结构(兼容旧代码)→双写→回填校验→切读→下线旧结构(下一个版本才删);
46
+ **代码可回滚的前提是 schema 兼容上一版代码**——"发布+删列"同版本=回滚死路;
47
+ 大表 DDL 与数据回填限流错峰;细则见 **eng-database** 变更迁移节。
48
+
49
+ ## 发布前清单(release-checklist 承接逐项执行)
50
+
51
+ 变更清单与影响面声明 / 准出结论(eng-quality:S1S2 清零) / **回滚方案且演练过**(没演练过的回滚方案=祈祷文) /
52
+ 监控与告警就位(新功能的指标提前上,eng-observability 三件套准入) / 依赖方与客服知会 /
53
+ 发布窗口与值守表(避开周五下午与大促前) / 数据变更有备份快照。
54
+
55
+ ## 回滚纪律
56
+
57
+ - **回滚条件预先量化写死**:如"错误率>1% 持续 5 分钟,或 P99>基线 2 倍持续 10 分钟,立即回滚"——现场不辩论、不等"再看看";
58
+ - **先回滚后排查**(恢复优先,eng-ops 同则);回滚也是变更,同样走观察期;
59
+ - 不可回滚变更(数据迁移/外发通知/资金操作)单独评审,必须有前向修复预案与暂停点;
60
+ - 每次真实回滚后复盘:回滚耗时实测值回填(声称 5 分钟实际 40 分钟=预案造假)。
61
+
62
+ ## 特性开关治理(开关是债,不是免费午餐)
63
+
64
+ - 三类分治:发布开关(隔离未完特性,**合入后 ≤2 周清理**)、运营开关(降级/限流,长期,纳入演练)、权限开关(套餐/灰度人群,长期,有 Owner);
65
+ - 开关登记表:名称/类型/Owner/到期日/默认值;**僵尸开关季度清扫**(开关组合爆炸=测不过来的状态空间);
66
+ - 开关默认值=安全侧(开关系统失联时业务应落到哪边,想清楚再上线)。
67
+
68
+ ## 紧急发布通道
69
+
70
+ 精简但不为零:双人复核 + 冒烟用例 + 回滚预案三件必留;跳过的环节记欠账,24h 内补(补测试/补文档);
71
+ 紧急通道使用频率月度复盘——**次次走紧急=流程设计有病,不是业务太急**。
72
+
73
+ **作业包**:`references/release-plan-template.md`(发布单:模式与观察项/回滚条件量化写死/不可回滚项声明——观察期结束才关单)。
74
+
75
+ ## 使用纪律
76
+
77
+ 上线≠结束:观察期(按变更风险 30min–24h)盯板完成才关发布单(衔接 itsm-ops 变更单与 eng-observability 发布事件线);
78
+ 每次发布事故回写:清单加项或门禁加固;发布频率与失败率、恢复时长一起看(只求稳不发布=另一种失败)。
@@ -0,0 +1,36 @@
1
+ # 发布单模板(eng-release 落笔件:一次发布一单,观察期结束才关单)
2
+
3
+ ## 基本信息
4
+
5
+ | 项 | 内容 |
6
+ |---|---|
7
+ | 发布单号/版本 | REL-__ / v__ |
8
+ | 内容与影响面 | 特性:__(REQ-__);影响模块:__;用户可感知变化:__ |
9
+ | 制品 | 镜像/包 digest:__(一次构建多处部署——与测试同制品) |
10
+ | 窗口与值守 | __月__日 __:__;值守:__;避开:□周五下午 □大促/月结前 |
11
+ | 发布模式 | □滚动 □蓝绿 □金丝雀(1%→5%→25%→100%,每级观察 __ 分钟) □按人群 |
12
+
13
+ ## 前置检查(release-checklist 逐项,此处摘要)
14
+
15
+ - [ ] 准出结论(test-plan 准出单) - [ ] DB 变更 expand-contract:schema 兼容上一版代码
16
+ - [ ] 新功能监控与告警提前上(可观测三件套) - [ ] 依赖方/客服已知会
17
+ - [ ] 特性开关:__(类型/默认值/清理日期) - [ ] 韧性评审过(重大特性,resilience-review)
18
+
19
+ ## 回滚预案(量化写死,现场不辩论)
20
+
21
+ | 项 | 内容 |
22
+ |---|---|
23
+ | 回滚触发条件 | 错误率>__% 持续 __ 分钟,或 P99>基线 __ 倍持续 __ 分钟,或 __ |
24
+ | 回滚方式与耗时 | __(演练实测 __ 分钟——没演练过的预案=祈祷文) |
25
+ | 不可回滚项 | □无 □有:__(前向修复预案:__;暂停点:__) |
26
+ | 数据备份 | 快照:__ |
27
+
28
+ ## 观察期(30min–24h 按风险)
29
+
30
+ - 观察项: 错误率 __ / P99 __ / 业务指标 __ / 新功能指标 __ / (AI 特性)质量指标 __
31
+ - 观察结论: __;发布事件已打点(eng-observability 事件线)
32
+ - [ ] 观察期结束,关单(itsm-ops 变更单同步)
33
+
34
+ ## 复盘回写(如有异常)
35
+
36
+ 紧急通道使用? □否 □是(欠账 24h 内补:__);清单需加项:__
@@ -0,0 +1,72 @@
1
+ ---
2
+ name: eng-reliability
3
+ description: 可靠性工程链 SRE(容错设计模式判据表(超时/重试/熔断/舱壁/降级/限流/背压)→强弱依赖治理与年检→混沌工程前提与成熟度阶梯→演练体系记分→上线韧性评审 what-if 清单→错误预算驱动)。工程链可靠性深耕:系统老出连锁故障、容错方案评审、混沌演练立项、大促稳定性保障时载入。事件响应流程走 eng-ops,SLO 口径走 eng-observability。
4
+ version: 1.0.0
5
+ ---
6
+
7
+ # 可靠性工程链
8
+
9
+ engineering-chain 的可靠性子链。分工:eng-ops 管**事后**(事件响应与复盘),本链管**事前**(把故障挡在设计里、把恐慌消灭在演练里);
10
+ 可靠性目标从 SLO 来(eng-observability),多余的钱花在这条链上最值。
11
+
12
+ ## 容错设计模式判据表(评审用,每个外部调用过一遍)
13
+
14
+ | 模式 | 何时必配 | 参数要点 | 常见翻车 |
15
+ |---|---|---|---|
16
+ | 超时 | **每个外部调用,无例外** | 层层收紧(入口>内部>叶子);按下游 P99×1.5 定,不拍脑袋 | 不设=线程占满连锁死;全链同值=同时炸 |
17
+ | 重试 | 幂等操作+瞬时故障 | 指数退避+抖动;**重试预算**(总量≤10% 流量);只重试可恢复错误(超时/503,不重 4xx) | 非幂等重试=重复扣款;层层重试=流量放大爆炸(3 层各 3 次=27 倍) |
18
+ | 熔断 | 依赖会大面积慢/挂 | 错误率阈值+最小请求数;半开探测恢复 | 阈值太灵敏=抖断;熔断后无降级=换个姿势挂 |
19
+ | 舱壁 | 多依赖共享资源 | 按依赖隔离线程池/连接池 | 一个慢依赖吃光公共池=全员陪葬 |
20
+ | 降级 | 非核心功能/柔性体验 | 预案分级(关推荐/展示缓存/只读模式);**开关可一键触发**(eng-release 运营开关) | 降级路径没测过,一开更炸 |
21
+ | 限流 | 入口与稀缺资源 | 令牌桶(容突发)vs 漏桶(恒速)判据;按调用方配额 | 限流值没压测依据;被限方无友好提示 |
22
+ | 背压 | 生产快于消费 | 有界队列+拒绝策略;消费端拉模式 | 无界队列=延迟 OOM 双雪崩 |
23
+
24
+ 组合纪律:超时是地基,重试踩着超时,熔断护着重试——**只配重试不配超时与预算=自制 DDoS**。
25
+
26
+ ## 强弱依赖治理
27
+
28
+ - 标注:每个依赖标强(挂了核心不可用)/弱(挂了降级可用);**标注要用故障注入验证**(嘴上说弱,一断全崩的比比皆是);
29
+ - 目标:强依赖只留必需(认证/核心数据),其余全部弱化(缓存兜底/默认值/异步补偿);
30
+ - 弱依赖三件套:超时短、熔断快、降级路径已演练;
31
+ - **依赖年检**:新增依赖要评审(引入即负债),存量依赖每年验一次强弱标注与预案有效性;
32
+ - 环依赖与隐藏依赖(共享 DB/共享缓存/同一个配置中心)排查进架构健康检查(eng-architecture)。
33
+
34
+ ## 混沌工程(科学实验,不是搞破坏)
35
+
36
+ - **三前提缺一不做**:稳态假设可量化(SLI 正常带,eng-observability)/爆炸半径可控(先单实例、影子流量、非峰时段)/一键停止(实验开关+自动中止条件:SLI 破线即停);
37
+ - 成熟度阶梯:测试环境手动注入 → 预发常态化 → 生产只读路径小半径 → 生产例行(游戏日)——**跳级=事故预定**;
38
+ - 实验设计模板:假设(杀掉一个 Pod,可用性不受影响)/注入方式(实例宕机/网络延迟丢包/依赖超时/资源耗尽/时钟漂移)/观察指标/中止条件/结论回写;
39
+ - 实验优先级:从复盘中来(上次事故暴露的薄弱面先验)、从强弱依赖标注来(验"弱"是不是真弱);
40
+ - 产出纪律:每次实验要么证实(信心+1)要么证伪(修复项入台账)——没有结论的实验=白折腾。
41
+
42
+ ## 演练体系(肌肉记忆工程)
43
+
44
+ | 演练 | 频率 | 记分点 |
45
+ |---|---|---|
46
+ | 预案演练 | 季度 | 每个降级/切流预案真开一次,失效预案当场修(没演练过的预案=祈祷文,eng-release 同则) |
47
+ | 故障演练(游戏日) | 半年 | 注入未预告的故障,记 发现时长/定位时长/恢复时长,对照 SLA |
48
+ | 多活/灾备切流 | 季度~半年 | 真切流量(哪怕 5%),RTO/RPO 实测回填(eng-infra 灾备等级) |
49
+ | 值班新人带练 | 每轮换 | 模拟 P2 走全流程(eng-ops oncall 上岗前置) |
50
+
51
+ 记分公开但不排名(eng-efficiency 度量纪律);演练暴露的问题与真事故同权重进 action 闭环。
52
+
53
+ ## 上线韧性评审(what-if 清单,重大特性发布前)
54
+
55
+ 逐条问并要答案(答不出=预案缺口):最大依赖挂 10 分钟,用户看到什么?/流量突增 5 倍,先垮哪层,限流保谁弃谁?/
56
+ 数据库主库切换的 30 秒,写请求怎么办?/缓存全失效(重启/雪崩),DB 扛得住穿透吗?/
57
+ 这个新特性能被一键关掉吗?/回滚要多久,谁有权限执行?——
58
+ 答案写进发布单(eng-release),高风险缺口阻断上线或带条件放行(条件挂 Owner)。
59
+
60
+ ## 错误预算驱动(可靠性的经济学)
61
+
62
+ 预算充裕→敢发布敢实验(混沌实验也花预算,花得值);预算紧张→收紧变更、优先还稳定性债;
63
+ 预算耗尽→冻结特性只发修复(eng-observability 联动机制的执行面);
64
+ **可靠性不追求 100%**:每提升一个 9,成本量级上涨——目标从业务后果倒推(eng-architecture 非功能量化),超出 SLO 的可靠性投入是浪费。
65
+
66
+ **作业包**:`references/resilience-review.md`(what-if 六问评审单/外部调用容错配置表/强弱依赖年检表/混沌实验卡/演练记分表)。
67
+
68
+ ## 使用纪律
69
+
70
+ 新外部调用过容错判据表(评审必查);预案没演练不算数;混沌实验必有结论回写;
71
+ 每次连锁故障复盘补的不只是那个点,是那**类**模式(判据表增补)——
72
+ **可靠性的复利=被验证过的预案数量×团队肌肉记忆**。
@@ -0,0 +1,43 @@
1
+ # 韧性评审与演练记录(eng-reliability 落笔件)
2
+
3
+ ## 1. 上线韧性评审 what-if 单(重大特性发布前,答不出=预案缺口)
4
+
5
+ | 问题 | 答案(写具体,"没问题"不是答案) |
6
+ |---|---|
7
+ | 最大依赖 __ 挂 10 分钟,用户看到什么? | |
8
+ | 流量突增 5 倍,先垮哪层?限流保谁弃谁? | |
9
+ | DB 主库切换的 30 秒,写请求怎么办? | |
10
+ | 缓存全失效(重启/雪崩),DB 扛得住穿透吗? | 回源限流值:__ |
11
+ | 这个特性能被一键关掉吗? | 开关:__ |
12
+ | 回滚要多久?谁有权限执行? | 实测 __ 分钟 / __ |
13
+
14
+ 结论: □通过 □带条件放行(缺口+Owner+期限:__) □阻断
15
+
16
+ ## 2. 外部调用容错配置表(每个新外部调用登记一行)
17
+
18
+ | 调用 | 超时(按下游P99×1.5) | 重试(幂等?退避?预算) | 熔断 | 降级路径 | 舱壁隔离 |
19
+ |---|---|---|---|---|---|
20
+ | 例:调支付网关 | 2s | 是/指数/≤10% | 错误率50%断 | 排队页 | 独立线程池 |
21
+
22
+ > 只配重试不配超时与预算=自制 DDoS;层层重试=流量放大(3 层×3 次=27 倍)。
23
+
24
+ ## 3. 强弱依赖标注表(年检,嘴上说弱要注入验证)
25
+
26
+ | 依赖 | 标注(强/弱) | 验证方式(故障注入日期) | 弱依赖三件套(短超时/快熔断/已演练降级) |
27
+ |---|---|---|---|
28
+
29
+ ## 4. 混沌实验记录卡(三前提缺一不做)
30
+
31
+ - 稳态假设(可量化):__(SLI 正常带)
32
+ - 爆炸半径:□测试环境 □预发 □生产单实例/影子流量;非峰时段 __
33
+ - 一键停止:实验开关 __;自动中止条件:SLI 破线 __
34
+ - 注入方式:□实例宕机 □网络延迟/丢包 □依赖超时 □资源耗尽 □时钟漂移
35
+ - 结果: □证实(信心+1) □证伪→修复项 __ 入台账(没有结论=白折腾)
36
+
37
+ ## 5. 演练记分表(季度)
38
+
39
+ | 演练 | 日期 | 发现时长 | 定位时长 | 恢复时长 | 失效预案(当场修) | 下次 |
40
+ |---|---|---|---|---|---|---|
41
+ | 预案/游戏日/切流/新人带练 | | | | | | |
42
+
43
+ > 记分公开不排名;演练暴露的问题与真事故同权重闭环。
@@ -0,0 +1,86 @@
1
+ ---
2
+ name: eng-requirements
3
+ description: 需求分析子链(需求采集分级→澄清与歧义消除→Epic/Story 拆解→Gherkin 验收标准→DoR 准入→评审基线→变更管理→RTM 追踪矩阵)。工程链需求环节深耕:接到模糊诉求、写 PRD/用户故事、需求评审、需求变更失控时载入。PRD 结构与原型细则由 product-design 承接。
4
+ version: 1.0.0
5
+ ---
6
+
7
+ # 需求分析子链
8
+
9
+ engineering-chain 的需求环节子链。上游是业务诉求/用户反馈/线上问题,下游交付给
10
+ **eng-architecture**(架构约束输入)与 **eng-planning**(排期输入)。
11
+ 产物清单:需求列表(分级)、用户故事+验收标准、需求基线、RTM 追踪矩阵。
12
+
13
+ ## 需求采集与分级
14
+
15
+ | 来源 | 特点 | 处理纪律 |
16
+ |---|---|---|
17
+ | 战略/管理层 | 目标态,粒度粗 | 先拆解为可验证的业务指标再进流程 |
18
+ | 业务/运营 | 常以"解决方案"形式出现 | 剥离方案还原问题(见反模式表) |
19
+ | 用户反馈/客服 | 碎片化,幸存者偏差 | 聚类+频次统计,单条不立项 |
20
+ | 线上问题 | 紧急,易插队 | 走 itsm-ops 事件流,修复型需求单列 |
21
+ | 技术驱动 | 还债/升级/合规 | 必须翻译成业务语言(风险/成本数字) |
22
+
23
+ 优先级双轴定级:**价值用 Kano**(基本型不做=投诉;期望型线性;兴奋型差异化),
24
+ **排序用 MoSCoW**(Must/Should/Could/Won't——Won't 要明说并记录,防止反复重提)。
25
+
26
+ ## 澄清工作流
27
+
28
+ 1. **5W2H 过一遍**:Who(给谁用/多少人)、What(做什么)、Why(不做的代价)、When(时间约束及其来源)、Where(什么场景终端)、How(现在怎么干的)、How much(量级:数据量/并发/频次)。
29
+ 2. **歧义词黑名单**——出现必量化:"支持大量"→给数字;"快"→给 P99 毫秒;"稳定"→给可用性目标;"优化"→给基线与目标值;"尽快"→给日期与依据;"兼容"→给版本矩阵。
30
+ 3. **边界三问**:不做什么(明确排除项)、异常怎么办(失败/超时/权限不足)、存量数据怎么办(迁移/兼容/双轨)。
31
+ 4. 访谈提纲:先问现状流程(让对方走一遍现在的操作),再问痛点频次与代价,最后才谈方案——**先听问题,后谈方案**。
32
+
33
+ ## 拆解:Epic → Story → Task
34
+
35
+ - 层级纪律:Epic(业务目标,周~月级) → Story(用户可感知的价值切片,≤3 人天) → Task(技术活动,进 eng-planning WBS)。
36
+ - 故事模板:作为〈角色〉,我要〈能力〉,以便〈价值〉——"以便"写不出来的故事先回澄清环节。
37
+ - **INVEST 检查**:独立(可单独上线)/可协商/有价值(用户可感知)/可估算/足够小/可测试。不满足"小"的拆分技法:按流程步骤切、按数据类型切、按 CRUD 切、按角色切、先走通主干再增强(happy path 先行)。
38
+ - 技术任务(重构/升级)也进列表但标记为使能故事,挂在受益的业务故事之下。
39
+
40
+ ## 验收标准(本子链核心产出)
41
+
42
+ - 格式:Gherkin 三段式 `Given 前置 / When 动作 / Then 可观察结果`,每故事 3–7 条;超过 7 条=故事太大,回拆解。
43
+ - **可判定性检验**:一个没参与讨论的人,只看标准+操作系统,能独立判 PASS/FAIL,不需要问任何人。判不了=写得不合格。
44
+ - 必含三类:主路径、边界(空/超长/并发/重复提交)、异常路径(失败提示与恢复)。
45
+ - 非功能验收进故事:性能(P99 目标)、兼容矩阵、权限矩阵、数据口径——**非功能不写进验收标准=默认不验收=上线后扯皮**。
46
+ - 同源纪律:验收标准是唯一事实源,测试用例(eng-quality)与上线验收单(eng-release)都从它派生,不许三处三个说法。
47
+
48
+ ## DoR 准入清单(进迭代前逐项勾)
49
+
50
+ 验收标准可判定 / 依赖已识别(外部接口、其他团队、数据就绪) / UI 稿或交互说明到位(涉界面,eng-ux) /
51
+ 埋点需求已附(eng-observability) / 数据口径已核(涉指标,data-governance) / 估算完成(eng-planning) /
52
+ 提出人可在迭代内答疑。**不满足 DoR 的故事不进迭代,进了也做不完。**
53
+
54
+ ## 需求评审与基线
55
+
56
+ - 评审会时间盒 ≤1 小时,超时说明批量太大;角色到齐:提出人、开发、测试、UX(涉界面)。
57
+ - 评审逐条过验收标准而不是念 PRD;测试视角提"怎么才算错"往往最能暴露漏洞。
58
+ - 评审通过即打**基线**(版本号+日期):之后一切改动走变更流程,不许"顺口就改了"。
59
+
60
+ ## 变更管理
61
+
62
+ 变更三问(问完再决定):影响范围(哪些已完成工作作废)、工期影响(eng-planning 重估)、不改的代价(能否下迭代)。
63
+ 紧急通道存在但留痕:口头需求 24h 内补票,否则不认。变更率>30% 的迭代要复盘采集质量而不是加班消化。
64
+
65
+ ## RTM 需求追踪矩阵
66
+
67
+ 一张表五向勾稽:需求 ID ↔ 设计文档/ADR ↔ 代码 PR ↔ 测试用例 ↔ 上线验证结果。
68
+ 上线前扫一遍:有需求无用例=漏测;有代码无需求=镀金或私活,评审必问。
69
+
70
+ ## 反模式速查
71
+
72
+ | 反模式 | 症状 | 处置 |
73
+ |---|---|---|
74
+ | 方案伪装成需求 | "加个缓存""建个中间表" | 追问背后问题:慢在哪?多慢?谁疼? |
75
+ | 需求镀金 | 无人要的"顺手做了" | RTM 反查,砍掉或补立项 |
76
+ | 干系人缺席 | 上线后冒出"当初没问我" | 采集期画干系人地图,签收基线 |
77
+ | 伪需求 | 提出人自己也说不清 Why | 回到 5W2H,给不出 Why 的进 Won't |
78
+ | 无限澄清 | 追求完美需求不开工 | 时间盒:核心路径清楚即可开工,边界迭代补 |
79
+
80
+ **作业包**:`references/story-templates.md`(用户故事卡/Gherkin 骨架/DoR 清单/变更单/RTM 表头,复制即用)。
81
+
82
+ ## 使用纪律
83
+
84
+ 验收标准三处同源(用例/上线验收单从它派生);一切变更过基线;
85
+ 复盘回写——需求偏差(理解错/漏边界/变更多)按模式归档,下次采集先查偏差模式库。
86
+ **需求环节省下的每一小时,开发测试要还十小时。**
@@ -0,0 +1,47 @@
1
+ # 需求作业模板包(eng-requirements 落笔件:复制即用)
2
+
3
+ ## 1. 用户故事卡
4
+
5
+ - 故事:作为〈角色〉,我要〈能力〉,以便〈价值——写不出=回澄清〉
6
+ - 量级:数据量 __ / 并发 __ / 频次 __(歧义词黑名单已过:大量/快/稳定均已数字化)
7
+ - 边界:不做 __;异常时 __;存量数据 __
8
+ - INVEST 自查: □独立可上线 □有用户可感知价值 □≤3人天 □可测试
9
+
10
+ ## 2. 验收标准(Gherkin,3–7 条/故事)
11
+
12
+ ```gherkin
13
+ 场景: <主路径>
14
+ Given <前置状态>
15
+ When <用户动作>
16
+ Then <可观察结果——第三人不用问人能判 PASS/FAIL>
17
+
18
+ 场景: <边界——空/超长/重复提交/并发>
19
+ 场景: <异常路径——失败提示与恢复>
20
+ 场景: <非功能——P99<__ms @__QPS / 兼容矩阵 / 权限矩阵>
21
+ ```
22
+
23
+ ## 3. DoR 准入清单(进迭代前逐项勾)
24
+
25
+ - [ ] 验收标准可判定(含边界与异常)
26
+ - [ ] 依赖已识别:外部接口 __ / 他团队 __(依赖请求单编号 __,eng-collaboration)
27
+ - [ ] UI 稿/交互说明到位(涉界面) - [ ] 埋点需求已附(eng-observability)
28
+ - [ ] 数据口径已核(涉指标,data-governance) - [ ] 估算完成(schedule-calc P80=__)
29
+ - [ ] 提出人迭代内可答疑
30
+
31
+ ## 4. 需求变更单
32
+
33
+ | 项 | 内容 |
34
+ |---|---|
35
+ | 变更内容 | 原:__ → 新:__ |
36
+ | 三问:影响范围 | 作废工作 __;联动模块 __ |
37
+ | 三问:工期影响 | 重估 +__ 天(eng-planning 重排触发否:偏差>15%?) |
38
+ | 三问:不改的代价 | __(能否下迭代?) |
39
+ | 基线版本 | v__ → v__;评审人 __ 日期 __ |
40
+
41
+ ## 5. RTM 追踪矩阵表头(五向勾稽)
42
+
43
+ | 需求ID | 验收标准# | 设计/ADR | 代码PR | 测试用例 | 上线验证 |
44
+ |---|---|---|---|---|---|
45
+ | REQ-__ | AC-1..n | ADR-__ | #__ | TC-__ | ✅/❌ 日期 |
46
+
47
+ > 上线前扫一遍:有需求无用例=漏测;有代码无需求=镀金,评审必问。
@@ -0,0 +1,73 @@
1
+ ---
2
+ name: eng-research
3
+ description: 调研链(调研问题一句话定义→信息源分级→候选粗筛三关→评分卡权重先行→POC 时间盒→退出成本评估→结论报告结构→技术雷达与复访机制)。工程链调研环节深耕:技术选型、新技术评估、"要不要引入 X"、竞品技术分析时载入。评分卡模板与检索技巧由 tech-research、联网检索由 web-search 承接。
4
+ version: 1.0.0
5
+ ---
6
+
7
+ # 调研链
8
+
9
+ engineering-chain 的调研环节子链。**没有决策场景的调研是阅读,不是调研**——先问这次调研在支持谁、在哪天、做什么决定。
10
+
11
+ ## 第一步:问题定义(一句话格式)
12
+
13
+ "为了解决〈问题〉,在〈约束:预算/团队栈/合规/时限〉下,寻找〈能力〉,由〈决策人〉在〈截止日〉前决定。"
14
+ 写不出这句话就退回去向提出人澄清;截止日决定调研深度(3 天=桌面研究,2 周=含 POC)。
15
+
16
+ ## 信息源分级(引用必标级)
17
+
18
+ | 级 | 来源 | 用法 |
19
+ |---|---|---|
20
+ | 一手 | 官方文档/源码/自己跑出来的数据 | 结论只能建在这一级上 |
21
+ | 二手 | 核心维护者演讲、严肃工程博客、issue 讨论 | 提供线索与坑位,关键点回一手验证 |
22
+ | 三手 | 营销稿/排行榜/自媒体/未溯源转述 | 只用于发现候选,**禁止进结论** |
23
+
24
+ AI 生成内容按三手对待,溯源核实后才可升级;性能对比数字尤其要看测试条件(别人的基准≠你的场景)。
25
+
26
+ ## 候选收敛:粗筛三关 → ≤3 个进深评
27
+
28
+ 1. **活跃度**:近半年提交频率、issue 响应时长、维护者数量(单人项目=巴士系数 1,进风险表);
29
+ 2. **许可证合规**:GPL 系对闭源产品的传染性、双许可证的商用条款、专利条款——拿不准过 legal-chain;
30
+ 3. **生态与雇佣市场**:招得到人吗、周边库全吗、出了问题搜得到答案吗。
31
+ 过关候选 ≤3 个进评分卡;>3 个说明问题定义太宽,回第一步。
32
+
33
+ ## 评分卡(tech-research 承接模板)
34
+
35
+ - **权重先于候选定**(先看了候选再定权重=给心仪者量身定做);
36
+ - 维度参考:功能匹配/性能实测/运维成本(部署、升级、监控接入)/学习曲线/社区生态/许可证/退出成本;
37
+ - 一票否决项单列不进加权(合规不过/关键功能缺失,总分再高也出局);
38
+ - 评分人 ≥2 且独立打分再对齐,分歧>2 分的维度当面对证据。
39
+
40
+ ## POC 时间盒
41
+
42
+ - **1–2 周硬上限**,到期必须出结论(可以是"证据不足,按默认选项走"——这也是结论);
43
+ - 场景=生产真实切片:真数据结构(脱敏)、等比缩放的数据量、真部署形态,**demo 跑通≠POC 通过**;
44
+ - 验证点预先写死(评分卡里存疑的 3–5 项),防止 POC 跑成"玩了两周新玩具";
45
+ - 产出=可复跑的代码+数据表+结论,入库存档(别人能复现你的结论才算数)。
46
+
47
+ ## 退出成本评估(进场前先看出口)
48
+
49
+ 数据能否完整导出(格式/工具/速率)?协议是否专有?替换半径多大(多少代码/多少团队要动)?
50
+ 供应商锁定项清单(专有 API/专有存储格式/绑定生态)。**退出成本高的选择,评分卡权重里"确定性"要加倍**——上错船比不上船贵得多。
51
+
52
+ ## 结论报告结构(决策人 5 分钟能读完)
53
+
54
+ 1. 结论先行:推荐项+置信度(高/中/低)+一句话理由;
55
+ 2. 对比表(评分卡摘要,含一票否决触发情况);
56
+ 3. 风险与缓解(TOP3,含巴士系数/锁定项);
57
+ 4. 回退条件:什么信号出现说明选错,退到哪、代价多大;
58
+ 5. 复访时间:落选项与"暂缓"项何时重看。
59
+ 决策拍板后落 **ADR**(eng-architecture),"当时为什么没选 Y"写清楚——防半年后考古重问。
60
+
61
+ ## 技术雷达与复访机制
62
+
63
+ - 组织级雷达四环:**采用**(默认选择)/**试用**(限定项目用)/**评估**(POC 中)/**暂缓**(明确不碰+原因);
64
+ - 晋级规则:评估→试用要过 POC;试用→采用要两个生产案例+运维承接确认;
65
+ - 季度评审雷达:暂缓项到复访期重看(技术会进步,当年的"不行"会过期);
66
+ - 新技术引入必挂雷达位置,**绕过雷达私自上生产=架构违规**(eng-architecture 收敛纪律)。
67
+
68
+ **作业包**:`references/research-templates.md`(立项一句话/评分卡(权重先于候选)/POC 记录/结论报告骨架/雷达登记行)。
69
+
70
+ ## 使用纪律
71
+
72
+ 引用必标信息源等级;数字必附测试条件;调研产出入知识库(knowledge-sop)供复用;
73
+ 选型决策必落 ADR;**调研的复利=雷达与报告库,让下一次调研从 60 分起步而不是 0 分**。
@@ -0,0 +1,42 @@
1
+ # 调研作业模板包(eng-research 落笔件)
2
+
3
+ ## 1. 调研立项一句话(写不出=还不该调研)
4
+
5
+ 为了解决〈__〉,在〈约束:预算/团队栈/合规/时限〉下,寻找〈__〉,由〈决策人__〉在〈__日期〉前决定。
6
+
7
+ ## 2. 评分卡(权重先于候选定!)
8
+
9
+ | 维度 | 权重(先定) | 候选A | 候选B | 候选C | 证据(标信息源等级) |
10
+ |---|---|---|---|---|---|
11
+ | 功能匹配 | __% | | | | 一手:自测/官方文档 |
12
+ | 性能实测 | __% | | | | 一手:POC 数据(附条件) |
13
+ | 运维成本 | __% | | | | 部署/升级/监控接入 |
14
+ | 学习曲线 | __% | | | | |
15
+ | 社区生态 | __% | | | | 活跃度:近半年提交/issue 响应 |
16
+ | 许可证 | __% | | | | 传染性/商用条款(拿不准过法务) |
17
+ | 退出成本 | __% | | | | 数据可导出?替换半径? |
18
+ | **一票否决项** | — | □ | □ | □ | 合规不过/关键功能缺(不进加权) |
19
+
20
+ 评分人≥2 独立打分再对齐;分歧>2 分的维度当面对证据。
21
+
22
+ ## 3. POC 记录(1–2 周硬时间盒)
23
+
24
+ - 验证点(预先写死 3–5 项):__
25
+ - 场景:生产真实切片(数据规模等比;demo 跑通≠POC 通过)
26
+ - 产出:可复跑代码 __ + 数据表 __(别人能复现才算数)
27
+ - 到期结论:□支持推荐 □证据不足按默认走(这也是结论)
28
+
29
+ ## 4. 结论报告骨架(决策人 5 分钟读完)
30
+
31
+ 1. 结论先行:推荐 __,置信度 高/中/低,一句话理由
32
+ 2. 对比表(评分卡摘要+一票否决触发情况)
33
+ 3. 风险与缓解 TOP3(含巴士系数/锁定项)
34
+ 4. 回退条件:出现 __ 信号说明选错,退到 __,代价 __
35
+ 5. 复访时间:落选与"暂缓"项 __ 时重看
36
+
37
+ ## 5. 技术雷达登记行
38
+
39
+ | 技术 | 环(采用/试用/评估/暂缓) | 进环理由与证据 | Owner | 复访日期 |
40
+ |---|---|---|---|---|
41
+
42
+ > 晋级规则:评估→试用要过 POC;试用→采用要两个生产案例+运维承接确认;决策落 ADR。