@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,241 @@
1
+ # Text Direction and Bidirectional Text — i18n/RTL Expertise Module
2
+
3
+ > How text direction works: logical vs visual order, the Unicode BiDi algorithm, and when to use markup vs control characters. Essential for any interface that mixes Arabic, Hebrew, or other RTL scripts with LTR content.
4
+
5
+ > **Category:** Foundation
6
+ > **Applies to:** All (Mobile, Web, Backend)
7
+ > **Key standards:** Unicode UAX #9 (BiDi Algorithm), W3C HTML BiDi
8
+ > **RTL impact:** Critical — this is the foundation of all RTL support
9
+
10
+ ## 1. Core Concepts
11
+
12
+ ### What This Area Covers
13
+
14
+ Text direction determines how characters are laid out horizontally: left-to-right (LTR) for English, Latin, Cyrillic, etc., and right-to-left (RTL) for Arabic, Hebrew, Persian, Urdu. Bidirectional (BiDi) text mixes both in a single line—e.g., "Hello العربية world"—and requires the Unicode Bidirectional Algorithm to resolve display order.
15
+
16
+ ### Logical vs Visual Order
17
+
18
+ | Concept | Definition | Example |
19
+ |---------|------------|---------|
20
+ | **Logical order** | Sequence in which text is typed, pronounced, and stored in memory | "english ARABIC text" |
21
+ | **Visual order** | Sequence in which text appears on screen | "english CIBARA text" (Arabic reversed) |
22
+
23
+ **Always use logical order in markup and data.** The BiDi algorithm converts logical → visual at display time. Storing visual order breaks copy-paste, search, and maintenance.
24
+
25
+ ### Base Direction
26
+
27
+ The base direction is the default for a block of text when the BiDi algorithm runs. It affects:
28
+ - Order of neutral characters (spaces, punctuation)
29
+ - Alignment (start vs end)
30
+ - How mixed-direction runs are resolved
31
+
32
+ Set via `dir="ltr"`, `dir="rtl"`, or `dir="auto"` (first strong character wins).
33
+
34
+ ---
35
+
36
+ ## 2. Unicode Bidirectional Algorithm (UAX #9)
37
+
38
+ ### How It Works
39
+
40
+ 1. **Character classification** — Each character has a directional type: L (strong LTR), R (strong RTL), AL (Arabic letter), EN (European number), AN (Arabic number), NSM (non-spacing mark), etc.
41
+ 2. **Resolving levels** — The algorithm assigns embedding levels (0 = LTR, 1 = RTL, etc.) based on base direction and character types.
42
+ 3. **Reordering** — Characters are reordered for display according to their levels.
43
+
44
+ ### When the Algorithm Needs Help
45
+
46
+ - **Neutral characters** — Spaces, punctuation between opposite-direction runs can be misassigned
47
+ - **Numbers** — European (0123) vs Arabic (٠١٢٣) numerals; numbers can "stick" to wrong runs
48
+ - **Spillover** — An RTL phrase followed by a number in LTR context: the number may join the RTL run incorrectly
49
+
50
+ ### Directional Formatting Characters
51
+
52
+ **Prefer isolate pairs (Unicode 6.3+):** They prevent spillover.
53
+
54
+ | Character | Name | Code | Use |
55
+ |-----------|------|------|-----|
56
+ | LRI | LEFT-TO-RIGHT ISOLATE | U+2066 | Wrap LTR text in RTL context |
57
+ | RLI | RIGHT-TO-LEFT ISOLATE | U+2067 | Wrap RTL text in LTR context |
58
+ | FSI | FIRST-STRONG ISOLATE | U+2068 | `dir="auto"` equivalent |
59
+ | PDI | POP DIRECTIONAL ISOLATE | U+2069 | Closes LRI, RLI, or FSI |
60
+
61
+ **Legacy (avoid for new content):** Can cause spillover.
62
+
63
+ | Character | Name | Code | Use |
64
+ |-----------|------|------|-----|
65
+ | LRE | LEFT-TO-RIGHT EMBEDDING | U+202A | LTR embedding |
66
+ | RLE | RIGHT-TO-LEFT EMBEDDING | U+202B | RTL embedding |
67
+ | PDF | POP DIRECTIONAL FORMATTING | U+202C | Closes LRE/RLE |
68
+ | LRO | LEFT-TO-RIGHT OVERRIDE | U+202D | Force LTR display order |
69
+ | RLO | RIGHT-TO-LEFT OVERRIDE | U+202E | Force RTL display order |
70
+
71
+ **Single-character marks:**
72
+
73
+ | Character | Name | Code | Use |
74
+ |-----------|------|------|-----|
75
+ | LRM | LEFT-TO-RIGHT MARK | U+200E | Break link between number and RTL text; extend LTR run |
76
+ | RLM | RIGHT-TO-LEFT MARK | U+200F | Extend RTL run to include punctuation |
77
+
78
+ ### When to Use Control Characters vs Markup
79
+
80
+ - **HTML/CSS available** — Use `dir` attribute or `<bdi>`. Prefer markup.
81
+ - **Plain text only** — Use Unicode controls (e.g., `title` attribute, WebVTT, CSV, filenames).
82
+ - **User-generated content** — `dir="auto"` or FSI when direction is unknown.
83
+
84
+ ### Example: Fixing Spillover
85
+
86
+ **Problem:** "We found the phrase 'نشاط التدويل' 5 times" — the "5" incorrectly joins the Arabic.
87
+
88
+ **Solution with RLI/PDI:**
89
+ ```
90
+ We find the phrase '\u2067نشاط التدويل\u2069' 5 times
91
+ ```
92
+
93
+ **Solution with LRM** (if you only need to break the link):
94
+ ```
95
+ We find the phrase 'نشاط التدويل'\u200E 5 times
96
+ ```
97
+
98
+ ---
99
+
100
+ ## 3. HTML and Markup
101
+
102
+ ### Document-Level Direction
103
+
104
+ ```html
105
+ <html lang="ar" dir="rtl">
106
+ ```
107
+
108
+ ### Block-Level Direction
109
+
110
+ ```html
111
+ <div dir="rtl">محتوى عربي</div>
112
+ ```
113
+
114
+ ### Inline Mixed Content
115
+
116
+ Wrap opposite-direction phrases tightly:
117
+
118
+ ```html
119
+ <p>The title is <span dir="rtl">مدخل إلى C++</span> in Arabic.</p>
120
+ ```
121
+
122
+ ### `dir="auto"`
123
+
124
+ Detects direction from first strong directional character. Use for user-supplied or unknown content.
125
+
126
+ ```html
127
+ <span dir="auto">{{userInput}}</span>
128
+ ```
129
+
130
+ ### `<bdi>` (Bidirectional Isolate)
131
+
132
+ Isolates content from surrounding BiDi context. Use when direction is unknown and you want the algorithm to determine it independently.
133
+
134
+ ```html
135
+ <bdi>{{username}}</bdi> commented
136
+ ```
137
+
138
+ ---
139
+
140
+ ## 4. Platform Implementation
141
+
142
+ ### Web (HTML/CSS)
143
+
144
+ - Set `dir` on `<html>` for document; override on specific elements
145
+ - Use `dir="auto"` for dynamic content
146
+ - CSS: `direction`, `unicode-bidi` (rarely needed if markup is correct)
147
+
148
+ ### Flutter
149
+
150
+ ```dart
151
+ Directionality(
152
+ textDirection: TextDirection.rtl,
153
+ child: child,
154
+ )
155
+ // Or: Directionality.of(context)
156
+ ```
157
+
158
+ ### React
159
+
160
+ ```tsx
161
+ <div dir="rtl" lang="ar">{content}</div>
162
+ ```
163
+
164
+ ### iOS
165
+
166
+ ```swift
167
+ // UIView.semanticContentAttribute = .forceRightToLeft
168
+ // Or per view
169
+ ```
170
+
171
+ ### Android
172
+
173
+ ```xml
174
+ android:layoutDirection="rtl"
175
+ ```
176
+
177
+ ---
178
+
179
+ ## 5. Mixed Content Handling
180
+
181
+ ### LTR in RTL Context
182
+
183
+ - English brand names, URLs, code snippets, email addresses
184
+ - Wrap in `dir="ltr"` or LRI/PDI when in plain text
185
+
186
+ ### Numbers
187
+
188
+ - European numerals (0123) are weakly directional; they can "stick" to RTL
189
+ - Insert LRM before a number in LTR context if it incorrectly joins RTL
190
+ - Arabic numerals (٠١٢٣) are RTL; use when displaying in Arabic UI
191
+
192
+ ### URLs and Email
193
+
194
+ - Always LTR; wrap in `dir="ltr"` if displayed in RTL paragraph
195
+
196
+ ### Punctuation
197
+
198
+ - Punctuation at the end of an RTL phrase may be assigned to the wrong run
199
+ - Add RLM after the punctuation to extend the RTL run, or wrap in RLI/PDI
200
+
201
+ ---
202
+
203
+ ## 6. Anti-Patterns
204
+
205
+ 1. **Storing visual order** — Store logical order; let the algorithm handle display.
206
+ 2. **Using LRE/RLE instead of LRI/RLI** — Causes spillover; prefer isolates.
207
+ 3. **Ignoring neutral characters** — Commas, spaces between RTL phrases can misalign.
208
+ 4. **No base direction for user content** — Use `dir="auto"` or detect.
209
+ 5. **Assuming `dir` is inherited** — Explicitly set on root and overrides.
210
+ 6. **Mixing `direction` CSS with `dir`** — Prefer `dir` for semantics.
211
+ 7. **Forgetting `lang`** — `dir` and `lang` should be set together.
212
+ 8. **Not wrapping opposite-direction phrases** — Loose wrapping causes wrong display.
213
+ 9. **Using override (LRO/RLO) for isolation** — Override forces display order; use isolate instead.
214
+ 10. **Skipping BiDi for "English-only" apps** — User names, search results, and API data can be any script.
215
+
216
+ ---
217
+
218
+ ## 7. Testing Approach
219
+
220
+ - Test with real Arabic (العربية) and Hebrew (עברית) — not placeholder text
221
+ - Test mixed content: "Hello العربية 123"
222
+ - Test spillover case: RTL phrase + number
223
+ - Test lists of opposite-direction items (e.g., country names in Arabic in LTR list)
224
+ - Verify copy-paste preserves logical order
225
+ - Check `dir` and `lang` on root and key containers
226
+
227
+ ---
228
+
229
+ ## Quick Reference Checklist
230
+
231
+ - [ ] Store and transmit text in logical order
232
+ - [ ] Set `dir` and `lang` on document root
233
+ - [ ] Use RLI/LRI/PDI (not RLE/LRE) for plain-text BiDi
234
+ - [ ] Wrap opposite-direction phrases tightly
235
+ - [ ] Use `dir="auto"` for unknown user content
236
+ - [ ] Add LRM/RLM when needed to fix spillover
237
+ - [ ] Test with real Arabic and Hebrew strings
238
+ - [ ] Verify numbers and punctuation display correctly
239
+
240
+ ---
241
+ *Researched: 2026-03-08 | Sources: Unicode UAX #9, W3C BiDi controls, W3C visual vs logical, MDN dir/bdi*
@@ -0,0 +1,86 @@
1
+ # Unicode and Encoding — i18n/RTL Expertise Module
2
+
3
+ > Character encoding is the foundation: UTF-8 everywhere, normalization for comparison, and understanding code points vs grapheme clusters. Wrong encoding causes mojibake, broken emoji, and lost characters.
4
+
5
+ > **Category:** Foundation
6
+ > **Applies to:** All
7
+ > **Key standards:** Unicode, UTF-8 (RFC 3629)
8
+ > **RTL impact:** Low — encoding enables all scripts; RTL is layout
9
+
10
+ ## 1. Core Concepts
11
+
12
+ ### UTF-8 as Standard
13
+
14
+ - **99% of web** uses UTF-8
15
+ - Variable-width: 1–4 bytes per character
16
+ - ASCII-compatible (bytes 0–127 identical)
17
+ - Supports all 1.1M+ Unicode code points
18
+
19
+ ### Code Points vs Characters
20
+
21
+ - **Code point:** U+0000 to U+10FFFF (e.g., U+0041 = 'A')
22
+ - **Grapheme cluster:** What users perceive as one character (e.g., "é" = e + combining acute, or precomposed U+00E9)
23
+ - **Surrogate pairs:** UTF-16 uses two 16-bit units for code points > U+FFFF; common bug source in JS (string length, indexing)
24
+
25
+ ### Unicode Normalization
26
+
27
+ - **NFC** (Canonical Composition): Preferred for web; precomposed where possible
28
+ - **NFD** (Canonical Decomposition): Decomposed; used in some systems
29
+ - **NFKC/NFKD:** Compatibility forms; use for search/collation, not display
30
+ - Use NFC for storage and comparison to avoid duplicate representations
31
+
32
+ ---
33
+
34
+ ## 2. Declaration and Configuration
35
+
36
+ | Layer | How to Set UTF-8 |
37
+ |-------|------------------|
38
+ | HTML5 | `<meta charset="UTF-8">` |
39
+ | HTTP | `Content-Type: text/html; charset=UTF-8` |
40
+ | JSON API | `Content-Type: application/json; charset=UTF-8` |
41
+ | MySQL | `utf8mb4` (not `utf8` — that's 3-byte only; emoji need 4) |
42
+ | PostgreSQL | `UTF8` encoding |
43
+ | Node/JS | Default UTF-8 in modern runtimes |
44
+ | Python | `# -*- coding: utf-8 -*-` or default in Python 3 |
45
+
46
+ ---
47
+
48
+ ## 3. Locale Variations
49
+
50
+ - **Arabic:** Requires UTF-8; no special encoding
51
+ - **Hebrew:** Same
52
+ - **CJK:** Multi-byte sequences; ensure no truncation at byte boundaries
53
+ - **Emoji:** 4-byte sequences in UTF-8; `utf8mb4` in MySQL
54
+
55
+ ---
56
+
57
+ ## 4. Anti-Patterns
58
+
59
+ 1. **Assuming 1 byte = 1 character** — UTF-8 is variable-width
60
+ 2. **Truncating by byte count** — Can split multi-byte sequences; truncate by grapheme or code point
61
+ 3. **Using `utf8` in MySQL** — Use `utf8mb4` for full Unicode
62
+ 4. **No charset in HTTP/HTML** — Browsers guess; can cause mojibake
63
+ 5. **Double-encoding** — Encoding already-UTF-8 bytes again
64
+ 6. **String length for limits** — `"é".length` is 2 in JS (UTF-16); use grapheme segmentation for display limits
65
+ 7. **Case conversion without locale** — Turkish dotted i; use `toLocaleLowerCase('tr-TR')`
66
+
67
+ ---
68
+
69
+ ## 5. Testing
70
+
71
+ - Test with: العربية, 日本語, emoji (👋), combining characters (é)
72
+ - Verify no mojibake when submitting forms
73
+ - Check DB storage and retrieval
74
+
75
+ ---
76
+
77
+ ## Quick Reference Checklist
78
+
79
+ - [ ] UTF-8 declared in HTML, HTTP, DB
80
+ - [ ] MySQL: `utf8mb4`
81
+ - [ ] NFC normalization for comparison
82
+ - [ ] No byte-based truncation of strings
83
+ - [ ] Test with Arabic, CJK, emoji
84
+
85
+ ---
86
+ *Researched: 2026-03-08 | Sources: Unicode FAQ, W3C forms UTF-8, Better i18n encoding*
@@ -0,0 +1,38 @@
1
+ # i18n/RTL Expertise — Knowledge Base
2
+
3
+ Comprehensive internationalization, localization, and RTL expertise for AI agents. Used during **Clarifier** (architecture) and **Dev** (implementation) to bake i18n in from day one.
4
+
5
+ ## Directory Structure
6
+
7
+ ```
8
+ expertise/i18n/
9
+ foundations/ — Core concepts, standards, patterns
10
+ rtl/ — RTL-specific rules, Arabic, Hebrew
11
+ platform/ — Flutter, React, iOS, Android, Web, Backend
12
+ content/ — Translation, MT, adaptation
13
+ advanced/ — BiDi algorithm, complex scripts, a11y, performance
14
+ PROGRESS.md — Research status
15
+ ```
16
+
17
+ ## Quick Navigation
18
+
19
+ | Need | Read |
20
+ |------|------|
21
+ | Architecture decisions | foundations/i18n-architecture.md |
22
+ | String extraction | foundations/string-externalization.md |
23
+ | RTL layout rules | rtl/rtl-fundamentals.md, rtl/rtl-layout-mirroring.md |
24
+ | Arabic specifics | rtl/arabic-specific.md |
25
+ | Hebrew specifics | rtl/hebrew-specific.md |
26
+ | Flutter i18n | platform/flutter-i18n.md |
27
+ | React i18n | platform/react-i18n.md |
28
+ | Web CSS RTL | platform/web-css-i18n.md |
29
+ | BiDi text | foundations/text-direction-bidi.md |
30
+ | Testing RTL | rtl/rtl-testing-and-qa.md |
31
+
32
+ ## Key Principles
33
+
34
+ 1. **Physical vs logical** — Use start/end, inline-start/end; never left/right for layout
35
+ 2. **Arabic ≠ Hebrew** — Different script, numerals, calendar, plurals
36
+ 3. **ICU for plurals** — Never `count === 1 ? 'item' : 'items'`
37
+ 4. **Intl for formats** — Never hardcode date/number formats
38
+ 5. **Real text for testing** — العربية، עברית — not placeholder
@@ -0,0 +1,31 @@
1
+ # Backend i18n — i18n/RTL Expertise Module
2
+
3
+ > Backend i18n: Accept-Language, locale parameter, message catalogs, and formatting. APIs return locale-aware content; never assume server locale.
4
+
5
+ > **Category:** Platform
6
+ > **Applies to:** Backend
7
+ > **Key standards:** HTTP Accept-Language, BCP 47
8
+ > **RTL impact:** Low — backend returns data; client handles layout
9
+
10
+ ## 1. Core Concepts
11
+
12
+ - **Locale resolution:** Accept-Language header or ?locale= query param
13
+ - **Message catalogs:** gettext, ICU, or JSON per locale
14
+ - **Formatting:** Use ICU/Intl for dates, numbers, currency server-side
15
+ - **Storage:** Store user locale preference; pass to formatting
16
+
17
+ ## 2. Implementation
18
+
19
+ - Parse Accept-Language; resolve to supported locale
20
+ - Load message catalog for locale
21
+ - Format dates/numbers with locale
22
+ - Return Content-Language in response
23
+
24
+ ## 3. Anti-Patterns
25
+
26
+ - Assuming server locale
27
+ - Hardcoded formats
28
+ - No locale in API
29
+
30
+ ---
31
+ *Researched: 2026-03-08 | Sources: HTTP i18n*
@@ -0,0 +1,148 @@
1
+ # Flutter i18n — i18n/RTL Expertise Module
2
+
3
+ > Flutter's built-in i18n: ARB files, `flutter gen-l10n`, `AppLocalizations`, and RTL via `Directionality`. The `intl` package and `flutter_localizations` provide the foundation.
4
+
5
+ > **Category:** Platform
6
+ > **Applies to:** Mobile (Flutter)
7
+ > **Key standards:** ARB, ICU MessageFormat
8
+ > **RTL impact:** High — Directionality, EdgeInsetsDirectional, AlignmentDirectional
9
+
10
+ ## 1. Platform i18n System
11
+
12
+ ### Built-in Framework
13
+
14
+ - **ARB** (Application Resource Bundle): JSON-based locale files
15
+ - **Code generation:** `flutter gen-l10n` produces `AppLocalizations`
16
+ - **Delegates:** `AppLocalizations.localizationsDelegates`
17
+ - **Supported locales:** `AppLocalizations.supportedLocales`
18
+
19
+ ### RTL at System Level
20
+
21
+ - `Directionality` widget; `TextDirection.rtl` for RTL
22
+ - `MaterialApp` uses `locale` to set `Directionality` when supported locale is RTL (ar, he, etc.)
23
+ - `EdgeInsetsDirectional`, `AlignmentDirectional`, `AlignmentDirectional` for layout
24
+
25
+ ### Locale Resolution
26
+
27
+ - `MaterialApp.locale` or `supportedLocales` with `localeResolutionCallback`
28
+ - Fallback: first `supportedLocales` when no match
29
+
30
+ ---
31
+
32
+ ## 2. Setup Guide
33
+
34
+ ### pubspec.yaml
35
+
36
+ ```yaml
37
+ dependencies:
38
+ flutter_localizations:
39
+ sdk: flutter
40
+ intl: ^0.19.0
41
+
42
+ flutter:
43
+ generate: true
44
+ ```
45
+
46
+ ### l10n.yaml
47
+
48
+ ```yaml
49
+ arb-dir: lib/l10n
50
+ template-arb-file: app_en.arb
51
+ output-localization-file: app_localizations.dart
52
+ ```
53
+
54
+ ### Folder Structure
55
+
56
+ ```
57
+ lib/
58
+ l10n/
59
+ app_en.arb
60
+ app_ar.arb
61
+ app_he.arb
62
+ ```
63
+
64
+ ### MaterialApp
65
+
66
+ ```dart
67
+ MaterialApp(
68
+ localizationsDelegates: AppLocalizations.localizationsDelegates,
69
+ supportedLocales: AppLocalizations.supportedLocales,
70
+ home: Home(),
71
+ )
72
+ ```
73
+
74
+ ---
75
+
76
+ ## 3. Key APIs and Patterns
77
+
78
+ ### String Localization
79
+
80
+ ```dart
81
+ AppLocalizations.of(context)!.greeting('أحمد')
82
+ ```
83
+
84
+ ### ARB with Placeholders
85
+
86
+ ```json
87
+ {
88
+ "greeting": "Hello, {name}!",
89
+ "@greeting": {
90
+ "placeholders": { "name": { "type": "String" } }
91
+ }
92
+ }
93
+ ```
94
+
95
+ ### Plural (ICU)
96
+
97
+ ```json
98
+ {
99
+ "itemCount": "{count, plural, =0{No items} one{1 item} other{# items}}",
100
+ "@itemCount": { "placeholders": { "count": { "type": "int" } } }
101
+ }
102
+ ```
103
+
104
+ ### Date/Number Formatting
105
+
106
+ ```dart
107
+ DateFormat.yMd(locale).format(date)
108
+ intl.NumberFormat.decimalPattern(locale).format(number)
109
+ ```
110
+
111
+ ### RTL
112
+
113
+ ```dart
114
+ Directionality.of(context) == TextDirection.rtl
115
+ EdgeInsetsDirectional.only(start: 16, end: 8)
116
+ AlignmentDirectional.centerStart
117
+ ```
118
+
119
+ ---
120
+
121
+ ## 4. RTL Support
122
+
123
+ - Add `ar`, `he`, `fa`, `ur` to `supportedLocales`
124
+ - Use `EdgeInsetsDirectional`, `AlignmentDirectional`, `Positioned.directional`
125
+ - Icons: many auto-mirror; use `Transform` for custom
126
+ - `TextDirection.rtl` for RTL text
127
+
128
+ ---
129
+
130
+ ## 5. Anti-Patterns
131
+
132
+ 1. **EdgeInsets.only(left: 16)** — Use `EdgeInsetsDirectional.only(start: 16)`
133
+ 2. **Alignment.centerLeft** — Use `AlignmentDirectional.centerStart`
134
+ 3. **Missing RTL locales** — Add ar, he to supportedLocales
135
+ 4. **Hardcoded strings** — Always use AppLocalizations
136
+
137
+ ---
138
+
139
+ ## Quick Reference Checklist
140
+
141
+ - [ ] flutter_localizations + intl
142
+ - [ ] l10n.yaml + ARB files
143
+ - [ ] supportedLocales includes ar, he
144
+ - [ ] EdgeInsetsDirectional, AlignmentDirectional
145
+ - [ ] Run flutter gen-l10n
146
+
147
+ ---
148
+ *Researched: 2026-03-08 | Sources: Flutter docs, IntlPull Flutter guide*
@@ -0,0 +1,36 @@
1
+ # Native Android i18n — i18n/RTL Expertise Module
2
+
3
+ > Android i18n: strings.xml, plurals, getString(), and RTL via layoutDirection, start/end attributes, and AutoMirrored drawables.
4
+
5
+ > **Category:** Platform
6
+ > **Applies to:** Mobile (Android)
7
+ > **Key standards:** Android Resources
8
+ > **RTL impact:** High — layoutDirection, start/end
9
+
10
+ ## 1. Platform i18n System
11
+
12
+ - **Strings:** res/values/strings.xml, res/values-ar/strings.xml
13
+ - **Plurals:** plurals resource with quantity
14
+ - **API:** getString(R.string.key), getQuantityString()
15
+ - **RTL:** android:layoutDirection="locale", layout_marginStart/End
16
+
17
+ ## 2. Setup
18
+
19
+ - Create values-ar, values-he for RTL
20
+ - Use start/end in XML (not left/right)
21
+ - Icons.AutoMirrored for directional icons
22
+
23
+ ## 3. RTL
24
+
25
+ - layoutDirection="rtl" or "locale"
26
+ - layout_marginStart, paddingStart
27
+ - getLayoutDirectionFromLocale()
28
+
29
+ ## 4. Anti-Patterns
30
+
31
+ - layout_marginLeft/Right
32
+ - Hardcoded strings
33
+ - No RTL resource directories
34
+
35
+ ---
36
+ *Researched: 2026-03-08 | Sources: Android docs*
@@ -0,0 +1,36 @@
1
+ # Native iOS i18n — i18n/RTL Expertise Module
2
+
3
+ > iOS i18n: Localizable.strings, .stringsdict for plurals, NSLocalizedString, and RTL via leading/trailing constraints and semanticContentAttribute.
4
+
5
+ > **Category:** Platform
6
+ > **Applies to:** Mobile (iOS)
7
+ > **Key standards:** Apple Localization
8
+ > **RTL impact:** High — leading/trailing, semanticContentAttribute
9
+
10
+ ## 1. Platform i18n System
11
+
12
+ - **Strings:** Localizable.strings (`"key" = "value";`)
13
+ - **Plurals:** .stringsdict
14
+ - **API:** NSLocalizedString, String(localized:)
15
+ - **RTL:** leading/trailing in Auto Layout; UIView.semanticContentAttribute
16
+
17
+ ## 2. Setup
18
+
19
+ - Add languages in Project → Info → Localizations
20
+ - Create Localizable.strings per locale
21
+ - Use NSLocalizedString("key", comment: "")
22
+
23
+ ## 3. RTL
24
+
25
+ - Use leadingAnchor, trailingAnchor (not left/right)
26
+ - semanticContentAttribute = .forceRightToLeft for RTL
27
+ - SF Symbols auto-mirror many directional icons
28
+
29
+ ## 4. Anti-Patterns
30
+
31
+ - left/right constraints
32
+ - Hardcoded strings
33
+ - No RTL testing
34
+
35
+ ---
36
+ *Researched: 2026-03-08 | Sources: Apple HIG, Developer docs*