@wazir-dev/cli 1.0.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 (629) hide show
  1. package/AGENTS.md +111 -0
  2. package/CHANGELOG.md +14 -0
  3. package/CONTRIBUTING.md +101 -0
  4. package/LICENSE +21 -0
  5. package/README.md +314 -0
  6. package/assets/composition-engine.mmd +34 -0
  7. package/assets/demo-script.sh +17 -0
  8. package/assets/logo-dark.svg +14 -0
  9. package/assets/logo.svg +14 -0
  10. package/assets/pipeline.mmd +39 -0
  11. package/assets/record-demo.sh +51 -0
  12. package/docs/README.md +51 -0
  13. package/docs/adapters/context-mode.md +60 -0
  14. package/docs/concepts/architecture.md +87 -0
  15. package/docs/concepts/artifact-model.md +60 -0
  16. package/docs/concepts/composition-engine.md +36 -0
  17. package/docs/concepts/indexing-and-recall.md +160 -0
  18. package/docs/concepts/observability.md +41 -0
  19. package/docs/concepts/roles-and-workflows.md +59 -0
  20. package/docs/concepts/terminology-policy.md +27 -0
  21. package/docs/getting-started/01-installation.md +78 -0
  22. package/docs/getting-started/02-first-run.md +102 -0
  23. package/docs/getting-started/03-adding-to-project.md +15 -0
  24. package/docs/getting-started/04-host-setup.md +15 -0
  25. package/docs/guides/ci-integration.md +15 -0
  26. package/docs/guides/creating-skills.md +15 -0
  27. package/docs/guides/expertise-module-authoring.md +15 -0
  28. package/docs/guides/hook-development.md +15 -0
  29. package/docs/guides/memory-and-learnings.md +34 -0
  30. package/docs/guides/multi-host-export.md +15 -0
  31. package/docs/guides/troubleshooting.md +101 -0
  32. package/docs/guides/writing-custom-roles.md +15 -0
  33. package/docs/plans/2026-03-15-cli-pipeline-integration-design.md +592 -0
  34. package/docs/plans/2026-03-15-cli-pipeline-integration-plan.md +598 -0
  35. package/docs/plans/2026-03-15-docs-enforcement-plan.md +238 -0
  36. package/docs/readmes/INDEX.md +99 -0
  37. package/docs/readmes/features/expertise/README.md +171 -0
  38. package/docs/readmes/features/exports/README.md +222 -0
  39. package/docs/readmes/features/hooks/README.md +103 -0
  40. package/docs/readmes/features/hooks/loop-cap-guard.md +133 -0
  41. package/docs/readmes/features/hooks/post-tool-capture.md +121 -0
  42. package/docs/readmes/features/hooks/post-tool-lint.md +130 -0
  43. package/docs/readmes/features/hooks/pre-compact-summary.md +122 -0
  44. package/docs/readmes/features/hooks/pre-tool-capture-route.md +100 -0
  45. package/docs/readmes/features/hooks/protected-path-write-guard.md +128 -0
  46. package/docs/readmes/features/hooks/session-start.md +119 -0
  47. package/docs/readmes/features/hooks/stop-handoff-harvest.md +125 -0
  48. package/docs/readmes/features/roles/README.md +157 -0
  49. package/docs/readmes/features/roles/clarifier.md +152 -0
  50. package/docs/readmes/features/roles/content-author.md +190 -0
  51. package/docs/readmes/features/roles/designer.md +193 -0
  52. package/docs/readmes/features/roles/executor.md +184 -0
  53. package/docs/readmes/features/roles/learner.md +210 -0
  54. package/docs/readmes/features/roles/planner.md +182 -0
  55. package/docs/readmes/features/roles/researcher.md +164 -0
  56. package/docs/readmes/features/roles/reviewer.md +184 -0
  57. package/docs/readmes/features/roles/specifier.md +162 -0
  58. package/docs/readmes/features/roles/verifier.md +215 -0
  59. package/docs/readmes/features/schemas/README.md +178 -0
  60. package/docs/readmes/features/skills/README.md +63 -0
  61. package/docs/readmes/features/skills/brainstorming.md +96 -0
  62. package/docs/readmes/features/skills/debugging.md +148 -0
  63. package/docs/readmes/features/skills/design.md +120 -0
  64. package/docs/readmes/features/skills/prepare-next.md +109 -0
  65. package/docs/readmes/features/skills/run-audit.md +159 -0
  66. package/docs/readmes/features/skills/scan-project.md +109 -0
  67. package/docs/readmes/features/skills/self-audit.md +176 -0
  68. package/docs/readmes/features/skills/tdd.md +137 -0
  69. package/docs/readmes/features/skills/using-skills.md +92 -0
  70. package/docs/readmes/features/skills/verification.md +120 -0
  71. package/docs/readmes/features/skills/writing-plans.md +104 -0
  72. package/docs/readmes/features/tooling/README.md +320 -0
  73. package/docs/readmes/features/workflows/README.md +186 -0
  74. package/docs/readmes/features/workflows/author.md +181 -0
  75. package/docs/readmes/features/workflows/clarify.md +154 -0
  76. package/docs/readmes/features/workflows/design-review.md +171 -0
  77. package/docs/readmes/features/workflows/design.md +169 -0
  78. package/docs/readmes/features/workflows/discover.md +162 -0
  79. package/docs/readmes/features/workflows/execute.md +173 -0
  80. package/docs/readmes/features/workflows/learn.md +167 -0
  81. package/docs/readmes/features/workflows/plan-review.md +165 -0
  82. package/docs/readmes/features/workflows/plan.md +170 -0
  83. package/docs/readmes/features/workflows/prepare-next.md +167 -0
  84. package/docs/readmes/features/workflows/review.md +169 -0
  85. package/docs/readmes/features/workflows/run-audit.md +191 -0
  86. package/docs/readmes/features/workflows/spec-challenge.md +159 -0
  87. package/docs/readmes/features/workflows/specify.md +160 -0
  88. package/docs/readmes/features/workflows/verify.md +177 -0
  89. package/docs/readmes/packages/README.md +50 -0
  90. package/docs/readmes/packages/ajv.md +117 -0
  91. package/docs/readmes/packages/context-mode.md +118 -0
  92. package/docs/readmes/packages/gray-matter.md +116 -0
  93. package/docs/readmes/packages/node-test.md +137 -0
  94. package/docs/readmes/packages/yaml.md +112 -0
  95. package/docs/reference/configuration-reference.md +159 -0
  96. package/docs/reference/expertise-index.md +52 -0
  97. package/docs/reference/git-flow.md +43 -0
  98. package/docs/reference/hooks.md +87 -0
  99. package/docs/reference/host-exports.md +50 -0
  100. package/docs/reference/launch-checklist.md +172 -0
  101. package/docs/reference/marketplace-listings.md +76 -0
  102. package/docs/reference/release-process.md +34 -0
  103. package/docs/reference/roles-reference.md +77 -0
  104. package/docs/reference/skills.md +33 -0
  105. package/docs/reference/templates.md +29 -0
  106. package/docs/reference/tooling-cli.md +94 -0
  107. package/docs/truth-claims.yaml +222 -0
  108. package/expertise/PROGRESS.md +63 -0
  109. package/expertise/README.md +18 -0
  110. package/expertise/antipatterns/PROGRESS.md +56 -0
  111. package/expertise/antipatterns/backend/api-design-antipatterns.md +1271 -0
  112. package/expertise/antipatterns/backend/auth-antipatterns.md +1195 -0
  113. package/expertise/antipatterns/backend/caching-antipatterns.md +622 -0
  114. package/expertise/antipatterns/backend/database-antipatterns.md +1038 -0
  115. package/expertise/antipatterns/backend/index.md +24 -0
  116. package/expertise/antipatterns/backend/microservices-antipatterns.md +850 -0
  117. package/expertise/antipatterns/code/architecture-antipatterns.md +919 -0
  118. package/expertise/antipatterns/code/async-antipatterns.md +622 -0
  119. package/expertise/antipatterns/code/code-smells.md +1186 -0
  120. package/expertise/antipatterns/code/dependency-antipatterns.md +1209 -0
  121. package/expertise/antipatterns/code/error-handling-antipatterns.md +1360 -0
  122. package/expertise/antipatterns/code/index.md +27 -0
  123. package/expertise/antipatterns/code/naming-and-abstraction.md +1118 -0
  124. package/expertise/antipatterns/code/state-management-antipatterns.md +1076 -0
  125. package/expertise/antipatterns/code/testing-antipatterns.md +1053 -0
  126. package/expertise/antipatterns/design/accessibility-antipatterns.md +1136 -0
  127. package/expertise/antipatterns/design/dark-patterns.md +1121 -0
  128. package/expertise/antipatterns/design/index.md +22 -0
  129. package/expertise/antipatterns/design/ui-antipatterns.md +1202 -0
  130. package/expertise/antipatterns/design/ux-antipatterns.md +680 -0
  131. package/expertise/antipatterns/frontend/css-layout-antipatterns.md +691 -0
  132. package/expertise/antipatterns/frontend/flutter-antipatterns.md +1827 -0
  133. package/expertise/antipatterns/frontend/index.md +23 -0
  134. package/expertise/antipatterns/frontend/mobile-antipatterns.md +573 -0
  135. package/expertise/antipatterns/frontend/react-antipatterns.md +1128 -0
  136. package/expertise/antipatterns/frontend/spa-antipatterns.md +1235 -0
  137. package/expertise/antipatterns/index.md +31 -0
  138. package/expertise/antipatterns/performance/index.md +20 -0
  139. package/expertise/antipatterns/performance/performance-antipatterns.md +1013 -0
  140. package/expertise/antipatterns/performance/premature-optimization.md +623 -0
  141. package/expertise/antipatterns/performance/scaling-antipatterns.md +785 -0
  142. package/expertise/antipatterns/process/ai-coding-antipatterns.md +853 -0
  143. package/expertise/antipatterns/process/code-review-antipatterns.md +656 -0
  144. package/expertise/antipatterns/process/deployment-antipatterns.md +920 -0
  145. package/expertise/antipatterns/process/index.md +23 -0
  146. package/expertise/antipatterns/process/technical-debt-antipatterns.md +647 -0
  147. package/expertise/antipatterns/security/index.md +20 -0
  148. package/expertise/antipatterns/security/secrets-antipatterns.md +849 -0
  149. package/expertise/antipatterns/security/security-theater.md +843 -0
  150. package/expertise/antipatterns/security/vulnerability-patterns.md +801 -0
  151. package/expertise/architecture/PROGRESS.md +70 -0
  152. package/expertise/architecture/data/caching-architecture.md +671 -0
  153. package/expertise/architecture/data/data-consistency.md +574 -0
  154. package/expertise/architecture/data/data-modeling.md +536 -0
  155. package/expertise/architecture/data/event-streams-and-queues.md +634 -0
  156. package/expertise/architecture/data/index.md +25 -0
  157. package/expertise/architecture/data/search-architecture.md +663 -0
  158. package/expertise/architecture/data/sql-vs-nosql.md +708 -0
  159. package/expertise/architecture/decisions/architecture-decision-records.md +640 -0
  160. package/expertise/architecture/decisions/build-vs-buy.md +616 -0
  161. package/expertise/architecture/decisions/index.md +23 -0
  162. package/expertise/architecture/decisions/monolith-to-microservices.md +790 -0
  163. package/expertise/architecture/decisions/technology-selection.md +616 -0
  164. package/expertise/architecture/distributed/cap-theorem-and-tradeoffs.md +800 -0
  165. package/expertise/architecture/distributed/circuit-breaker-bulkhead.md +741 -0
  166. package/expertise/architecture/distributed/consensus-and-coordination.md +796 -0
  167. package/expertise/architecture/distributed/distributed-systems-fundamentals.md +564 -0
  168. package/expertise/architecture/distributed/idempotency-and-retry.md +796 -0
  169. package/expertise/architecture/distributed/index.md +25 -0
  170. package/expertise/architecture/distributed/saga-pattern.md +797 -0
  171. package/expertise/architecture/foundations/architectural-thinking.md +460 -0
  172. package/expertise/architecture/foundations/coupling-and-cohesion.md +770 -0
  173. package/expertise/architecture/foundations/design-principles-solid.md +649 -0
  174. package/expertise/architecture/foundations/domain-driven-design.md +719 -0
  175. package/expertise/architecture/foundations/index.md +25 -0
  176. package/expertise/architecture/foundations/separation-of-concerns.md +472 -0
  177. package/expertise/architecture/foundations/twelve-factor-app.md +797 -0
  178. package/expertise/architecture/index.md +34 -0
  179. package/expertise/architecture/integration/api-design-graphql.md +638 -0
  180. package/expertise/architecture/integration/api-design-grpc.md +804 -0
  181. package/expertise/architecture/integration/api-design-rest.md +892 -0
  182. package/expertise/architecture/integration/index.md +25 -0
  183. package/expertise/architecture/integration/third-party-integration.md +795 -0
  184. package/expertise/architecture/integration/webhooks-and-callbacks.md +1152 -0
  185. package/expertise/architecture/integration/websockets-realtime.md +791 -0
  186. package/expertise/architecture/mobile-architecture/index.md +22 -0
  187. package/expertise/architecture/mobile-architecture/mobile-app-architecture.md +780 -0
  188. package/expertise/architecture/mobile-architecture/mobile-backend-for-frontend.md +670 -0
  189. package/expertise/architecture/mobile-architecture/offline-first.md +719 -0
  190. package/expertise/architecture/mobile-architecture/push-and-sync.md +782 -0
  191. package/expertise/architecture/patterns/cqrs-event-sourcing.md +717 -0
  192. package/expertise/architecture/patterns/event-driven.md +797 -0
  193. package/expertise/architecture/patterns/hexagonal-clean-architecture.md +870 -0
  194. package/expertise/architecture/patterns/index.md +27 -0
  195. package/expertise/architecture/patterns/layered-architecture.md +736 -0
  196. package/expertise/architecture/patterns/microservices.md +753 -0
  197. package/expertise/architecture/patterns/modular-monolith.md +692 -0
  198. package/expertise/architecture/patterns/monolith.md +626 -0
  199. package/expertise/architecture/patterns/plugin-architecture.md +735 -0
  200. package/expertise/architecture/patterns/serverless.md +780 -0
  201. package/expertise/architecture/scaling/database-scaling.md +615 -0
  202. package/expertise/architecture/scaling/feature-flags-and-rollouts.md +757 -0
  203. package/expertise/architecture/scaling/horizontal-vs-vertical.md +606 -0
  204. package/expertise/architecture/scaling/index.md +24 -0
  205. package/expertise/architecture/scaling/multi-tenancy.md +800 -0
  206. package/expertise/architecture/scaling/stateless-design.md +787 -0
  207. package/expertise/backend/embedded-firmware.md +625 -0
  208. package/expertise/backend/go.md +853 -0
  209. package/expertise/backend/index.md +24 -0
  210. package/expertise/backend/java-spring.md +448 -0
  211. package/expertise/backend/node-typescript.md +625 -0
  212. package/expertise/backend/python-fastapi.md +724 -0
  213. package/expertise/backend/rust.md +458 -0
  214. package/expertise/backend/solidity.md +711 -0
  215. package/expertise/composition-map.yaml +443 -0
  216. package/expertise/content/foundations/content-modeling.md +395 -0
  217. package/expertise/content/foundations/editorial-standards.md +449 -0
  218. package/expertise/content/foundations/index.md +24 -0
  219. package/expertise/content/foundations/microcopy.md +455 -0
  220. package/expertise/content/foundations/terminology-governance.md +509 -0
  221. package/expertise/content/index.md +34 -0
  222. package/expertise/content/patterns/accessibility-copy.md +518 -0
  223. package/expertise/content/patterns/index.md +24 -0
  224. package/expertise/content/patterns/notification-content.md +433 -0
  225. package/expertise/content/patterns/sample-content.md +486 -0
  226. package/expertise/content/patterns/state-copy.md +439 -0
  227. package/expertise/design/PROGRESS.md +58 -0
  228. package/expertise/design/disciplines/dark-mode-theming.md +577 -0
  229. package/expertise/design/disciplines/design-systems.md +595 -0
  230. package/expertise/design/disciplines/index.md +25 -0
  231. package/expertise/design/disciplines/information-architecture.md +800 -0
  232. package/expertise/design/disciplines/interaction-design.md +788 -0
  233. package/expertise/design/disciplines/responsive-design.md +552 -0
  234. package/expertise/design/disciplines/usability-testing.md +516 -0
  235. package/expertise/design/disciplines/user-research.md +792 -0
  236. package/expertise/design/foundations/accessibility-design.md +796 -0
  237. package/expertise/design/foundations/color-theory.md +797 -0
  238. package/expertise/design/foundations/iconography.md +795 -0
  239. package/expertise/design/foundations/index.md +26 -0
  240. package/expertise/design/foundations/motion-and-animation.md +653 -0
  241. package/expertise/design/foundations/rtl-design.md +585 -0
  242. package/expertise/design/foundations/spacing-and-layout.md +607 -0
  243. package/expertise/design/foundations/typography.md +800 -0
  244. package/expertise/design/foundations/visual-hierarchy.md +761 -0
  245. package/expertise/design/index.md +32 -0
  246. package/expertise/design/patterns/authentication-flows.md +474 -0
  247. package/expertise/design/patterns/content-consumption.md +789 -0
  248. package/expertise/design/patterns/data-display.md +618 -0
  249. package/expertise/design/patterns/e-commerce.md +1494 -0
  250. package/expertise/design/patterns/feedback-and-states.md +642 -0
  251. package/expertise/design/patterns/forms-and-input.md +819 -0
  252. package/expertise/design/patterns/gamification.md +801 -0
  253. package/expertise/design/patterns/index.md +31 -0
  254. package/expertise/design/patterns/microinteractions.md +449 -0
  255. package/expertise/design/patterns/navigation.md +800 -0
  256. package/expertise/design/patterns/notifications.md +705 -0
  257. package/expertise/design/patterns/onboarding.md +700 -0
  258. package/expertise/design/patterns/search-and-filter.md +601 -0
  259. package/expertise/design/patterns/settings-and-preferences.md +768 -0
  260. package/expertise/design/patterns/social-and-community.md +748 -0
  261. package/expertise/design/platforms/desktop-native.md +612 -0
  262. package/expertise/design/platforms/index.md +25 -0
  263. package/expertise/design/platforms/mobile-android.md +825 -0
  264. package/expertise/design/platforms/mobile-cross-platform.md +983 -0
  265. package/expertise/design/platforms/mobile-ios.md +699 -0
  266. package/expertise/design/platforms/tablet.md +794 -0
  267. package/expertise/design/platforms/web-dashboard.md +790 -0
  268. package/expertise/design/platforms/web-responsive.md +550 -0
  269. package/expertise/design/psychology/behavioral-nudges.md +449 -0
  270. package/expertise/design/psychology/cognitive-load.md +1191 -0
  271. package/expertise/design/psychology/error-psychology.md +778 -0
  272. package/expertise/design/psychology/index.md +22 -0
  273. package/expertise/design/psychology/persuasive-design.md +736 -0
  274. package/expertise/design/psychology/user-mental-models.md +623 -0
  275. package/expertise/design/tooling/open-pencil.md +266 -0
  276. package/expertise/frontend/angular.md +1073 -0
  277. package/expertise/frontend/desktop-electron.md +546 -0
  278. package/expertise/frontend/flutter.md +782 -0
  279. package/expertise/frontend/index.md +27 -0
  280. package/expertise/frontend/native-android.md +409 -0
  281. package/expertise/frontend/native-ios.md +490 -0
  282. package/expertise/frontend/react-native.md +1160 -0
  283. package/expertise/frontend/react.md +808 -0
  284. package/expertise/frontend/vue.md +1089 -0
  285. package/expertise/humanize/domain-rules-code.md +79 -0
  286. package/expertise/humanize/domain-rules-content.md +67 -0
  287. package/expertise/humanize/domain-rules-technical-docs.md +56 -0
  288. package/expertise/humanize/index.md +35 -0
  289. package/expertise/humanize/self-audit-checklist.md +87 -0
  290. package/expertise/humanize/sentence-patterns.md +218 -0
  291. package/expertise/humanize/vocabulary-blacklist.md +105 -0
  292. package/expertise/i18n/PROGRESS.md +65 -0
  293. package/expertise/i18n/advanced/accessibility-and-i18n.md +28 -0
  294. package/expertise/i18n/advanced/bidirectional-text-algorithm.md +38 -0
  295. package/expertise/i18n/advanced/complex-scripts.md +30 -0
  296. package/expertise/i18n/advanced/performance-and-i18n.md +27 -0
  297. package/expertise/i18n/advanced/testing-i18n.md +28 -0
  298. package/expertise/i18n/content/content-adaptation.md +23 -0
  299. package/expertise/i18n/content/locale-specific-formatting.md +23 -0
  300. package/expertise/i18n/content/machine-translation-integration.md +28 -0
  301. package/expertise/i18n/content/translation-management.md +29 -0
  302. package/expertise/i18n/foundations/date-time-calendars.md +67 -0
  303. package/expertise/i18n/foundations/i18n-architecture.md +272 -0
  304. package/expertise/i18n/foundations/locale-and-language-tags.md +79 -0
  305. package/expertise/i18n/foundations/numbers-currency-units.md +61 -0
  306. package/expertise/i18n/foundations/pluralization-and-gender.md +109 -0
  307. package/expertise/i18n/foundations/string-externalization.md +236 -0
  308. package/expertise/i18n/foundations/text-direction-bidi.md +241 -0
  309. package/expertise/i18n/foundations/unicode-and-encoding.md +86 -0
  310. package/expertise/i18n/index.md +38 -0
  311. package/expertise/i18n/platform/backend-i18n.md +31 -0
  312. package/expertise/i18n/platform/flutter-i18n.md +148 -0
  313. package/expertise/i18n/platform/native-android-i18n.md +36 -0
  314. package/expertise/i18n/platform/native-ios-i18n.md +36 -0
  315. package/expertise/i18n/platform/react-i18n.md +103 -0
  316. package/expertise/i18n/platform/web-css-i18n.md +81 -0
  317. package/expertise/i18n/rtl/arabic-specific.md +175 -0
  318. package/expertise/i18n/rtl/hebrew-specific.md +149 -0
  319. package/expertise/i18n/rtl/rtl-animations-and-transitions.md +111 -0
  320. package/expertise/i18n/rtl/rtl-forms-and-input.md +161 -0
  321. package/expertise/i18n/rtl/rtl-fundamentals.md +211 -0
  322. package/expertise/i18n/rtl/rtl-icons-and-images.md +181 -0
  323. package/expertise/i18n/rtl/rtl-layout-mirroring.md +252 -0
  324. package/expertise/i18n/rtl/rtl-navigation-and-gestures.md +107 -0
  325. package/expertise/i18n/rtl/rtl-testing-and-qa.md +147 -0
  326. package/expertise/i18n/rtl/rtl-typography.md +160 -0
  327. package/expertise/index.md +113 -0
  328. package/expertise/index.yaml +216 -0
  329. package/expertise/infrastructure/cloud-aws.md +597 -0
  330. package/expertise/infrastructure/cloud-gcp.md +599 -0
  331. package/expertise/infrastructure/cybersecurity.md +816 -0
  332. package/expertise/infrastructure/database-mongodb.md +447 -0
  333. package/expertise/infrastructure/database-postgres.md +400 -0
  334. package/expertise/infrastructure/devops-cicd.md +787 -0
  335. package/expertise/infrastructure/index.md +27 -0
  336. package/expertise/performance/PROGRESS.md +50 -0
  337. package/expertise/performance/backend/api-latency.md +1204 -0
  338. package/expertise/performance/backend/background-jobs.md +506 -0
  339. package/expertise/performance/backend/connection-pooling.md +1209 -0
  340. package/expertise/performance/backend/database-query-optimization.md +515 -0
  341. package/expertise/performance/backend/index.md +23 -0
  342. package/expertise/performance/backend/rate-limiting-and-throttling.md +971 -0
  343. package/expertise/performance/foundations/algorithmic-complexity.md +954 -0
  344. package/expertise/performance/foundations/caching-strategies.md +489 -0
  345. package/expertise/performance/foundations/concurrency-and-parallelism.md +847 -0
  346. package/expertise/performance/foundations/index.md +24 -0
  347. package/expertise/performance/foundations/measuring-and-profiling.md +440 -0
  348. package/expertise/performance/foundations/memory-management.md +964 -0
  349. package/expertise/performance/foundations/performance-budgets.md +1314 -0
  350. package/expertise/performance/index.md +31 -0
  351. package/expertise/performance/infrastructure/auto-scaling.md +1059 -0
  352. package/expertise/performance/infrastructure/cdn-and-edge.md +1081 -0
  353. package/expertise/performance/infrastructure/index.md +22 -0
  354. package/expertise/performance/infrastructure/load-balancing.md +1081 -0
  355. package/expertise/performance/infrastructure/observability.md +1079 -0
  356. package/expertise/performance/mobile/index.md +23 -0
  357. package/expertise/performance/mobile/mobile-animations.md +544 -0
  358. package/expertise/performance/mobile/mobile-memory-battery.md +416 -0
  359. package/expertise/performance/mobile/mobile-network.md +452 -0
  360. package/expertise/performance/mobile/mobile-rendering.md +599 -0
  361. package/expertise/performance/mobile/mobile-startup-time.md +505 -0
  362. package/expertise/performance/platform-specific/flutter-performance.md +647 -0
  363. package/expertise/performance/platform-specific/index.md +22 -0
  364. package/expertise/performance/platform-specific/node-performance.md +1307 -0
  365. package/expertise/performance/platform-specific/postgres-performance.md +1366 -0
  366. package/expertise/performance/platform-specific/react-performance.md +1403 -0
  367. package/expertise/performance/web/bundle-optimization.md +1239 -0
  368. package/expertise/performance/web/image-and-media.md +636 -0
  369. package/expertise/performance/web/index.md +24 -0
  370. package/expertise/performance/web/network-optimization.md +1133 -0
  371. package/expertise/performance/web/rendering-performance.md +1098 -0
  372. package/expertise/performance/web/ssr-and-hydration.md +918 -0
  373. package/expertise/performance/web/web-vitals.md +1374 -0
  374. package/expertise/quality/accessibility.md +985 -0
  375. package/expertise/quality/evidence-based-verification.md +499 -0
  376. package/expertise/quality/index.md +24 -0
  377. package/expertise/quality/ml-model-audit.md +614 -0
  378. package/expertise/quality/performance.md +600 -0
  379. package/expertise/quality/testing-api.md +891 -0
  380. package/expertise/quality/testing-mobile.md +496 -0
  381. package/expertise/quality/testing-web.md +849 -0
  382. package/expertise/security/PROGRESS.md +54 -0
  383. package/expertise/security/agentic-identity.md +540 -0
  384. package/expertise/security/compliance-frameworks.md +601 -0
  385. package/expertise/security/data/data-encryption.md +364 -0
  386. package/expertise/security/data/data-privacy-gdpr.md +692 -0
  387. package/expertise/security/data/database-security.md +1171 -0
  388. package/expertise/security/data/index.md +22 -0
  389. package/expertise/security/data/pii-handling.md +531 -0
  390. package/expertise/security/foundations/authentication.md +1041 -0
  391. package/expertise/security/foundations/authorization.md +603 -0
  392. package/expertise/security/foundations/cryptography.md +1001 -0
  393. package/expertise/security/foundations/index.md +25 -0
  394. package/expertise/security/foundations/owasp-top-10.md +1354 -0
  395. package/expertise/security/foundations/secrets-management.md +1217 -0
  396. package/expertise/security/foundations/secure-sdlc.md +700 -0
  397. package/expertise/security/foundations/supply-chain-security.md +698 -0
  398. package/expertise/security/index.md +31 -0
  399. package/expertise/security/infrastructure/cloud-security-aws.md +1296 -0
  400. package/expertise/security/infrastructure/cloud-security-gcp.md +1376 -0
  401. package/expertise/security/infrastructure/container-security.md +721 -0
  402. package/expertise/security/infrastructure/incident-response.md +1295 -0
  403. package/expertise/security/infrastructure/index.md +24 -0
  404. package/expertise/security/infrastructure/logging-and-monitoring.md +1618 -0
  405. package/expertise/security/infrastructure/network-security.md +1337 -0
  406. package/expertise/security/mobile/index.md +23 -0
  407. package/expertise/security/mobile/mobile-android-security.md +1218 -0
  408. package/expertise/security/mobile/mobile-binary-protection.md +1229 -0
  409. package/expertise/security/mobile/mobile-data-storage.md +1265 -0
  410. package/expertise/security/mobile/mobile-ios-security.md +1401 -0
  411. package/expertise/security/mobile/mobile-network-security.md +1520 -0
  412. package/expertise/security/smart-contract-security.md +594 -0
  413. package/expertise/security/testing/index.md +22 -0
  414. package/expertise/security/testing/penetration-testing.md +1258 -0
  415. package/expertise/security/testing/security-code-review.md +1765 -0
  416. package/expertise/security/testing/threat-modeling.md +1074 -0
  417. package/expertise/security/testing/vulnerability-scanning.md +1062 -0
  418. package/expertise/security/web/api-security.md +586 -0
  419. package/expertise/security/web/cors-and-headers.md +433 -0
  420. package/expertise/security/web/csrf.md +562 -0
  421. package/expertise/security/web/file-upload.md +1477 -0
  422. package/expertise/security/web/index.md +25 -0
  423. package/expertise/security/web/injection.md +1375 -0
  424. package/expertise/security/web/session-management.md +1101 -0
  425. package/expertise/security/web/xss.md +1158 -0
  426. package/exports/README.md +17 -0
  427. package/exports/hosts/claude/.claude/agents/clarifier.md +42 -0
  428. package/exports/hosts/claude/.claude/agents/content-author.md +63 -0
  429. package/exports/hosts/claude/.claude/agents/designer.md +55 -0
  430. package/exports/hosts/claude/.claude/agents/executor.md +55 -0
  431. package/exports/hosts/claude/.claude/agents/learner.md +51 -0
  432. package/exports/hosts/claude/.claude/agents/planner.md +53 -0
  433. package/exports/hosts/claude/.claude/agents/researcher.md +43 -0
  434. package/exports/hosts/claude/.claude/agents/reviewer.md +54 -0
  435. package/exports/hosts/claude/.claude/agents/specifier.md +47 -0
  436. package/exports/hosts/claude/.claude/agents/verifier.md +71 -0
  437. package/exports/hosts/claude/.claude/commands/author.md +42 -0
  438. package/exports/hosts/claude/.claude/commands/clarify.md +38 -0
  439. package/exports/hosts/claude/.claude/commands/design-review.md +46 -0
  440. package/exports/hosts/claude/.claude/commands/design.md +44 -0
  441. package/exports/hosts/claude/.claude/commands/discover.md +37 -0
  442. package/exports/hosts/claude/.claude/commands/execute.md +48 -0
  443. package/exports/hosts/claude/.claude/commands/learn.md +38 -0
  444. package/exports/hosts/claude/.claude/commands/plan-review.md +42 -0
  445. package/exports/hosts/claude/.claude/commands/plan.md +39 -0
  446. package/exports/hosts/claude/.claude/commands/prepare-next.md +37 -0
  447. package/exports/hosts/claude/.claude/commands/review.md +40 -0
  448. package/exports/hosts/claude/.claude/commands/run-audit.md +41 -0
  449. package/exports/hosts/claude/.claude/commands/spec-challenge.md +41 -0
  450. package/exports/hosts/claude/.claude/commands/specify.md +38 -0
  451. package/exports/hosts/claude/.claude/commands/verify.md +37 -0
  452. package/exports/hosts/claude/.claude/settings.json +34 -0
  453. package/exports/hosts/claude/CLAUDE.md +19 -0
  454. package/exports/hosts/claude/export.manifest.json +38 -0
  455. package/exports/hosts/claude/host-package.json +67 -0
  456. package/exports/hosts/codex/AGENTS.md +19 -0
  457. package/exports/hosts/codex/export.manifest.json +38 -0
  458. package/exports/hosts/codex/host-package.json +41 -0
  459. package/exports/hosts/cursor/.cursor/hooks.json +16 -0
  460. package/exports/hosts/cursor/.cursor/rules/wazir-core.mdc +19 -0
  461. package/exports/hosts/cursor/export.manifest.json +38 -0
  462. package/exports/hosts/cursor/host-package.json +42 -0
  463. package/exports/hosts/gemini/GEMINI.md +19 -0
  464. package/exports/hosts/gemini/export.manifest.json +38 -0
  465. package/exports/hosts/gemini/host-package.json +41 -0
  466. package/hooks/README.md +18 -0
  467. package/hooks/definitions/loop_cap_guard.yaml +21 -0
  468. package/hooks/definitions/post_tool_capture.yaml +24 -0
  469. package/hooks/definitions/pre_compact_summary.yaml +19 -0
  470. package/hooks/definitions/pre_tool_capture_route.yaml +19 -0
  471. package/hooks/definitions/protected_path_write_guard.yaml +19 -0
  472. package/hooks/definitions/session_start.yaml +19 -0
  473. package/hooks/definitions/stop_handoff_harvest.yaml +20 -0
  474. package/hooks/loop-cap-guard +17 -0
  475. package/hooks/post-tool-lint +36 -0
  476. package/hooks/protected-path-write-guard +17 -0
  477. package/hooks/session-start +41 -0
  478. package/llms-full.txt +2355 -0
  479. package/llms.txt +43 -0
  480. package/package.json +79 -0
  481. package/roles/README.md +20 -0
  482. package/roles/clarifier.md +42 -0
  483. package/roles/content-author.md +63 -0
  484. package/roles/designer.md +55 -0
  485. package/roles/executor.md +55 -0
  486. package/roles/learner.md +51 -0
  487. package/roles/planner.md +53 -0
  488. package/roles/researcher.md +43 -0
  489. package/roles/reviewer.md +54 -0
  490. package/roles/specifier.md +47 -0
  491. package/roles/verifier.md +71 -0
  492. package/schemas/README.md +24 -0
  493. package/schemas/accepted-learning.schema.json +20 -0
  494. package/schemas/author-artifact.schema.json +156 -0
  495. package/schemas/clarification.schema.json +19 -0
  496. package/schemas/design-artifact.schema.json +80 -0
  497. package/schemas/docs-claim.schema.json +18 -0
  498. package/schemas/export-manifest.schema.json +20 -0
  499. package/schemas/hook.schema.json +67 -0
  500. package/schemas/host-export-package.schema.json +18 -0
  501. package/schemas/implementation-plan.schema.json +19 -0
  502. package/schemas/proposed-learning.schema.json +19 -0
  503. package/schemas/research.schema.json +18 -0
  504. package/schemas/review.schema.json +29 -0
  505. package/schemas/run-manifest.schema.json +18 -0
  506. package/schemas/spec-challenge.schema.json +18 -0
  507. package/schemas/spec.schema.json +20 -0
  508. package/schemas/usage.schema.json +102 -0
  509. package/schemas/verification-proof.schema.json +29 -0
  510. package/schemas/wazir-manifest.schema.json +173 -0
  511. package/skills/README.md +40 -0
  512. package/skills/brainstorming/SKILL.md +77 -0
  513. package/skills/debugging/SKILL.md +50 -0
  514. package/skills/design/SKILL.md +61 -0
  515. package/skills/dispatching-parallel-agents/SKILL.md +128 -0
  516. package/skills/executing-plans/SKILL.md +70 -0
  517. package/skills/finishing-a-development-branch/SKILL.md +169 -0
  518. package/skills/humanize/SKILL.md +123 -0
  519. package/skills/init-pipeline/SKILL.md +124 -0
  520. package/skills/prepare-next/SKILL.md +20 -0
  521. package/skills/receiving-code-review/SKILL.md +123 -0
  522. package/skills/requesting-code-review/SKILL.md +105 -0
  523. package/skills/requesting-code-review/code-reviewer.md +108 -0
  524. package/skills/run-audit/SKILL.md +197 -0
  525. package/skills/scan-project/SKILL.md +41 -0
  526. package/skills/self-audit/SKILL.md +153 -0
  527. package/skills/subagent-driven-development/SKILL.md +154 -0
  528. package/skills/subagent-driven-development/code-quality-reviewer-prompt.md +26 -0
  529. package/skills/subagent-driven-development/implementer-prompt.md +102 -0
  530. package/skills/subagent-driven-development/spec-reviewer-prompt.md +61 -0
  531. package/skills/tdd/SKILL.md +23 -0
  532. package/skills/using-git-worktrees/SKILL.md +163 -0
  533. package/skills/using-skills/SKILL.md +95 -0
  534. package/skills/verification/SKILL.md +22 -0
  535. package/skills/wazir/SKILL.md +463 -0
  536. package/skills/writing-plans/SKILL.md +30 -0
  537. package/skills/writing-skills/SKILL.md +157 -0
  538. package/skills/writing-skills/anthropic-best-practices.md +122 -0
  539. package/skills/writing-skills/persuasion-principles.md +50 -0
  540. package/templates/README.md +20 -0
  541. package/templates/artifacts/README.md +10 -0
  542. package/templates/artifacts/accepted-learning.md +19 -0
  543. package/templates/artifacts/accepted-learning.template.json +12 -0
  544. package/templates/artifacts/author.md +74 -0
  545. package/templates/artifacts/author.template.json +19 -0
  546. package/templates/artifacts/clarification.md +21 -0
  547. package/templates/artifacts/clarification.template.json +12 -0
  548. package/templates/artifacts/execute-notes.md +19 -0
  549. package/templates/artifacts/implementation-plan.md +21 -0
  550. package/templates/artifacts/implementation-plan.template.json +11 -0
  551. package/templates/artifacts/learning-proposal.md +19 -0
  552. package/templates/artifacts/next-run-handoff.md +21 -0
  553. package/templates/artifacts/plan-review.md +19 -0
  554. package/templates/artifacts/proposed-learning.template.json +12 -0
  555. package/templates/artifacts/research.md +21 -0
  556. package/templates/artifacts/research.template.json +12 -0
  557. package/templates/artifacts/review-findings.md +19 -0
  558. package/templates/artifacts/review.template.json +11 -0
  559. package/templates/artifacts/run-manifest.template.json +8 -0
  560. package/templates/artifacts/spec-challenge.md +19 -0
  561. package/templates/artifacts/spec-challenge.template.json +11 -0
  562. package/templates/artifacts/spec.md +21 -0
  563. package/templates/artifacts/spec.template.json +12 -0
  564. package/templates/artifacts/verification-proof.md +19 -0
  565. package/templates/artifacts/verification-proof.template.json +11 -0
  566. package/templates/examples/accepted-learning.example.json +14 -0
  567. package/templates/examples/author.example.json +152 -0
  568. package/templates/examples/clarification.example.json +15 -0
  569. package/templates/examples/docs-claim.example.json +8 -0
  570. package/templates/examples/export-manifest.example.json +7 -0
  571. package/templates/examples/host-export-package.example.json +11 -0
  572. package/templates/examples/implementation-plan.example.json +17 -0
  573. package/templates/examples/proposed-learning.example.json +13 -0
  574. package/templates/examples/research.example.json +15 -0
  575. package/templates/examples/research.example.md +6 -0
  576. package/templates/examples/review.example.json +17 -0
  577. package/templates/examples/run-manifest.example.json +9 -0
  578. package/templates/examples/spec-challenge.example.json +14 -0
  579. package/templates/examples/spec.example.json +21 -0
  580. package/templates/examples/verification-proof.example.json +21 -0
  581. package/templates/examples/wazir-manifest.example.yaml +65 -0
  582. package/templates/task-definition-schema.md +99 -0
  583. package/tooling/README.md +20 -0
  584. package/tooling/src/adapters/context-mode.js +50 -0
  585. package/tooling/src/capture/command.js +376 -0
  586. package/tooling/src/capture/store.js +99 -0
  587. package/tooling/src/capture/usage.js +270 -0
  588. package/tooling/src/checks/branches.js +50 -0
  589. package/tooling/src/checks/brand-truth.js +110 -0
  590. package/tooling/src/checks/changelog.js +231 -0
  591. package/tooling/src/checks/command-registry.js +36 -0
  592. package/tooling/src/checks/commits.js +102 -0
  593. package/tooling/src/checks/docs-drift.js +103 -0
  594. package/tooling/src/checks/docs-truth.js +201 -0
  595. package/tooling/src/checks/runtime-surface.js +156 -0
  596. package/tooling/src/cli.js +116 -0
  597. package/tooling/src/command-options.js +56 -0
  598. package/tooling/src/commands/validate.js +320 -0
  599. package/tooling/src/doctor/command.js +91 -0
  600. package/tooling/src/export/command.js +77 -0
  601. package/tooling/src/export/compiler.js +498 -0
  602. package/tooling/src/guards/loop-cap-guard.js +52 -0
  603. package/tooling/src/guards/protected-path-write-guard.js +67 -0
  604. package/tooling/src/index/command.js +152 -0
  605. package/tooling/src/index/storage.js +1061 -0
  606. package/tooling/src/index/summarizers.js +261 -0
  607. package/tooling/src/loaders.js +18 -0
  608. package/tooling/src/project-root.js +22 -0
  609. package/tooling/src/recall/command.js +225 -0
  610. package/tooling/src/schema-validator.js +30 -0
  611. package/tooling/src/state-root.js +40 -0
  612. package/tooling/src/status/command.js +71 -0
  613. package/wazir.manifest.yaml +135 -0
  614. package/workflows/README.md +19 -0
  615. package/workflows/author.md +42 -0
  616. package/workflows/clarify.md +38 -0
  617. package/workflows/design-review.md +46 -0
  618. package/workflows/design.md +44 -0
  619. package/workflows/discover.md +37 -0
  620. package/workflows/execute.md +48 -0
  621. package/workflows/learn.md +38 -0
  622. package/workflows/plan-review.md +42 -0
  623. package/workflows/plan.md +39 -0
  624. package/workflows/prepare-next.md +37 -0
  625. package/workflows/review.md +40 -0
  626. package/workflows/run-audit.md +41 -0
  627. package/workflows/spec-challenge.md +41 -0
  628. package/workflows/specify.md +38 -0
  629. package/workflows/verify.md +37 -0
