@umacloud/knowledge 1.0.1

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 (418) hide show
  1. package/00-governance/governance-capabilities.md +557 -0
  2. package/00-governance/knowledge-map.md +39 -0
  3. package/00-governance/maintenance-policy.md +76 -0
  4. package/00-governance/review-checklist.md +81 -0
  5. package/README.md +13 -0
  6. package/ai/01-standards/agent-development-complete.md +691 -0
  7. package/ai/01-standards/llm-application-complete.md +488 -0
  8. package/ai/01-standards/mlops-complete.md +798 -0
  9. package/ai/01-standards/prompt-engineering-complete.md +646 -0
  10. package/ai/01-standards/rag-architecture-complete.md +649 -0
  11. package/ai/02-playbooks/llm-evaluation-playbook.md +847 -0
  12. package/ai/03-checklists/ai-project-checklist.md +215 -0
  13. package/ai/04-antipatterns/ai-antipatterns.md +661 -0
  14. package/ai/05-cases/case-rag-production.md +147 -0
  15. package/ai/06-glossary/ai-glossary.md +162 -0
  16. package/ai/agent-evaluation-benchmark.md +53 -0
  17. package/ai/ai-agent-memory-context-management.md +41 -0
  18. package/ai/ai-cost-capacity-optimization-playbook.md +42 -0
  19. package/ai/ai-data-security-and-compliance-playbook.md +37 -0
  20. package/ai/ai-domain-index-and-checklist.md +40 -0
  21. package/ai/ai-governance-maturity-model.md +50 -0
  22. package/ai/ai-model-selection-and-routing-strategy.md +47 -0
  23. package/ai/ai-observability-and-oncall-runbook.md +52 -0
  24. package/ai/ai-rag-engineering-playbook.md +42 -0
  25. package/ai/ai-red-team-and-safety-evaluation.md +42 -0
  26. package/ai/ai-release-readiness-and-rollback-gate.md +42 -0
  27. package/ai/llm-agent-engineering-deep-dive.md +57 -0
  28. package/ai/prompt-and-tool-guardrails.md +52 -0
  29. package/api/01-standards/enterprise-api-standards.md +198 -0
  30. package/api/01-standards/rest-api-design-guide.md +63 -0
  31. package/api/02-playbooks/api-pagination-playbook.md +93 -0
  32. package/api/02-playbooks/graphql-production-playbook.md +176 -0
  33. package/api/03-checklists/api-review-checklist.md +55 -0
  34. package/api/04-antipatterns/api-antipatterns.md +112 -0
  35. package/architecture/01-standards/api-gateway-patterns.md +496 -0
  36. package/architecture/01-standards/cloud-native-patterns.md +644 -0
  37. package/architecture/01-standards/distributed-systems-patterns.md +591 -0
  38. package/architecture/01-standards/event-driven-architecture.md +595 -0
  39. package/architecture/01-standards/microservices-patterns-complete.md +968 -0
  40. package/architecture/01-standards/microservices-patterns.md +495 -0
  41. package/architecture/01-standards/system-design-interview.md +664 -0
  42. package/architecture/02-playbooks/microservices-patterns-playbook.md +137 -0
  43. package/architecture/02-playbooks/migration-playbook.md +780 -0
  44. package/architecture/02-playbooks/system-design-playbook.md +779 -0
  45. package/architecture/03-checklists/architecture-decision-checklist.md +297 -0
  46. package/architecture/04-antipatterns/architecture-antipatterns.md +417 -0
  47. package/architecture/05-cases/case-netflix-microservices.md +413 -0
  48. package/architecture/06-glossary/architecture-glossary.md +164 -0
  49. package/architecture/adr-template-and-examples.md +38 -0
  50. package/architecture/api-gateway-deep-dive.md +1291 -0
  51. package/architecture/configuration-management.md +1162 -0
  52. package/architecture/distributed-transactions.md +1220 -0
  53. package/architecture/microservices-complete.md +735 -0
  54. package/architecture/resilience-and-disaster-patterns.md +37 -0
  55. package/architecture/service-governance.md +1198 -0
  56. package/architecture/system-architecture-deep-dive.md +37 -0
  57. package/backend/01-standards/analytics-and-growth.md +65 -0
  58. package/backend/01-standards/api-and-error-conventions.md +120 -0
  59. package/backend/01-standards/application-layering-and-packaging.md +160 -0
  60. package/backend/01-standards/auth-implementation.md +104 -0
  61. package/backend/01-standards/backend-framework-idioms.md +74 -0
  62. package/backend/01-standards/background-jobs-and-async.md +66 -0
  63. package/backend/01-standards/caching-strategies-complete.md +390 -0
  64. package/backend/01-standards/config-and-observability.md +77 -0
  65. package/backend/01-standards/data-modeling-and-persistence.md +94 -0
  66. package/backend/01-standards/django-complete.md +1765 -0
  67. package/backend/01-standards/email-and-notifications.md +64 -0
  68. package/backend/01-standards/fastapi-complete.md +925 -0
  69. package/backend/01-standards/file-upload-and-storage.md +66 -0
  70. package/backend/01-standards/graphql-api-complete.md +416 -0
  71. package/backend/01-standards/llm-application-standard.md +78 -0
  72. package/backend/01-standards/message-queue-patterns.md +379 -0
  73. package/backend/01-standards/microservices-and-distributed.md +78 -0
  74. package/backend/01-standards/nestjs-complete.md +2167 -0
  75. package/backend/01-standards/payment-integration.md +80 -0
  76. package/backend/01-standards/rate-limiting-complete.md +451 -0
  77. package/backend/01-standards/realtime-and-websocket.md +65 -0
  78. package/backend/01-standards/search-and-filtering.md +64 -0
  79. package/backend/01-standards/spring-boot-complete.md +445 -0
  80. package/backend/02-playbooks/api-design-playbook.md +718 -0
  81. package/backend/02-playbooks/email-send-playbook.md +130 -0
  82. package/backend/02-playbooks/file-upload-s3-playbook.md +153 -0
  83. package/backend/02-playbooks/typescript-enterprise-playbook.md +133 -0
  84. package/backend/02-playbooks/websocket-realtime-playbook.md +154 -0
  85. package/backend/03-checklists/api-launch-checklist.md +189 -0
  86. package/backend/04-antipatterns/backend-antipatterns.md +1051 -0
  87. package/blockchain/01-standards/blockchain-basics.md +557 -0
  88. package/blockchain/01-standards/smart-contract-development.md +1315 -0
  89. package/cicd/01-standards/deployment-and-delivery-standard.md +96 -0
  90. package/cicd/01-standards/github-actions-complete.md +473 -0
  91. package/cicd/01-standards/release-and-store-submission.md +75 -0
  92. package/cicd/02-playbooks/cicd-pipeline-playbook.md +144 -0
  93. package/cicd/02-playbooks/release-management-playbook.md +605 -0
  94. package/cicd/03-checklists/pipeline-security-checklist.md +168 -0
  95. package/cicd/04-antipatterns/cicd-antipatterns.md +589 -0
  96. package/cicd/05-cases/case-deployment-automation.md +221 -0
  97. package/cicd/05-cases/case-gitops-transformation.md +212 -0
  98. package/cicd/06-glossary/cicd-glossary.md +114 -0
  99. package/cicd/cicd-blueprint-deep-dive.md +38 -0
  100. package/cicd/release-readiness-gate.md +37 -0
  101. package/cloud-native/01-standards/container-security.md +741 -0
  102. package/cloud-native/01-standards/kubernetes-complete.md +812 -0
  103. package/cloud-native/02-playbooks/api-gateway-playbook.md +155 -0
  104. package/cloud-native/02-playbooks/gitops-with-argocd.md +760 -0
  105. package/cloud-native/02-playbooks/k8s-troubleshooting-playbook.md +1942 -0
  106. package/cloud-native/02-playbooks/message-queue-playbook.md +129 -0
  107. package/cloud-native/02-playbooks/multicloud-governance.md +726 -0
  108. package/cloud-native/02-playbooks/serverless-patterns.md +788 -0
  109. package/cloud-native/02-playbooks/service-mesh-playbook.md +612 -0
  110. package/cloud-native/02-playbooks/terraform-iac-playbook.md +143 -0
  111. package/cloud-native/03-checklists/container-security-checklist.md +431 -0
  112. package/cloud-native/03-checklists/k8s-production-readiness-checklist.md +460 -0
  113. package/cloud-native/04-antipatterns/container-antipatterns.md +660 -0
  114. package/cloud-native/04-antipatterns/k8s-antipatterns.md +743 -0
  115. package/cloud-native/05-cases/case-k8s-migration.md +478 -0
  116. package/cloud-native/05-cases/case-k8s-scaling.md +642 -0
  117. package/cloud-native/05-cases/case-k8s-security-incident.md +397 -0
  118. package/cloud-native/06-glossary/cloud-native-glossary.md +337 -0
  119. package/cross-platform/01-standards/cross-platform-frameworks.md +83 -0
  120. package/cross-platform/01-standards/platform-selection-and-architecture.md +77 -0
  121. package/data/01-standards/elasticsearch-complete.md +2098 -0
  122. package/data/01-standards/postgresql-complete.md +1613 -0
  123. package/data/01-standards/redis-complete.md +1527 -0
  124. package/data/02-playbooks/database-optimization-playbook.md +403 -0
  125. package/data/02-playbooks/elasticsearch-production-playbook.md +132 -0
  126. package/data/03-checklists/database-launch-checklist.md +187 -0
  127. package/data/04-antipatterns/database-antipatterns.md +873 -0
  128. package/data/05-cases/case-database-migration.md +310 -0
  129. package/data/06-glossary/database-glossary.md +440 -0
  130. package/data/data-governance-and-modeling-deep-dive.md +39 -0
  131. package/data-engineering/01-standards/airflow-complete.md +523 -0
  132. package/data-engineering/01-standards/kafka-complete.md +1521 -0
  133. package/data-engineering/02-playbooks/spark-etl-playbook.md +496 -0
  134. package/data-engineering/03-checklists/pipeline-launch-checklist.md +194 -0
  135. package/data-engineering/04-antipatterns/data-pipeline-antipatterns.md +684 -0
  136. package/data-engineering/05-cases/case-real-time-pipeline.md +355 -0
  137. package/data-engineering/06-glossary/data-engineering-glossary.md +429 -0
  138. package/database/01-standards/database-schema-standards.md +147 -0
  139. package/database/02-playbooks/postgresql-optimization-quick.md +52 -0
  140. package/database/02-playbooks/postgresql-performance-optimization.md +58 -0
  141. package/database/02-playbooks/postgresql-production-playbook.md +146 -0
  142. package/database/02-playbooks/redis-caching-playbook.md +117 -0
  143. package/database/03-checklists/database-review-checklist.md +50 -0
  144. package/database/04-antipatterns/database-antipatterns.md +112 -0
  145. package/design/01-standards/ui-design-system-complete.md +423 -0
  146. package/design/02-playbooks/design-handoff-playbook.md +254 -0
  147. package/design/02-playbooks/design-review-playbook.md +388 -0
  148. package/design/03-checklists/design-review-checklist.md +246 -0
  149. package/design/04-antipatterns/design-antipatterns.md +378 -0
  150. package/design/05-cases/case-design-system-adoption.md +328 -0
  151. package/design/06-glossary/design-glossary.md +329 -0
  152. package/design/ui-full-lifecycle-cross-platform-playbook.md +571 -0
  153. package/design/ux-system-deep-dive.md +38 -0
  154. package/design-systems/00-craft-rules.md +71 -0
  155. package/design-systems/aesthetic-families.md +43 -0
  156. package/design-systems/anti-ai-slop.md +162 -0
  157. package/design-systems/bold-geometric.md +120 -0
  158. package/design-systems/brutalist-bold.md +103 -0
  159. package/design-systems/editorial-clean.md +109 -0
  160. package/design-systems/glass-aurora.md +108 -0
  161. package/design-systems/modern-minimal.md +145 -0
  162. package/design-systems/premium-luxury.md +106 -0
  163. package/design-systems/product-type-design-map.md +48 -0
  164. package/design-systems/soft-warm.md +123 -0
  165. package/design-systems/tech-utility.md +113 -0
  166. package/desktop/01-standards/desktop-app-standard.md +72 -0
  167. package/desktop/01-standards/desktop-design.md +71 -0
  168. package/development/00-governance/document-template.md +41 -0
  169. package/development/01-standards/api-versioning-strategies.md +432 -0
  170. package/development/01-standards/authentication-patterns-complete.md +479 -0
  171. package/development/01-standards/css-architecture-complete.md +550 -0
  172. package/development/01-standards/database-migration-strategies.md +484 -0
  173. package/development/01-standards/elasticsearch-complete.md +347 -0
  174. package/development/01-standards/git-complete.md +371 -0
  175. package/development/01-standards/golang-complete.md +1565 -0
  176. package/development/01-standards/graphql-complete.md +298 -0
  177. package/development/01-standards/javascript-bundlers-complete.md +469 -0
  178. package/development/01-standards/javascript-typescript-complete.md +528 -0
  179. package/development/01-standards/jest-complete.md +275 -0
  180. package/development/01-standards/linux-complete.md +234 -0
  181. package/development/01-standards/logging-observability-complete.md +526 -0
  182. package/development/01-standards/microservices-communication.md +502 -0
  183. package/development/01-standards/mongodb-complete.md +406 -0
  184. package/development/01-standards/oauth2-complete.md +285 -0
  185. package/development/01-standards/performance-optimization-complete.md +289 -0
  186. package/development/01-standards/playwright-complete.md +247 -0
  187. package/development/01-standards/postgresql-complete.md +456 -0
  188. package/development/01-standards/pytest-complete.md +340 -0
  189. package/development/01-standards/python-async-programming.md +902 -0
  190. package/development/01-standards/python-complete.md +956 -0
  191. package/development/01-standards/python-decorators-complete.md +799 -0
  192. package/development/01-standards/python-design-patterns.md +2854 -0
  193. package/development/01-standards/python-packaging-distribution.md +420 -0
  194. package/development/01-standards/python-testing-strategies.md +607 -0
  195. package/development/01-standards/python-web-frameworks-comparison.md +471 -0
  196. package/development/01-standards/redis-complete.md +317 -0
  197. package/development/01-standards/rest-api-complete.md +316 -0
  198. package/development/01-standards/rust-complete.md +578 -0
  199. package/development/01-standards/typescript-advanced-types.md +1513 -0
  200. package/development/01-standards/web-security-complete.md +292 -0
  201. package/development/02-playbooks/api-design-playbook.md +810 -0
  202. package/development/02-playbooks/database-migration-playbook.md +580 -0
  203. package/development/02-playbooks/debugging-playbook.md +692 -0
  204. package/development/02-playbooks/feature-delivery-playbook.md +430 -0
  205. package/development/02-playbooks/incident-hotfix-playbook.md +387 -0
  206. package/development/02-playbooks/performance-optimization-playbook.md +531 -0
  207. package/development/02-playbooks/performance-tuning-playbook.md +652 -0
  208. package/development/02-playbooks/refactor-playbook.md +403 -0
  209. package/development/02-playbooks/release-playbook.md +469 -0
  210. package/development/03-checklists/architecture-review-checklist.md +168 -0
  211. package/development/03-checklists/data-migration-checklist.md +157 -0
  212. package/development/03-checklists/oncall-handover-checklist.md +173 -0
  213. package/development/03-checklists/pr-checklist.md +158 -0
  214. package/development/03-checklists/production-readiness-checklist.md +190 -0
  215. package/development/03-checklists/release-readiness-checklist.md +154 -0
  216. package/development/03-checklists/security-review-checklist.md +182 -0
  217. package/development/04-antipatterns/api-antipatterns.md +657 -0
  218. package/development/04-antipatterns/architecture-antipatterns.md +686 -0
  219. package/development/04-antipatterns/backend-antipatterns.md +648 -0
  220. package/development/04-antipatterns/cicd-antipatterns.md +540 -0
  221. package/development/04-antipatterns/code-smell-antipatterns.md +571 -0
  222. package/development/04-antipatterns/data-antipatterns.md +658 -0
  223. package/development/04-antipatterns/database-antipatterns.md +578 -0
  224. package/development/04-antipatterns/frontend-antipatterns.md +635 -0
  225. package/development/04-antipatterns/reliability-antipatterns.md +700 -0
  226. package/development/04-antipatterns/security-antipatterns.md +747 -0
  227. package/development/05-cases/case-api-version-migration.md +428 -0
  228. package/development/05-cases/case-authorization-hardening.md +383 -0
  229. package/development/05-cases/case-bluegreen-rollback.md +466 -0
  230. package/development/05-cases/case-cache-snowball-protection.md +485 -0
  231. package/development/05-cases/case-ci-cd-pipeline.md +544 -0
  232. package/development/05-cases/case-database-scaling.md +500 -0
  233. package/development/05-cases/case-db-hotspot-optimization.md +487 -0
  234. package/development/05-cases/case-incident-mttr-reduction.md +563 -0
  235. package/development/05-cases/case-microservice-migration.md +375 -0
  236. package/development/05-cases/case-performance-optimization.md +406 -0
  237. package/development/05-cases/case-security-incident-response.md +345 -0
  238. package/development/06-glossary/full-stack-glossary.md +166 -0
  239. package/development/09-maturity/quarterly-audit-template.md +35 -0
  240. package/development/11-ui-excellence/ui-aesthetic-system.md +41 -0
  241. package/development/11-ui-excellence/ui-engineering-excellence.md +435 -0
  242. package/development/12-scenarios/development-scenarios-guide.md +565 -0
  243. package/development/13-implementation-assets/implementation-toolkit.md +282 -0
  244. package/development/13-implementation-assets/knowledge-gates-execution.md +43 -0
  245. package/development/14-full-lifecycle/software-lifecycle-gates.md +511 -0
  246. package/development/15-lifecycle-templates/project-templates-collection.md +791 -0
  247. package/development/api-contract-and-versioning-guide.md +36 -0
  248. package/development/api-governance-complete.md +43 -0
  249. package/development/backend-engineering-complete.md +43 -0
  250. package/development/code-review-quality-complete.md +43 -0
  251. package/development/concurrency-reliability-complete.md +43 -0
  252. package/development/database-engineering-complete.md +43 -0
  253. package/development/engineering-effectiveness-complete.md +43 -0
  254. package/development/engineering-standards-deep-dive.md +38 -0
  255. package/development/frontend-engineering-complete.md +43 -0
  256. package/development/performance-capacity-complete.md +43 -0
  257. package/development/refactor-migration-complete.md +42 -0
  258. package/development/refactoring-and-techdebt-playbook.md +37 -0
  259. package/development/security-in-development-complete.md +43 -0
  260. package/devops/01-standards/cicd-pipeline-complete.md +262 -0
  261. package/devops/01-standards/docker-complete.md +1490 -0
  262. package/devops/01-standards/github-actions-complete.md +337 -0
  263. package/devops/01-standards/kubernetes-complete.md +638 -0
  264. package/devops/01-standards/terraform-complete.md +2117 -0
  265. package/devops/02-playbooks/docker-compose-playbook.md +233 -0
  266. package/devops/02-playbooks/docker-k8s-production-playbook.md +186 -0
  267. package/devops/02-playbooks/docker-production-playbook.md +952 -0
  268. package/edge-iot/01-standards/edge-iot-complete.md +473 -0
  269. package/experts/architect/api-design.md +178 -0
  270. package/experts/architect/methodology.md +124 -0
  271. package/experts/architect/security.md +75 -0
  272. package/experts/backend-lead/methodology.md +216 -0
  273. package/experts/devops/methodology.md +160 -0
  274. package/experts/frontend-lead/methodology.md +178 -0
  275. package/experts/product-manager/industry/ecommerce.md +43 -0
  276. package/experts/product-manager/industry/saas.md +40 -0
  277. package/experts/product-manager/methodology.md +97 -0
  278. package/experts/qa-lead/methodology.md +123 -0
  279. package/experts/qa-lead/test-strategy.md +128 -0
  280. package/experts/uiux-designer/methodology.md +125 -0
  281. package/frontend/01-standards/accessibility-complete.md +532 -0
  282. package/frontend/01-standards/accessibility-standard.md +74 -0
  283. package/frontend/01-standards/admin-dashboard-and-crud.md +72 -0
  284. package/frontend/01-standards/design-tokens-complete.md +444 -0
  285. package/frontend/01-standards/forms-and-validation.md +77 -0
  286. package/frontend/01-standards/frontend-architecture-and-layering.md +119 -0
  287. package/frontend/01-standards/i18n-and-localization.md +65 -0
  288. package/frontend/01-standards/nextjs-complete.md +451 -0
  289. package/frontend/01-standards/react-complete.md +713 -0
  290. package/frontend/01-standards/react-hooks-complete-guide.md +1100 -0
  291. package/frontend/01-standards/react-hooks-complete.md +1171 -0
  292. package/frontend/01-standards/seo-and-web-vitals.md +77 -0
  293. package/frontend/01-standards/state-management-complete.md +444 -0
  294. package/frontend/01-standards/vue-complete.md +499 -0
  295. package/frontend/01-standards/vue3-complete.md +2002 -0
  296. package/frontend/01-standards/web-framework-best-practices.md +64 -0
  297. package/frontend/01-standards/web-performance-complete.md +495 -0
  298. package/frontend/02-playbooks/accessibility-a11y-playbook.md +161 -0
  299. package/frontend/02-playbooks/frontend-performance-playbook.md +707 -0
  300. package/frontend/02-playbooks/i18n-internationalization-playbook.md +120 -0
  301. package/frontend/02-playbooks/performance-optimization-playbook.md +163 -0
  302. package/frontend/02-playbooks/react-nextjs-production-playbook.md +167 -0
  303. package/frontend/02-playbooks/react-state-management-playbook.md +173 -0
  304. package/frontend/03-checklists/component-quality-checklist.md +166 -0
  305. package/frontend/03-checklists/frontend-launch-checklist.md +299 -0
  306. package/frontend/04-antipatterns/frontend-antipatterns.md +886 -0
  307. package/frontend/05-cases/case-performance-optimization.md +274 -0
  308. package/harmony/01-standards/harmonyos-arkts-standard.md +75 -0
  309. package/harmony/01-standards/harmonyos-design.md +65 -0
  310. package/high-quality-engineering-playbook.md +54 -0
  311. package/incident/01-standards/incident-response-complete.md +303 -0
  312. package/incident/02-playbooks/chaos-engineering-playbook.md +883 -0
  313. package/incident/02-playbooks/postmortem-playbook.md +398 -0
  314. package/incident/03-checklists/incident-readiness-checklist.md +181 -0
  315. package/incident/04-antipatterns/incident-antipatterns.md +490 -0
  316. package/incident/05-cases/case-cascade-failure.md +176 -0
  317. package/incident/06-glossary/incident-glossary.md +114 -0
  318. package/incident/postmortem-and-response-deep-dive.md +39 -0
  319. package/industries/ecommerce/ecommerce-complete.md +631 -0
  320. package/industries/education/education-complete.md +555 -0
  321. package/industries/fintech/fintech-complete.md +501 -0
  322. package/industries/gaming/gaming-complete.md +587 -0
  323. package/industries/healthcare/healthcare-complete.md +452 -0
  324. package/low-code/01-standards/low-code-complete.md +944 -0
  325. package/miniprogram/01-standards/ai-common-mistakes.md +61 -0
  326. package/miniprogram/01-standards/miniprogram-custom-navbar-capsule.md +77 -0
  327. package/miniprogram/01-standards/miniprogram-design.md +61 -0
  328. package/miniprogram/01-standards/miniprogram-standard.md +81 -0
  329. package/mobile/01-standards/android-material-design.md +70 -0
  330. package/mobile/01-standards/flutter-complete.md +384 -0
  331. package/mobile/01-standards/ios-design-hig.md +78 -0
  332. package/mobile/01-standards/mobile-app-standard.md +85 -0
  333. package/mobile/01-standards/react-native-complete.md +352 -0
  334. package/mobile/02-playbooks/mobile-cross-platform-playbook.md +175 -0
  335. package/mobile/02-playbooks/mobile-performance.md +473 -0
  336. package/mobile/03-checklists/mobile-release-checklist.md +234 -0
  337. package/mobile/04-antipatterns/mobile-antipatterns.md +798 -0
  338. package/mobile/05-cases/case-app-performance.md +500 -0
  339. package/mobile/05-cases/case-app-startup-optimization.md +218 -0
  340. package/mobile/06-glossary/mobile-glossary.md +484 -0
  341. package/observability/01-standards/observability-standards.md +103 -0
  342. package/observability/02-playbooks/prometheus-grafana-playbook.md +135 -0
  343. package/observability/02-playbooks/structured-logging-playbook.md +73 -0
  344. package/observability/03-checklists/observability-checklist.md +54 -0
  345. package/observability/04-antipatterns/observability-antipatterns.md +106 -0
  346. package/operations/01-standards/prometheus-monitoring-complete.md +1578 -0
  347. package/operations/02-playbooks/capacity-planning-playbook.md +620 -0
  348. package/operations/03-checklists/production-launch-checklist.md +365 -0
  349. package/operations/04-antipatterns/operations-antipatterns.md +664 -0
  350. package/operations/05-cases/case-sre-practices.md +581 -0
  351. package/operations/06-glossary/operations-glossary.md +120 -0
  352. package/operations/aiops-anomaly-detection.md +758 -0
  353. package/operations/capacity-planning.md +1061 -0
  354. package/operations/chaos-engineering.md +659 -0
  355. package/operations/incident-command-system.md +38 -0
  356. package/operations/observability-complete.md +442 -0
  357. package/operations/slo-sli-playbook.md +517 -0
  358. package/operations/sre-operations-deep-dive.md +39 -0
  359. package/package.json +8 -0
  360. package/performance/01-standards/performance-and-scalability.md +80 -0
  361. package/performance/01-standards/performance-standards.md +156 -0
  362. package/performance/02-playbooks/query-optimization-playbook.md +103 -0
  363. package/performance/03-checklists/performance-checklist.md +56 -0
  364. package/performance/04-antipatterns/performance-antipatterns.md +146 -0
  365. package/product/01-standards/product-management-complete.md +285 -0
  366. package/product/02-playbooks/feature-launch-playbook.md +207 -0
  367. package/product/02-playbooks/user-research-playbook.md +532 -0
  368. package/product/03-checklists/feature-launch-checklist.md +275 -0
  369. package/product/04-antipatterns/product-antipatterns.md +355 -0
  370. package/product/05-cases/case-mvp-to-scale.md +384 -0
  371. package/product/06-glossary/product-glossary.md +462 -0
  372. package/product/feature-prioritization-framework.md +40 -0
  373. package/product/kpi-and-metric-tree.md +37 -0
  374. package/product/product-discovery-and-prd-deep-dive.md +41 -0
  375. package/quantum/01-standards/quantum-complete.md +1186 -0
  376. package/security/01-standards/api-security-complete.md +511 -0
  377. package/security/01-standards/container-runtime-security.md +574 -0
  378. package/security/01-standards/data-protection-gdpr.md +543 -0
  379. package/security/01-standards/owasp-top10-complete.md +1890 -0
  380. package/security/01-standards/secure-coding-baseline.md +90 -0
  381. package/security/01-standards/supply-chain-security.md +441 -0
  382. package/security/01-standards/web-security-checklist.md +108 -0
  383. package/security/01-standards/zero-trust-architecture.md +521 -0
  384. package/security/02-playbooks/auth-sso-playbook.md +166 -0
  385. package/security/02-playbooks/incident-response-security-playbook.md +588 -0
  386. package/security/02-playbooks/owasp-api-security-playbook.md +129 -0
  387. package/security/02-playbooks/payment-integration-playbook.md +119 -0
  388. package/security/02-playbooks/penetration-testing-playbook.md +517 -0
  389. package/security/03-checklists/security-audit-checklist.md +356 -0
  390. package/security/04-antipatterns/security-coding-antipatterns.md +580 -0
  391. package/security/05-cases/case-log4shell-incident.md +537 -0
  392. package/security/05-cases/case-major-breaches.md +468 -0
  393. package/security/06-glossary/security-glossary.md +212 -0
  394. package/security/compliance-automation.md +993 -0
  395. package/security/container-security.md +680 -0
  396. package/security/devsecops-complete.md +426 -0
  397. package/security/sast-dast-sca.md +775 -0
  398. package/security/secrets-management.md +594 -0
  399. package/security/security-architecture-deep-dive.md +37 -0
  400. package/security/threat-modeling-stride-playbook.md +40 -0
  401. package/seed-templates/auth-system.md +59 -0
  402. package/seed-templates/blog-content.md +94 -0
  403. package/seed-templates/dashboard.md +89 -0
  404. package/seed-templates/docs-site.md +73 -0
  405. package/seed-templates/e-commerce.md +50 -0
  406. package/seed-templates/saas-landing.md +92 -0
  407. package/seed-templates/settings-page.md +51 -0
  408. package/testing/01-standards/test-strategy-and-layering.md +83 -0
  409. package/testing/01-standards/testing-strategy-complete.md +422 -0
  410. package/testing/01-standards/unit-testing-best-practices.md +118 -0
  411. package/testing/02-playbooks/e2e-testing-playbook.md +988 -0
  412. package/testing/02-playbooks/testing-strategy-playbook.md +126 -0
  413. package/testing/03-checklists/test-strategy-checklist.md +208 -0
  414. package/testing/04-antipatterns/testing-antipatterns.md +718 -0
  415. package/testing/05-cases/case-testing-transformation.md +300 -0
  416. package/testing/06-glossary/testing-glossary.md +110 -0
  417. package/testing/risk-based-test-matrix.md +36 -0
  418. package/testing/testing-strategy-deep-dive.md +37 -0
