@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.
- package/AGENTS.md +111 -0
- package/CHANGELOG.md +14 -0
- package/CONTRIBUTING.md +101 -0
- package/LICENSE +21 -0
- package/README.md +314 -0
- package/assets/composition-engine.mmd +34 -0
- package/assets/demo-script.sh +17 -0
- package/assets/logo-dark.svg +14 -0
- package/assets/logo.svg +14 -0
- package/assets/pipeline.mmd +39 -0
- package/assets/record-demo.sh +51 -0
- package/docs/README.md +51 -0
- package/docs/adapters/context-mode.md +60 -0
- package/docs/concepts/architecture.md +87 -0
- package/docs/concepts/artifact-model.md +60 -0
- package/docs/concepts/composition-engine.md +36 -0
- package/docs/concepts/indexing-and-recall.md +160 -0
- package/docs/concepts/observability.md +41 -0
- package/docs/concepts/roles-and-workflows.md +59 -0
- package/docs/concepts/terminology-policy.md +27 -0
- package/docs/getting-started/01-installation.md +78 -0
- package/docs/getting-started/02-first-run.md +102 -0
- package/docs/getting-started/03-adding-to-project.md +15 -0
- package/docs/getting-started/04-host-setup.md +15 -0
- package/docs/guides/ci-integration.md +15 -0
- package/docs/guides/creating-skills.md +15 -0
- package/docs/guides/expertise-module-authoring.md +15 -0
- package/docs/guides/hook-development.md +15 -0
- package/docs/guides/memory-and-learnings.md +34 -0
- package/docs/guides/multi-host-export.md +15 -0
- package/docs/guides/troubleshooting.md +101 -0
- package/docs/guides/writing-custom-roles.md +15 -0
- package/docs/plans/2026-03-15-cli-pipeline-integration-design.md +592 -0
- package/docs/plans/2026-03-15-cli-pipeline-integration-plan.md +598 -0
- package/docs/plans/2026-03-15-docs-enforcement-plan.md +238 -0
- package/docs/readmes/INDEX.md +99 -0
- package/docs/readmes/features/expertise/README.md +171 -0
- package/docs/readmes/features/exports/README.md +222 -0
- package/docs/readmes/features/hooks/README.md +103 -0
- package/docs/readmes/features/hooks/loop-cap-guard.md +133 -0
- package/docs/readmes/features/hooks/post-tool-capture.md +121 -0
- package/docs/readmes/features/hooks/post-tool-lint.md +130 -0
- package/docs/readmes/features/hooks/pre-compact-summary.md +122 -0
- package/docs/readmes/features/hooks/pre-tool-capture-route.md +100 -0
- package/docs/readmes/features/hooks/protected-path-write-guard.md +128 -0
- package/docs/readmes/features/hooks/session-start.md +119 -0
- package/docs/readmes/features/hooks/stop-handoff-harvest.md +125 -0
- package/docs/readmes/features/roles/README.md +157 -0
- package/docs/readmes/features/roles/clarifier.md +152 -0
- package/docs/readmes/features/roles/content-author.md +190 -0
- package/docs/readmes/features/roles/designer.md +193 -0
- package/docs/readmes/features/roles/executor.md +184 -0
- package/docs/readmes/features/roles/learner.md +210 -0
- package/docs/readmes/features/roles/planner.md +182 -0
- package/docs/readmes/features/roles/researcher.md +164 -0
- package/docs/readmes/features/roles/reviewer.md +184 -0
- package/docs/readmes/features/roles/specifier.md +162 -0
- package/docs/readmes/features/roles/verifier.md +215 -0
- package/docs/readmes/features/schemas/README.md +178 -0
- package/docs/readmes/features/skills/README.md +63 -0
- package/docs/readmes/features/skills/brainstorming.md +96 -0
- package/docs/readmes/features/skills/debugging.md +148 -0
- package/docs/readmes/features/skills/design.md +120 -0
- package/docs/readmes/features/skills/prepare-next.md +109 -0
- package/docs/readmes/features/skills/run-audit.md +159 -0
- package/docs/readmes/features/skills/scan-project.md +109 -0
- package/docs/readmes/features/skills/self-audit.md +176 -0
- package/docs/readmes/features/skills/tdd.md +137 -0
- package/docs/readmes/features/skills/using-skills.md +92 -0
- package/docs/readmes/features/skills/verification.md +120 -0
- package/docs/readmes/features/skills/writing-plans.md +104 -0
- package/docs/readmes/features/tooling/README.md +320 -0
- package/docs/readmes/features/workflows/README.md +186 -0
- package/docs/readmes/features/workflows/author.md +181 -0
- package/docs/readmes/features/workflows/clarify.md +154 -0
- package/docs/readmes/features/workflows/design-review.md +171 -0
- package/docs/readmes/features/workflows/design.md +169 -0
- package/docs/readmes/features/workflows/discover.md +162 -0
- package/docs/readmes/features/workflows/execute.md +173 -0
- package/docs/readmes/features/workflows/learn.md +167 -0
- package/docs/readmes/features/workflows/plan-review.md +165 -0
- package/docs/readmes/features/workflows/plan.md +170 -0
- package/docs/readmes/features/workflows/prepare-next.md +167 -0
- package/docs/readmes/features/workflows/review.md +169 -0
- package/docs/readmes/features/workflows/run-audit.md +191 -0
- package/docs/readmes/features/workflows/spec-challenge.md +159 -0
- package/docs/readmes/features/workflows/specify.md +160 -0
- package/docs/readmes/features/workflows/verify.md +177 -0
- package/docs/readmes/packages/README.md +50 -0
- package/docs/readmes/packages/ajv.md +117 -0
- package/docs/readmes/packages/context-mode.md +118 -0
- package/docs/readmes/packages/gray-matter.md +116 -0
- package/docs/readmes/packages/node-test.md +137 -0
- package/docs/readmes/packages/yaml.md +112 -0
- package/docs/reference/configuration-reference.md +159 -0
- package/docs/reference/expertise-index.md +52 -0
- package/docs/reference/git-flow.md +43 -0
- package/docs/reference/hooks.md +87 -0
- package/docs/reference/host-exports.md +50 -0
- package/docs/reference/launch-checklist.md +172 -0
- package/docs/reference/marketplace-listings.md +76 -0
- package/docs/reference/release-process.md +34 -0
- package/docs/reference/roles-reference.md +77 -0
- package/docs/reference/skills.md +33 -0
- package/docs/reference/templates.md +29 -0
- package/docs/reference/tooling-cli.md +94 -0
- package/docs/truth-claims.yaml +222 -0
- package/expertise/PROGRESS.md +63 -0
- package/expertise/README.md +18 -0
- package/expertise/antipatterns/PROGRESS.md +56 -0
- package/expertise/antipatterns/backend/api-design-antipatterns.md +1271 -0
- package/expertise/antipatterns/backend/auth-antipatterns.md +1195 -0
- package/expertise/antipatterns/backend/caching-antipatterns.md +622 -0
- package/expertise/antipatterns/backend/database-antipatterns.md +1038 -0
- package/expertise/antipatterns/backend/index.md +24 -0
- package/expertise/antipatterns/backend/microservices-antipatterns.md +850 -0
- package/expertise/antipatterns/code/architecture-antipatterns.md +919 -0
- package/expertise/antipatterns/code/async-antipatterns.md +622 -0
- package/expertise/antipatterns/code/code-smells.md +1186 -0
- package/expertise/antipatterns/code/dependency-antipatterns.md +1209 -0
- package/expertise/antipatterns/code/error-handling-antipatterns.md +1360 -0
- package/expertise/antipatterns/code/index.md +27 -0
- package/expertise/antipatterns/code/naming-and-abstraction.md +1118 -0
- package/expertise/antipatterns/code/state-management-antipatterns.md +1076 -0
- package/expertise/antipatterns/code/testing-antipatterns.md +1053 -0
- package/expertise/antipatterns/design/accessibility-antipatterns.md +1136 -0
- package/expertise/antipatterns/design/dark-patterns.md +1121 -0
- package/expertise/antipatterns/design/index.md +22 -0
- package/expertise/antipatterns/design/ui-antipatterns.md +1202 -0
- package/expertise/antipatterns/design/ux-antipatterns.md +680 -0
- package/expertise/antipatterns/frontend/css-layout-antipatterns.md +691 -0
- package/expertise/antipatterns/frontend/flutter-antipatterns.md +1827 -0
- package/expertise/antipatterns/frontend/index.md +23 -0
- package/expertise/antipatterns/frontend/mobile-antipatterns.md +573 -0
- package/expertise/antipatterns/frontend/react-antipatterns.md +1128 -0
- package/expertise/antipatterns/frontend/spa-antipatterns.md +1235 -0
- package/expertise/antipatterns/index.md +31 -0
- package/expertise/antipatterns/performance/index.md +20 -0
- package/expertise/antipatterns/performance/performance-antipatterns.md +1013 -0
- package/expertise/antipatterns/performance/premature-optimization.md +623 -0
- package/expertise/antipatterns/performance/scaling-antipatterns.md +785 -0
- package/expertise/antipatterns/process/ai-coding-antipatterns.md +853 -0
- package/expertise/antipatterns/process/code-review-antipatterns.md +656 -0
- package/expertise/antipatterns/process/deployment-antipatterns.md +920 -0
- package/expertise/antipatterns/process/index.md +23 -0
- package/expertise/antipatterns/process/technical-debt-antipatterns.md +647 -0
- package/expertise/antipatterns/security/index.md +20 -0
- package/expertise/antipatterns/security/secrets-antipatterns.md +849 -0
- package/expertise/antipatterns/security/security-theater.md +843 -0
- package/expertise/antipatterns/security/vulnerability-patterns.md +801 -0
- package/expertise/architecture/PROGRESS.md +70 -0
- package/expertise/architecture/data/caching-architecture.md +671 -0
- package/expertise/architecture/data/data-consistency.md +574 -0
- package/expertise/architecture/data/data-modeling.md +536 -0
- package/expertise/architecture/data/event-streams-and-queues.md +634 -0
- package/expertise/architecture/data/index.md +25 -0
- package/expertise/architecture/data/search-architecture.md +663 -0
- package/expertise/architecture/data/sql-vs-nosql.md +708 -0
- package/expertise/architecture/decisions/architecture-decision-records.md +640 -0
- package/expertise/architecture/decisions/build-vs-buy.md +616 -0
- package/expertise/architecture/decisions/index.md +23 -0
- package/expertise/architecture/decisions/monolith-to-microservices.md +790 -0
- package/expertise/architecture/decisions/technology-selection.md +616 -0
- package/expertise/architecture/distributed/cap-theorem-and-tradeoffs.md +800 -0
- package/expertise/architecture/distributed/circuit-breaker-bulkhead.md +741 -0
- package/expertise/architecture/distributed/consensus-and-coordination.md +796 -0
- package/expertise/architecture/distributed/distributed-systems-fundamentals.md +564 -0
- package/expertise/architecture/distributed/idempotency-and-retry.md +796 -0
- package/expertise/architecture/distributed/index.md +25 -0
- package/expertise/architecture/distributed/saga-pattern.md +797 -0
- package/expertise/architecture/foundations/architectural-thinking.md +460 -0
- package/expertise/architecture/foundations/coupling-and-cohesion.md +770 -0
- package/expertise/architecture/foundations/design-principles-solid.md +649 -0
- package/expertise/architecture/foundations/domain-driven-design.md +719 -0
- package/expertise/architecture/foundations/index.md +25 -0
- package/expertise/architecture/foundations/separation-of-concerns.md +472 -0
- package/expertise/architecture/foundations/twelve-factor-app.md +797 -0
- package/expertise/architecture/index.md +34 -0
- package/expertise/architecture/integration/api-design-graphql.md +638 -0
- package/expertise/architecture/integration/api-design-grpc.md +804 -0
- package/expertise/architecture/integration/api-design-rest.md +892 -0
- package/expertise/architecture/integration/index.md +25 -0
- package/expertise/architecture/integration/third-party-integration.md +795 -0
- package/expertise/architecture/integration/webhooks-and-callbacks.md +1152 -0
- package/expertise/architecture/integration/websockets-realtime.md +791 -0
- package/expertise/architecture/mobile-architecture/index.md +22 -0
- package/expertise/architecture/mobile-architecture/mobile-app-architecture.md +780 -0
- package/expertise/architecture/mobile-architecture/mobile-backend-for-frontend.md +670 -0
- package/expertise/architecture/mobile-architecture/offline-first.md +719 -0
- package/expertise/architecture/mobile-architecture/push-and-sync.md +782 -0
- package/expertise/architecture/patterns/cqrs-event-sourcing.md +717 -0
- package/expertise/architecture/patterns/event-driven.md +797 -0
- package/expertise/architecture/patterns/hexagonal-clean-architecture.md +870 -0
- package/expertise/architecture/patterns/index.md +27 -0
- package/expertise/architecture/patterns/layered-architecture.md +736 -0
- package/expertise/architecture/patterns/microservices.md +753 -0
- package/expertise/architecture/patterns/modular-monolith.md +692 -0
- package/expertise/architecture/patterns/monolith.md +626 -0
- package/expertise/architecture/patterns/plugin-architecture.md +735 -0
- package/expertise/architecture/patterns/serverless.md +780 -0
- package/expertise/architecture/scaling/database-scaling.md +615 -0
- package/expertise/architecture/scaling/feature-flags-and-rollouts.md +757 -0
- package/expertise/architecture/scaling/horizontal-vs-vertical.md +606 -0
- package/expertise/architecture/scaling/index.md +24 -0
- package/expertise/architecture/scaling/multi-tenancy.md +800 -0
- package/expertise/architecture/scaling/stateless-design.md +787 -0
- package/expertise/backend/embedded-firmware.md +625 -0
- package/expertise/backend/go.md +853 -0
- package/expertise/backend/index.md +24 -0
- package/expertise/backend/java-spring.md +448 -0
- package/expertise/backend/node-typescript.md +625 -0
- package/expertise/backend/python-fastapi.md +724 -0
- package/expertise/backend/rust.md +458 -0
- package/expertise/backend/solidity.md +711 -0
- package/expertise/composition-map.yaml +443 -0
- package/expertise/content/foundations/content-modeling.md +395 -0
- package/expertise/content/foundations/editorial-standards.md +449 -0
- package/expertise/content/foundations/index.md +24 -0
- package/expertise/content/foundations/microcopy.md +455 -0
- package/expertise/content/foundations/terminology-governance.md +509 -0
- package/expertise/content/index.md +34 -0
- package/expertise/content/patterns/accessibility-copy.md +518 -0
- package/expertise/content/patterns/index.md +24 -0
- package/expertise/content/patterns/notification-content.md +433 -0
- package/expertise/content/patterns/sample-content.md +486 -0
- package/expertise/content/patterns/state-copy.md +439 -0
- package/expertise/design/PROGRESS.md +58 -0
- package/expertise/design/disciplines/dark-mode-theming.md +577 -0
- package/expertise/design/disciplines/design-systems.md +595 -0
- package/expertise/design/disciplines/index.md +25 -0
- package/expertise/design/disciplines/information-architecture.md +800 -0
- package/expertise/design/disciplines/interaction-design.md +788 -0
- package/expertise/design/disciplines/responsive-design.md +552 -0
- package/expertise/design/disciplines/usability-testing.md +516 -0
- package/expertise/design/disciplines/user-research.md +792 -0
- package/expertise/design/foundations/accessibility-design.md +796 -0
- package/expertise/design/foundations/color-theory.md +797 -0
- package/expertise/design/foundations/iconography.md +795 -0
- package/expertise/design/foundations/index.md +26 -0
- package/expertise/design/foundations/motion-and-animation.md +653 -0
- package/expertise/design/foundations/rtl-design.md +585 -0
- package/expertise/design/foundations/spacing-and-layout.md +607 -0
- package/expertise/design/foundations/typography.md +800 -0
- package/expertise/design/foundations/visual-hierarchy.md +761 -0
- package/expertise/design/index.md +32 -0
- package/expertise/design/patterns/authentication-flows.md +474 -0
- package/expertise/design/patterns/content-consumption.md +789 -0
- package/expertise/design/patterns/data-display.md +618 -0
- package/expertise/design/patterns/e-commerce.md +1494 -0
- package/expertise/design/patterns/feedback-and-states.md +642 -0
- package/expertise/design/patterns/forms-and-input.md +819 -0
- package/expertise/design/patterns/gamification.md +801 -0
- package/expertise/design/patterns/index.md +31 -0
- package/expertise/design/patterns/microinteractions.md +449 -0
- package/expertise/design/patterns/navigation.md +800 -0
- package/expertise/design/patterns/notifications.md +705 -0
- package/expertise/design/patterns/onboarding.md +700 -0
- package/expertise/design/patterns/search-and-filter.md +601 -0
- package/expertise/design/patterns/settings-and-preferences.md +768 -0
- package/expertise/design/patterns/social-and-community.md +748 -0
- package/expertise/design/platforms/desktop-native.md +612 -0
- package/expertise/design/platforms/index.md +25 -0
- package/expertise/design/platforms/mobile-android.md +825 -0
- package/expertise/design/platforms/mobile-cross-platform.md +983 -0
- package/expertise/design/platforms/mobile-ios.md +699 -0
- package/expertise/design/platforms/tablet.md +794 -0
- package/expertise/design/platforms/web-dashboard.md +790 -0
- package/expertise/design/platforms/web-responsive.md +550 -0
- package/expertise/design/psychology/behavioral-nudges.md +449 -0
- package/expertise/design/psychology/cognitive-load.md +1191 -0
- package/expertise/design/psychology/error-psychology.md +778 -0
- package/expertise/design/psychology/index.md +22 -0
- package/expertise/design/psychology/persuasive-design.md +736 -0
- package/expertise/design/psychology/user-mental-models.md +623 -0
- package/expertise/design/tooling/open-pencil.md +266 -0
- package/expertise/frontend/angular.md +1073 -0
- package/expertise/frontend/desktop-electron.md +546 -0
- package/expertise/frontend/flutter.md +782 -0
- package/expertise/frontend/index.md +27 -0
- package/expertise/frontend/native-android.md +409 -0
- package/expertise/frontend/native-ios.md +490 -0
- package/expertise/frontend/react-native.md +1160 -0
- package/expertise/frontend/react.md +808 -0
- package/expertise/frontend/vue.md +1089 -0
- package/expertise/humanize/domain-rules-code.md +79 -0
- package/expertise/humanize/domain-rules-content.md +67 -0
- package/expertise/humanize/domain-rules-technical-docs.md +56 -0
- package/expertise/humanize/index.md +35 -0
- package/expertise/humanize/self-audit-checklist.md +87 -0
- package/expertise/humanize/sentence-patterns.md +218 -0
- package/expertise/humanize/vocabulary-blacklist.md +105 -0
- package/expertise/i18n/PROGRESS.md +65 -0
- package/expertise/i18n/advanced/accessibility-and-i18n.md +28 -0
- package/expertise/i18n/advanced/bidirectional-text-algorithm.md +38 -0
- package/expertise/i18n/advanced/complex-scripts.md +30 -0
- package/expertise/i18n/advanced/performance-and-i18n.md +27 -0
- package/expertise/i18n/advanced/testing-i18n.md +28 -0
- package/expertise/i18n/content/content-adaptation.md +23 -0
- package/expertise/i18n/content/locale-specific-formatting.md +23 -0
- package/expertise/i18n/content/machine-translation-integration.md +28 -0
- package/expertise/i18n/content/translation-management.md +29 -0
- package/expertise/i18n/foundations/date-time-calendars.md +67 -0
- package/expertise/i18n/foundations/i18n-architecture.md +272 -0
- package/expertise/i18n/foundations/locale-and-language-tags.md +79 -0
- package/expertise/i18n/foundations/numbers-currency-units.md +61 -0
- package/expertise/i18n/foundations/pluralization-and-gender.md +109 -0
- package/expertise/i18n/foundations/string-externalization.md +236 -0
- package/expertise/i18n/foundations/text-direction-bidi.md +241 -0
- package/expertise/i18n/foundations/unicode-and-encoding.md +86 -0
- package/expertise/i18n/index.md +38 -0
- package/expertise/i18n/platform/backend-i18n.md +31 -0
- package/expertise/i18n/platform/flutter-i18n.md +148 -0
- package/expertise/i18n/platform/native-android-i18n.md +36 -0
- package/expertise/i18n/platform/native-ios-i18n.md +36 -0
- package/expertise/i18n/platform/react-i18n.md +103 -0
- package/expertise/i18n/platform/web-css-i18n.md +81 -0
- package/expertise/i18n/rtl/arabic-specific.md +175 -0
- package/expertise/i18n/rtl/hebrew-specific.md +149 -0
- package/expertise/i18n/rtl/rtl-animations-and-transitions.md +111 -0
- package/expertise/i18n/rtl/rtl-forms-and-input.md +161 -0
- package/expertise/i18n/rtl/rtl-fundamentals.md +211 -0
- package/expertise/i18n/rtl/rtl-icons-and-images.md +181 -0
- package/expertise/i18n/rtl/rtl-layout-mirroring.md +252 -0
- package/expertise/i18n/rtl/rtl-navigation-and-gestures.md +107 -0
- package/expertise/i18n/rtl/rtl-testing-and-qa.md +147 -0
- package/expertise/i18n/rtl/rtl-typography.md +160 -0
- package/expertise/index.md +113 -0
- package/expertise/index.yaml +216 -0
- package/expertise/infrastructure/cloud-aws.md +597 -0
- package/expertise/infrastructure/cloud-gcp.md +599 -0
- package/expertise/infrastructure/cybersecurity.md +816 -0
- package/expertise/infrastructure/database-mongodb.md +447 -0
- package/expertise/infrastructure/database-postgres.md +400 -0
- package/expertise/infrastructure/devops-cicd.md +787 -0
- package/expertise/infrastructure/index.md +27 -0
- package/expertise/performance/PROGRESS.md +50 -0
- package/expertise/performance/backend/api-latency.md +1204 -0
- package/expertise/performance/backend/background-jobs.md +506 -0
- package/expertise/performance/backend/connection-pooling.md +1209 -0
- package/expertise/performance/backend/database-query-optimization.md +515 -0
- package/expertise/performance/backend/index.md +23 -0
- package/expertise/performance/backend/rate-limiting-and-throttling.md +971 -0
- package/expertise/performance/foundations/algorithmic-complexity.md +954 -0
- package/expertise/performance/foundations/caching-strategies.md +489 -0
- package/expertise/performance/foundations/concurrency-and-parallelism.md +847 -0
- package/expertise/performance/foundations/index.md +24 -0
- package/expertise/performance/foundations/measuring-and-profiling.md +440 -0
- package/expertise/performance/foundations/memory-management.md +964 -0
- package/expertise/performance/foundations/performance-budgets.md +1314 -0
- package/expertise/performance/index.md +31 -0
- package/expertise/performance/infrastructure/auto-scaling.md +1059 -0
- package/expertise/performance/infrastructure/cdn-and-edge.md +1081 -0
- package/expertise/performance/infrastructure/index.md +22 -0
- package/expertise/performance/infrastructure/load-balancing.md +1081 -0
- package/expertise/performance/infrastructure/observability.md +1079 -0
- package/expertise/performance/mobile/index.md +23 -0
- package/expertise/performance/mobile/mobile-animations.md +544 -0
- package/expertise/performance/mobile/mobile-memory-battery.md +416 -0
- package/expertise/performance/mobile/mobile-network.md +452 -0
- package/expertise/performance/mobile/mobile-rendering.md +599 -0
- package/expertise/performance/mobile/mobile-startup-time.md +505 -0
- package/expertise/performance/platform-specific/flutter-performance.md +647 -0
- package/expertise/performance/platform-specific/index.md +22 -0
- package/expertise/performance/platform-specific/node-performance.md +1307 -0
- package/expertise/performance/platform-specific/postgres-performance.md +1366 -0
- package/expertise/performance/platform-specific/react-performance.md +1403 -0
- package/expertise/performance/web/bundle-optimization.md +1239 -0
- package/expertise/performance/web/image-and-media.md +636 -0
- package/expertise/performance/web/index.md +24 -0
- package/expertise/performance/web/network-optimization.md +1133 -0
- package/expertise/performance/web/rendering-performance.md +1098 -0
- package/expertise/performance/web/ssr-and-hydration.md +918 -0
- package/expertise/performance/web/web-vitals.md +1374 -0
- package/expertise/quality/accessibility.md +985 -0
- package/expertise/quality/evidence-based-verification.md +499 -0
- package/expertise/quality/index.md +24 -0
- package/expertise/quality/ml-model-audit.md +614 -0
- package/expertise/quality/performance.md +600 -0
- package/expertise/quality/testing-api.md +891 -0
- package/expertise/quality/testing-mobile.md +496 -0
- package/expertise/quality/testing-web.md +849 -0
- package/expertise/security/PROGRESS.md +54 -0
- package/expertise/security/agentic-identity.md +540 -0
- package/expertise/security/compliance-frameworks.md +601 -0
- package/expertise/security/data/data-encryption.md +364 -0
- package/expertise/security/data/data-privacy-gdpr.md +692 -0
- package/expertise/security/data/database-security.md +1171 -0
- package/expertise/security/data/index.md +22 -0
- package/expertise/security/data/pii-handling.md +531 -0
- package/expertise/security/foundations/authentication.md +1041 -0
- package/expertise/security/foundations/authorization.md +603 -0
- package/expertise/security/foundations/cryptography.md +1001 -0
- package/expertise/security/foundations/index.md +25 -0
- package/expertise/security/foundations/owasp-top-10.md +1354 -0
- package/expertise/security/foundations/secrets-management.md +1217 -0
- package/expertise/security/foundations/secure-sdlc.md +700 -0
- package/expertise/security/foundations/supply-chain-security.md +698 -0
- package/expertise/security/index.md +31 -0
- package/expertise/security/infrastructure/cloud-security-aws.md +1296 -0
- package/expertise/security/infrastructure/cloud-security-gcp.md +1376 -0
- package/expertise/security/infrastructure/container-security.md +721 -0
- package/expertise/security/infrastructure/incident-response.md +1295 -0
- package/expertise/security/infrastructure/index.md +24 -0
- package/expertise/security/infrastructure/logging-and-monitoring.md +1618 -0
- package/expertise/security/infrastructure/network-security.md +1337 -0
- package/expertise/security/mobile/index.md +23 -0
- package/expertise/security/mobile/mobile-android-security.md +1218 -0
- package/expertise/security/mobile/mobile-binary-protection.md +1229 -0
- package/expertise/security/mobile/mobile-data-storage.md +1265 -0
- package/expertise/security/mobile/mobile-ios-security.md +1401 -0
- package/expertise/security/mobile/mobile-network-security.md +1520 -0
- package/expertise/security/smart-contract-security.md +594 -0
- package/expertise/security/testing/index.md +22 -0
- package/expertise/security/testing/penetration-testing.md +1258 -0
- package/expertise/security/testing/security-code-review.md +1765 -0
- package/expertise/security/testing/threat-modeling.md +1074 -0
- package/expertise/security/testing/vulnerability-scanning.md +1062 -0
- package/expertise/security/web/api-security.md +586 -0
- package/expertise/security/web/cors-and-headers.md +433 -0
- package/expertise/security/web/csrf.md +562 -0
- package/expertise/security/web/file-upload.md +1477 -0
- package/expertise/security/web/index.md +25 -0
- package/expertise/security/web/injection.md +1375 -0
- package/expertise/security/web/session-management.md +1101 -0
- package/expertise/security/web/xss.md +1158 -0
- package/exports/README.md +17 -0
- package/exports/hosts/claude/.claude/agents/clarifier.md +42 -0
- package/exports/hosts/claude/.claude/agents/content-author.md +63 -0
- package/exports/hosts/claude/.claude/agents/designer.md +55 -0
- package/exports/hosts/claude/.claude/agents/executor.md +55 -0
- package/exports/hosts/claude/.claude/agents/learner.md +51 -0
- package/exports/hosts/claude/.claude/agents/planner.md +53 -0
- package/exports/hosts/claude/.claude/agents/researcher.md +43 -0
- package/exports/hosts/claude/.claude/agents/reviewer.md +54 -0
- package/exports/hosts/claude/.claude/agents/specifier.md +47 -0
- package/exports/hosts/claude/.claude/agents/verifier.md +71 -0
- package/exports/hosts/claude/.claude/commands/author.md +42 -0
- package/exports/hosts/claude/.claude/commands/clarify.md +38 -0
- package/exports/hosts/claude/.claude/commands/design-review.md +46 -0
- package/exports/hosts/claude/.claude/commands/design.md +44 -0
- package/exports/hosts/claude/.claude/commands/discover.md +37 -0
- package/exports/hosts/claude/.claude/commands/execute.md +48 -0
- package/exports/hosts/claude/.claude/commands/learn.md +38 -0
- package/exports/hosts/claude/.claude/commands/plan-review.md +42 -0
- package/exports/hosts/claude/.claude/commands/plan.md +39 -0
- package/exports/hosts/claude/.claude/commands/prepare-next.md +37 -0
- package/exports/hosts/claude/.claude/commands/review.md +40 -0
- package/exports/hosts/claude/.claude/commands/run-audit.md +41 -0
- package/exports/hosts/claude/.claude/commands/spec-challenge.md +41 -0
- package/exports/hosts/claude/.claude/commands/specify.md +38 -0
- package/exports/hosts/claude/.claude/commands/verify.md +37 -0
- package/exports/hosts/claude/.claude/settings.json +34 -0
- package/exports/hosts/claude/CLAUDE.md +19 -0
- package/exports/hosts/claude/export.manifest.json +38 -0
- package/exports/hosts/claude/host-package.json +67 -0
- package/exports/hosts/codex/AGENTS.md +19 -0
- package/exports/hosts/codex/export.manifest.json +38 -0
- package/exports/hosts/codex/host-package.json +41 -0
- package/exports/hosts/cursor/.cursor/hooks.json +16 -0
- package/exports/hosts/cursor/.cursor/rules/wazir-core.mdc +19 -0
- package/exports/hosts/cursor/export.manifest.json +38 -0
- package/exports/hosts/cursor/host-package.json +42 -0
- package/exports/hosts/gemini/GEMINI.md +19 -0
- package/exports/hosts/gemini/export.manifest.json +38 -0
- package/exports/hosts/gemini/host-package.json +41 -0
- package/hooks/README.md +18 -0
- package/hooks/definitions/loop_cap_guard.yaml +21 -0
- package/hooks/definitions/post_tool_capture.yaml +24 -0
- package/hooks/definitions/pre_compact_summary.yaml +19 -0
- package/hooks/definitions/pre_tool_capture_route.yaml +19 -0
- package/hooks/definitions/protected_path_write_guard.yaml +19 -0
- package/hooks/definitions/session_start.yaml +19 -0
- package/hooks/definitions/stop_handoff_harvest.yaml +20 -0
- package/hooks/loop-cap-guard +17 -0
- package/hooks/post-tool-lint +36 -0
- package/hooks/protected-path-write-guard +17 -0
- package/hooks/session-start +41 -0
- package/llms-full.txt +2355 -0
- package/llms.txt +43 -0
- package/package.json +79 -0
- package/roles/README.md +20 -0
- package/roles/clarifier.md +42 -0
- package/roles/content-author.md +63 -0
- package/roles/designer.md +55 -0
- package/roles/executor.md +55 -0
- package/roles/learner.md +51 -0
- package/roles/planner.md +53 -0
- package/roles/researcher.md +43 -0
- package/roles/reviewer.md +54 -0
- package/roles/specifier.md +47 -0
- package/roles/verifier.md +71 -0
- package/schemas/README.md +24 -0
- package/schemas/accepted-learning.schema.json +20 -0
- package/schemas/author-artifact.schema.json +156 -0
- package/schemas/clarification.schema.json +19 -0
- package/schemas/design-artifact.schema.json +80 -0
- package/schemas/docs-claim.schema.json +18 -0
- package/schemas/export-manifest.schema.json +20 -0
- package/schemas/hook.schema.json +67 -0
- package/schemas/host-export-package.schema.json +18 -0
- package/schemas/implementation-plan.schema.json +19 -0
- package/schemas/proposed-learning.schema.json +19 -0
- package/schemas/research.schema.json +18 -0
- package/schemas/review.schema.json +29 -0
- package/schemas/run-manifest.schema.json +18 -0
- package/schemas/spec-challenge.schema.json +18 -0
- package/schemas/spec.schema.json +20 -0
- package/schemas/usage.schema.json +102 -0
- package/schemas/verification-proof.schema.json +29 -0
- package/schemas/wazir-manifest.schema.json +173 -0
- package/skills/README.md +40 -0
- package/skills/brainstorming/SKILL.md +77 -0
- package/skills/debugging/SKILL.md +50 -0
- package/skills/design/SKILL.md +61 -0
- package/skills/dispatching-parallel-agents/SKILL.md +128 -0
- package/skills/executing-plans/SKILL.md +70 -0
- package/skills/finishing-a-development-branch/SKILL.md +169 -0
- package/skills/humanize/SKILL.md +123 -0
- package/skills/init-pipeline/SKILL.md +124 -0
- package/skills/prepare-next/SKILL.md +20 -0
- package/skills/receiving-code-review/SKILL.md +123 -0
- package/skills/requesting-code-review/SKILL.md +105 -0
- package/skills/requesting-code-review/code-reviewer.md +108 -0
- package/skills/run-audit/SKILL.md +197 -0
- package/skills/scan-project/SKILL.md +41 -0
- package/skills/self-audit/SKILL.md +153 -0
- package/skills/subagent-driven-development/SKILL.md +154 -0
- package/skills/subagent-driven-development/code-quality-reviewer-prompt.md +26 -0
- package/skills/subagent-driven-development/implementer-prompt.md +102 -0
- package/skills/subagent-driven-development/spec-reviewer-prompt.md +61 -0
- package/skills/tdd/SKILL.md +23 -0
- package/skills/using-git-worktrees/SKILL.md +163 -0
- package/skills/using-skills/SKILL.md +95 -0
- package/skills/verification/SKILL.md +22 -0
- package/skills/wazir/SKILL.md +463 -0
- package/skills/writing-plans/SKILL.md +30 -0
- package/skills/writing-skills/SKILL.md +157 -0
- package/skills/writing-skills/anthropic-best-practices.md +122 -0
- package/skills/writing-skills/persuasion-principles.md +50 -0
- package/templates/README.md +20 -0
- package/templates/artifacts/README.md +10 -0
- package/templates/artifacts/accepted-learning.md +19 -0
- package/templates/artifacts/accepted-learning.template.json +12 -0
- package/templates/artifacts/author.md +74 -0
- package/templates/artifacts/author.template.json +19 -0
- package/templates/artifacts/clarification.md +21 -0
- package/templates/artifacts/clarification.template.json +12 -0
- package/templates/artifacts/execute-notes.md +19 -0
- package/templates/artifacts/implementation-plan.md +21 -0
- package/templates/artifacts/implementation-plan.template.json +11 -0
- package/templates/artifacts/learning-proposal.md +19 -0
- package/templates/artifacts/next-run-handoff.md +21 -0
- package/templates/artifacts/plan-review.md +19 -0
- package/templates/artifacts/proposed-learning.template.json +12 -0
- package/templates/artifacts/research.md +21 -0
- package/templates/artifacts/research.template.json +12 -0
- package/templates/artifacts/review-findings.md +19 -0
- package/templates/artifacts/review.template.json +11 -0
- package/templates/artifacts/run-manifest.template.json +8 -0
- package/templates/artifacts/spec-challenge.md +19 -0
- package/templates/artifacts/spec-challenge.template.json +11 -0
- package/templates/artifacts/spec.md +21 -0
- package/templates/artifacts/spec.template.json +12 -0
- package/templates/artifacts/verification-proof.md +19 -0
- package/templates/artifacts/verification-proof.template.json +11 -0
- package/templates/examples/accepted-learning.example.json +14 -0
- package/templates/examples/author.example.json +152 -0
- package/templates/examples/clarification.example.json +15 -0
- package/templates/examples/docs-claim.example.json +8 -0
- package/templates/examples/export-manifest.example.json +7 -0
- package/templates/examples/host-export-package.example.json +11 -0
- package/templates/examples/implementation-plan.example.json +17 -0
- package/templates/examples/proposed-learning.example.json +13 -0
- package/templates/examples/research.example.json +15 -0
- package/templates/examples/research.example.md +6 -0
- package/templates/examples/review.example.json +17 -0
- package/templates/examples/run-manifest.example.json +9 -0
- package/templates/examples/spec-challenge.example.json +14 -0
- package/templates/examples/spec.example.json +21 -0
- package/templates/examples/verification-proof.example.json +21 -0
- package/templates/examples/wazir-manifest.example.yaml +65 -0
- package/templates/task-definition-schema.md +99 -0
- package/tooling/README.md +20 -0
- package/tooling/src/adapters/context-mode.js +50 -0
- package/tooling/src/capture/command.js +376 -0
- package/tooling/src/capture/store.js +99 -0
- package/tooling/src/capture/usage.js +270 -0
- package/tooling/src/checks/branches.js +50 -0
- package/tooling/src/checks/brand-truth.js +110 -0
- package/tooling/src/checks/changelog.js +231 -0
- package/tooling/src/checks/command-registry.js +36 -0
- package/tooling/src/checks/commits.js +102 -0
- package/tooling/src/checks/docs-drift.js +103 -0
- package/tooling/src/checks/docs-truth.js +201 -0
- package/tooling/src/checks/runtime-surface.js +156 -0
- package/tooling/src/cli.js +116 -0
- package/tooling/src/command-options.js +56 -0
- package/tooling/src/commands/validate.js +320 -0
- package/tooling/src/doctor/command.js +91 -0
- package/tooling/src/export/command.js +77 -0
- package/tooling/src/export/compiler.js +498 -0
- package/tooling/src/guards/loop-cap-guard.js +52 -0
- package/tooling/src/guards/protected-path-write-guard.js +67 -0
- package/tooling/src/index/command.js +152 -0
- package/tooling/src/index/storage.js +1061 -0
- package/tooling/src/index/summarizers.js +261 -0
- package/tooling/src/loaders.js +18 -0
- package/tooling/src/project-root.js +22 -0
- package/tooling/src/recall/command.js +225 -0
- package/tooling/src/schema-validator.js +30 -0
- package/tooling/src/state-root.js +40 -0
- package/tooling/src/status/command.js +71 -0
- package/wazir.manifest.yaml +135 -0
- package/workflows/README.md +19 -0
- package/workflows/author.md +42 -0
- package/workflows/clarify.md +38 -0
- package/workflows/design-review.md +46 -0
- package/workflows/design.md +44 -0
- package/workflows/discover.md +37 -0
- package/workflows/execute.md +48 -0
- package/workflows/learn.md +38 -0
- package/workflows/plan-review.md +42 -0
- package/workflows/plan.md +39 -0
- package/workflows/prepare-next.md +37 -0
- package/workflows/review.md +40 -0
- package/workflows/run-audit.md +41 -0
- package/workflows/spec-challenge.md +41 -0
- package/workflows/specify.md +38 -0
- package/workflows/verify.md +37 -0
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
# React i18n — i18n/RTL Expertise Module
|
|
2
|
+
|
|
3
|
+
> React i18n options: react-intl (ICU, FormatJS) vs react-i18next. Both support RTL via `dir` and `lang` on document root. Choose based on ICU compliance vs plugin ecosystem.
|
|
4
|
+
|
|
5
|
+
> **Category:** Platform
|
|
6
|
+
> **Applies to:** Web (React)
|
|
7
|
+
> **Key standards:** ICU MessageFormat, BCP 47
|
|
8
|
+
> **RTL impact:** High — dir attribute, logical CSS
|
|
9
|
+
|
|
10
|
+
## 1. Platform i18n System
|
|
11
|
+
|
|
12
|
+
### react-intl (FormatJS)
|
|
13
|
+
|
|
14
|
+
- ICU MessageFormat
|
|
15
|
+
- `FormattedMessage`, `FormattedNumber`, `FormattedDate`
|
|
16
|
+
- Built-in plural, select, rich text
|
|
17
|
+
|
|
18
|
+
### react-i18next
|
|
19
|
+
|
|
20
|
+
- JSON/ICU resources
|
|
21
|
+
- `useTranslation` hook, `t()` function
|
|
22
|
+
- `{{variable}}` interpolation; ICU via plugin
|
|
23
|
+
|
|
24
|
+
### RTL
|
|
25
|
+
|
|
26
|
+
- Set `dir="rtl"` and `lang="ar"` on `<html>` or root when locale is RTL
|
|
27
|
+
- Use CSS logical properties
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## 2. Setup Guide
|
|
32
|
+
|
|
33
|
+
### react-intl
|
|
34
|
+
|
|
35
|
+
```tsx
|
|
36
|
+
import { IntlProvider, FormattedMessage } from 'react-intl';
|
|
37
|
+
|
|
38
|
+
<IntlProvider locale="ar" messages={messages}>
|
|
39
|
+
<FormattedMessage id="greeting" defaultMessage="Hello!" />
|
|
40
|
+
</IntlProvider>
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
### react-i18next
|
|
44
|
+
|
|
45
|
+
```tsx
|
|
46
|
+
import { useTranslation } from 'react-i18next';
|
|
47
|
+
|
|
48
|
+
const { t } = useTranslation();
|
|
49
|
+
<h1>{t('greeting')}</h1>
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### RTL Document Update
|
|
53
|
+
|
|
54
|
+
```tsx
|
|
55
|
+
useEffect(() => {
|
|
56
|
+
document.documentElement.dir = dir;
|
|
57
|
+
document.documentElement.lang = locale;
|
|
58
|
+
}, [locale, dir]);
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## 3. Key APIs
|
|
64
|
+
|
|
65
|
+
### react-intl
|
|
66
|
+
|
|
67
|
+
- `FormattedMessage` — id, defaultMessage, values
|
|
68
|
+
- `useIntl()` — formatMessage, formatNumber, formatDate
|
|
69
|
+
- ICU: `{count, plural, one {# item} other {# items}}`
|
|
70
|
+
|
|
71
|
+
### react-i18next
|
|
72
|
+
|
|
73
|
+
- `t('key', { count })` — plural
|
|
74
|
+
- `t('key', { returnObjects: true })` — nested
|
|
75
|
+
- `i18n.changeLanguage('ar')`
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
## 4. RTL Support
|
|
80
|
+
|
|
81
|
+
- `dir` and `lang` on root
|
|
82
|
+
- Logical CSS (margin-inline-start, etc.)
|
|
83
|
+
- No physical properties in layout
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## 5. Anti-Patterns
|
|
88
|
+
|
|
89
|
+
1. **Forgetting dir on root** — RTL layout breaks
|
|
90
|
+
2. **Physical CSS** — layout-left, margin-right
|
|
91
|
+
3. **Hardcoded strings** — Use FormattedMessage or t()
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
## Quick Reference Checklist
|
|
96
|
+
|
|
97
|
+
- [ ] IntlProvider or i18next provider
|
|
98
|
+
- [ ] dir and lang on document when RTL
|
|
99
|
+
- [ ] Logical CSS
|
|
100
|
+
- [ ] ICU for plurals (react-intl) or i18next plural
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
*Researched: 2026-03-08 | Sources: react-intl, react-i18next docs*
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
# Web CSS i18n — i18n/RTL Expertise Module
|
|
2
|
+
|
|
3
|
+
> CSS for i18n: logical properties, `dir` attribute, `:dir()` pseudo-class, and `lang` attribute. The foundation of RTL and multi-script web layouts.
|
|
4
|
+
|
|
5
|
+
> **Category:** Platform
|
|
6
|
+
> **Applies to:** Web
|
|
7
|
+
> **Key standards:** CSS Logical Properties, W3C
|
|
8
|
+
> **RTL impact:** Critical — CSS is the primary RTL mechanism on web
|
|
9
|
+
|
|
10
|
+
## 1. Core Concepts
|
|
11
|
+
|
|
12
|
+
### Logical Properties
|
|
13
|
+
|
|
14
|
+
| Physical | Logical |
|
|
15
|
+
|----------|---------|
|
|
16
|
+
| margin-left | margin-inline-start |
|
|
17
|
+
| margin-right | margin-inline-end |
|
|
18
|
+
| padding-left | padding-inline-start |
|
|
19
|
+
| padding-right | padding-inline-end |
|
|
20
|
+
| left | inset-inline-start |
|
|
21
|
+
| right | inset-inline-end |
|
|
22
|
+
| text-align: left | text-align: start |
|
|
23
|
+
| text-align: right | text-align: end |
|
|
24
|
+
|
|
25
|
+
### dir Attribute
|
|
26
|
+
|
|
27
|
+
```html
|
|
28
|
+
<html dir="rtl" lang="ar">
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
- `dir="ltr"` | `dir="rtl"` | `dir="auto"`
|
|
32
|
+
- Affects layout, text direction, logical property resolution
|
|
33
|
+
|
|
34
|
+
### :dir() Pseudo-class
|
|
35
|
+
|
|
36
|
+
```css
|
|
37
|
+
:dir(rtl) .sidebar {
|
|
38
|
+
transform: translateX(100%);
|
|
39
|
+
}
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## 2. Implementation
|
|
45
|
+
|
|
46
|
+
### Use Logical Properties
|
|
47
|
+
|
|
48
|
+
```css
|
|
49
|
+
/* Avoid */
|
|
50
|
+
margin-left: 16px;
|
|
51
|
+
|
|
52
|
+
/* Use */
|
|
53
|
+
margin-inline-start: 16px;
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### Transform Override for RTL
|
|
57
|
+
|
|
58
|
+
```css
|
|
59
|
+
:root { --slide: -100%; }
|
|
60
|
+
:dir(rtl) { --slide: 100%; }
|
|
61
|
+
.drawer { transform: translateX(var(--slide)); }
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
## 3. Anti-Patterns
|
|
67
|
+
|
|
68
|
+
1. **Physical properties** — left, right, margin-left
|
|
69
|
+
2. **text-align: left** — Use start
|
|
70
|
+
3. **float: left** — Use inline-start or flex
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## Quick Reference Checklist
|
|
75
|
+
|
|
76
|
+
- [ ] Logical properties for layout
|
|
77
|
+
- [ ] dir on html when RTL
|
|
78
|
+
- [ ] :dir() for override when needed
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
*Researched: 2026-03-08 | Sources: MDN logical properties, W3C*
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
# Arabic-Specific i18n/RTL — Expertise Module
|
|
2
|
+
|
|
3
|
+
> Arabic is not "Hebrew with different letters." It has connected cursive script, two numeral systems, the Hijri calendar, six plural forms, and distinct typographic conventions. This module covers what makes Arabic unique.
|
|
4
|
+
|
|
5
|
+
> **Category:** RTL
|
|
6
|
+
> **Applies to:** Mobile, Web, Backend
|
|
7
|
+
> **Key standards:** Unicode Arabic, CLDR ar-* locales, Islamic calendar
|
|
8
|
+
> **RTL impact:** Critical — Arabic is the largest RTL language by speakers
|
|
9
|
+
|
|
10
|
+
## 1. Script and Typography
|
|
11
|
+
|
|
12
|
+
### Connected Cursive
|
|
13
|
+
|
|
14
|
+
Arabic uses a connected script. Each of the 28 letters has up to 4 contextual forms:
|
|
15
|
+
- **Isolated** — Standalone
|
|
16
|
+
- **Initial** — At start of word
|
|
17
|
+
- **Medial** — In middle
|
|
18
|
+
- **Final** — At end of word
|
|
19
|
+
|
|
20
|
+
Fonts must support **OpenType shaping** (e.g., HarfBuzz). Without it, letters appear disconnected or wrong.
|
|
21
|
+
|
|
22
|
+
### Diacritics (Harakat)
|
|
23
|
+
|
|
24
|
+
- **Short vowels:** fatḥa (َ), kasra (ِ), ḍamma (ُ)
|
|
25
|
+
- **Shadda** (ّ) — Gemination
|
|
26
|
+
- **Sukūn** (ْ) — No vowel
|
|
27
|
+
- **Tanwīn** — Nunation
|
|
28
|
+
|
|
29
|
+
Often omitted in modern UI; when present, require sufficient line height.
|
|
30
|
+
|
|
31
|
+
### Font Recommendations
|
|
32
|
+
|
|
33
|
+
- **UI body:** Noto Sans Arabic, Tahoma, Arial
|
|
34
|
+
- **Headlines:** Amiri, Noto Kufi Arabic
|
|
35
|
+
- **Avoid:** Latin-only fonts; decorative fonts for body text
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## 2. Numeral Systems
|
|
40
|
+
|
|
41
|
+
### Western Arabic (0123456789)
|
|
42
|
+
|
|
43
|
+
- Used in: Morocco, Algeria, Tunisia, and often in tech/finance
|
|
44
|
+
- Same glyphs as "European" digits
|
|
45
|
+
- Locale: `ar-MA`, `ar-DZ` often use Western
|
|
46
|
+
|
|
47
|
+
### Eastern Arabic (٠١٢٣٤٥٦٧٨٩)
|
|
48
|
+
|
|
49
|
+
- Used in: Saudi Arabia, Egypt, Syria, Iraq, Gulf, Levant
|
|
50
|
+
- Locale: `ar-SA`, `ar-EG` typically use Eastern
|
|
51
|
+
- **Important:** Let the user or locale choose; some apps offer a setting
|
|
52
|
+
|
|
53
|
+
### Implementation
|
|
54
|
+
|
|
55
|
+
```javascript
|
|
56
|
+
// Intl.NumberFormat uses locale's default digits
|
|
57
|
+
new Intl.NumberFormat('ar-SA').format(123); // ١٢٣
|
|
58
|
+
new Intl.NumberFormat('ar-EG').format(123); // ١٢٣
|
|
59
|
+
new Intl.NumberFormat('ar-MA').format(123); // 123 (Western)
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
## 3. Calendar: Hijri (Islamic)
|
|
65
|
+
|
|
66
|
+
### Overview
|
|
67
|
+
|
|
68
|
+
- Lunar calendar; ~354 days/year
|
|
69
|
+
- Used as civil calendar in Saudi Arabia, and religiously worldwide
|
|
70
|
+
- Starts from Hijra (622 CE)
|
|
71
|
+
|
|
72
|
+
### Variants
|
|
73
|
+
|
|
74
|
+
- **islamic** — Civil (fixed algorithm)
|
|
75
|
+
- **islamic-umalqura** — Saudi Arabia (crescent sighting)
|
|
76
|
+
- **islamic-tbla** — Astronomical
|
|
77
|
+
|
|
78
|
+
### Implementation
|
|
79
|
+
|
|
80
|
+
```javascript
|
|
81
|
+
new Intl.DateTimeFormat('ar-SA', {
|
|
82
|
+
calendar: 'islamic',
|
|
83
|
+
year: 'numeric',
|
|
84
|
+
month: 'long',
|
|
85
|
+
day: 'numeric'
|
|
86
|
+
}).format(new Date());
|
|
87
|
+
// e.g., ١٥ رجب ١٤٤٧
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
## 4. Pluralization
|
|
93
|
+
|
|
94
|
+
Arabic has **6 plural forms** (CLDR categories: zero, one, two, few, many, other).
|
|
95
|
+
|
|
96
|
+
### ICU MessageFormat Example
|
|
97
|
+
|
|
98
|
+
```
|
|
99
|
+
{count, plural,
|
|
100
|
+
zero {لا رسائل}
|
|
101
|
+
one {رسالة واحدة}
|
|
102
|
+
two {رسالتان}
|
|
103
|
+
few {# رسائل}
|
|
104
|
+
many {# رسالة}
|
|
105
|
+
other {# رسالة}
|
|
106
|
+
}
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
### Rules (Simplified)
|
|
110
|
+
|
|
111
|
+
- zero: count === 0
|
|
112
|
+
- one: count === 1
|
|
113
|
+
- two: count === 2
|
|
114
|
+
- few: 3–10
|
|
115
|
+
- many: 11–99 (with exceptions)
|
|
116
|
+
- other: default
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
## 5. Locale Variants
|
|
121
|
+
|
|
122
|
+
| Locale | Region | Numerals | Notes |
|
|
123
|
+
|--------|--------|----------|-------|
|
|
124
|
+
| ar-SA | Saudi Arabia | Eastern | Hijri default |
|
|
125
|
+
| ar-EG | Egypt | Eastern | Large market |
|
|
126
|
+
| ar-AE | UAE | Eastern | Gulf |
|
|
127
|
+
| ar-MA | Morocco | Western | Maghreb |
|
|
128
|
+
| ar-DZ | Algeria | Western | Maghreb |
|
|
129
|
+
|
|
130
|
+
---
|
|
131
|
+
|
|
132
|
+
## 6. Cultural and Content Notes
|
|
133
|
+
|
|
134
|
+
### Formal vs Informal
|
|
135
|
+
|
|
136
|
+
- Formal (الفصحى): News, official content
|
|
137
|
+
- Informal (العامية): Dialects vary by region (Egyptian, Levantine, Gulf)
|
|
138
|
+
- UI often uses Modern Standard Arabic (MSA) for consistency
|
|
139
|
+
|
|
140
|
+
### Text Length
|
|
141
|
+
|
|
142
|
+
- Arabic can be shorter or longer than English depending on register
|
|
143
|
+
- Design for expansion; avoid fixed-width text containers
|
|
144
|
+
|
|
145
|
+
### Mixed Content
|
|
146
|
+
|
|
147
|
+
- English brand names, URLs, code: keep LTR
|
|
148
|
+
- Numbers: follow locale (Eastern or Western)
|
|
149
|
+
|
|
150
|
+
---
|
|
151
|
+
|
|
152
|
+
## 7. Anti-Patterns
|
|
153
|
+
|
|
154
|
+
1. **Assuming one numeral system** — Support both; use locale or user preference
|
|
155
|
+
2. **Gregorian-only dates** — Offer Hijri for ar-SA and religious contexts
|
|
156
|
+
3. **English plural rule** — Arabic needs 6 forms
|
|
157
|
+
4. **Latin font for Arabic** — Use Arabic-capable font
|
|
158
|
+
5. **Letter-spacing on Arabic** — Breaks connections
|
|
159
|
+
6. **Treating Arabic like Hebrew** — Different script, numerals, calendar
|
|
160
|
+
7. **No RTL layout** — Arabic is RTL; layout must mirror
|
|
161
|
+
|
|
162
|
+
---
|
|
163
|
+
|
|
164
|
+
## Quick Reference Checklist
|
|
165
|
+
|
|
166
|
+
- [ ] Font supports Arabic (OpenType shaping)
|
|
167
|
+
- [ ] Numerals: Eastern vs Western per locale
|
|
168
|
+
- [ ] Hijri calendar for ar-SA and religious contexts
|
|
169
|
+
- [ ] 6 plural forms in ICU MessageFormat
|
|
170
|
+
- [ ] RTL layout with logical properties
|
|
171
|
+
- [ ] Test with real Arabic: مرحباً، كيف حالك؟
|
|
172
|
+
- [ ] Line height for diacritics if used
|
|
173
|
+
|
|
174
|
+
---
|
|
175
|
+
*Researched: 2026-03-08 | Sources: Unicode Arabic, CLDR, Wikipedia Eastern/Western numerals, Intl API, ICU Islamic calendar*
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
# Hebrew-Specific i18n/RTL — Expertise Module
|
|
2
|
+
|
|
3
|
+
> Hebrew differs from Arabic: discrete letters with final forms, Western numerals in everyday use, the Jewish/Hebrew calendar, and three plural forms. Never conflate Hebrew with Arabic—they are distinct RTL languages.
|
|
4
|
+
|
|
5
|
+
> **Category:** RTL
|
|
6
|
+
> **Applies to:** Mobile, Web, Backend
|
|
7
|
+
> **Key standards:** Unicode Hebrew, CLDR he/iw locales, Hebrew calendar
|
|
8
|
+
> **RTL impact:** Critical — Hebrew is the primary language of Israel
|
|
9
|
+
|
|
10
|
+
## 1. Script and Typography
|
|
11
|
+
|
|
12
|
+
### Discrete Letters with Final Forms
|
|
13
|
+
|
|
14
|
+
Hebrew is an abjad (consonants only; vowels optional). Unlike Arabic's connected cursive, Hebrew letters are mostly discrete. Five letters have **final forms** when they appear at the end of a word:
|
|
15
|
+
|
|
16
|
+
| Letter | Final form | Use |
|
|
17
|
+
|--------|------------|-----|
|
|
18
|
+
| Kaf (כ) | Final Kaf (ך) | End of word |
|
|
19
|
+
| Mem (מ) | Final Mem (ם) | End of word |
|
|
20
|
+
| Nun (נ) | Final Nun (ן) | End of word |
|
|
21
|
+
| Pe (פ) | Final Pe (ף) | End of word |
|
|
22
|
+
| Tsade (צ) | Final Tsade (ץ) | End of word |
|
|
23
|
+
|
|
24
|
+
Fonts must support OpenType shaping for correct final-form substitution.
|
|
25
|
+
|
|
26
|
+
### Niqqud (Vowel Points)
|
|
27
|
+
|
|
28
|
+
- 11 vowel diacritics; rarely used in modern UI
|
|
29
|
+
- Used in: religious texts, education, disambiguation
|
|
30
|
+
- When present: require line height headroom (like Arabic harakat)
|
|
31
|
+
|
|
32
|
+
### Font Recommendations
|
|
33
|
+
|
|
34
|
+
- **Body:** Heebo, Noto Sans Hebrew, Arial
|
|
35
|
+
- **Religious/formal:** Noto Rashi Hebrew, Frank Ruhl Libre
|
|
36
|
+
- **Display:** Heebo, Rubik
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## 2. Numerals
|
|
41
|
+
|
|
42
|
+
### Everyday Use: Western Arabic (0123456789)
|
|
43
|
+
|
|
44
|
+
In Israel, **Western Arabic numerals** are used for:
|
|
45
|
+
- Money, age, dates
|
|
46
|
+
- Most UI and commercial content
|
|
47
|
+
|
|
48
|
+
Hebrew numerals (letters as numbers) are used only for:
|
|
49
|
+
- Hebrew calendar dates
|
|
50
|
+
- Religious texts
|
|
51
|
+
- List numbering (like a, b, c)
|
|
52
|
+
|
|
53
|
+
**Implementation:** Use `Intl.NumberFormat('he-IL')` — it outputs Western digits by default. No Eastern Arabic numerals.
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## 3. Calendar: Hebrew (Jewish)
|
|
58
|
+
|
|
59
|
+
### Overview
|
|
60
|
+
|
|
61
|
+
- Lunisolar calendar
|
|
62
|
+
- Used for religious holidays and traditional dates in Israel
|
|
63
|
+
- Months: Tishri, Heshvan, Kislev, Tevet, Shevat, Adar, Adar II (leap), Nisan, Iyar, Sivan, Tamuz, Av, Elul
|
|
64
|
+
|
|
65
|
+
### Implementation
|
|
66
|
+
|
|
67
|
+
```javascript
|
|
68
|
+
new Intl.DateTimeFormat('he-IL', {
|
|
69
|
+
calendar: 'hebrew',
|
|
70
|
+
year: 'numeric',
|
|
71
|
+
month: 'long',
|
|
72
|
+
day: 'numeric'
|
|
73
|
+
}).format(new Date());
|
|
74
|
+
// e.g., 15 באדר ב' 5786
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
Locale `he-IL` or `iw-IL` (iw is legacy for Hebrew). Calendar option: `hebrew`.
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
## 4. Pluralization
|
|
82
|
+
|
|
83
|
+
Hebrew has **3 cardinal plural forms** (CLDR: one, two, other).
|
|
84
|
+
|
|
85
|
+
### ICU MessageFormat Example
|
|
86
|
+
|
|
87
|
+
```
|
|
88
|
+
{count, plural,
|
|
89
|
+
one {יום אחד}
|
|
90
|
+
two {יומיים}
|
|
91
|
+
other {# ימים}
|
|
92
|
+
}
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
### Rules
|
|
96
|
+
|
|
97
|
+
- **one:** n=1 (integer), or fractional 0.0–0.9, 0.00–0.05
|
|
98
|
+
- **two:** n=2 (integer only)
|
|
99
|
+
- **other:** 0, 3–17, 100, etc., and fractional 1.0–2.5, 10.0, etc.
|
|
100
|
+
|
|
101
|
+
### Ordinal
|
|
102
|
+
|
|
103
|
+
Hebrew ordinals use **other** only — no one/two/few/many distinction for ordinals.
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
## 5. Locale Variants
|
|
108
|
+
|
|
109
|
+
| Locale | Region | Notes |
|
|
110
|
+
|--------|--------|-------|
|
|
111
|
+
| he-IL | Israel | Primary; iw-IL is legacy |
|
|
112
|
+
| he | Hebrew (no region) | Fallback |
|
|
113
|
+
|
|
114
|
+
---
|
|
115
|
+
|
|
116
|
+
## 6. Arabic vs Hebrew: Summary
|
|
117
|
+
|
|
118
|
+
| Aspect | Arabic | Hebrew |
|
|
119
|
+
|--------|--------|--------|
|
|
120
|
+
| Script | Connected cursive | Discrete, some final forms |
|
|
121
|
+
| Numerals (everyday) | Eastern or Western by region | Western only |
|
|
122
|
+
| Calendar | Hijri (Islamic) | Hebrew (Jewish) |
|
|
123
|
+
| Plural forms | 6 | 3 |
|
|
124
|
+
| Diacritics | Harakat (common in religious) | Niqqud (rare in UI) |
|
|
125
|
+
|
|
126
|
+
---
|
|
127
|
+
|
|
128
|
+
## 7. Anti-Patterns
|
|
129
|
+
|
|
130
|
+
1. **Treating Hebrew like Arabic** — Different script, numerals, calendar, plurals
|
|
131
|
+
2. **Using Eastern Arabic numerals** — Hebrew uses Western
|
|
132
|
+
3. **Hijri calendar for Hebrew** — Use Hebrew calendar
|
|
133
|
+
4. **6 plural forms** — Hebrew has 3
|
|
134
|
+
5. **Latin font for Hebrew** — Use Hebrew-capable font
|
|
135
|
+
6. **No RTL layout** — Hebrew is RTL; layout must mirror
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
## Quick Reference Checklist
|
|
140
|
+
|
|
141
|
+
- [ ] Font supports Hebrew (final forms, OpenType shaping)
|
|
142
|
+
- [ ] Western numerals (0123) for everyday content
|
|
143
|
+
- [ ] Hebrew calendar for dates when relevant
|
|
144
|
+
- [ ] 3 plural forms: one, two, other
|
|
145
|
+
- [ ] RTL layout with logical properties
|
|
146
|
+
- [ ] Test with real Hebrew: שלום, עברית
|
|
147
|
+
|
|
148
|
+
---
|
|
149
|
+
*Researched: 2026-03-08 | Sources: Unicode Hebrew, CLDR plurals, Intl API, Wikipedia Hebrew numerals*
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
# RTL Animations and Transitions — i18n/RTL Expertise Module
|
|
2
|
+
|
|
3
|
+
> Animations that represent direction (slide-in, drawer, carousel) must follow reading direction. A drawer that slides in from the left in LTR should slide in from the right in RTL. Time-based animations (progress, fade) typically don't change.
|
|
4
|
+
|
|
5
|
+
> **Category:** RTL
|
|
6
|
+
> **Applies to:** Mobile, Web
|
|
7
|
+
> **Key standards:** Material Design, Apple HIG
|
|
8
|
+
> **RTL impact:** High — wrong animation direction feels broken
|
|
9
|
+
|
|
10
|
+
## 1. The Rules
|
|
11
|
+
|
|
12
|
+
### Animations That MIRROR (Directional)
|
|
13
|
+
|
|
14
|
+
| Animation | LTR | RTL |
|
|
15
|
+
|-----------|-----|-----|
|
|
16
|
+
| **Drawer/sidebar open** | Slides in from left | Slides in from right |
|
|
17
|
+
| **Modal/dialog enter** | Often center; if slide, from bottom | Same (center/bottom) |
|
|
18
|
+
| **Page transition (push)** | New page slides in from right | New page slides in from left |
|
|
19
|
+
| **Page transition (pop/back)** | Current page slides out to right | Current page slides out to left |
|
|
20
|
+
| **Carousel next** | Content slides left (new from right) | Content slides right (new from left) |
|
|
21
|
+
| **Swipe to dismiss** | Swipe right to dismiss | Swipe left to dismiss |
|
|
22
|
+
| **Expand/collapse** | Chevron rotates; content expands | Same (no direction) |
|
|
23
|
+
|
|
24
|
+
### Animations That Do NOT Mirror
|
|
25
|
+
|
|
26
|
+
| Animation | Reason |
|
|
27
|
+
|-----------|--------|
|
|
28
|
+
| **Fade** | No direction |
|
|
29
|
+
| **Scale** | No direction |
|
|
30
|
+
| **Progress bar fill** | Represents progress; direction follows layout (start→end) |
|
|
31
|
+
| **Spinner/loading** | No direction |
|
|
32
|
+
| **Pulse** | No direction |
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## 2. Implementation
|
|
37
|
+
|
|
38
|
+
### Web (CSS)
|
|
39
|
+
|
|
40
|
+
```css
|
|
41
|
+
/* Drawer: use logical properties for transform origin */
|
|
42
|
+
.drawer {
|
|
43
|
+
transform: translateX(-100%);
|
|
44
|
+
transform-origin: left center;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
[dir="rtl"] .drawer {
|
|
48
|
+
transform: translateX(100%);
|
|
49
|
+
transform-origin: right center;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/* Or use CSS variable */
|
|
53
|
+
:root {
|
|
54
|
+
--drawer-translate: -100%;
|
|
55
|
+
}
|
|
56
|
+
[dir="rtl"] {
|
|
57
|
+
--drawer-translate: 100%;
|
|
58
|
+
}
|
|
59
|
+
.drawer {
|
|
60
|
+
transform: translateX(var(--drawer-translate));
|
|
61
|
+
}
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### Flutter
|
|
65
|
+
|
|
66
|
+
```dart
|
|
67
|
+
// SlideTransition: use direction from TextDirection
|
|
68
|
+
SlideTransition(
|
|
69
|
+
position: Tween<Offset>(
|
|
70
|
+
begin: Offset(Directionality.of(context) == TextDirection.rtl ? 1 : -1, 0),
|
|
71
|
+
end: Offset.zero,
|
|
72
|
+
).animate(animation),
|
|
73
|
+
child: child,
|
|
74
|
+
)
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### React / React Native
|
|
78
|
+
|
|
79
|
+
- Use `I18nManager.isRTL` or `useLayoutDirection()` to flip slide direction
|
|
80
|
+
- Pass `from`/`to` or `direction` to animation library based on RTL
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## 3. Common RTL Animation Bugs
|
|
85
|
+
|
|
86
|
+
1. **Drawer slides from wrong side** — Always from start edge
|
|
87
|
+
2. **Page push/pop wrong direction** — New page from end, back slides to end
|
|
88
|
+
3. **Carousel slides wrong way** — "Next" should move content in reading direction
|
|
89
|
+
4. **Transform origin wrong** — `transform-origin: left` doesn't flip; override for RTL
|
|
90
|
+
5. **translateX not inverted** — Use direction multiplier
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
## 4. QA Checklist
|
|
95
|
+
|
|
96
|
+
- [ ] Drawer/sidebar slides from start edge
|
|
97
|
+
- [ ] Page transitions follow navigation direction
|
|
98
|
+
- [ ] Carousel direction correct
|
|
99
|
+
- [ ] No jarring "wrong way" animations
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
## Quick Reference Checklist
|
|
104
|
+
|
|
105
|
+
- [ ] Directional slides use RTL-aware transform/origin
|
|
106
|
+
- [ ] Drawer from start edge
|
|
107
|
+
- [ ] Page push/pop direction correct
|
|
108
|
+
- [ ] Fade/scale unchanged
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
*Researched: 2026-03-08 | Sources: Kendo slide direction, React Slick RTL, animation direction patterns*
|