@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,252 @@
1
+ # RTL Layout Mirroring — i18n/RTL Expertise Module
2
+
3
+ > The mechanics of layout mirroring: CSS logical properties, Flexbox/Grid behavior, transforms, and platform-specific APIs. Physical vs logical is the central concept—every layout decision must use the correct model.
4
+
5
+ > **Category:** RTL
6
+ > **Applies to:** Mobile, Web
7
+ > **Key standards:** CSS Logical Properties (MDN), W3C BiDi
8
+ > **RTL impact:** Critical — layout mirroring is the bulk of RTL implementation work
9
+
10
+ ## 1. The Rules
11
+
12
+ ### Physical vs Logical Mapping
13
+
14
+ | Physical (avoid for layout) | Logical (use) | LTR resolves to | RTL resolves to |
15
+ |-----------------------------|---------------|-----------------|-----------------|
16
+ | `left` | `inset-inline-start` | `left` | `right` |
17
+ | `right` | `inset-inline-end` | `right` | `left` |
18
+ | `margin-left` | `margin-inline-start` | `margin-left` | `margin-right` |
19
+ | `margin-right` | `margin-inline-end` | `margin-right` | `margin-left` |
20
+ | `padding-left` | `padding-inline-start` | `padding-left` | `padding-right` |
21
+ | `padding-right` | `padding-inline-end` | `padding-right` | `padding-left` |
22
+ | `border-left` | `border-inline-start` | `border-left` | `border-right` |
23
+ | `border-right` | `border-inline-end` | `border-right` | `border-left` |
24
+ | `text-align: left` | `text-align: start` | left | right |
25
+ | `text-align: right` | `text-align: end` | right | left |
26
+
27
+ ### Block vs Inline
28
+
29
+ - **Inline axis** — Direction of text flow (horizontal in LTR/RTL; can be vertical in CJK)
30
+ - **Block axis** — Perpendicular to inline (vertical in horizontal writing modes)
31
+
32
+ **Logical properties:**
33
+ - `inline-start`, `inline-end` — start/end of inline axis
34
+ - `block-start`, `block-end` — start/end of block axis
35
+
36
+ ### What Does NOT Auto-Mirror
37
+
38
+ - **`transform: translateX(10px)`** — Physical; does not flip. Use direction multiplier: `translateX(calc(10px * var(--dir, 1)))` with `--dir: -1` for RTL.
39
+ - **`box-shadow`** — Horizontal offset is physical. Use `inset-inline-start` for inset shadows or duplicate rules for RTL.
40
+ - **`background-position`** — `left`, `right` are physical. Use `right` in RTL override or `inline-start`/`inline-end` where supported.
41
+ - **`float`** — `float: left` is physical. Prefer Flexbox/Grid; if using float, override for RTL.
42
+
43
+ ---
44
+
45
+ ## 2. Platform Implementation
46
+
47
+ ### Web: CSS Logical Properties
48
+
49
+ ```css
50
+ /* Margins and padding */
51
+ .container {
52
+ margin-inline-start: 16px;
53
+ margin-inline-end: 8px;
54
+ padding-inline-start: 24px;
55
+ padding-inline-end: 12px;
56
+ }
57
+
58
+ /* Borders */
59
+ .card {
60
+ border-inline-start: 2px solid var(--accent);
61
+ border-inline-end: none;
62
+ }
63
+
64
+ /* Position */
65
+ .overlay {
66
+ position: absolute;
67
+ inset-inline-start: 0;
68
+ inset-block-start: 0;
69
+ width: 100%;
70
+ }
71
+
72
+ /* Text alignment */
73
+ .text {
74
+ text-align: start;
75
+ }
76
+ ```
77
+
78
+ ### Web: Transform (Manual RTL)
79
+
80
+ ```css
81
+ :root {
82
+ --slide-offset: -100%;
83
+ }
84
+
85
+ [dir="rtl"] {
86
+ --slide-offset: 100%;
87
+ }
88
+
89
+ .sidebar {
90
+ transform: translateX(var(--slide-offset));
91
+ }
92
+ ```
93
+
94
+ Or with a direction variable:
95
+ ```css
96
+ [dir="rtl"] {
97
+ --dir: -1;
98
+ }
99
+
100
+ .element {
101
+ transform: translateX(calc(20px * var(--dir, 1)));
102
+ }
103
+ ```
104
+
105
+ ### Web: Flexbox
106
+
107
+ Flexbox is **logical by default** when `dir` is set on a parent:
108
+ - `flex-direction: row` — Main axis follows writing direction (LTR: left→right; RTL: right→left)
109
+ - `justify-content: flex-start` — Start of main axis
110
+ - `align-items: flex-start` — Start of cross axis
111
+
112
+ **Do NOT use `row-reverse` for RTL.** The `dir` attribute handles it. Use `flex-start`/`flex-end`, not `left`/`right`.
113
+
114
+ ### Web: CSS Grid
115
+
116
+ ```css
117
+ .grid {
118
+ display: grid;
119
+ grid-template-columns: 1fr 2fr 1fr;
120
+ /* Columns flow inline; RTL flips column order automatically when dir="rtl" */
121
+ }
122
+
123
+ /* Use logical values for placement */
124
+ .item {
125
+ grid-column: 1 / 2; /* Still numeric; column order flips with dir */
126
+ }
127
+ ```
128
+
129
+ For `grid-column-start`/`end`, use `inline-start`/`inline-end` where supported, or rely on `dir` to flip the grid.
130
+
131
+ ### Flutter: Directional Classes
132
+
133
+ ```dart
134
+ // Padding
135
+ Padding(
136
+ padding: EdgeInsetsDirectional.only(start: 16, end: 8, top: 12, bottom: 12),
137
+ child: child,
138
+ )
139
+
140
+ // Alignment
141
+ Align(
142
+ alignment: AlignmentDirectional.centerStart,
143
+ child: child,
144
+ )
145
+
146
+ // EdgeInsets for symmetric
147
+ EdgeInsetsDirectional.symmetric(horizontal: 16)
148
+
149
+ // Positioned (in Stack)
150
+ Positioned.directional(
151
+ textDirection: Directionality.of(context),
152
+ start: 0,
153
+ end: 0,
154
+ top: 0,
155
+ child: child,
156
+ )
157
+ ```
158
+
159
+ **Avoid:** `EdgeInsets.only(left: 16)`, `Alignment.centerLeft` — use directional equivalents.
160
+
161
+ ### Flutter: Row and ListView
162
+
163
+ `Row` and `ListView` (horizontal) automatically reverse child order when `Directionality` is RTL. No extra code if you use `MainAxisAlignment.start` and directional padding.
164
+
165
+ ### iOS: Auto Layout
166
+
167
+ - Use **leading** and **trailing** constraints, never left/right for layout
168
+ - `NSLayoutConstraint` with `leadingAnchor`/`trailingAnchor`
169
+ - `UIView.semanticContentAttribute = .forceRightToLeft` for RTL
170
+
171
+ ### Android: Layout XML
172
+
173
+ ```xml
174
+ <LinearLayout
175
+ android:layoutDirection="locale"
176
+ ...>
177
+ <TextView
178
+ android:layout_marginStart="16dp"
179
+ android:layout_marginEnd="8dp"
180
+ ... />
181
+ </LinearLayout>
182
+ ```
183
+
184
+ Use `layout_marginStart`/`End`, `paddingStart`/`End`, `layout_gravity="start"`/`"end"`.
185
+
186
+ ---
187
+
188
+ ## 3. Visual Examples (Described in Detail)
189
+
190
+ ### Sidebar Drawer
191
+
192
+ - **LTR:** Drawer slides in from the left. `transform: translateX(-100%)` when closed.
193
+ - **RTL:** Drawer slides in from the right. `transform: translateX(100%)` when closed. The drawer is on the "start" side; in RTL, start is right.
194
+
195
+ ### Card with Leading Icon
196
+
197
+ - **LTR:** `[Icon] Title` — icon at inline-start.
198
+ - **RTL:** `Title [Icon]` — icon still at inline-start (now right). Use `margin-inline-start` on the title so spacing is correct.
199
+
200
+ ### List Item with Trailing Chevron
201
+
202
+ - **LTR:** `Item text [>]` — chevron at end.
203
+ - **RTL:** `[<] Item text` — chevron at end (now left). Chevron may need to mirror (point left in RTL = "more" in reading direction).
204
+
205
+ ### Progress Bar
206
+
207
+ - **LTR:** Fills from left. `width: 60%` or `transform: scaleX(0.6)` with `transform-origin: left`.
208
+ - **RTL:** Fills from right. `transform-origin: right` in RTL, or use logical: `inset-inline-start: 0` and `width` from start.
209
+
210
+ ---
211
+
212
+ ## 4. Common RTL Layout Bugs
213
+
214
+ 1. **Transform not mirroring** — `translateX` is physical. Use direction multiplier or separate RTL rule.
215
+ 2. **Shadow offset** — `box-shadow: 4px 0 8px` — 4px is to the right in LTR; in RTL it should be to the left. Override or use logical equivalent.
216
+ 3. **Gradient direction** — `linear-gradient(to right, ...)` — "right" is physical. Use `to inline-end` or `to left` in RTL override.
217
+ 4. **Absolute positioning** — `left: 0`; use `inset-inline-start: 0`.
218
+ 5. **Border radius** — `border-top-left-radius`; use `border-start-start-radius` for asymmetric corners.
219
+ 6. **Flexbox with `margin-left: auto`** — Physical. Use `margin-inline-start: auto`.
220
+ 7. **Float** — `float: left`; use `float: inline-start` or Flexbox.
221
+ 8. **Scrollbar position** — Horizontal scroll in RTL: scrollbar may be on the right; ensure overflow and scroll behavior are correct.
222
+ 9. **Fixed/sticky elements** — `position: fixed; left: 0`; use `inset-inline-start: 0`.
223
+
224
+ ---
225
+
226
+ ## 5. QA Checklist
227
+
228
+ - [ ] All margins/padding use logical properties
229
+ - [ ] Transforms use direction multiplier or RTL override
230
+ - [ ] Flexbox uses flex-start/flex-end, not left/right
231
+ - [ ] Absolute/fixed positioning uses inset-inline-*
232
+ - [ ] Borders and border-radius use logical where asymmetric
233
+ - [ ] Shadows and gradients checked in RTL
234
+ - [ ] Sidebar/drawer slides from correct edge
235
+ - [ ] Progress bar fills from start
236
+ - [ ] List items and cards lay out correctly
237
+
238
+ ---
239
+
240
+ ## Quick Reference Checklist
241
+
242
+ - [ ] Replace `left`/`right` with `inline-start`/`inline-end`
243
+ - [ ] Replace `margin-left`/`margin-right` with `margin-inline-*`
244
+ - [ ] Replace `padding-left`/`padding-right` with `padding-inline-*`
245
+ - [ ] Use `EdgeInsetsDirectional` in Flutter
246
+ - [ ] Use leading/trailing in iOS Auto Layout
247
+ - [ ] Use start/end in Android XML
248
+ - [ ] Handle `translateX` manually for RTL
249
+ - [ ] Verify shadows, gradients, and transforms in RTL
250
+
251
+ ---
252
+ *Researched: 2026-03-08 | Sources: MDN logical properties, CSS-Tricks multi-directional layouts, Flutter Directionality docs, Firefox RTL guidelines*
@@ -0,0 +1,107 @@
1
+ # RTL Navigation and Gestures — i18n/RTL Expertise Module
2
+
3
+ > Navigation and gestures must follow reading direction: swipe-back from the right edge in RTL, tab order from right to left, carousels and steppers reversed. Wrong gesture direction is disorienting.
4
+
5
+ > **Category:** RTL
6
+ > **Applies to:** Mobile, Web
7
+ > **Key standards:** Material Design, Apple HIG
8
+ > **RTL impact:** Critical — navigation is core to UX
9
+
10
+ ## 1. The Rules
11
+
12
+ ### Swipe-Back Gesture
13
+
14
+ | Context | LTR | RTL |
15
+ |---------|-----|-----|
16
+ | **Back navigation** | Swipe from left edge → right | Swipe from right edge → left |
17
+ | **Rationale** | "Back" = toward start (left) | "Back" = toward start (right) |
18
+
19
+ In RTL, the user "came from" the right. Swiping right-to-left dismisses the current screen and returns to the previous one.
20
+
21
+ ### Carousel / Horizontal Scroll
22
+
23
+ | Context | LTR | RTL |
24
+ |---------|-----|-----|
25
+ | **Scroll direction** | Swipe left to see "next" | Swipe right to see "next" |
26
+ | **Initial position** | Content starts at left | Content starts at right |
27
+ | **"More" content** | To the right | To the left |
28
+
29
+ ### Tab Bar / Bottom Navigation
30
+
31
+ - **LTR:** First tab on left
32
+ - **RTL:** First tab on right
33
+ - Tab order follows visual order (start → end)
34
+
35
+ ### Focus Order
36
+
37
+ - **LTR:** Tab order left → right, top → bottom
38
+ - **RTL:** Tab order right → left, top → bottom
39
+ - Ensure focus follows visual layout
40
+
41
+ ---
42
+
43
+ ## 2. Platform Implementation
44
+
45
+ ### iOS
46
+
47
+ - **Swipe-back:** iOS automatically inverts when `userInterfaceLayoutDirection` is RTL
48
+ - **Edge swipe:** From the leading edge (right in RTL)
49
+ - **UINavigationController:** Handles RTL by default with base internationalization
50
+
51
+ ### Android
52
+
53
+ - **Back gesture:** From the start edge (right in RTL)
54
+ - **Navigation component:** Uses `layoutDirection`; gestures follow
55
+ - **ViewPager:** Set `layoutDirection` or use `ViewPager2` with RTL support
56
+
57
+ ### Flutter
58
+
59
+ - **CupertinoPageRoute:** Swipe-back direction follows `Directionality`
60
+ - **PageView:** Horizontal scroll direction flips with `TextDirection.rtl`
61
+ - **TabBar:** Tab order reverses automatically
62
+
63
+ ### React Navigation
64
+
65
+ - RTL swipe-back fixed in later versions; ensure `gestureDirection` is not overridden incorrectly
66
+ - Use `gestureDirection: 'inverted'` only when framework doesn't auto-detect RTL
67
+
68
+ ### Web (Carousel / Swiper)
69
+
70
+ - Set `dir="rtl"` on container; many libraries (Swiper, etc.) respect it
71
+ - If not: `rtl: true` or equivalent option
72
+ - Verify "next" swipe goes the correct direction
73
+
74
+ ---
75
+
76
+ ## 3. Common RTL Navigation Bugs
77
+
78
+ 1. **Swipe-back from wrong edge** — User swipes left (LTR habit) but nothing happens; back is from right in RTL
79
+ 2. **Carousel "next" goes wrong way** — Swiping "forward" feels backward
80
+ 3. **Tab order wrong** — Focus jumps left when it should go right
81
+ 4. **Horizontal scroll starts wrong** — Content appears to start from wrong side
82
+ 5. **Stepper/wizard arrows wrong** — Progress direction doesn't match layout
83
+ 6. **Drawer opens from wrong side** — Should open from start (right in RTL)
84
+
85
+ ---
86
+
87
+ ## 4. QA Checklist
88
+
89
+ - [ ] Swipe-back from correct edge (right in RTL)
90
+ - [ ] Carousel/horizontal scroll direction correct
91
+ - [ ] Tab bar order follows visual order
92
+ - [ ] Focus order follows visual order
93
+ - [ ] Drawer/sidebar opens from start edge
94
+ - [ ] "Next" and "Previous" buttons in correct positions
95
+
96
+ ---
97
+
98
+ ## Quick Reference Checklist
99
+
100
+ - [ ] Back gesture from start edge (right in RTL)
101
+ - [ ] Carousel next/previous follow reading direction
102
+ - [ ] Tab order = visual order
103
+ - [ ] Focus order = visual order
104
+ - [ ] Test swipe gestures in RTL
105
+
106
+ ---
107
+ *Researched: 2026-03-08 | Sources: React Navigation RTL, iOS/Flutter RTL, Material Design*
@@ -0,0 +1,147 @@
1
+ # RTL Testing and QA — i18n/RTL Expertise Module
2
+
3
+ > How to verify RTL correctness: pseudo-localization, manual checklists, automated checks, and real-locale testing. Catch layout, icon, gesture, and BiDi bugs before release.
4
+
5
+ > **Category:** RTL
6
+ > **Applies to:** Mobile, Web
7
+ > **Key standards:** W3C, Material Design
8
+ > **RTL impact:** Critical — RTL bugs ship without dedicated QA
9
+
10
+ ## 1. Pseudo-Localization for RTL
11
+
12
+ ### Purpose
13
+
14
+ - Simulate RTL without translators
15
+ - Expose layout, truncation, and hardcoded-string issues early
16
+
17
+ ### Android Pseudolocales
18
+
19
+ - **en-XA** — Accented Latin, text expansion
20
+ - **ar-XB** — Reversed text direction (RTL simulation)
21
+
22
+ ### Web / General
23
+
24
+ - Use `dir="rtl"` with pseudo-translated content
25
+ - Wrap strings with Unicode RLI/PDI or use `dir="rtl"` on test locale
26
+ - Tools: pseudo-l10n npm package, custom scripts
27
+
28
+ ### What to Look For
29
+
30
+ - Layout mirroring (or lack of it)
31
+ - Truncated text
32
+ - Overlapping elements
33
+ - Icons that should mirror but don't
34
+ - Hardcoded strings (remain in source language)
35
+
36
+ ---
37
+
38
+ ## 2. Manual QA Checklist (20–30 Items)
39
+
40
+ ### Layout
41
+
42
+ - [ ] Navigation/tabs ordered start→end (right→left in RTL)
43
+ - [ ] Sidebar/drawer on start side (right in RTL)
44
+ - [ ] Content flows from start
45
+ - [ ] No horizontal overflow or clipping
46
+ - [ ] Margins/padding correct (logical properties)
47
+
48
+ ### Text
49
+
50
+ - [ ] Text aligns to start
51
+ - [ ] Mixed content (Arabic + English) displays correctly
52
+ - [ ] Numbers, URLs, email in correct direction
53
+ - [ ] Truncation/ellipsis at inline-end
54
+ - [ ] Line breaks and wrapping correct
55
+
56
+ ### Icons and Images
57
+
58
+ - [ ] Back/forward arrows mirror
59
+ - [ ] Chevrons mirror where directional
60
+ - [ ] Checkmark, play, settings do NOT mirror
61
+ - [ ] Logos and photos do NOT mirror
62
+ - [ ] Icon position uses start/end
63
+
64
+ ### Navigation and Gestures
65
+
66
+ - [ ] Swipe-back from correct edge (right in RTL)
67
+ - [ ] Carousel/horizontal scroll direction correct
68
+ - [ ] Tab order follows visual order
69
+ - [ ] Focus order correct
70
+
71
+ ### Forms
72
+
73
+ - [ ] Labels at start of input
74
+ - [ ] Input text aligns to start
75
+ - [ ] Leading/trailing icons in correct positions
76
+ - [ ] Validation messages positioned correctly
77
+
78
+ ### Animations
79
+
80
+ - [ ] Drawer slides from start edge
81
+ - [ ] Page transitions follow direction
82
+ - [ ] No "wrong way" slide animations
83
+
84
+ ### Edge Cases
85
+
86
+ - [ ] Empty states
87
+ - [ ] Long text (e.g., German)
88
+ - [ ] Mixed LTR/RTL in same view
89
+ - [ ] Dynamic content (user names, search results)
90
+
91
+ ---
92
+
93
+ ## 3. Real Locale Testing
94
+
95
+ ### Arabic (ar-SA, ar-EG)
96
+
97
+ - Real text: مرحباً، كيف حالك؟
98
+ - Eastern Arabic numerals (٠١٢٣) where applicable
99
+ - Hijri calendar if used
100
+
101
+ ### Hebrew (he-IL)
102
+
103
+ - Real text: שלום, עברית
104
+ - Western numerals
105
+ - Hebrew calendar if used
106
+
107
+ ### Why Real Text
108
+
109
+ - BiDi algorithm behaves differently with real script
110
+ - Font rendering, line breaks, and shaping differ from pseudo
111
+
112
+ ---
113
+
114
+ ## 4. Automated Checks
115
+
116
+ - **Lint:** Flag `margin-left`, `padding-right`, `text-align: left` in styles
117
+ - **CI:** Run with `dir="rtl"` or RTL locale; snapshot or visual regression
118
+ - **Accessibility:** Screen reader with RTL; focus order
119
+ - **Unit tests:** Direction-dependent logic (e.g., transform, layout direction)
120
+
121
+ ---
122
+
123
+ ## 5. Common RTL Bugs to Catch
124
+
125
+ 1. Physical properties instead of logical
126
+ 2. Icons that should mirror but don't (or vice versa)
127
+ 3. Swipe-back from wrong edge
128
+ 4. Drawer from wrong side
129
+ 5. Transform/translate not inverted
130
+ 6. Form labels on wrong side
131
+ 7. Mixed content BiDi spillover
132
+ 8. Truncation at wrong edge
133
+ 9. Shadow/gradient not mirrored where needed
134
+ 10. Tab/focus order wrong
135
+
136
+ ---
137
+
138
+ ## Quick Reference Checklist
139
+
140
+ - [ ] Pseudo-localization (ar-XB or dir=rtl) in CI
141
+ - [ ] Manual checklist for layout, text, icons, navigation, forms
142
+ - [ ] Test with real Arabic and Hebrew
143
+ - [ ] Automated lint for physical properties
144
+ - [ ] Verify swipe gestures and animations
145
+
146
+ ---
147
+ *Researched: 2026-03-08 | Sources: Android pseudolocales, L10n pseudo-localization, Ubertesters RTL testing*
@@ -0,0 +1,160 @@
1
+ # RTL Typography — i18n/RTL Expertise Module
2
+
3
+ > Typography for RTL scripts: font selection, line height, letter spacing, and script-specific considerations. Arabic and Hebrew have different requirements—connected cursive vs discrete letters, diacritics, and rendering complexity.
4
+
5
+ > **Category:** RTL
6
+ > **Applies to:** Mobile, Web
7
+ > **Key standards:** OpenType, W3C typography
8
+ > **RTL impact:** Critical — poor typography makes RTL content unreadable
9
+
10
+ ## 1. The Rules
11
+
12
+ ### Arabic vs Hebrew: Key Differences
13
+
14
+ | Aspect | Arabic | Hebrew |
15
+ |--------|--------|--------|
16
+ | **Script type** | Cursive (connected) | Mostly discrete (some connections) |
17
+ | **Letter forms** | Initial, medial, final, isolated | Positional variants, final forms |
18
+ | **Ligatures** | Many; words can act as single units | Fewer |
19
+ | **Diacritics** | Harakat (short vowels), dots | Niqqud, cantillation |
20
+ | **Font requirements** | OpenType shaping, contextual alternates | OpenType shaping |
21
+ | **Baseline** | Varies with letter height | More uniform |
22
+
23
+ ### Font Size and Line Height
24
+
25
+ - **Arabic body text:** 14–18px minimum; many sites use 12–16px (below ideal)
26
+ - **Line height:** 1.5–1.75 for body; Arabic's ascenders/descenders need room
27
+ - **Hebrew:** Similar range; ensure diacritics (niqqud) don't collide with adjacent lines
28
+
29
+ ### Logical Properties for Typography
30
+
31
+ - `text-align: start` — Not `left`
32
+ - `text-indent` — Use `text-indent: 2em` (block direction) or logical equivalent
33
+ - `letter-spacing` — Use sparingly; Arabic/Hebrew have different norms than Latin
34
+
35
+ ---
36
+
37
+ ## 2. Arabic-Specific Typography
38
+
39
+ ### Connected Script
40
+
41
+ Arabic letters connect within words. Each letter has up to 4 forms: isolated, initial, medial, final. The font must support **OpenType contextual alternates** and **shaping** (e.g., HarfBuzz, Uniscribe).
42
+
43
+ ### Diacritical Marks (Harakat)
44
+
45
+ - Short vowels (fatḥa, kasra, ḍamma) and other marks sit above/below letters
46
+ - Require sufficient line height to avoid clipping
47
+ - Some fonts render them better than others
48
+
49
+ ### Font Recommendations
50
+
51
+ - **Body:** Tahoma, Arial (system), Noto Sans Arabic, IBM Plex Sans Arabic
52
+ - **Headlines:** Amiri, Lateef, Noto Kufi Arabic, Droid Arabic Kufi
53
+ - **Display:** Avoid overly decorative fonts for UI; reserve for marketing
54
+
55
+ ### Common Pitfalls
56
+
57
+ 1. **Font without Arabic support** — Fallback to system font; ensure `font-family` includes Arabic-capable fonts
58
+ 2. **Insufficient line height** — Diacritics get clipped
59
+ 3. **Letter-spacing** — Arabic typically uses minimal or no letter-spacing; adding it can break connections
60
+ 4. **Small font size** — Below 14px, connected letters blur; diacritics become illegible
61
+
62
+ ---
63
+
64
+ ## 3. Hebrew-Specific Typography
65
+
66
+ ### Script Characteristics
67
+
68
+ - 22 consonants; optional vowel points (niqqud)
69
+ - Final forms for 5 letters (kaf, mem, nun, pe, tsadi)
70
+ - Rashi script for religious commentary (different glyph set)
71
+
72
+ ### Font Recommendations
73
+
74
+ - **Body:** Heebo, Noto Sans Hebrew, Arial (system)
75
+ - **Religious/formal:** Noto Rashi Hebrew, Frank Ruhl Libre
76
+ - **Display:** Heebo, Rubik
77
+
78
+ ### Niqqud (Vowel Points)
79
+
80
+ - Placed above/below letters; need line height headroom
81
+ - Optional in modern Hebrew; often omitted in UI
82
+
83
+ ---
84
+
85
+ ## 4. Platform Implementation
86
+
87
+ ### Web: Font Stack
88
+
89
+ ```css
90
+ :root {
91
+ --font-arabic: 'Noto Sans Arabic', 'Tahoma', 'Arial', sans-serif;
92
+ --font-hebrew: 'Heebo', 'Noto Sans Hebrew', 'Arial', sans-serif;
93
+ }
94
+
95
+ [lang="ar"] {
96
+ font-family: var(--font-arabic);
97
+ line-height: 1.6;
98
+ font-size: 1rem; /* 16px minimum for body */
99
+ }
100
+ ```
101
+
102
+ ### Web: Font Loading
103
+
104
+ ```html
105
+ <link rel="preconnect" href="https://fonts.googleapis.com">
106
+ <link href="https://fonts.googleapis.com/css2?family=Noto+Sans+Arabic:wght@400;600;700&display=swap" rel="stylesheet">
107
+ ```
108
+
109
+ ### Flutter
110
+
111
+ ```dart
112
+ // In theme or TextStyle
113
+ TextStyle(
114
+ fontFamily: 'NotoSansArabic',
115
+ fontSize: 16,
116
+ height: 1.6,
117
+ )
118
+ ```
119
+
120
+ ### iOS / Android
121
+
122
+ - Use system fonts that support Arabic/Hebrew (San Francisco, Roboto)
123
+ - Or bundle Noto Sans Arabic / Heebo
124
+
125
+ ---
126
+
127
+ ## 5. Mixed Script Typography
128
+
129
+ When mixing Arabic/Hebrew with Latin (e.g., brand names, technical terms):
130
+
131
+ - Ensure both scripts have compatible x-height and weight
132
+ - Noto family provides matching Latin + Arabic + Hebrew
133
+ - Avoid font switching mid-sentence when possible
134
+
135
+ ---
136
+
137
+ ## 6. Anti-Patterns
138
+
139
+ 1. **Letter-spacing on Arabic** — Breaks cursive connections
140
+ 2. **Font size below 14px for body** — Illegible diacritics
141
+ 3. **Line height < 1.5** — Diacritics collide
142
+ 4. **Font without OpenType shaping** — Wrong letter forms
143
+ 5. **Using Latin font for Arabic** — Missing glyphs, replacement characters
144
+ 6. **text-transform: uppercase** — Arabic has no case; can break
145
+ 7. **word-spacing** — Arabic uses different word-boundary rules
146
+
147
+ ---
148
+
149
+ ## Quick Reference Checklist
150
+
151
+ - [ ] Font supports Arabic/Hebrew (OpenType shaping)
152
+ - [ ] Body font size ≥ 14px (16px preferred)
153
+ - [ ] Line height 1.5–1.75 for body
154
+ - [ ] No letter-spacing on Arabic
155
+ - [ ] text-align: start
156
+ - [ ] Test with real text: العربية، עברית
157
+ - [ ] Diacritics not clipped
158
+
159
+ ---
160
+ *Researched: 2026-03-08 | Sources: Code Guru Arabic fonts, HackerNoon Arabic design, Noto fonts, OpenType shaping*