@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,161 @@
1
+ # RTL Forms and Input — i18n/RTL Expertise Module
2
+
3
+ > Form layout, label placement, input alignment, and validation messages in RTL. Labels at start of input, text alignment follows direction, placeholders and icons positioned correctly.
4
+
5
+ > **Category:** RTL
6
+ > **Applies to:** Mobile, Web
7
+ > **Key standards:** W3C, Material Design
8
+ > **RTL impact:** Critical — forms are high-frequency touchpoints
9
+
10
+ ## 1. The Rules
11
+
12
+ ### Label Placement
13
+
14
+ | Layout | LTR | RTL |
15
+ |--------|-----|-----|
16
+ | **Inline (label + input)** | Label left of input | Label right of input |
17
+ | **Top-aligned** | Label above input | Same (no mirror) |
18
+ | **Floating label** | Label at start of input | Label at start (right in RTL) |
19
+
20
+ **Rule:** Label is always at the **start** of the input (inline axis). In RTL, start = right.
21
+
22
+ ### Input Text Alignment
23
+
24
+ - **LTR:** `text-align: start` → left
25
+ - **RTL:** `text-align: start` → right
26
+ - **Numbers in input:** May stay LTR (e.g., phone, credit card); use `dir="ltr"` on input if needed
27
+ - **Mixed content:** Use `dir="auto"` for user-generated text
28
+
29
+ ### Input Icons
30
+
31
+ | Icon position | LTR | RTL |
32
+ |---------------|-----|-----|
33
+ | **Leading (search icon)** | Left of input | Right of input |
34
+ | **Trailing (clear, visibility)** | Right of input | Left of input |
35
+ | **Inside input** | `padding-inline-start` for leading icon space | Same (logical) |
36
+
37
+ ---
38
+
39
+ ## 2. Platform Implementation
40
+
41
+ ### Web (CSS)
42
+
43
+ ```css
44
+ .form-group {
45
+ display: flex;
46
+ flex-direction: row; /* or column for top-aligned */
47
+ gap: 0.5rem;
48
+ }
49
+
50
+ label {
51
+ flex-shrink: 0;
52
+ /* Inline: label at start; flex order handles it when dir=rtl */
53
+ }
54
+
55
+ input, textarea {
56
+ text-align: start;
57
+ padding-inline-start: 1rem;
58
+ padding-inline-end: 1rem;
59
+ }
60
+
61
+ /* Leading icon */
62
+ .input-with-icon {
63
+ padding-inline-start: 2.5rem;
64
+ }
65
+ .input-with-icon[dir="rtl"] {
66
+ padding-inline-end: 2.5rem;
67
+ padding-inline-start: 1rem;
68
+ }
69
+ /* Or use logical: padding-inline-start with icon positioned at start */
70
+ ```
71
+
72
+ ### Flutter
73
+
74
+ ```dart
75
+ TextField(
76
+ textDirection: TextDirection.rtl, // or from Directionality
77
+ textAlign: TextAlign.start,
78
+ decoration: InputDecoration(
79
+ labelText: '...',
80
+ // Flutter handles RTL for icon placement when Directionality is set
81
+ prefixIcon: Icon(Icons.search), // At start
82
+ suffixIcon: Icon(Icons.clear), // At end
83
+ ),
84
+ )
85
+ ```
86
+
87
+ ### Android
88
+
89
+ ```xml
90
+ <EditText
91
+ android:layoutDirection="locale"
92
+ android:textAlignment="viewStart"
93
+ android:gravity="start"
94
+ ... />
95
+ ```
96
+
97
+ ### iOS
98
+
99
+ - Use leading/trailing constraints for label and input
100
+ - `NSTextAlignment.natural` for text alignment
101
+ - `semanticContentAttribute` for RTL
102
+
103
+ ---
104
+
105
+ ## 3. Special Cases
106
+
107
+ ### Number Inputs
108
+
109
+ - Phone numbers, credit cards: often LTR
110
+ - Use `dir="ltr"` on the input or `inputmode` + `inputmode="numeric"`
111
+ - Or let `dir="auto"` resolve from first character
112
+
113
+ ### Search Input
114
+
115
+ - Magnifier icon at start (right in RTL)
116
+ - Clear button at end (left in RTL)
117
+
118
+ ### Validation Messages
119
+
120
+ - Position at start of input (below or inline)
121
+ - Use logical properties for placement
122
+
123
+ ### Placeholder Text
124
+
125
+ - `text-align: start` so placeholder aligns with input
126
+ - Placeholder direction follows input `dir`
127
+
128
+ ---
129
+
130
+ ## 4. Anti-Patterns
131
+
132
+ 1. **Label on wrong side** — Using `float: left` or `margin-left`; use logical
133
+ 2. **Input text-align: left** — Use `text-align: start`
134
+ 3. **Icon padding physical** — `padding-left` for leading icon; use `padding-inline-start`
135
+ 4. **Fixed width for label** — Labels vary in length; use flex or min-width
136
+ 5. **Validation message position** — Using `left`; use `inline-start`
137
+
138
+ ---
139
+
140
+ ## 5. QA Checklist
141
+
142
+ - [ ] Labels at start of input
143
+ - [ ] Input text aligns to start
144
+ - [ ] Leading/trailing icons in correct positions
145
+ - [ ] Placeholder aligns with input
146
+ - [ ] Number inputs (phone, etc.) handled (LTR or as needed)
147
+ - [ ] Validation messages at start
148
+ - [ ] Focus ring/outline uses logical inset
149
+
150
+ ---
151
+
152
+ ## Quick Reference Checklist
153
+
154
+ - [ ] Label at start (right in RTL for inline layout)
155
+ - [ ] `text-align: start` on inputs
156
+ - [ ] Icon padding uses `padding-inline-*`
157
+ - [ ] Test with long labels (e.g., German)
158
+ - [ ] Test number and mixed-content inputs
159
+
160
+ ---
161
+ *Researched: 2026-03-08 | Sources: CSS-Tricks forms, Bootstrap RTL, Stack Overflow RTL forms*
@@ -0,0 +1,211 @@
1
+ # RTL Fundamentals — i18n/RTL Expertise Module
2
+
3
+ > The core rules of right-to-left layout: what mirrors, what doesn't, and why "just flip the layout" is wrong. RTL is a fundamental change in reading direction, interaction patterns, and visual hierarchy—not a CSS transform.
4
+
5
+ > **Category:** RTL
6
+ > **Applies to:** Mobile, Web
7
+ > **Key standards:** W3C BiDi, Material Design RTL, Apple HIG RTL
8
+ > **RTL impact:** Critical — this is the entry point for all RTL work
9
+
10
+ ## 1. The Rules
11
+
12
+ ### What Mirrors (Layout and Directional Elements)
13
+
14
+ | Element | LTR | RTL | Why |
15
+ |---------|-----|-----|-----|
16
+ | **Layout flow** | Content starts left, flows right | Content starts right, flows left | Reading direction |
17
+ | **Navigation** | Items ordered left→right | Items ordered right→left | Reading order |
18
+ | **Back arrow** | ← (points left) | → (points right) | "Back" = toward start |
19
+ | **Forward arrow** | → (points right) | ← (points left) | "Forward" = toward end |
20
+ | **Sidebar** | Left side | Right side | Start edge |
21
+ | **Padding/margins** | `padding-left` = start | `padding-inline-start` = start | Logical = auto-mirror |
22
+ | **Text alignment** | `text-align: left` | `text-align: start` | Start = reading start |
23
+ | **Progress bar fill** | Fills left→right | Fills right→left | Direction of progress |
24
+ | **Tabs** | First tab on left | First tab on right | Start edge |
25
+ | **Form labels** | Label left of input | Label right of input | Start-before-end |
26
+ | **Icons with direction** | Back, forward, chevron | Mirrored | Convey direction |
27
+
28
+ ### What Does NOT Mirror
29
+
30
+ | Element | Reason |
31
+ |---------|--------|
32
+ | **Checkmark (✓)** | No inherent direction; same in all locales |
33
+ | **Play button (▶)** | Represents play action, not reading direction |
34
+ | **Media timeline** | Time flows left→right universally |
35
+ | **Charts and graphs** | X-axis = time/quantity; convention is LTR |
36
+ | **Maps** | Geographic; north is up, east is right |
37
+ | **Clocks** | 12 at top is universal |
38
+ | **Numbers** | 123 stays 123 (Western Arabic numerals) |
39
+ | **Phone numbers** | Always LTR |
40
+ | **URLs, email** | Always LTR |
41
+ | **Brand logos** | Do not mirror |
42
+ | **Music notation** | Universal convention |
43
+ | **Video playhead** | Represents time; moves left→right |
44
+
45
+ ### The #1 Rule: Physical vs Logical
46
+
47
+ **Physical:** `left`, `right`, `margin-left`, `padding-right` — fixed in space.
48
+
49
+ **Logical:** `start`, `end`, `inline-start`, `inline-end`, `margin-inline-start` — follow reading direction.
50
+
51
+ Using logical properties prevents ~60% of RTL bugs. Every layout decision should ask: "Is this physical or logical?"
52
+
53
+ ---
54
+
55
+ ## 2. Visual Examples (Described in Detail)
56
+
57
+ ### Back Arrow
58
+
59
+ - **LTR:** Back arrow points left (←). User taps to go "back" = toward the start of the navigation stack.
60
+ - **RTL:** Back arrow points right (→). "Back" still means toward the start—but in RTL, start is on the right. The arrow mirrors so it points toward the right edge, where the user "came from."
61
+
62
+ ### Progress Bar
63
+
64
+ - **LTR:** Bar fills from left to right. Empty on the left, full on the right.
65
+ - **RTL:** Bar fills from right to left. Empty on the right, full on the left. Progress direction follows reading direction.
66
+
67
+ ### Media Playhead
68
+
69
+ - **LTR and RTL:** Playhead moves left→right. Time is universal; 0:00 is left, end is right. Do NOT mirror.
70
+
71
+ ### List with Leading Icon
72
+
73
+ - **LTR:** Icon on left, text on right. `[icon] Item text`
74
+ - **RTL:** Icon on right, text on left. `Item text [icon]` — icon stays at the start (which is now right).
75
+
76
+ ### Form: Label + Input
77
+
78
+ - **LTR:** Label to the left of the input. `Name: [________]`
79
+ - **RTL:** Label to the right of the input. `[________] :Name` — label at start, input at end.
80
+
81
+ ### Mixed Content: "Hello العربية"
82
+
83
+ - **LTR paragraph:** "Hello" LTR, "العربية" RTL (reversed visually), both in one line.
84
+ - **RTL paragraph:** "العربية" RTL, "Hello" LTR (embedded), order depends on BiDi algorithm.
85
+
86
+ ---
87
+
88
+ ## 3. Platform Implementation
89
+
90
+ ### Web (CSS Logical Properties)
91
+
92
+ ```css
93
+ /* Physical (avoid for layout) */
94
+ margin-left: 16px;
95
+ padding-right: 8px;
96
+ text-align: left;
97
+
98
+ /* Logical (RTL-safe) */
99
+ margin-inline-start: 16px;
100
+ padding-inline-end: 8px;
101
+ text-align: start;
102
+ ```
103
+
104
+ **Transform that does NOT auto-mirror:**
105
+ ```css
106
+ /* BAD: translateX is physical */
107
+ transform: translateX(10px);
108
+
109
+ /* GOOD: use direction multiplier or logical equivalent */
110
+ transform: translateX(calc(10px * var(--dir, 1))); /* dir = -1 for RTL */
111
+ ```
112
+
113
+ ### Flutter
114
+
115
+ ```dart
116
+ // Use Directionality
117
+ Directionality(
118
+ textDirection: TextDirection.rtl,
119
+ child: Row(
120
+ children: [...],
121
+ ),
122
+ )
123
+
124
+ // Use EdgeInsetsDirectional, not EdgeInsets
125
+ EdgeInsetsDirectional.only(start: 16, end: 8)
126
+
127
+ // Icons: Icon with semanticLabel; use RTL-aware icons
128
+ Icon(Icons.arrow_back) // Flutter mirrors automatically when Directionality is RTL
129
+ ```
130
+
131
+ ### iOS (Auto Layout)
132
+
133
+ - Use `leading` and `trailing` constraints, not `left` and `right`
134
+ - `UIView.semanticContentAttribute = .forceRightToLeft` for RTL
135
+ - SF Symbols: many auto-mirror; use `symbolConfiguration` for custom behavior
136
+
137
+ ### Android
138
+
139
+ - `android:layoutDirection="rtl"` on root or `View`
140
+ - `start`/`end` in XML layouts instead of `left`/`right`
141
+ - `getLayoutDirectionFromLocale()` for system locale
142
+
143
+ ---
144
+
145
+ ## 4. Mixed Content Handling
146
+
147
+ ### LTR Inside RTL
148
+
149
+ - English brand names, URLs, code: wrap in `dir="ltr"` or equivalent
150
+ - Numbers (Western): often LTR; may need LRM in edge cases
151
+
152
+ ### RTL Inside LTR
153
+
154
+ - Arabic/Hebrew names in English UI: wrap in `dir="rtl"` or `dir="auto"`
155
+ - Use `<bdi>` when direction is unknown
156
+
157
+ ### Phone Numbers, Email, URLs
158
+
159
+ - Always LTR; do not mirror
160
+
161
+ ---
162
+
163
+ ## 5. Common RTL Bugs
164
+
165
+ 1. **Shadows and gradients** — `box-shadow` with `left` offset doesn't mirror; use `inset-inline-start` or direction-aware values.
166
+ 2. **Swipe gestures** — Swipe-to-go-back: in RTL, "back" swipe should be from the right edge.
167
+ 3. **Text alignment** — `text-align: left` on mixed content; use `text-align: start`.
168
+ 4. **Padding/margin** — Using `padding-left`; use `padding-inline-start`.
169
+ 5. **Icons that should mirror** — Back, forward, chevrons; ensure they flip.
170
+ 6. **Icons that shouldn't** — Checkmark, play, share; do not mirror.
171
+ 7. **Progress bar** — Filling wrong direction; should fill start→end.
172
+ 8. **Transform** — `translateX(10px)` doesn't mirror; use logical or direction multiplier.
173
+ 9. **Absolute positioning** — `left: 0`; use `inset-inline-start: 0`.
174
+ 10. **Border radius** — `border-top-left-radius`; consider `border-start-start-radius` if asymmetric.
175
+ 11. **Flexbox** — `flex-direction: row` is logical; `row-reverse` for RTL is usually wrong—prefer logical props.
176
+ 12. **Scroll position** — Horizontal scroll may start from right in RTL.
177
+ 13. **Tab order** — Focus order should follow visual order in RTL.
178
+ 14. **Truncation** — `text-overflow: ellipsis`; ellipsis should appear at end (inline-end).
179
+ 15. **Z-index and overlay** — Overlays from "start" side; in RTL, start is right.
180
+
181
+ ---
182
+
183
+ ## 6. QA Checklist
184
+
185
+ - [ ] Layout mirrors: navigation, sidebars, tabs
186
+ - [ ] Back/forward arrows mirror
187
+ - [ ] Progress bars fill correct direction
188
+ - [ ] Media timeline and playhead do NOT mirror
189
+ - [ ] Forms: labels at start of input
190
+ - [ ] No physical properties (left/right) for layout
191
+ - [ ] Shadows/gradients correct in RTL
192
+ - [ ] Swipe gestures match direction
193
+ - [ ] Mixed content (Arabic in English, etc.) displays correctly
194
+ - [ ] Phone numbers, URLs, email stay LTR
195
+ - [ ] Focus order follows visual order
196
+ - [ ] Truncation and ellipsis at correct edge
197
+
198
+ ---
199
+
200
+ ## Quick Reference Checklist
201
+
202
+ - [ ] Use logical properties (start/end, inline-start/end)
203
+ - [ ] Mirror directional icons (back, forward, chevrons)
204
+ - [ ] Do NOT mirror: play, checkmark, media timeline, maps, numbers
205
+ - [ ] Progress bar fills start→end
206
+ - [ ] Test with real Arabic (العربية) and Hebrew (עברית)
207
+ - [ ] Verify shadows, transforms, and absolute positioning
208
+ - [ ] Swipe gestures match RTL expectations
209
+
210
+ ---
211
+ *Researched: 2026-03-08 | Sources: W3C BiDi, Material Design RTL, Apple HIG RTL, MDN logical properties, RTL guidelines (GitHub)*
@@ -0,0 +1,181 @@
1
+ # RTL Icons and Images — i18n/RTL Expertise Module
2
+
3
+ > Which icons and images mirror in RTL, and which don't. Directional elements (arrows, chevrons, progress) flip; content (photos, logos, checkmarks) stays. Platform APIs and implementation patterns.
4
+
5
+ > **Category:** RTL
6
+ > **Applies to:** Mobile, Web
7
+ > **Key standards:** Material Design RTL, Apple HIG
8
+ > **RTL impact:** Critical — wrong icon direction confuses users
9
+
10
+ ## 1. The Rules
11
+
12
+ ### Icons That MIRROR (Directional)
13
+
14
+ | Icon | LTR | RTL | Why |
15
+ |------|-----|-----|-----|
16
+ | Back/previous | ← | → | "Back" = toward start; start is right in RTL |
17
+ | Forward/next | → | ← | "Forward" = toward end |
18
+ | Chevron (expand/collapse) | > | < | Points to content; content moves |
19
+ | Caret (dropdown) | ▼ or > | Same or mirrored | Depends on placement |
20
+ | Text alignment left | ∟ | Mirrored | Aligns with "start" |
21
+ | Text alignment right | ⊣ | Mirrored | Aligns with "end" |
22
+ | Indent/outdent | Directional | Mirrored | Text flow direction |
23
+ | List bullet/arrow | → | ← | Indicates flow |
24
+ | Progress/stepper arrow | → | ← | Direction of progress |
25
+ | Sidebar expand | > | < | Expand toward content |
26
+
27
+ ### Icons That Do NOT Mirror
28
+
29
+ | Icon | Reason |
30
+ |------|--------|
31
+ | Checkmark (✓) | No inherent direction |
32
+ | Play (▶) | Universal "play" symbol |
33
+ | Pause (⏸) | No direction |
34
+ | Stop (⏹) | No direction |
35
+ | Camera | No direction |
36
+ | Settings (gear) | No direction |
37
+ | Search (magnifier) | No direction |
38
+ | Heart, star, bookmark | No direction |
39
+ | Share | No direction (unless arrow indicates target) |
40
+ | Trash/delete | No direction |
41
+ | Edit (pencil) | No direction |
42
+ | Lock, key | No direction |
43
+
44
+ ### Images: Mirror or Not?
45
+
46
+ | Type | Mirror? | Examples |
47
+ |------|---------|----------|
48
+ | **Photos** | No | User avatars, product images |
49
+ | **Logos** | No | Brand identity |
50
+ | **Maps** | No | Geographic |
51
+ | **Charts/graphs** | No | Data visualization |
52
+ | **Illustrations with direction** | Yes | Person pointing, arrow in illustration |
53
+ | **UI controls (custom)** | Depends | If directional, mirror |
54
+
55
+ ---
56
+
57
+ ## 2. Platform Implementation
58
+
59
+ ### Web (CSS)
60
+
61
+ ```css
62
+ /* Manual mirror for directional icons */
63
+ [dir="rtl"] .icon-back {
64
+ transform: scaleX(-1);
65
+ }
66
+
67
+ /* Or use dir attribute on icon container */
68
+ .icon-back {
69
+ transform: scaleX(var(--dir, 1));
70
+ }
71
+ [dir="rtl"] {
72
+ --dir: -1;
73
+ }
74
+ ```
75
+
76
+ ### Flutter
77
+
78
+ ```dart
79
+ // Flutter mirrors many directional icons automatically when Directionality is RTL
80
+ Icon(Icons.arrow_back) // Auto-mirrors
81
+
82
+ // Manual mirror when needed
83
+ Transform(
84
+ alignment: Alignment.center,
85
+ transform: Matrix4.identity()..scale(-1.0, 1.0),
86
+ child: Icon(Icons.arrow_forward),
87
+ )
88
+ ```
89
+
90
+ ### Android (Jetpack Compose)
91
+
92
+ ```kotlin
93
+ // AutoMirrored icons flip automatically
94
+ Icon(Icons.AutoMirrored.Filled.ArrowBack)
95
+
96
+ // Manual for custom drawables
97
+ Icon(
98
+ painter = painterResource(R.drawable.arrow_back),
99
+ contentDescription = "...",
100
+ modifier = Modifier.graphicsLayer {
101
+ scaleX = if (LocalLayoutDirection.current == LayoutDirection.Rtl) -1f else 1f
102
+ }
103
+ )
104
+ ```
105
+
106
+ ### Android (XML)
107
+
108
+ ```xml
109
+ <ImageView
110
+ android:autoMirrored="true"
111
+ android:src="@drawable/ic_arrow_back" />
112
+ ```
113
+
114
+ ### iOS
115
+
116
+ ```swift
117
+ // SF Symbols: many auto-mirror with semanticContentAttribute
118
+ imageView.image = UIImage(systemName: "chevron.left")
119
+ imageView.semanticContentAttribute = .forceRightToLeftLayoutDirection
120
+
121
+ // Or: imageFlippedForRightToLeftLayoutDirection()
122
+ ```
123
+
124
+ ---
125
+
126
+ ## 3. Visual Examples (Described in Detail)
127
+
128
+ ### Back Button
129
+
130
+ - **LTR:** Arrow points left (←). User taps to go "back" = toward the start of the navigation stack (left).
131
+ - **RTL:** Arrow points right (→). "Back" = toward start, which is now on the right. Icon mirrors.
132
+
133
+ ### Chevron in List Item
134
+
135
+ - **LTR:** Chevron (>) on the right indicates "more content to the right."
136
+ - **RTL:** Chevron (<) on the left indicates "more content to the left." Icon mirrors.
137
+
138
+ ### Play Button in Media Player
139
+
140
+ - **LTR and RTL:** Play (▶) does NOT mirror. "Play" is a universal action; the triangle direction is not reading-direction-dependent.
141
+
142
+ ### Progress Stepper
143
+
144
+ - **LTR:** Steps flow left → right. Arrow between steps points right.
145
+ - **RTL:** Steps flow right → left. Arrow between steps points left. Arrows mirror.
146
+
147
+ ---
148
+
149
+ ## 4. Common RTL Icon Bugs
150
+
151
+ 1. **Back arrow doesn't mirror** — User expects it to point toward "back" (start)
152
+ 2. **Chevron doesn't mirror** — Points wrong way for "more" or "expand"
153
+ 3. **Checkmark mirrored** — Wrong; checkmark has no direction
154
+ 4. **Play button mirrored** — Wrong; play is universal
155
+ 5. **Share icon mirrored** — Usually wrong unless it's an arrow indicating direction
156
+ 6. **Custom SVG not mirroring** — Add `transform: scaleX(-1)` for directional icons in RTL
157
+ 7. **Icon in wrong position** — Use logical properties for placement; icon asset may still need mirror
158
+
159
+ ---
160
+
161
+ ## 5. QA Checklist
162
+
163
+ - [ ] Back/forward arrows mirror
164
+ - [ ] Chevrons mirror where they indicate direction
165
+ - [ ] Checkmark, play, settings do NOT mirror
166
+ - [ ] Logos and photos do NOT mirror
167
+ - [ ] Custom directional icons have RTL variant or transform
168
+ - [ ] Icon position uses start/end, not left/right
169
+
170
+ ---
171
+
172
+ ## Quick Reference Checklist
173
+
174
+ - [ ] Mirror: back, forward, chevrons, alignment icons, progress arrows
175
+ - [ ] Do NOT mirror: checkmark, play, pause, camera, settings, logos, photos
176
+ - [ ] Use platform auto-mirror APIs when available (Flutter, Compose AutoMirrored)
177
+ - [ ] Manual `scaleX(-1)` or equivalent for custom directional icons
178
+ - [ ] Test all icon types in RTL
179
+
180
+ ---
181
+ *Researched: 2026-03-08 | Sources: Material Design bidirectionality, Android AutoMirrored, Qt RTL docs*