@@ -0,0 +1,499 @@
1
+ # Evidence-Based Verification — Expertise Module
2
+
3
+ > A verification specialist validates every quality claim with concrete, reproducible evidence before signing off. The scope spans visual proof collection via Playwright screenshots and traces, cross-device viewport testing, skeptical checklist-driven review, and integration with the 40-point QA scoring system — ensuring that no claim passes without proof and no issue escapes undetected.
4
+
5
+ ---
6
+
7
+ ## Core Philosophy
8
+
9
+ **Default to finding 3-5 issues minimum.** Software is written by humans (and agents acting on their behalf). Every implementation has rough edges — missed edge cases, viewport inconsistencies, accessibility gaps, performance regressions, or subtle logic errors. A verification pass that finds zero issues is not thorough; it is negligent.
10
+
11
+ Every quality claim must be backed by concrete evidence. The burden of proof lies with the claimant: if you assert that something works, you must show the output, the screenshot, or the log that proves it. Assertions without evidence are rejected, not downgraded.
12
+
13
+ **Automatic fail triggers on:**
14
+ - "Zero issues found" claims on any first-pass review
15
+ - Perfect first-pass scores (40/40 or 10/10 on any dimension)
16
+ - Claims presented without proof artifacts
17
+
18
+ This philosophy exists because the most dangerous verification failure is not finding a bug — it is certifying quality that does not exist. A false "all clear" signal sends defective work downstream where the cost of discovery and repair compounds exponentially.
19
+
20
+ ---
21
+
22
+ ## Evidence Hierarchy
23
+
24
+ Not all evidence carries equal weight. The following hierarchy ranks evidence types by their ability to conclusively prove a claim.
25
+
26
+ | Tier | Evidence Type | Strength | When Required | Example |
27
+ |------|-------------|----------|---------------|---------|
28
+ | **1** | Playwright screenshot / video recording | Strongest | Visual claims, layout assertions, responsive design | `evidence/dashboard-mobile-375x812.png` |
29
+ | **1** | Playwright trace archive (`.zip`) | Strongest | Interaction flows, network timing, state transitions | `test-results/checkout-flow/trace.zip` |
30
+ | **2** | Command output with timestamps | Strong | Test results, build output, lint results | `vitest run --reporter=verbose` stdout with pass/fail counts |
31
+ | **2** | Log excerpt with timestamps | Strong | Runtime behavior, error handling, async flows | Server log showing 404 handler returning correct status |
32
+ | **2** | Benchmark numbers with methodology | Strong | Performance claims, load test results | k6 output: `p95=142ms, p99=287ms` at 200 VUs for 5 min |
33
+ | **3** | Code reference with `file:line_number` | Moderate | Implementation claims, pattern compliance | `src/services/auth.ts:47` — null check before token decode |
34
+ | **3** | axe-core JSON output | Moderate | Accessibility claims | `{ violations: [], passes: 84 }` from `@axe-core/playwright` |
35
+ | **4** | Assertion without evidence | **Rejected** | Never acceptable | "Works correctly" / "All tests pass" / "Looks good" |
36
+
37
+ **Rule:** A claim backed only by Tier 4 evidence is treated as unverified. The verification report must either upgrade the evidence or mark the claim as UNVERIFIED.
38
+
39
+ ---
40
+
41
+ ## Auto-Fail Triggers
42
+
43
+ The following claims automatically fail verification regardless of context. Each represents a pattern that correlates strongly with rubber-stamping or confirmation bias.
44
+
45
+ ### 1. "Zero issues found" on first review
46
+
47
+ No implementation is perfect on the first pass. Finding zero issues means the reviewer did not look hard enough. Minimum expectation: 3 issues of any severity (including nits, suggestions, and observations).
48
+
49
+ ### 2. "All tests pass" without showing test output
50
+
51
+ The claim is meaningless without the command that was run and its stdout. Required evidence:
52
+
53
+ ```bash
54
+ # Bad — assertion without proof
55
+ "All 47 tests pass."
56
+
57
+ # Good — command + output
58
+ $ npx vitest run --reporter=verbose
59
+ ✓ src/services/auth.test.ts (12 tests) 45ms
60
+ ✓ src/services/order.test.ts (8 tests) 23ms
61
+ ✓ src/components/Dashboard.test.tsx (15 tests) 892ms
62
+ ✓ src/utils/format.test.ts (12 tests) 8ms
63
+
64
+ Test Files 4 passed (4)
65
+ Tests 47 passed (47)
66
+ Start at 14:32:07
67
+ Duration 1.24s
68
+ ```
69
+
70
+ ### 3. "Works perfectly" without screenshots or logs
71
+
72
+ "Works" is not a testable claim. What works? Under what conditions? At what viewport? With what data? Replace with specific, evidence-backed assertions.
73
+
74
+ ### 4. Perfect scores on first implementation attempt
75
+
76
+ A 10/10 on any scoring dimension for a first implementation signals that the scorer is not looking critically. First implementations always have room for improvement in error handling, edge cases, naming, or documentation.
77
+
78
+ ### 5. Performance claims without benchmark numbers
79
+
80
+ ```bash
81
+ # Bad — subjective claim
82
+ "The page loads fast."
83
+
84
+ # Bad — number without methodology
85
+ "Load time is 1.2 seconds."
86
+
87
+ # Good — number + methodology + environment
88
+ "LCP measured at 1.18s (p75) via Lighthouse CI on staging (us-east-1),
89
+ Chrome 124, simulated 4G throttling, 3 runs averaged.
90
+ Budget: < 2.5s. PASS."
91
+ ```
92
+
93
+ ### 6. Accessibility claims without axe-core output
94
+
95
+ ```bash
96
+ # Bad — unverifiable
97
+ "The page is accessible."
98
+
99
+ # Good — tool output with scope
100
+ $ npx playwright test accessibility.spec.ts
101
+ ✓ /dashboard has no WCAG 2.2 AA violations (axe-core 4.10.2)
102
+ Rules checked: 94 | Passes: 87 | Incomplete: 7 | Violations: 0
103
+ Excluded: .third-party-chat-widget (not under our control)
104
+ ```
105
+
106
+ ### 7. Cross-browser claims without specifying browsers tested
107
+
108
+ "Works in all browsers" is not evidence. Specify: Chromium 124, Firefox 126, WebKit 17.5 — and provide the test run output for each.
109
+
110
+ ### 8. Responsive design claims without viewport evidence
111
+
112
+ A single desktop screenshot does not prove responsive behavior. Required: at minimum, screenshots at 1920x1080 (desktop), 768x1024 (tablet portrait), and 375x812 (mobile portrait).
113
+
114
+ ---
115
+
116
+ ## Visual Verification Protocol
117
+
118
+ ### Screenshot Collection Pattern
119
+
120
+ ```typescript
121
+ import { test, expect } from '@playwright/test';
122
+
123
+ test.describe('Visual Evidence Collection', () => {
124
+ test('capture full-page evidence at multiple viewports', async ({ page }) => {
125
+ await page.goto('/dashboard');
126
+ await expect(page.getByRole('heading', { name: 'Dashboard' })).toBeVisible();
127
+ await page.waitForLoadState('networkidle');
128
+
129
+ // Full page screenshot — desktop
130
+ await page.setViewportSize({ width: 1920, height: 1080 });
131
+ await page.screenshot({ path: 'evidence/dashboard-desktop-1920x1080.png', fullPage: true });
132
+
133
+ // Component-specific capture — isolate the element under verification
134
+ const header = page.locator('[data-testid="dashboard-header"]');
135
+ await header.screenshot({ path: 'evidence/dashboard-header.png' });
136
+
137
+ // Tablet portrait
138
+ await page.setViewportSize({ width: 768, height: 1024 });
139
+ await page.screenshot({ path: 'evidence/dashboard-tablet-768x1024.png', fullPage: true });
140
+
141
+ // Mobile portrait
142
+ await page.setViewportSize({ width: 375, height: 812 });
143
+ await page.screenshot({ path: 'evidence/dashboard-mobile-375x812.png', fullPage: true });
144
+ });
145
+
146
+ test('capture error and empty states', async ({ page }) => {
147
+ // Empty state — no data loaded
148
+ await page.route('**/api/dashboard/stats', (route) =>
149
+ route.fulfill({ status: 200, body: JSON.stringify({ items: [] }) })
150
+ );
151
+ await page.goto('/dashboard');
152
+ await expect(page.getByText('No data available')).toBeVisible();
153
+ await page.screenshot({ path: 'evidence/dashboard-empty-state.png' });
154
+
155
+ // Error state — API failure
156
+ await page.route('**/api/dashboard/stats', (route) =>
157
+ route.fulfill({ status: 500, body: JSON.stringify({ error: 'Internal Server Error' }) })
158
+ );
159
+ await page.goto('/dashboard');
160
+ await expect(page.getByRole('alert')).toBeVisible();
161
+ await page.screenshot({ path: 'evidence/dashboard-error-state.png' });
162
+ });
163
+ });
164
+ ```
165
+
166
+ ### Video Recording Pattern
167
+
168
+ ```typescript
169
+ import { test, expect } from '@playwright/test';
170
+
171
+ // Enable video recording in playwright.config.ts or per-test
172
+ test.use({
173
+ video: {
174
+ mode: 'on', // Record every test run for evidence
175
+ size: { width: 1280, height: 720 },
176
+ },
177
+ });
178
+
179
+ test('record checkout flow for verification', async ({ page }) => {
180
+ await page.goto('/products');
181
+ await page.getByRole('button', { name: 'Add to Cart' }).first().click();
182
+ await page.getByRole('link', { name: 'Cart' }).click();
183
+ await page.getByRole('button', { name: 'Proceed to Checkout' }).click();
184
+
185
+ // Fill shipping details
186
+ await page.getByLabel('Address').fill('123 Test Street');
187
+ await page.getByLabel('City').fill('Testville');
188
+ await page.getByRole('button', { name: 'Place Order' }).click();
189
+
190
+ await expect(page.getByRole('heading', { name: 'Order Confirmed' })).toBeVisible();
191
+ // Video saved automatically to test-results/ with timestamp
192
+ });
193
+ ```
194
+
195
+ ### Trace Capture Pattern
196
+
197
+ ```typescript
198
+ import { test, expect } from '@playwright/test';
199
+
200
+ // Enable tracing for detailed debugging evidence
201
+ test.use({
202
+ trace: 'on', // Captures DOM snapshots, network, console at each action
203
+ });
204
+
205
+ test('trace-enabled form submission', async ({ page }) => {
206
+ await page.goto('/settings/profile');
207
+ await page.getByLabel('Display Name').fill('Updated Name');
208
+ await page.getByRole('button', { name: 'Save' }).click();
209
+
210
+ await expect(page.getByText('Profile updated')).toBeVisible();
211
+
212
+ // Trace archive at: test-results/trace-enabled-form-submission/trace.zip
213
+ // Open with: npx playwright show-trace trace.zip
214
+ // Contains: DOM snapshot per action, network waterfall, console logs, timing
215
+ });
216
+ ```
217
+
218
+ **Trace viewer provides:**
219
+ - Timeline of every action with millisecond precision
220
+ - DOM snapshot before and after each interaction
221
+ - Network request/response pairs with headers and bodies
222
+ - Console log entries correlated to actions
223
+ - Screenshot film strip across the entire test
224
+
225
+ ---
226
+
227
+ ## Cross-Device Verification Matrix
228
+
229
+ Every visual or responsive claim must be verified against the following device matrix.
230
+
231
+ | Device | Viewport | Orientation | Priority | Notes |
232
+ |--------|----------|-------------|----------|-------|
233
+ | Desktop (1080p) | 1920x1080 | Landscape | **Required** | Most common desktop resolution globally |
234
+ | Desktop (laptop) | 1440x900 | Landscape | **Required** | Common MacBook / business laptop |
235
+ | Tablet (iPad) | 768x1024 | Portrait | **Required** | iPad Mini / standard iPad |
236
+ | Tablet (iPad) | 1024x768 | Landscape | Recommended | Tablet landscape — catches horizontal overflow |
237
+ | Mobile (iPhone) | 375x812 | Portrait | **Required** | iPhone 12/13/14 standard |
238
+ | Mobile (Android) | 360x800 | Portrait | **Required** | Samsung Galaxy S21-S24, Pixel 6-8 |
239
+ | Mobile (small) | 320x568 | Portrait | Recommended | iPhone SE — minimum viable viewport |
240
+ | Desktop (ultrawide) | 2560x1440 | Landscape | Recommended | QHD monitors — catches max-width issues |
241
+
242
+ ### Automated viewport sweep
243
+
244
+ ```typescript
245
+ import { test, expect } from '@playwright/test';
246
+
247
+ const viewports = [
248
+ { name: 'desktop-1080p', width: 1920, height: 1080 },
249
+ { name: 'desktop-laptop', width: 1440, height: 900 },
250
+ { name: 'tablet-portrait', width: 768, height: 1024 },
251
+ { name: 'tablet-landscape', width: 1024, height: 768 },
252
+ { name: 'mobile-iphone', width: 375, height: 812 },
253
+ { name: 'mobile-android', width: 360, height: 800 },
254
+ ] as const;
255
+
256
+ for (const vp of viewports) {
257
+ test(`visual check at ${vp.name} (${vp.width}x${vp.height})`, async ({ page }) => {
258
+ await page.setViewportSize({ width: vp.width, height: vp.height });
259
+ await page.goto('/dashboard');
260
+ await page.waitForLoadState('networkidle');
261
+
262
+ await page.screenshot({
263
+ path: `evidence/dashboard-${vp.name}.png`,
264
+ fullPage: true,
265
+ });
266
+
267
+ // Verify no horizontal overflow at this viewport
268
+ const bodyWidth = await page.evaluate(() => document.body.scrollWidth);
269
+ expect(bodyWidth, `Horizontal overflow at ${vp.name}`).toBeLessThanOrEqual(vp.width);
270
+ });
271
+ }
272
+ ```
273
+
274
+ ---
275
+
276
+ ## Skeptical Verification Checklist
277
+
278
+ Before signing off on any verification, work through this checklist. Mark each item PASS, FAIL, or N/A with evidence reference.
279
+
280
+ ### Functional Verification (6 items)
281
+
282
+ 1. **Did I reproduce the claimed behavior myself?** — Never trust a description; run the code.
283
+ 2. **Did I test with invalid input?** — Empty strings, null, undefined, negative numbers, SQL injection strings, XSS payloads.
284
+ 3. **Did I test with boundary values?** — Maximum-length strings, zero, MAX_INT, empty arrays, single-item arrays.
285
+ 4. **Did I test error states?** — Network failure, API 500, timeout, malformed response, missing permissions.
286
+ 5. **Did I test the undo/cancel/back path?** — Form cancel discards changes, browser back preserves state correctly.
287
+ 6. **Did I verify data persistence?** — Refresh the page after save. Does the data survive? Is it correctly stored in the database?
288
+
289
+ ### Visual Verification (5 items)
290
+
291
+ 7. **Is there screenshot evidence for every visual claim?** — No visual claim accepted without a screenshot at the relevant viewport.
292
+ 8. **Did I verify across at least 3 viewport sizes?** — Desktop (1920x1080), tablet portrait (768x1024), mobile portrait (375x812) at minimum.
293
+ 9. **Did I check empty states and loading states?** — What does the component look like with zero data? During a slow API call?
294
+ 10. **Did I check dark mode (if applicable)?** — Theme switching must not break layout or make text unreadable.
295
+ 11. **Did I check with long content?** — Names with 50+ characters, descriptions with 500+ words, deeply nested data.
296
+
297
+ ### Performance Verification (3 items)
298
+
299
+ 12. **Are performance claims backed by benchmark numbers?** — Tool name, methodology, sample size, environment, and specific metric values.
300
+ 13. **Did I check for N+1 queries?** — Inspect network tab or database logs during list page loads.
301
+ 14. **Did I verify bundle size impact?** — Run `npx vite-bundle-visualizer` or equivalent before and after the change.
302
+
303
+ ### Accessibility Verification (3 items)
304
+
305
+ 15. **Did I run axe-core and include the output?** — `@axe-core/playwright` with WCAG 2.2 AA tags.
306
+ 16. **Can I navigate the feature using only the keyboard?** — Tab order is logical, focus indicators are visible, no keyboard traps.
307
+ 17. **Do all images have meaningful alt text and all form inputs have labels?** — Inspect the DOM, not just the visual output.
308
+
309
+ ### Edge Case Verification (3 items)
310
+
311
+ 18. **Did I test with JavaScript disabled (if applicable)?** — Server-rendered content should remain accessible.
312
+ 19. **Did I test concurrent operations?** — Two tabs submitting the same form, rapid double-clicks, race conditions.
313
+ 20. **Did I test the feature after a fresh install / empty database?** — First-run experience often has different code paths.
314
+
315
+ ---
316
+
317
+ ## Integration with QA Scoring
318
+
319
+ The 40-point QA scoring system spans four dimensions: Completeness, Correctness, Implementation Quality, and UX/Polish (10 points each). Evidence quality directly impacts scoring as follows.
320
+
321
+ ### Evidence Impact on Correctness (0-10)
322
+
323
+ | Evidence Level | Maximum Correctness Score | Rationale |
324
+ |---------------|--------------------------|-----------|
325
+ | Tier 1 evidence for all claims | 10/10 | Full proof chain — every claim verified with screenshots, traces, or recordings |
326
+ | Tier 2 evidence for all claims | 8/10 | Strong proof — command output and logs demonstrate behavior |
327
+ | Mix of Tier 2 and Tier 3 | 6/10 | Moderate proof — code references supplement but do not replace runtime evidence |
328
+ | Any claim with only Tier 4 evidence | **Capped at 6/10** | Unverified claims cap the dimension regardless of other evidence |
329
+ | Multiple claims with only Tier 4 | **Capped at 4/10** | Systematic lack of evidence indicates insufficient verification |
330
+
331
+ ### Evidence Requirements by Score Target
332
+
333
+ | Target Score | Minimum Evidence Requirements |
334
+ |-------------|------------------------------|
335
+ | 9-10/10 | Tier 1 evidence for visual components + Tier 2 for all behavioral claims + axe-core output for accessibility |
336
+ | 7-8/10 | Tier 2 evidence for all major claims + at least 2 viewport screenshots for visual work |
337
+ | 5-6/10 | Tier 2 or Tier 3 evidence for core functionality claims |
338
+ | Below 5/10 | Insufficient evidence or failed verification checks |
339
+
340
+ ### Mandatory Evidence for Score Thresholds
341
+
342
+ - **Scores above 8/10 on any dimension:** Screenshot evidence for every visual component is mandatory. No exceptions.
343
+ - **Scores above 7/10 on Correctness:** Test output showing pass counts and coverage percentage is required.
344
+ - **Scores above 6/10 on Completeness:** Evidence that every acceptance criterion was individually tested (not batch-claimed).
345
+ - **Perfect 10/10 on any dimension:** Requires Tier 1 evidence AND a documented edge case that was found and addressed during verification.
346
+
347
+ ---
348
+
349
+ ## Verification Report Template
350
+
351
+ Use this template for every verification report. Every section must contain content or an explicit `N/A — [reason]`.
352
+
353
+ ```markdown
354
+ # Verification Report — Task [N]: [Title]
355
+
356
+ ## Summary
357
+ - **Verdict:** PASS / FAIL / PARTIAL
358
+ - **Issues found:** [count] ([critical], [major], [minor], [nit])
359
+ - **Evidence artifacts:** [count] screenshots, [count] trace archives, [count] command outputs
360
+ - **Verification date:** YYYY-MM-DD HH:MM UTC
361
+ - **Environment:** [OS, browser versions, Node version, deployment target]
362
+
363
+ ## Evidence Collected
364
+
365
+ | # | Claim | Evidence Type (Tier) | Artifact | Verdict |
366
+ |---|-------|---------------------|----------|---------|
367
+ | 1 | Dashboard renders correctly on mobile | Tier 1 — Screenshot | `evidence/dashboard-mobile-375x812.png` | PASS |
368
+ | 2 | Form validates email format | Tier 2 — Test output | `vitest run` stdout, 12/12 pass | PASS |
369
+ | 3 | Page meets WCAG 2.2 AA | Tier 2 — axe-core output | 0 violations, 87 passes | PASS |
370
+ | 4 | API responds under 200ms | Tier 2 — k6 output | p95=142ms at 200 VUs | PASS |
371
+ | 5 | Error state displays correctly | Tier 1 — Screenshot | `evidence/dashboard-error-state.png` | FAIL — see Issue #2 |
372
+
373
+ ## Issues Found
374
+
375
+ | # | Severity | Description | Evidence | Recommendation |
376
+ |---|----------|-------------|----------|----------------|
377
+ | 1 | Major | Form submit button is not keyboard-accessible | Tab order skips from email field to footer | Add `tabindex="0"` or use `<button>` instead of `<div>` |
378
+ | 2 | Major | Error state shows raw JSON instead of user-friendly message | `evidence/dashboard-error-state.png` | Catch API errors in `useDashboardData` hook, display localized message |
379
+ | 3 | Minor | Text truncation on mobile at 375px width clips last character of username | `evidence/dashboard-mobile-375x812.png` | Add `text-overflow: ellipsis` to `.username` class |
380
+ | 4 | Nit | Console warning: "Each child in a list should have a unique key prop" | Browser console during test run | Add `key={item.id}` to `StatsCard` map in `Dashboard.tsx:42` |
381
+ | 5 | Nit | Loading skeleton height does not match rendered content height, causing 4px layout shift | Trace timeline shows CLS event | Set skeleton `min-height` to match `StatsCard` rendered height |
382
+
383
+ ## Viewport Testing
384
+
385
+ | Viewport | Screenshot | Layout | Overflow | Notes |
386
+ |----------|-----------|--------|----------|-------|
387
+ | 1920x1080 Desktop | `evidence/dashboard-desktop-1920x1080.png` | PASS | None | Grid displays 4 columns as designed |
388
+ | 1440x900 Laptop | `evidence/dashboard-laptop-1440x900.png` | PASS | None | Grid displays 3 columns |
389
+ | 768x1024 Tablet | `evidence/dashboard-tablet-768x1024.png` | PASS | None | Grid displays 2 columns |
390
+ | 375x812 Mobile | `evidence/dashboard-mobile-375x812.png` | PARTIAL | None | Single column — username truncation (Issue #3) |
391
+ | 360x800 Android | `evidence/dashboard-android-360x800.png` | PASS | None | Single column — renders correctly |
392
+
393
+ ## Accessibility
394
+
395
+ - **Tool:** @axe-core/playwright 4.10.2 with WCAG 2.2 AA tags
396
+ - **Violations:** 0 automated violations detected
397
+ - **Keyboard navigation:** FAIL — submit button not in tab order (Issue #1)
398
+ - **Screen reader:** Not tested (manual test required)
399
+ - **Color contrast:** PASS — all text meets 4.5:1 minimum ratio
400
+
401
+ ## Performance
402
+
403
+ - **Lighthouse score:** 94 (Performance), 91 (Accessibility), 100 (Best Practices), 100 (SEO)
404
+ - **LCP:** 1.18s (budget: < 2.5s) — PASS
405
+ - **INP:** 89ms (budget: < 200ms) — PASS
406
+ - **CLS:** 0.04 (budget: < 0.1) — PASS (but see Issue #5 re: skeleton height)
407
+ - **Bundle size delta:** +2.3 KB gzipped (within 50 KB budget)
408
+
409
+ ## Recommendations
410
+
411
+ 1. **Must fix before merge:** Issues #1 and #2 (keyboard accessibility, error state display)
412
+ 2. **Should fix before release:** Issue #3 (text truncation on mobile)
413
+ 3. **Nice to have:** Issues #4 and #5 (console warning, skeleton height)
414
+
415
+ ## Checklist Summary
416
+
417
+ | # | Check | Status | Evidence Ref |
418
+ |---|-------|--------|-------------|
419
+ | 1 | Reproduced claimed behavior | PASS | Test output + screenshots |
420
+ | 2 | Tested with invalid input | PASS | Test output — 5 validation tests |
421
+ | 3 | Tested boundary values | PASS | Test output — max length, empty, zero |
422
+ | 4 | Tested error states | FAIL | Issue #2 |
423
+ | 5 | Verified data persistence | PASS | Page refresh after save — data persists |
424
+ | 6 | Screenshots at 3+ viewports | PASS | 5 viewport screenshots collected |
425
+ | 7 | axe-core audit | PASS | 0 violations |
426
+ | 8 | Keyboard navigation | FAIL | Issue #1 |
427
+ ```
428
+
429
+ ---
430
+
431
+ ## Anti-Patterns
432
+
433
+ ### 1. Rubber Stamping
434
+
435
+ **What it looks like:** Approving without actually running the code, executing the tests, or inspecting the output. The verification report is written from reading the PR description, not from hands-on testing.
436
+
437
+ **Why it is dangerous:** Every rubber-stamped approval is a defect that was knowingly allowed through the gate. It erodes the entire verification system — downstream roles trust the "PASS" verdict and skip their own checks.
438
+
439
+ **How to detect:** Verification reports with no evidence artifacts, timestamps that precede the implementation commit, or generic language copied from the task spec.
440
+
441
+ ### 2. Confirmation Bias (Happy Path Only)
442
+
443
+ **What it looks like:** Testing only the exact scenario described in the task spec. The form works when you fill in valid data. The API returns 200 when given correct parameters. The dashboard renders with the seed data.
444
+
445
+ **Why it is dangerous:** Production users do not follow the happy path. They submit empty forms, click buttons twice, navigate backward, use screen readers, and have slow connections. Happy-path-only testing misses the failures that matter most.
446
+
447
+ **How to detect:** Evidence that only shows successful states. No screenshots of error states, empty states, or loading states. No tests with invalid input.
448
+
449
+ ### 3. Scope-Limited Testing
450
+
451
+ **What it looks like:** Testing only the files that were explicitly changed in the PR. The new API endpoint works, but the existing list page that consumes it was never checked for regressions.
452
+
453
+ **Why it is dangerous:** Changes propagate. A modified database schema affects every query that touches those tables. A changed API response shape breaks every consumer. A CSS change in a shared component affects every page that uses it.
454
+
455
+ **How to detect:** Evidence limited to the exact components listed in the task spec. No regression testing of adjacent features or consuming components.
456
+
457
+ ### 4. Screenshot Theater
458
+
459
+ **What it looks like:** Screenshots that do not actually prove the claim they accompany. A screenshot of the login page captioned "authentication works correctly." A mobile screenshot taken at 1024px wide (not actually mobile). Screenshots with data pre-filled by the developer rather than entered through the UI.
460
+
461
+ **Why it is dangerous:** It creates the appearance of evidence without the substance. Reviewers see screenshots and assume verification happened, when the screenshots prove nothing about the claimed behavior.
462
+
463
+ **How to detect:** Screenshots that do not match the viewport sizes in the Cross-Device Matrix. Screenshots that show initial state but not the result of the interaction. Screenshots without filenames that encode viewport dimensions.
464
+
465
+ ### 5. "Works on My Machine" (Single Environment Testing)
466
+
467
+ **What it looks like:** All verification performed in a single browser on a single OS at a single viewport. "I tested in Chrome on my MacBook and it works."
468
+
469
+ **Why it is dangerous:** Cross-browser rendering differences, OS-specific font rendering, touch vs. mouse interactions, and screen density differences all produce bugs invisible in a single environment. Safari's WebKit engine handles flexbox, date inputs, and scroll behavior differently from Chromium.
470
+
471
+ **How to detect:** Evidence artifacts from only one browser engine. No mention of Firefox or WebKit in the verification report. All screenshots at the same viewport size.
472
+
473
+ ### 6. Timestamp-Free Claims (Unanchored Evidence)
474
+
475
+ **What it looks like:** Evidence presented without dates, version numbers, or commit references. "Tests pass" — but which commit? "Screenshot attached" — but from which deployment? "Performance is good" — but measured when, against what baseline?
476
+
477
+ **Why it is dangerous:** Unanchored evidence cannot be reproduced or audited. It may refer to a prior version, a different branch, or a different environment. Without timestamps and version anchors, evidence decays from "proof" to "anecdote."
478
+
479
+ **How to detect:** Evidence artifacts without date/time metadata. Test output without Git commit SHA. Performance numbers without environment specification. Screenshots without viewport dimensions in the filename.
480
+
481
+ ### 7. Deferred Verification
482
+
483
+ **What it looks like:** "I'll verify the accessibility / performance / mobile layout in a follow-up." The verification report marks items as PASS with a note that deeper testing will happen later.
484
+
485
+ **Why it is dangerous:** Follow-up verification rarely happens. Once a task is marked PASS, it moves downstream and attention shifts to the next task. Deferred verification is functionally equivalent to skipped verification.
486
+
487
+ **How to detect:** Verification reports with "TODO" items, "will verify later" notes, or N/A markers on dimensions that clearly apply to the task.
488
+
489
+ ### 8. Copy-Paste Verification Reports
490
+
491
+ **What it looks like:** Verification reports that reuse the same language, the same evidence structure, and the same issue count across unrelated tasks. The report reads like a template that was filled in mechanically rather than a genuine investigation.
492
+
493
+ **Why it is dangerous:** Each task has unique risks, unique edge cases, and unique failure modes. A formulaic report indicates the verifier is going through the motions rather than thinking critically about what could go wrong with this specific implementation.
494
+
495
+ **How to detect:** Multiple verification reports with identical phrasing in the Issues Found section. Evidence artifacts with sequential filenames that suggest batch generation rather than targeted investigation.
496
+
497
+ ---
498
+
499
+ *Researched: 2026-03-12 | Sources: [Playwright Best Practices](https://playwright.dev/docs/best-practices), [Playwright Trace Viewer](https://playwright.dev/docs/trace-viewer), [Playwright Screenshots](https://playwright.dev/docs/screenshots), [axe-core Rules](https://github.com/dequelabs/axe-core/blob/develop/doc/rule-descriptions.md), [Google Lighthouse Scoring](https://developer.chrome.com/docs/lighthouse/performance/performance-scoring), [WCAG 2.2 Quick Reference](https://www.w3.org/WAI/WCAG22/quickref/), [StatCounter Global Stats — Screen Resolution](https://gs.statcounter.com/screen-resolution-stats), [k6 Documentation](https://grafana.com/docs/k6/latest/), [Testing Trophy — Kent C. Dodds](https://kentcdodds.com/blog/the-testing-trophy-and-testing-classifications)*
@@ -0,0 +1,24 @@
1
+ # Directory Purpose
2
+
3
+ The `quality` directory details testing strategies, QA methodologies, and validation frameworks to ensure software behaves correctly and is accessible to all users.
4
+
5
+ # Key Concepts
6
+
7
+ - Automated testing layers (Unit, Integration, E2E)
8
+ - Validating system performance and accessibility
9
+ - Test-Driven Development (TDD) approaches
10
+
11
+ # File Map
12
+
13
+ - `index.md` — semantic map of the quality directory
14
+ - `accessibility.md` — automated and manual a11y testing processes
15
+ - `performance.md` — load testing, benchmarking, and profiling strategies
16
+ - `testing-api.md` — contract testing, mocking, and backend E2E
17
+ - `testing-mobile.md` — Appium, UI testing, and device farms
18
+ - `testing-web.md` — Cypress, Playwright, Jest, and browser automation
19
+
20
+ # Reading Guide
21
+
22
+ If writing UI tests for web → read `testing-web.md`
23
+ If ensuring endpoint reliability → read `testing-api.md`
24
+ If testing under load → read `performance.md`