@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,486 @@
1
+ # Sample Content Patterns
2
+
3
+ > **Module Type:** Pattern
4
+ > **Domain:** Content -- Test Data, Fixtures, and Placeholder Content
5
+ > **Authoritative Sources:** NIST Test Data Guidelines, Unicode CLDR, ICU Project, OWASP Testing Guide, Inclusive Design Principles, W3C Internationalization Best Practices
6
+
7
+ ---
8
+
9
+ ## Quick Reference Checklist
10
+
11
+ 1. Never use real user data (names, emails, addresses) in test fixtures
12
+ 2. Sample names represent diverse cultural backgrounds and naming conventions
13
+ 3. Every text field has edge case fixtures: empty, single char, max length, Unicode, RTL, emoji
14
+ 4. Sample data uses realistic domain values (not "test123" or "foo bar")
15
+ 5. Numeric fixtures include zero, negative, boundary values, and locale-specific formatting
16
+ 6. Date fixtures span time zones, DST transitions, leap years, and locale formats
17
+ 7. Currency fixtures include multiple currencies with correct symbols and decimal rules
18
+ 8. Address fixtures cover international formats (not just US-centric)
19
+ 9. Fixture files are deterministic and version-controlled (never random in CI)
20
+ 10. Placeholder text in UI previews uses realistic content, not Lorem Ipsum
21
+ 11. Avatar/profile image fixtures include diverse representation
22
+ 12. Sample content avoids stereotypes tied to names, genders, or ethnicities
23
+ 13. Email fixtures test domain validation edge cases (subdomains, new TLDs, IDN)
24
+ 14. Phone fixtures include international formats with country codes
25
+ 15. Fixture data sets include both typical values and boundary stress cases
26
+
27
+ ---
28
+
29
+ ## 1. Realistic Name Generation
30
+
31
+ Names in sample data should reflect the global diversity of users. Using only English-language names biases testing and creates blind spots for internationalization.
32
+
33
+ ### 1.1 Name Fixtures by Region
34
+
35
+ | Region | Given Name | Family Name | Notes |
36
+ |--------|-----------|-------------|-------|
37
+ | English (US/UK) | James, Maria, Aisha | Thompson, Patel, Kim | Common cross-cultural names in English-speaking countries |
38
+ | Spanish (Latin America) | Carlos, Valentina, Luis | Garcia Rodriguez, Fernandez | Compound surnames (paternal + maternal) |
39
+ | Chinese (Simplified) | Wei (given) | Zhang (family) | Family name FIRST: Zhang Wei. Given names are 1-2 characters |
40
+ | Chinese (Traditional) | Mei-Ling (given) | Chen (family) | Hyphenated given names common in Taiwanese naming |
41
+ | Japanese | Yuki (given) | Tanaka (family) | Family name first in Japanese context; reversed in Western context |
42
+ | Korean | Jisoo (given) | Park (family) | Family name first: Park Jisoo. Romanization varies |
43
+ | Arabic | Fatima (given) | Al-Rashid (family) | "Al-" prefix common. Some names have patronymic chains |
44
+ | Hindi | Priya (given) | Sharma (family) | Some South Asian names have no family name, using a single name |
45
+ | Russian | Alexei (given) | Petrov (family) | Patronymic middle name: Alexei Ivanovich Petrov |
46
+ | Nigerian (Yoruba) | Adunni (given) | Okafor (family) | Many Nigerian names carry meaning; varied ethnic naming conventions |
47
+ | German | Lukas, Anna | Muller, Schmidt | Umlauts: Muller or Mueller both valid romanizations |
48
+ | Thai | Somchai (given) | Charoenphon (family) | Very long family names are common; nicknames used daily |
49
+ | Brazilian | Joao, Beatriz | Silva, Santos | Maternal + paternal surname: Joao Silva Santos |
50
+
51
+ ### 1.2 Naming Convention Edge Cases
52
+
53
+ | Edge Case | Example | Why It Matters |
54
+ |-----------|---------|---------------|
55
+ | Single name (mononym) | "Sukarno" | Some cultures use one name. Fields that require "first + last" will break |
56
+ | Very long names | "Wolfeschlegelsteinhausenbergerdorff" | 35+ char surnames exist. Test field truncation and display |
57
+ | Hyphenated names | "Mary-Jane Watson-Parker" | Both given and family names can be hyphenated |
58
+ | Prefixes and particles | "Ludwig van Beethoven", "Fatima bint Ahmed" | "van", "de", "al-", "bin/bint" are name particles, not middle names |
59
+ | Suffixes | "James Smith Jr.", "Robert Brown III" | Jr., Sr., III, IV are part of the legal name |
60
+ | Diacritics | "Renee", "Bjork", "Nuno" | Accented characters must be stored and displayed correctly |
61
+ | Non-Latin scripts | "Sato Yuki", "Zhang Wei", "Ahmed" | UI must render CJK, Arabic, Cyrillic, Devanagari correctly |
62
+ | Preferred/chosen name | Legal: "Robert"; preferred: "Bobby" | Systems should support display name separate from legal name |
63
+ | Title/honorific | "Dr.", "Prof.", "Mx." | Gender-neutral honorifics (Mx.) must be supported |
64
+
65
+ ### 1.3 Name Generation Rules
66
+
67
+ 1. **Never pair names with stereotypical roles.** Don't make "Maria" always the assistant and "James" always the CEO.
68
+ 2. **Rotate names across roles** in fixture data. If generating a team, vary the cultural backgrounds in every role.
69
+ 3. **Include gender-neutral names.** Alex, Sam, Jordan, Taylor, Avery work across genders.
70
+ 4. **Test sorting.** Names with particles ("van Gogh") sort differently across locales. "Al-Rashid" may sort under "A" or "R".
71
+ 5. **Avoid famous names.** "John Smith" is acceptable; "Elon Musk" or "Taylor Swift" is not -- it creates confusion about whether real data leaked.
72
+
73
+ ---
74
+
75
+ ## 2. Domain-Appropriate Data
76
+
77
+ Sample data should be realistic for the domain. Generic "test" values don't reveal real-world issues.
78
+
79
+ ### 2.1 Common Domain Fixtures
80
+
81
+ **E-commerce:**
82
+
83
+ | Field | Realistic Values |
84
+ |-------|-----------------|
85
+ | Product name | "Merino Wool Crew Sock, 3-Pack" / "USB-C to Lightning Cable, 2m" |
86
+ | Price | $0.99, $29.99, $1,249.00, $9,999.99 |
87
+ | SKU | "MWS-BLK-L-3PK" / "USBC-LTN-2M-WHT" |
88
+ | Description | 150-300 word product description with specs and features |
89
+ | Category | "Clothing > Socks > Wool" (nested hierarchy) |
90
+
91
+ **SaaS / Project Management:**
92
+
93
+ | Field | Realistic Values |
94
+ |-------|-----------------|
95
+ | Project name | "Q3 Marketing Campaign" / "Mobile App Redesign" |
96
+ | Task title | "Update error handling in payment flow" / "Review accessibility audit" |
97
+ | Status | "To Do" / "In Progress" / "In Review" / "Done" |
98
+ | Priority | "Critical" / "High" / "Medium" / "Low" |
99
+ | Comment | "Looks good overall, but the loading state needs a skeleton screen." |
100
+
101
+ **Healthcare (anonymized):**
102
+
103
+ | Field | Realistic Values |
104
+ |-------|-----------------|
105
+ | Patient ID | "P-2024-00847" (never real identifiers) |
106
+ | Condition | "Type 2 Diabetes Mellitus" / "Seasonal Allergic Rhinitis" |
107
+ | Medication | "Metformin 500mg, twice daily" |
108
+ | Appointment | "Follow-up: Dr. Patel, March 20, 2025, 2:30 PM" |
109
+
110
+ **Finance:**
111
+
112
+ | Field | Realistic Values |
113
+ |-------|-----------------|
114
+ | Transaction | "Wire Transfer - Invoice #INV-2024-0312" |
115
+ | Amount | "$4,287.50" / "-$150.00" / "$0.01" (minimum) |
116
+ | Account | "****4832" (masked, last 4 digits) |
117
+ | Currency | "USD", "EUR", "GBP", "JPY" (no decimals), "BHD" (3 decimals) |
118
+
119
+ ### 2.2 Avoid Placeholder Syndrome
120
+
121
+ | Bad (lazy placeholders) | Good (realistic content) |
122
+ |------------------------|-------------------------|
123
+ | "Test Project" | "Website Redesign Sprint 4" |
124
+ | "Lorem ipsum dolor sit amet" | "Track team progress with real-time dashboards." |
125
+ | "user@test.com" | "priya.sharma@acmedesign.co" |
126
+ | "123 Main St" | "42 Rue de Rivoli, 75001 Paris, France" |
127
+ | "John Doe" | "Yuki Tanaka" |
128
+ | "$100.00" | "$2,847.50" |
129
+
130
+ Lazy placeholders hide real issues: layout breaks with longer strings, encoding issues with special characters, and formatting problems with realistic numeric values.
131
+
132
+ ---
133
+
134
+ ## 3. Edge Cases
135
+
136
+ Every text input, numeric field, and data display must be tested against edge cases. These are the values that break production systems.
137
+
138
+ ### 3.1 String Edge Cases
139
+
140
+ | Category | Test Value | What It Catches |
141
+ |----------|-----------|----------------|
142
+ | Empty | `""` | Missing null/empty checks, blank renders |
143
+ | Single character | `"A"` | Layout issues with very short content |
144
+ | Max length | 255 chars, 1000 chars, 65535 chars | Truncation, overflow, DB column limits |
145
+ | Max display | String longer than container width | CSS overflow handling |
146
+ | Special chars | `"O'Brien"`, `"Smith & Jones"`, `"<script>alert(1)</script>"` | SQL injection, XSS, HTML entity encoding |
147
+ | Unicode | `"Renee Muller"` (accented), `"Sato Yuki"` (CJK) | Character encoding, font rendering |
148
+ | RTL text | Arabic text, Hebrew text | Bidirectional text layout, alignment |
149
+ | Mixed direction | `"Hello Arabic Text world"` (embedded RTL in LTR) | BiDi algorithm handling |
150
+ | Emoji | `"Project Rocket Launch"` | Rendering, string length calculation (emoji = 2+ code points) |
151
+ | Zero-width chars | `"test\u200Bvalue"` (zero-width space) | Invisible characters in user input |
152
+ | Whitespace | `" leading"`, `"trailing "`, `"multiple spaces"` | Trim handling, display |
153
+ | Newlines | `"line1\nline2"` | Single-line fields accepting multiline input |
154
+ | SQL/NoSQL injection | `"'; DROP TABLE users;--"` | Query parameterization |
155
+ | Path traversal | `"../../etc/passwd"` | File path handling |
156
+ | Null bytes | `"test\x00value"` | C-string termination in some languages |
157
+
158
+ ### 3.2 Numeric Edge Cases
159
+
160
+ | Category | Test Value | What It Catches |
161
+ |----------|-----------|----------------|
162
+ | Zero | `0` | Division by zero, "falsy" checks, display of "$0.00" |
163
+ | Negative | `-1`, `-0.01` | Unexpected negatives in quantity, price, balance |
164
+ | Very large | `999999999`, `Number.MAX_SAFE_INTEGER` | Overflow, display formatting |
165
+ | Very small | `0.001`, `0.0001` | Decimal precision, rounding |
166
+ | Decimal edge | `0.1 + 0.2` (= 0.30000000000000004) | Floating point arithmetic |
167
+ | NaN | `NaN`, `parseInt("abc")` | Not-a-number propagation |
168
+ | Infinity | `1/0` | Infinity in calculations |
169
+ | Locale-specific | `1.234,56` (German) vs `1,234.56` (US) | Decimal/thousands separators |
170
+
171
+ ### 3.3 Date and Time Edge Cases
172
+
173
+ | Category | Test Value | What It Catches |
174
+ |----------|-----------|----------------|
175
+ | Midnight | `00:00:00` | Off-by-one in date boundaries |
176
+ | End of day | `23:59:59` | Same |
177
+ | Leap year | `2024-02-29` | February 29 handling |
178
+ | Non-leap year | `2025-02-29` (invalid) | Validation of impossible dates |
179
+ | DST spring forward | `2025-03-09 02:30 America/New_York` | Missing hour |
180
+ | DST fall back | `2025-11-02 01:30 America/New_York` | Ambiguous hour |
181
+ | Year boundary | `2024-12-31` to `2025-01-01` | Year rollover in calculations |
182
+ | Far future | `2099-12-31` | Date range validation |
183
+ | Epoch | `1970-01-01T00:00:00Z` | Timestamp zero handling |
184
+ | Pre-epoch | `1969-12-31` | Negative timestamps |
185
+ | Time zones | `+14:00` (Line Islands) to `-12:00` (Baker Island) | Full UTC offset range |
186
+ | ISO 8601 | `2025-03-14T10:30:00+05:30` | IST (India, UTC+5:30, half-hour offset) |
187
+
188
+ ### 3.4 File and Media Edge Cases
189
+
190
+ | Category | Test Value | What It Catches |
191
+ |----------|-----------|----------------|
192
+ | Zero-byte file | Empty file | Upload validation, processing |
193
+ | Very large file | 2GB+ | Upload limits, memory handling |
194
+ | Long filename | 255 characters | OS path limits, display truncation |
195
+ | Special chars in name | `"file (1) [final].pdf"` | URL encoding, filesystem safety |
196
+ | Double extension | `"image.jpg.exe"` | Security: executable masquerading |
197
+ | No extension | `"Makefile"` | MIME type detection without extension |
198
+ | Unicode filename | `"Bericht.pdf"` | Filesystem encoding |
199
+ | Corrupt file | Valid extension, corrupt content | Error handling during processing |
200
+
201
+ ---
202
+
203
+ ## 4. Fixture Strategy
204
+
205
+ Fixtures are pre-defined data sets used consistently across tests, demos, and development environments.
206
+
207
+ ### 4.1 Fixture Tiers
208
+
209
+ | Tier | Purpose | Data Volume | Content Quality |
210
+ |------|---------|-------------|----------------|
211
+ | **Unit test** | Test individual functions | Minimal (1-5 records) | Edge cases and boundaries |
212
+ | **Integration test** | Test system interactions | Moderate (20-100 records) | Realistic variety |
213
+ | **Staging/demo** | Show to stakeholders, QA | Full (500-5000 records) | Production-like realism |
214
+ | **Performance test** | Load and stress testing | Large (10K-1M records) | Varied but can be generated |
215
+ | **E2E test** | User journey testing | Moderate (50-200 records) | Matches real user patterns |
216
+
217
+ ### 4.2 Fixture Principles
218
+
219
+ 1. **Deterministic.** Fixtures produce the same data every time. No `Math.random()` or `Date.now()` in CI fixtures. Use seeded random generators for variety.
220
+ 2. **Version-controlled.** Fixture files live in the repository alongside tests. Changes are tracked.
221
+ 3. **Self-contained.** Fixtures don't depend on external services, databases, or APIs.
222
+ 4. **Documented.** Each fixture file has a header comment explaining its purpose and the scenarios it covers.
223
+ 5. **Minimal.** Each fixture contains the minimum data needed for its test scenario. Don't reuse a 500-record fixture for a unit test.
224
+ 6. **Realistic.** Use real-world patterns (not "test1," "test2"). Realistic data reveals real-world bugs.
225
+
226
+ ### 4.3 Fixture File Patterns
227
+
228
+ **JSON fixtures:**
229
+ ```json
230
+ {
231
+ "_description": "Team members with diverse naming conventions",
232
+ "members": [
233
+ {
234
+ "id": "usr_001",
235
+ "name": "Priya Sharma",
236
+ "email": "priya.sharma@acmedesign.co",
237
+ "role": "admin",
238
+ "locale": "en-IN"
239
+ },
240
+ {
241
+ "id": "usr_002",
242
+ "name": "Zhang Wei",
243
+ "email": "zhang.wei@acmedesign.co",
244
+ "role": "member",
245
+ "locale": "zh-CN"
246
+ },
247
+ {
248
+ "id": "usr_003",
249
+ "name": "Bjork Sigurdsson",
250
+ "email": "bjork.s@acmedesign.co",
251
+ "role": "member",
252
+ "locale": "is-IS"
253
+ }
254
+ ]
255
+ }
256
+ ```
257
+
258
+ **Factory pattern (code):**
259
+ ```
260
+ createUser({ name: "Fatima Al-Rashid", locale: "ar-SA" })
261
+ createUser({ name: "Carlos Garcia Rodriguez", locale: "es-MX" })
262
+ createUser({ name: "Tanaka Yuki", locale: "ja-JP" })
263
+ ```
264
+
265
+ ### 4.4 Seeded Random Generation
266
+
267
+ For performance tests and large data sets, use seeded pseudo-random generators.
268
+
269
+ ```
270
+ seed = 42
271
+ random = new SeededRandom(seed) // Same sequence every time
272
+
273
+ // Produces the same "random" data on every run
274
+ name = random.pick(namePool)
275
+ email = random.pick(domainPool)
276
+ date = random.dateInRange(start, end)
277
+ ```
278
+
279
+ **Rule:** Never use unseeded randomness in CI. Flaky tests caused by random data waste engineering time and erode trust in the test suite.
280
+
281
+ ---
282
+
283
+ ## 5. Bias Avoidance
284
+
285
+ Sample data carries implicit messages about who uses the product. Biased sample data normalizes exclusion and can cause real harm by hiding bugs that affect underrepresented users.
286
+
287
+ ### 5.1 Common Biases in Sample Data
288
+
289
+ | Bias | Example | Fix |
290
+ |------|---------|-----|
291
+ | **Name homogeneity** | All names are English-language | Include names from at least 5 cultural backgrounds |
292
+ | **Gender binary** | Only "Male" / "Female" options | Include non-binary, prefer-not-to-say, custom |
293
+ | **Western-centric addresses** | All addresses are US format | Include international formats (no state, postal code varies) |
294
+ | **Role stereotyping** | Female names always in junior roles | Randomly distribute names across all roles |
295
+ | **Age assumptions** | All birthdates suggest ages 25-40 | Include ages 18-80+ |
296
+ | **Ability assumptions** | No accessibility-related scenarios | Include screen reader users, mobility-impaired users |
297
+ | **Currency bias** | All amounts in USD | Include EUR, JPY (no decimals), BHD (3 decimals) |
298
+ | **Calendar bias** | Only Gregorian calendar | Test Islamic, Hebrew, Japanese calendar formats |
299
+ | **Working hours bias** | All times between 9-5 in one timezone | Include global time zones and non-standard schedules |
300
+
301
+ ### 5.2 Representation Guidelines
302
+
303
+ 1. **Minimum 5 cultural backgrounds** in any fixture set with 10+ names.
304
+ 2. **No gendered assumptions** about roles. Rotate names across all role types.
305
+ 3. **Include RTL names** (Arabic, Hebrew) in every fixture set to catch layout issues.
306
+ 4. **Include names with diacritics** to catch encoding issues early.
307
+ 5. **Include mononyms** (single names) to catch required-field assumptions.
308
+ 6. **Avoid stereotypical pairings.** Don't always pair Japanese names with "Tokyo" addresses or Arabic names with "Dubai."
309
+ 7. **Review fixtures during code review** -- biased data is a bug, just like biased code.
310
+
311
+ ### 5.3 Inclusive Fixture Checklist
312
+
313
+ - [ ] Names from 5+ cultural backgrounds
314
+ - [ ] At least one mononym (single name)
315
+ - [ ] At least one name with diacritics or non-Latin characters
316
+ - [ ] At least one RTL name
317
+ - [ ] Gender-neutral names included
318
+ - [ ] Roles and seniority levels randomly distributed across names
319
+ - [ ] Addresses from 3+ countries with different formats
320
+ - [ ] Dates in multiple locale formats tested
321
+ - [ ] Currencies beyond USD included
322
+ - [ ] Age range spans 18-80+
323
+
324
+ ---
325
+
326
+ ## 6. Cultural Sensitivity
327
+
328
+ Sample data must avoid cultural offense, stereotypes, and insensitivity. What seems neutral in one culture may be offensive in another.
329
+
330
+ ### 6.1 Rules
331
+
332
+ 1. **No religious content** in sample data. Avoid religious texts, symbols, or holidays as default fixture values.
333
+ 2. **No political content.** Avoid political figures, parties, or controversial events.
334
+ 3. **No profanity or suggestive content,** even as "test" values. These show up in demos and screenshots.
335
+ 4. **Avoid culture-specific humor.** Jokes, puns, and wordplay don't translate and can offend.
336
+ 5. **Neutral imagery.** Stock photos and avatars should represent diverse ethnicities, ages, abilities, and body types without tokenism.
337
+ 6. **Number sensitivity.** 4 is unlucky in East Asian cultures; 13 in Western cultures. Avoid these as default quantities in demos.
338
+ 7. **Color sensitivity.** Red means danger in Western cultures but luck in Chinese culture; white means purity in Western but mourning in some East Asian cultures. Don't use culturally loaded colors in sample data visualization without context.
339
+ 8. **Name meaning awareness.** Some names carry strong cultural or religious meaning. Avoid pairing meaningful names with trivial or inappropriate contexts.
340
+
341
+ ### 6.2 Content Review Checklist
342
+
343
+ - [ ] No real personal data (names, emails, phone numbers of actual people)
344
+ - [ ] No content that could be mistaken for real data in screenshots or demos
345
+ - [ ] No stereotypical associations between names and roles/locations
346
+ - [ ] No cultural, religious, or political references
347
+ - [ ] No profanity, even in "hidden" test values or comments
348
+ - [ ] Placeholder images use inclusive, diverse representation
349
+ - [ ] Content reviewed by someone from a different cultural background
350
+
351
+ ---
352
+
353
+ ## 7. Internationalization Test Data
354
+
355
+ Sample data must test i18n edge cases that break applications in non-English locales.
356
+
357
+ ### 7.1 Text Direction
358
+
359
+ | Direction | Languages | Test String |
360
+ |-----------|----------|-------------|
361
+ | LTR | English, French, German, etc. | "Hello, world" |
362
+ | RTL | Arabic, Hebrew, Urdu, Persian | Arabic text or Hebrew text |
363
+ | Mixed (BiDi) | Arabic + English | "Order #12345 Arabic text" |
364
+ | Vertical | Traditional Chinese, Japanese (rare in UI) | Typically handled by CSS `writing-mode` |
365
+
366
+ ### 7.2 Number and Currency Formatting
367
+
368
+ | Locale | Number | Currency |
369
+ |--------|--------|----------|
370
+ | en-US | 1,234.56 | $1,234.56 |
371
+ | de-DE | 1.234,56 | 1.234,56 EUR |
372
+ | fr-FR | 1 234,56 | 1 234,56 EUR (narrow no-break space) |
373
+ | ja-JP | 1,234 | 1,234 JPY (no decimals) |
374
+ | ar-SA | Arabic numerals 1,234.56 | 1,234.56 SAR |
375
+ | hi-IN | 1,23,456.78 | INR 1,23,456.78 (lakh/crore grouping) |
376
+ | en-BH | 1,234.567 | BHD 1,234.567 (3 decimal places) |
377
+
378
+ ### 7.3 Date and Time Formatting
379
+
380
+ | Locale | Date Format | Example |
381
+ |--------|------------|---------|
382
+ | en-US | MM/DD/YYYY | 03/14/2025 |
383
+ | en-GB | DD/MM/YYYY | 14/03/2025 |
384
+ | de-DE | DD.MM.YYYY | 14.03.2025 |
385
+ | ja-JP | YYYY/MM/DD | 2025/03/14 |
386
+ | zh-CN | YYYY year MM month DD day | 2025 year 3 month 14 day |
387
+ | ar-SA | DD/MM/YYYY (Hijri calendar) | Different year numbering |
388
+ | ISO 8601 | YYYY-MM-DD | 2025-03-14 |
389
+
390
+ ### 7.4 Address Formats
391
+
392
+ | Country | Format |
393
+ |---------|--------|
394
+ | US | 123 Main Street, Apt 4B / San Francisco, CA 94102 |
395
+ | UK | 42 Baker Street / London W1U 8ED |
396
+ | Japan | postal code 100-0001 / Tokyo-to, Chiyoda-ku, specific address |
397
+ | Germany | Musterstr. 42 / 10115 Berlin |
398
+ | Brazil | Rua Example, 123, Apt 456 / Sao Paulo - SP / 01310-100 |
399
+ | South Korea | Specific district/street format / Seoul |
400
+ | No postal code | Some countries have no postal code system |
401
+ | No state/province | Many countries have only city + postal code |
402
+
403
+ ---
404
+
405
+ ## 8. Anti-Patterns
406
+
407
+ ### 8.1 Lorem Ipsum in Production
408
+
409
+ Lorem Ipsum hides real content issues: line wrapping, truncation, and readability. **Fix:** Use realistic content that matches actual usage length and vocabulary.
410
+
411
+ ### 8.2 "test123" Values
412
+
413
+ Generic test values don't reveal real bugs. "test@test.com" won't catch domain validation issues. **Fix:** Use realistic, varied email domains including subdomains and new TLDs.
414
+
415
+ ### 8.3 Same Name Everywhere
416
+
417
+ Using "John Doe" for every fixture person. Doesn't test name length variations, character encoding, or cultural formats. **Fix:** Diverse fixture name pool (see Section 1).
418
+
419
+ ### 8.4 US-Only Addresses
420
+
421
+ Only testing US address formats hides international format issues. **Fix:** Include addresses from 5+ countries with different postal code and state/province conventions.
422
+
423
+ ### 8.5 Random Data in CI
424
+
425
+ Using `Math.random()` or `faker` without a seed. Tests pass sometimes and fail sometimes. **Fix:** Seed every random generator. Same seed = same data = reproducible tests.
426
+
427
+ ### 8.6 Real User Data in Fixtures
428
+
429
+ Copying production data into test fixtures. Privacy violation, potential legal liability. **Fix:** Generate synthetic data. Never export production PII into version-controlled fixture files.
430
+
431
+ ### 8.7 Missing Edge Cases
432
+
433
+ Only testing the happy path with "normal" data. Production users will enter empty strings, 500-character names, and emoji. **Fix:** Every fixture set includes edge cases from Section 3.
434
+
435
+ ### 8.8 Hardcoded English
436
+
437
+ Fixture data assumes English. Buttons say "Submit," dates say "March 14," and currency uses "$." **Fix:** Include locale-specific fixtures. Test with at least one RTL and one CJK locale.
438
+
439
+ ---
440
+
441
+ ## 9. Decision Tree
442
+
443
+ ### 9.1 Choosing Fixture Strategy
444
+
445
+ ```
446
+ What level of test is this for?
447
+ +-- Unit test
448
+ | --> Minimal inline fixtures. 1-3 records. Focus on edge cases.
449
+ +-- Integration test
450
+ | --> JSON/YAML fixture files. 20-100 records. Realistic variety.
451
+ +-- E2E test
452
+ | --> Seeded database. 50-200 records. Matches real user patterns.
453
+ +-- Performance test
454
+ | --> Generated via seeded factory. 10K-1M records.
455
+ +-- Demo / staging
456
+ --> Curated data set. 500-5000 records. Production-like quality.
457
+ ```
458
+
459
+ ### 9.2 Choosing Sample Names
460
+
461
+ ```
462
+ How many names do you need?
463
+ +-- 1-3 --> Pick from different cultural backgrounds
464
+ +-- 4-10 --> Include at least 3 cultural backgrounds + 1 edge case (mononym, diacritics)
465
+ +-- 10+ --> Include 5+ backgrounds, RTL, diacritics, mononyms, compound surnames
466
+ |
467
+ Is this user-facing (demo, screenshot)?
468
+ +-- YES --> Extra care: no stereotypes, diverse roles, neutral content
469
+ +-- NO (test only) --> Still diverse, but edge cases take priority
470
+ ```
471
+
472
+ ---
473
+
474
+ ## References
475
+
476
+ - [Unicode CLDR - Common Locale Data Repository](https://cldr.unicode.org/)
477
+ - [ICU - International Components for Unicode](https://icu.unicode.org/)
478
+ - [W3C - Internationalization Best Practices](https://www.w3.org/International/)
479
+ - [OWASP - Testing Guide](https://owasp.org/www-project-web-security-testing-guide/)
480
+ - [NIST - Test Data Management](https://www.nist.gov/)
481
+ - [Inclusive Design Principles](https://inclusivedesignprinciples.info/)
482
+ - [Microsoft - Inclusive Design](https://inclusive.microsoft.design/)
483
+ - [Faker.js Documentation](https://fakerjs.dev/)
484
+ - [British Dyslexia Association - Style Guide](https://www.bdadyslexia.org.uk/advice/employers/creating-a-dyslexia-friendly-workplace/dyslexia-friendly-style-guide)
485
+ - [Unicode BiDi Algorithm](https://unicode.org/reports/tr9/)
486
+ - [GDPR - Data Protection](https://gdpr.eu/)