@@ -0,0 +1,125 @@
1
+ ---
2
+ id: methodology
3
+ title: UI/UX Designer — Methodology
4
+ domain: experts
5
+ category: uiux-designer
6
+ difficulty: intermediate
7
+ tags: [component, construction, design, experts, interaction, methodology, principles, responsive]
8
+ quality_score: 70
9
+ last_updated: 2026-06-15
10
+ ---
11
+ # UI/UX Designer — Methodology
12
+
13
+ ## Design System Construction
14
+
15
+ ### Token Architecture (3 layers)
16
+ ```
17
+ Primitive tokens: blue-600 = #2563EB (raw values)
18
+ Semantic tokens: color-primary = {blue-600} (intent)
19
+ Component tokens: button-bg = {color-primary} (usage)
20
+ ```
21
+
22
+ Rule: components reference semantic tokens, never primitives.
23
+ Changing blue-600 updates every component that uses color-primary.
24
+
25
+ ### Color System
26
+ - **6 semantic roles minimum**: bg, surface, text, primary, border, error
27
+ - **Each role needs**: default + hover + active states
28
+ - **Neutral scale**: 10 steps (50-950) for backgrounds, borders, text
29
+ - **Semantic colors**: success (green), warning (amber), error (red), info (blue)
30
+ - **Dark mode**: override semantic tokens, not primitives
31
+
32
+ ### Typography System
33
+ - **2 font families max**: one display/heading, one body
34
+ - **7-step scale**: xs(12) sm(14) base(16) lg(18) xl(20) 2xl(24) 3xl(30)
35
+ - **3 weights**: regular(400), medium(500), bold(700)
36
+ - **Line-height**: tight(1.2) for headings, normal(1.5) for body, relaxed(1.7) for long-form
37
+
38
+ ### Spacing System
39
+ - **Base unit**: 4px
40
+ - **Scale**: 1(4) 2(8) 3(12) 4(16) 5(20) 6(24) 8(32) 10(40) 12(48) 16(64)
41
+ - **Rule**: never use arbitrary values. Every margin/padding is a scale step.
42
+
43
+ ## Interaction Design Principles
44
+
45
+ ### Fitts's Law
46
+ - Larger targets are easier to click
47
+ - Closer targets are easier to reach
48
+ - **Practical**: primary CTA should be the largest button, positioned near the user's attention
49
+
50
+ ### Hick's Law
51
+ - More choices = more time to decide
52
+ - **Practical**: limit navigation to 5-7 items. Use progressive disclosure (show less, reveal more on demand)
53
+
54
+ ### Jakob's Law
55
+ - Users spend most of their time on OTHER sites
56
+ - **Practical**: follow established patterns (top nav, left sidebar, bottom tabs on mobile)
57
+
58
+ ## Component Design Standards
59
+
60
+ ### Every component needs:
61
+ 1. **Default state** — what it looks like normally
62
+ 2. **Hover state** — cursor enters (desktop only)
63
+ 3. **Focus state** — keyboard navigation (visible focus ring, 2px solid primary, 2px offset)
64
+ 4. **Active state** — being clicked/tapped
65
+ 5. **Disabled state** — not interactive (opacity 0.5, cursor not-allowed)
66
+ 6. **Loading state** — waiting for async (spinner or skeleton)
67
+ 7. **Error state** — validation failed (red border, error message below)
68
+
69
+ ### Form Design
70
+ - Labels ABOVE inputs (not inside as placeholder)
71
+ - Error messages BELOW the field (not as tooltip)
72
+ - Inline validation on blur, not on every keystroke
73
+ - Show password toggle on password fields
74
+ - Autofocus first field on page load
75
+ - Tab order matches visual order
76
+
77
+ ### Empty States
78
+ Every list/table/grid needs 3 empty states:
79
+ 1. **First-time**: "No items yet. Create your first X." + CTA button
80
+ 2. **Filter empty**: "No results match your filters." + clear filters link
81
+ 3. **Error**: "Failed to load. Please try again." + retry button
82
+
83
+ ### Loading States
84
+ - **Skeleton screens** for initial page load (not spinner)
85
+ - **Inline spinner** for button actions ("Saving..." with spinner)
86
+ - **Progress bar** for known-duration operations (file upload)
87
+ - **Optimistic UI** for instant-feeling mutations (update UI, then sync)
88
+
89
+ ## Responsive Design
90
+
91
+ ### Breakpoints
92
+ | Name | Min width | Typical device |
93
+ |---|---|---|
94
+ | mobile | 0 | phones (portrait) |
95
+ | tablet | 640px | phones (landscape), small tablets |
96
+ | desktop | 1024px | laptops, desktops |
97
+ | wide | 1280px | large monitors |
98
+
99
+ ### Mobile-first Rules
100
+ - Start with mobile layout, add complexity for larger screens
101
+ - Touch targets: minimum 44×44px
102
+ - No hover-dependent functionality on mobile
103
+ - Single-column layout on mobile, multi-column on desktop
104
+ - Bottom navigation on mobile, top/side navigation on desktop
105
+
106
+ ## Accessibility (WCAG 2.1 AA)
107
+
108
+ ### Color Contrast
109
+ - Body text: 4.5:1 ratio minimum
110
+ - Large text (≥24px or bold ≥18.5px): 3:1 ratio minimum
111
+ - UI controls (borders, icons): 3:1 ratio minimum
112
+
113
+ ### Keyboard
114
+ - Every interactive element reachable via Tab
115
+ - Focus order matches visual order
116
+ - Escape closes modals/drawers
117
+ - Enter/Space activates buttons
118
+ - Arrow keys navigate within components (tabs, menus, radio groups)
119
+
120
+ ### Screen Readers
121
+ - All images have alt text (decorative: alt="")
122
+ - Headings form a logical hierarchy (h1→h2→h3, no skipping)
123
+ - Form inputs have associated labels
124
+ - Dynamic content updates use aria-live="polite"
125
+ - Modals trap focus and have aria-modal="true"
@@ -0,0 +1,532 @@
1
+ ---
2
+ id: accessibility-complete
3
+ title: Web 无障碍完整指南
4
+ domain: frontend
5
+ category: 01-standards
6
+ difficulty: intermediate
7
+ tags: [accessibility, aria, complete, frontend, html, 屏幕阅读器优化, 属性, 概述]
8
+ quality_score: 70
9
+ last_updated: 2026-06-15
10
+ ---
11
+ # Web 无障碍完整指南
12
+
13
+ ## 概述
14
+
15
+ Web 无障碍 (Accessibility, a11y) 确保所有用户(包括视觉、听觉、运动和认知障碍用户)都能有效使用 Web 应用。WCAG 2.1 是国际公认标准,分为 A(基础)、AA(推荐)、AAA(增强)三个等级。商业项目至少需达到 WCAG 2.1 AA 标准。
16
+
17
+ ### 四大原则 (POUR)
18
+
19
+ 1. **可感知 (Perceivable)**: 信息必须以用户可感知的方式呈现
20
+ 2. **可操作 (Operable)**: UI 组件和导航必须可操作
21
+ 3. **可理解 (Understandable)**: 信息和操作必须可理解
22
+ 4. **健壮性 (Robust)**: 内容必须足够健壮,能被各种技术(包括辅助技术)解析
23
+
24
+ ---
25
+
26
+ ## 语义化 HTML
27
+
28
+ ### 正确使用 HTML 元素
29
+
30
+ ```html
31
+ <!-- 正确:语义化结构 -->
32
+ <header>
33
+ <nav aria-label="主导航">
34
+ <ul>
35
+ <li><a href="/">首页</a></li>
36
+ <li><a href="/products" aria-current="page">产品</a></li>
37
+ </ul>
38
+ </nav>
39
+ </header>
40
+
41
+ <main>
42
+ <h1>产品列表</h1>
43
+ <section aria-labelledby="featured-heading">
44
+ <h2 id="featured-heading">精选产品</h2>
45
+ <article>
46
+ <h3>产品名称</h3>
47
+ <p>产品描述...</p>
48
+ </article>
49
+ </section>
50
+ </main>
51
+
52
+ <aside aria-label="侧边栏">
53
+ <h2>相关推荐</h2>
54
+ </aside>
55
+
56
+ <footer>
57
+ <p>&copy; 2026 Company</p>
58
+ </footer>
59
+ ```
60
+
61
+ ```html
62
+ <!-- 错误:div 堆砌,无语义 -->
63
+ <div class="header">
64
+ <div class="nav">
65
+ <div class="link" onclick="goto('/')">首页</div>
66
+ </div>
67
+ </div>
68
+ <div class="content">
69
+ <div class="title">产品列表</div>
70
+ </div>
71
+ ```
72
+
73
+ ### 标题层级
74
+
75
+ ```html
76
+ <!-- 正确:标题层级有序 -->
77
+ <h1>页面主标题</h1>
78
+ <h2>第一节</h2>
79
+ <h3>子节</h3>
80
+ <h2>第二节</h2>
81
+
82
+ <!-- 错误:跳过层级 -->
83
+ <h1>标题</h1>
84
+ <h3>直接到 h3,跳过了 h2</h3>
85
+ ```
86
+
87
+ ---
88
+
89
+ ## ARIA 属性
90
+
91
+ ### 常用 ARIA 角色和属性
92
+
93
+ ```html
94
+ <!-- 自定义按钮 -->
95
+ <div role="button" tabindex="0"
96
+ aria-pressed="false"
97
+ onkeydown="handleKeyDown(event)"
98
+ onclick="toggle()">
99
+ 切换主题
100
+ </div>
101
+
102
+ <!-- 更好的做法:直接使用 button -->
103
+ <button aria-pressed="false" onclick="toggle()">切换主题</button>
104
+ ```
105
+
106
+ ### ARIA Live Regions
107
+
108
+ ```html
109
+ <!-- 动态内容通知屏幕阅读器 -->
110
+ <div aria-live="polite" aria-atomic="true">
111
+ <!-- 内容变化时自动播报 -->
112
+ </div>
113
+
114
+ <!-- 紧急通知 -->
115
+ <div role="alert" aria-live="assertive">
116
+ 表单提交失败:邮箱格式不正确
117
+ </div>
118
+
119
+ <!-- 状态消息 -->
120
+ <div role="status" aria-live="polite">
121
+ 已加载 50 条结果
122
+ </div>
123
+ ```
124
+
125
+ ### 表单无障碍
126
+
127
+ ```html
128
+ <form>
129
+ <div>
130
+ <label for="email">邮箱地址 <span aria-hidden="true">*</span></label>
131
+ <input
132
+ id="email"
133
+ type="email"
134
+ required
135
+ aria-required="true"
136
+ aria-describedby="email-hint email-error"
137
+ aria-invalid="true"
138
+ />
139
+ <p id="email-hint" class="hint">请输入您的工作邮箱</p>
140
+ <p id="email-error" class="error" role="alert">
141
+ 请输入有效的邮箱地址
142
+ </p>
143
+ </div>
144
+
145
+ <fieldset>
146
+ <legend>通知偏好</legend>
147
+ <label>
148
+ <input type="radio" name="notify" value="email" /> 邮件通知
149
+ </label>
150
+ <label>
151
+ <input type="radio" name="notify" value="sms" /> 短信通知
152
+ </label>
153
+ </fieldset>
154
+
155
+ <button type="submit">提交</button>
156
+ </form>
157
+ ```
158
+
159
+ ### 对话框
160
+
161
+ ```tsx
162
+ // React 无障碍对话框
163
+ function Dialog({ isOpen, onClose, title, children }) {
164
+ const titleId = useId();
165
+
166
+ return isOpen ? (
167
+ <div
168
+ role="dialog"
169
+ aria-modal="true"
170
+ aria-labelledby={titleId}
171
+ onKeyDown={(e) => e.key === "Escape" && onClose()}
172
+ >
173
+ <h2 id={titleId}>{title}</h2>
174
+ <div>{children}</div>
175
+ <button onClick={onClose}>关闭</button>
176
+ </div>
177
+ ) : null;
178
+ }
179
+ ```
180
+
181
+ ---
182
+
183
+ ## 键盘导航
184
+
185
+ ### Tab 顺序管理
186
+
187
+ ```tsx
188
+ // 焦点陷阱 - 模态框内循环 Tab
189
+ function useFocusTrap(ref: RefObject<HTMLElement>) {
190
+ useEffect(() => {
191
+ const element = ref.current;
192
+ if (!element) return;
193
+
194
+ const focusableElements = element.querySelectorAll(
195
+ 'button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])'
196
+ );
197
+ const firstElement = focusableElements[0] as HTMLElement;
198
+ const lastElement = focusableElements[focusableElements.length - 1] as HTMLElement;
199
+
200
+ function handleKeyDown(e: KeyboardEvent) {
201
+ if (e.key !== "Tab") return;
202
+ if (e.shiftKey) {
203
+ if (document.activeElement === firstElement) {
204
+ e.preventDefault();
205
+ lastElement.focus();
206
+ }
207
+ } else {
208
+ if (document.activeElement === lastElement) {
209
+ e.preventDefault();
210
+ firstElement.focus();
211
+ }
212
+ }
213
+ }
214
+
215
+ element.addEventListener("keydown", handleKeyDown);
216
+ firstElement?.focus();
217
+ return () => element.removeEventListener("keydown", handleKeyDown);
218
+ }, [ref]);
219
+ }
220
+ ```
221
+
222
+ ### 跳过导航链接
223
+
224
+ ```html
225
+ <body>
226
+ <a href="#main-content" class="skip-link">跳到主要内容</a>
227
+ <header><!-- 导航 --></header>
228
+ <main id="main-content" tabindex="-1">
229
+ <!-- 主要内容 -->
230
+ </main>
231
+ </body>
232
+
233
+ <style>
234
+ .skip-link {
235
+ position: absolute;
236
+ top: -40px;
237
+ left: 0;
238
+ padding: 8px 16px;
239
+ background: #000;
240
+ color: #fff;
241
+ z-index: 100;
242
+ transition: top 0.2s;
243
+ }
244
+ .skip-link:focus {
245
+ top: 0;
246
+ }
247
+ </style>
248
+ ```
249
+
250
+ ### 自定义组件键盘交互
251
+
252
+ ```tsx
253
+ // 下拉菜单键盘导航
254
+ function DropdownMenu({ items }: { items: MenuItem[] }) {
255
+ const [isOpen, setIsOpen] = useState(false);
256
+ const [activeIndex, setActiveIndex] = useState(-1);
257
+
258
+ function handleKeyDown(e: KeyboardEvent) {
259
+ switch (e.key) {
260
+ case "ArrowDown":
261
+ e.preventDefault();
262
+ setActiveIndex(i => Math.min(i + 1, items.length - 1));
263
+ break;
264
+ case "ArrowUp":
265
+ e.preventDefault();
266
+ setActiveIndex(i => Math.max(i - 1, 0));
267
+ break;
268
+ case "Enter":
269
+ case " ":
270
+ e.preventDefault();
271
+ if (activeIndex >= 0) items[activeIndex].action();
272
+ setIsOpen(false);
273
+ break;
274
+ case "Escape":
275
+ setIsOpen(false);
276
+ break;
277
+ case "Home":
278
+ e.preventDefault();
279
+ setActiveIndex(0);
280
+ break;
281
+ case "End":
282
+ e.preventDefault();
283
+ setActiveIndex(items.length - 1);
284
+ break;
285
+ }
286
+ }
287
+
288
+ return (
289
+ <div onKeyDown={handleKeyDown}>
290
+ <button
291
+ aria-haspopup="true"
292
+ aria-expanded={isOpen}
293
+ onClick={() => setIsOpen(!isOpen)}
294
+ >
295
+ 菜单
296
+ </button>
297
+ {isOpen && (
298
+ <ul role="menu">
299
+ {items.map((item, index) => (
300
+ <li
301
+ key={item.id}
302
+ role="menuitem"
303
+ tabIndex={index === activeIndex ? 0 : -1}
304
+ aria-selected={index === activeIndex}
305
+ >
306
+ {item.label}
307
+ </li>
308
+ ))}
309
+ </ul>
310
+ )}
311
+ </div>
312
+ );
313
+ }
314
+ ```
315
+
316
+ ---
317
+
318
+ ## 屏幕阅读器优化
319
+
320
+ ### 隐藏装饰性内容
321
+
322
+ ```html
323
+ <!-- 装饰性图片 -->
324
+ <img src="/decorative.svg" alt="" aria-hidden="true" />
325
+
326
+ <!-- 仅屏幕阅读器可见 -->
327
+ <span class="sr-only">当前购物车有 3 件商品</span>
328
+
329
+ <style>
330
+ .sr-only {
331
+ position: absolute;
332
+ width: 1px;
333
+ height: 1px;
334
+ padding: 0;
335
+ margin: -1px;
336
+ overflow: hidden;
337
+ clip: rect(0, 0, 0, 0);
338
+ white-space: nowrap;
339
+ border-width: 0;
340
+ }
341
+ </style>
342
+ ```
343
+
344
+ ### 图标按钮
345
+
346
+ ```html
347
+ <!-- 仅图标按钮必须有标签 -->
348
+ <button aria-label="关闭对话框">
349
+ <svg aria-hidden="true"><!-- X icon --></svg>
350
+ </button>
351
+
352
+ <!-- 图标 + 文字 -->
353
+ <button>
354
+ <svg aria-hidden="true"><!-- icon --></svg>
355
+ <span>保存</span>
356
+ </button>
357
+ ```
358
+
359
+ ### 表格无障碍
360
+
361
+ ```html
362
+ <table>
363
+ <caption>2026 年第一季度销售数据</caption>
364
+ <thead>
365
+ <tr>
366
+ <th scope="col">月份</th>
367
+ <th scope="col">销售额</th>
368
+ <th scope="col">增长率</th>
369
+ </tr>
370
+ </thead>
371
+ <tbody>
372
+ <tr>
373
+ <th scope="row">1 月</th>
374
+ <td>¥120,000</td>
375
+ <td>+15%</td>
376
+ </tr>
377
+ </tbody>
378
+ </table>
379
+ ```
380
+
381
+ ---
382
+
383
+ ## 颜色与对比度
384
+
385
+ ### WCAG 对比度要求
386
+
387
+ | 文本类型 | AA 标准 | AAA 标准 |
388
+ |----------|---------|----------|
389
+ | 正文 (< 18px) | 4.5:1 | 7:1 |
390
+ | 大文本 (>= 18px 或 14px bold) | 3:1 | 4.5:1 |
391
+ | UI 组件边界 | 3:1 | - |
392
+
393
+ ```css
394
+ /* 不仅依赖颜色传达信息 */
395
+ /* 错误:仅用红色表示错误 */
396
+ .error { color: red; }
397
+
398
+ /* 正确:颜色 + 图标 + 文字 */
399
+ .error {
400
+ color: #DC2626;
401
+ border-left: 3px solid #DC2626;
402
+ padding-left: 12px;
403
+ }
404
+ .error::before {
405
+ content: "⚠ ";
406
+ }
407
+ ```
408
+
409
+ ---
410
+
411
+ ## 响应式无障碍
412
+
413
+ ```css
414
+ /* 缩放到 200% 仍可用 */
415
+ html {
416
+ font-size: 100%; /* 尊重用户字体设置 */
417
+ }
418
+
419
+ body {
420
+ font-size: 1rem; /* 使用 rem,不用 px */
421
+ line-height: 1.5; /* 最低 1.5 */
422
+ }
423
+
424
+ /* 减少动画(尊重用户偏好) */
425
+ @media (prefers-reduced-motion: reduce) {
426
+ * {
427
+ animation-duration: 0.01ms !important;
428
+ transition-duration: 0.01ms !important;
429
+ }
430
+ }
431
+
432
+ /* 高对比度模式 */
433
+ @media (prefers-contrast: high) {
434
+ :root {
435
+ --border-color: #000;
436
+ --text-color: #000;
437
+ --bg-color: #fff;
438
+ }
439
+ }
440
+
441
+ /* 触摸目标最小 44x44px */
442
+ button, a, input[type="checkbox"], input[type="radio"] {
443
+ min-width: 44px;
444
+ min-height: 44px;
445
+ }
446
+ ```
447
+
448
+ ---
449
+
450
+ ## 测试工具
451
+
452
+ ### 自动化工具
453
+
454
+ | 工具 | 类型 | 覆盖率 | 用途 |
455
+ |------|------|--------|------|
456
+ | axe-core | 代码库 | ~57% | CI 集成 |
457
+ | Lighthouse | 浏览器 | ~30% | 快速审计 |
458
+ | pa11y | CLI | ~40% | CI 流水线 |
459
+ | jest-axe | 测试 | ~57% | 单元测试 |
460
+ | Playwright a11y | E2E | ~57% | E2E 测试 |
461
+
462
+ ### jest-axe 测试示例
463
+
464
+ ```typescript
465
+ import { render } from "@testing-library/react";
466
+ import { axe, toHaveNoViolations } from "jest-axe";
467
+
468
+ expect.extend(toHaveNoViolations);
469
+
470
+ test("表单组件无 a11y 违规", async () => {
471
+ const { container } = render(<LoginForm />);
472
+ const results = await axe(container);
473
+ expect(results).toHaveNoViolations();
474
+ });
475
+ ```
476
+
477
+ ### Playwright 无障碍测试
478
+
479
+ ```typescript
480
+ import { test, expect } from "@playwright/test";
481
+ import AxeBuilder from "@axe-core/playwright";
482
+
483
+ test("首页无障碍扫描", async ({ page }) => {
484
+ await page.goto("/");
485
+ const results = await new AxeBuilder({ page })
486
+ .withTags(["wcag2a", "wcag2aa"])
487
+ .analyze();
488
+ expect(results.violations).toEqual([]);
489
+ });
490
+ ```
491
+
492
+ ### 手动测试清单
493
+
494
+ 1. **键盘测试**: 只用键盘(Tab/Shift+Tab/Enter/Escape/方向键)完成所有操作
495
+ 2. **屏幕阅读器测试**: 用 VoiceOver (macOS) / NVDA (Windows) 浏览全页面
496
+ 3. **缩放测试**: 浏览器缩放至 200%,所有内容可见可用
497
+ 4. **色觉模拟**: 使用 Chrome DevTools 色觉缺陷模拟
498
+
499
+ ---
500
+
501
+ ## 常见反模式
502
+
503
+ | 反模式 | 影响 | 正确做法 |
504
+ |--------|------|----------|
505
+ | div 替代 button | 键盘不可用 | 使用原生 button |
506
+ | 缺少 alt 属性 | 屏幕阅读器无法理解 | 所有图片提供 alt |
507
+ | 仅依赖颜色 | 色觉障碍用户无法区分 | 颜色+图标+文字 |
508
+ | 自动播放视频/音频 | 影响屏幕阅读器用户 | 提供播放控制 |
509
+ | 时间限制操作 | 运动障碍用户无法完成 | 提供延长选项 |
510
+ | outline: none | 键盘焦点不可见 | 自定义 :focus-visible 样式 |
511
+
512
+ ---
513
+
514
+ ## Agent Checklist
515
+
516
+ 在 AI 编码流水线中实现 Web 无障碍时,必须逐项检查:
517
+
518
+ - [ ] 使用语义化 HTML 元素(header/nav/main/section/article/footer)
519
+ - [ ] 标题层级有序(h1-h6 不跳级)
520
+ - [ ] 所有交互元素键盘可达(Tab/Enter/Escape)
521
+ - [ ] 所有图片提供 alt 属性(装饰性图片 alt="")
522
+ - [ ] 表单控件关联 label(for/id 或嵌套)
523
+ - [ ] 错误提示使用 aria-invalid + aria-describedby
524
+ - [ ] 对比度达到 WCAG 2.1 AA(正文 4.5:1,大文本 3:1)
525
+ - [ ] 不仅依赖颜色传达信息(配合图标/文字/边框)
526
+ - [ ] 模态框有焦点陷阱和 Escape 关闭
527
+ - [ ] 提供跳过导航链接
528
+ - [ ] 动态内容使用 aria-live 通知
529
+ - [ ] 尊重 prefers-reduced-motion 和 prefers-contrast
530
+ - [ ] 触摸目标 >= 44x44px
531
+ - [ ] CI 集成 axe-core 自动化检测
532
+ - [ ] 关键流程通过屏幕阅读器手动测试