@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,449 @@
|
|
|
1
|
+
# Editorial Standards -- Content Foundation Module
|
|
2
|
+
|
|
3
|
+
> **Category:** Content Foundation
|
|
4
|
+
> **Applies to:** All platforms -- Web, iOS, Android, Desktop
|
|
5
|
+
> **Last updated:** 2026-03-14
|
|
6
|
+
> **Sources:** AP Stylebook, Chicago Manual of Style, Microsoft Writing Style Guide, Google Developer Documentation Style Guide, GOV.UK Style Guide, Mailchimp Content Style Guide, Readability Formulas (Flesch, Gunning), W3C WCAG 2.2, Conscious Style Guide
|
|
7
|
+
|
|
8
|
+
Editorial standards govern how text is written across a product: casing, grammar,
|
|
9
|
+
voice, tone, number formatting, date rendering, and inclusive language. Without
|
|
10
|
+
explicit standards, a product drifts toward inconsistency -- "Sign In" on one screen,
|
|
11
|
+
"Log in" on another, "LOGIN" on a third. Standards eliminate ambiguity.
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## 1. Casing Conventions
|
|
16
|
+
|
|
17
|
+
### 1.1 Sentence Case vs Title Case
|
|
18
|
+
|
|
19
|
+
| Convention | Rule | Example |
|
|
20
|
+
|----------------|--------------------------------------------|-----------------------|
|
|
21
|
+
| Sentence case | Capitalize only the first word and proper nouns | "Create new project" |
|
|
22
|
+
| Title Case | Capitalize every major word | "Create New Project" |
|
|
23
|
+
| ALL CAPS | Every letter capitalized | "SAVE CHANGES" |
|
|
24
|
+
| lowercase | Every letter lowercase | "save changes" |
|
|
25
|
+
|
|
26
|
+
### 1.2 When to Use Each
|
|
27
|
+
|
|
28
|
+
| Element | Recommended casing | Rationale |
|
|
29
|
+
|----------------------|--------------------|--------------------------------------------|
|
|
30
|
+
| Page titles | Sentence case | Friendlier, easier to read, less ambiguous |
|
|
31
|
+
| Section headings | Sentence case | Consistent with page titles |
|
|
32
|
+
| Button labels | Sentence case | GOV.UK, Microsoft, most SaaS standard |
|
|
33
|
+
| Menu items | Sentence case | Matches button convention |
|
|
34
|
+
| Tab labels | Sentence case | Consistent with navigation |
|
|
35
|
+
| Table column headers | Sentence case | Easier to scan in data-dense views |
|
|
36
|
+
| Form field labels | Sentence case | "Email address" not "Email Address" |
|
|
37
|
+
| Error messages | Sentence case | Natural language, not a heading |
|
|
38
|
+
| Toast / snackbar | Sentence case | Brief messages, not titles |
|
|
39
|
+
| Legal / brand names | As trademarked | "GitHub" not "Github" or "GITHUB" |
|
|
40
|
+
|
|
41
|
+
**Exceptions:**
|
|
42
|
+
- **iOS and macOS** traditionally use Title Case for buttons and menu items (Apple HIG).
|
|
43
|
+
If building a native Apple app, match the platform convention.
|
|
44
|
+
- **Material Design 3** defaults to ALL CAPS for buttons but allows sentence case.
|
|
45
|
+
Many Android apps now prefer sentence case for readability.
|
|
46
|
+
|
|
47
|
+
### 1.3 Title Case Rules (When Required)
|
|
48
|
+
|
|
49
|
+
When title case is required (iOS, formal headings), follow these capitalization rules:
|
|
50
|
+
|
|
51
|
+
**Always capitalize:** First and last word, nouns, verbs, adjectives, adverbs, pronouns.
|
|
52
|
+
|
|
53
|
+
**Never capitalize:** Articles (a, an, the), coordinating conjunctions (and, but, or,
|
|
54
|
+
nor, for, yet, so), short prepositions (in, on, at, to, by, of, up) -- unless they
|
|
55
|
+
are the first or last word.
|
|
56
|
+
|
|
57
|
+
| Do | Don't |
|
|
58
|
+
|-----------------------------|-----------------------------|
|
|
59
|
+
| "Sign In to Your Account" | "Sign in to your account" |
|
|
60
|
+
| "Save as Draft" | "Save As Draft" |
|
|
61
|
+
| "Turn On Notifications" | "Turn on Notifications" |
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## 2. Voice and Tone
|
|
66
|
+
|
|
67
|
+
### 2.1 Active Voice
|
|
68
|
+
|
|
69
|
+
Active voice puts the subject before the action. It is shorter, clearer, and more
|
|
70
|
+
direct.
|
|
71
|
+
|
|
72
|
+
| Passive (avoid) | Active (prefer) |
|
|
73
|
+
|--------------------------------------------|---------------------------------------|
|
|
74
|
+
| "Your password has been changed." | "You changed your password." |
|
|
75
|
+
| "The file was uploaded successfully." | "File uploaded." |
|
|
76
|
+
| "An error was encountered." | "We encountered an error." |
|
|
77
|
+
| "The form must be completed." | "Complete the form." |
|
|
78
|
+
| "Payment will be processed." | "We'll process your payment." |
|
|
79
|
+
|
|
80
|
+
**When passive is acceptable:**
|
|
81
|
+
- When the actor is unknown or irrelevant: "Your account was created on March 1."
|
|
82
|
+
- When the object is more important: "All data will be encrypted."
|
|
83
|
+
- When active voice would blame the user: "Your file was too large" (passive) vs
|
|
84
|
+
"You uploaded a file that was too large" (active, blame-y).
|
|
85
|
+
|
|
86
|
+
### 2.2 Second Person ("You")
|
|
87
|
+
|
|
88
|
+
Address the user as "you." Address the product as "we."
|
|
89
|
+
|
|
90
|
+
| Do | Don't |
|
|
91
|
+
|---------------------------------------|---------------------------------------|
|
|
92
|
+
| "You can export your data." | "Users can export their data." |
|
|
93
|
+
| "We'll send you a confirmation." | "A confirmation will be sent." |
|
|
94
|
+
| "Your changes were saved." | "The user's changes were saved." |
|
|
95
|
+
|
|
96
|
+
**Exception:** Legal text, privacy policies, and terms of service use third person
|
|
97
|
+
("the user," "the customer") for legal precision.
|
|
98
|
+
|
|
99
|
+
### 2.3 Tone Spectrum
|
|
100
|
+
|
|
101
|
+
Tone is not uniform. It shifts based on context.
|
|
102
|
+
|
|
103
|
+
| Context | Tone | Example |
|
|
104
|
+
|------------------------|-----------------------------|-----------------------------------------|
|
|
105
|
+
| Onboarding | Warm, encouraging | "Great start! Let's set up your team." |
|
|
106
|
+
| Normal workflow | Neutral, clear | "Project created." |
|
|
107
|
+
| Success | Positive, brief | "Changes saved." |
|
|
108
|
+
| Warning | Measured, specific | "This action affects 12 team members." |
|
|
109
|
+
| Error | Calm, solution-oriented | "File too large. Maximum size: 25 MB." |
|
|
110
|
+
| Destructive action | Serious, consequence-focused| "This will permanently delete all data."|
|
|
111
|
+
| Security | Direct, no casualness | "Session expired. Sign in again." |
|
|
112
|
+
|
|
113
|
+
**Never use exclamation marks in error or warning messages.** Reserve them for genuine
|
|
114
|
+
celebration: "You're all set!" is fine after onboarding. "Upload failed!" is hostile.
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
## 3. Reading Level
|
|
119
|
+
|
|
120
|
+
### 3.1 Flesch-Kincaid Grade Level
|
|
121
|
+
|
|
122
|
+
The Flesch-Kincaid Grade Level formula estimates the US school grade needed to
|
|
123
|
+
understand a text. Lower is better for UI copy.
|
|
124
|
+
|
|
125
|
+
**Target:** Grade 6-8 (ages 11-13). This is the reading level of most successful
|
|
126
|
+
consumer products (Gmail, Slack, Stripe docs).
|
|
127
|
+
|
|
128
|
+
| Grade level | Equivalent | Example products |
|
|
129
|
+
|-------------|-------------------------------|--------------------------------------|
|
|
130
|
+
| 5-6 | Elementary, very accessible | GOV.UK, NHS digital services |
|
|
131
|
+
| 7-8 | General audience | Slack, Gmail, Stripe, Shopify |
|
|
132
|
+
| 9-10 | Above average | Developer documentation |
|
|
133
|
+
| 11-12 | College level | Legal documents, academic papers |
|
|
134
|
+
| 13+ | Post-graduate | Patent filings, regulatory text |
|
|
135
|
+
|
|
136
|
+
### 3.2 How to Write at Grade 6-8
|
|
137
|
+
|
|
138
|
+
1. **Short sentences.** Average 15-20 words per sentence. Mix short (8 words) and
|
|
139
|
+
medium (25 words). Never exceed 30 words.
|
|
140
|
+
2. **Short paragraphs.** 2-4 sentences per paragraph. One idea per paragraph.
|
|
141
|
+
3. **Common words.** "Use" not "utilize." "Start" not "initiate." "Show" not
|
|
142
|
+
"display." "End" not "terminate."
|
|
143
|
+
4. **One clause per sentence.** Avoid stacking subordinate clauses.
|
|
144
|
+
- Bad: "When you have completed the form, which will be validated automatically,
|
|
145
|
+
click submit, unless you have previously saved a draft."
|
|
146
|
+
- Good: "Complete the form. It validates automatically. Then click Submit."
|
|
147
|
+
5. **Front-load meaning.** Put the most important information at the start of the
|
|
148
|
+
sentence. Users scan; they don't read linearly.
|
|
149
|
+
|
|
150
|
+
### 3.3 Readability Testing
|
|
151
|
+
|
|
152
|
+
**Tools:**
|
|
153
|
+
- [Hemingway Editor](https://hemingwayapp.com) -- Grades text and highlights complex sentences
|
|
154
|
+
- [Readable.com](https://readable.com) -- Multiple readability scores
|
|
155
|
+
- `textstat` Python library -- Automated grade-level scoring in CI
|
|
156
|
+
- Flesch-Kincaid formula: `0.39 * (words/sentences) + 11.8 * (syllables/words) - 15.59`
|
|
157
|
+
|
|
158
|
+
**Integrate into CI:** Run readability checks on user-facing string files. Flag any
|
|
159
|
+
string above grade 10.
|
|
160
|
+
|
|
161
|
+
---
|
|
162
|
+
|
|
163
|
+
## 4. Banned and Restricted Terms
|
|
164
|
+
|
|
165
|
+
### 4.1 Universally Banned
|
|
166
|
+
|
|
167
|
+
These terms are vague, jargon-heavy, or condescending. Replace them.
|
|
168
|
+
|
|
169
|
+
| Banned term | Replacement | Why banned |
|
|
170
|
+
|-------------------|------------------------------|-------------------------------------------|
|
|
171
|
+
| Click here | [Describe the destination] | Meaningless out of context, fails a11y |
|
|
172
|
+
| Please | (remove) | Filler word; commands don't need it |
|
|
173
|
+
| Simply / just | (remove) | Condescending; implies simplicity |
|
|
174
|
+
| Easy / easily | (remove) | What's easy for you isn't easy for others |
|
|
175
|
+
| Obviously | (remove) | If it were obvious, you wouldn't write it |
|
|
176
|
+
| Note that | (remove or restructure) | Filler; lead with the information |
|
|
177
|
+
| In order to | "To" | Three words where one works |
|
|
178
|
+
| Utilize | "Use" | Pretentious; same meaning |
|
|
179
|
+
| Leverage | "Use" | Business jargon |
|
|
180
|
+
| Functionality | "Feature" | Unnecessarily long |
|
|
181
|
+
| Terminate | "End" or "Stop" | Overly formal |
|
|
182
|
+
| Invalid | [State the constraint] | Tells the user nothing specific |
|
|
183
|
+
| Oops / Whoops | (restructure) | Humor in errors is inappropriate |
|
|
184
|
+
|
|
185
|
+
### 4.2 Context-Restricted Terms
|
|
186
|
+
|
|
187
|
+
| Term | Allowed in | Not allowed in |
|
|
188
|
+
|-------------------|------------------------------|------------------------------------------|
|
|
189
|
+
| Abort | Developer tools, CLI output | Consumer UI |
|
|
190
|
+
| Execute | Code execution contexts | General UI ("Run" instead) |
|
|
191
|
+
| Kill / terminate | Process management, DevOps | Consumer-facing actions |
|
|
192
|
+
| Deprecated | Developer documentation | End-user messaging |
|
|
193
|
+
| Payload | API documentation | End-user messaging |
|
|
194
|
+
| Whitelist/blacklist| (never -- use allowlist/blocklist) | All contexts |
|
|
195
|
+
| Master/slave | (never -- use primary/replica) | All contexts |
|
|
196
|
+
| Sanity check | (never -- use confidence check) | All contexts |
|
|
197
|
+
| Grandfathered | (never -- use legacy) | All contexts |
|
|
198
|
+
| Dummy | (never -- use placeholder/sample) | All contexts |
|
|
199
|
+
|
|
200
|
+
---
|
|
201
|
+
|
|
202
|
+
## 5. Abbreviations and Acronyms
|
|
203
|
+
|
|
204
|
+
### 5.1 Rules
|
|
205
|
+
|
|
206
|
+
1. **Spell out on first use, then abbreviate.** "Content Management System (CMS)"
|
|
207
|
+
on first mention, then "CMS" throughout. Exception: universally known acronyms
|
|
208
|
+
(URL, PDF, API) don't need expansion.
|
|
209
|
+
2. **Never abbreviate in error messages.** Errors are stressful; don't add cognitive
|
|
210
|
+
load. "Application Programming Interface error" is wrong too -- say "We couldn't
|
|
211
|
+
connect to the service."
|
|
212
|
+
3. **Use abbreviations consistently.** If you abbreviate "minutes" as "min" in one
|
|
213
|
+
place, never write "mins" or "minutes" in the same context.
|
|
214
|
+
|
|
215
|
+
### 5.2 Common Abbreviation Table
|
|
216
|
+
|
|
217
|
+
| Full form | Abbreviation | When to abbreviate |
|
|
218
|
+
|--------------------|--------------|-------------------------------------------|
|
|
219
|
+
| minutes | min | Timestamps, durations, compact UI |
|
|
220
|
+
| seconds | sec or s | Timers, performance metrics |
|
|
221
|
+
| hours | hr | Durations, scheduling UI |
|
|
222
|
+
| megabytes | MB | Always (universally understood) |
|
|
223
|
+
| gigabytes | GB | Always |
|
|
224
|
+
| approximately | (don't abbr)| Write "about" instead |
|
|
225
|
+
| information | (don't abbr)| Write "info" only in very tight space |
|
|
226
|
+
| application | app | Consumer context; "application" in formal |
|
|
227
|
+
| configuration | config | Developer context only |
|
|
228
|
+
| authentication | auth | Developer/internal context only |
|
|
229
|
+
| administrator | admin | Only after establishing the full form |
|
|
230
|
+
|
|
231
|
+
---
|
|
232
|
+
|
|
233
|
+
## 6. Number Formatting
|
|
234
|
+
|
|
235
|
+
### 6.1 Rules
|
|
236
|
+
|
|
237
|
+
1. **Spell out zero through nine. Use numerals for 10 and above.** "You have three
|
|
238
|
+
tasks" but "You have 12 tasks." Exception: always use numerals in data-dense UI
|
|
239
|
+
(tables, dashboards, metrics).
|
|
240
|
+
2. **Use numerals with units.** "5 MB" not "five MB." "3 minutes" not "three minutes"
|
|
241
|
+
(in compact UI) but "three minutes ago" is fine in conversational copy.
|
|
242
|
+
3. **Use locale-aware separators.** US: 1,234.56. Germany: 1.234,56. India: 1,23,456.
|
|
243
|
+
Never hardcode separators -- use `Intl.NumberFormat` or equivalent.
|
|
244
|
+
4. **Use compact notation for large numbers.** "1.2K followers" not "1,200 followers"
|
|
245
|
+
in compact UI. "1,200 followers" in detailed views.
|
|
246
|
+
5. **Percentages:** Use the numeral with "%" and no space in English: "25%" not
|
|
247
|
+
"25 %" or "twenty-five percent." Some locales require a space before %; delegate
|
|
248
|
+
to the locale formatter.
|
|
249
|
+
6. **Currency:** Always use locale-aware formatting. Never hardcode "$" or position.
|
|
250
|
+
"$5.00" in en-US, "5,00 $" in fr-FR, "5,00 EUR" in de-DE.
|
|
251
|
+
|
|
252
|
+
### 6.2 Ordinals
|
|
253
|
+
|
|
254
|
+
| Language | Pattern | Example | Notes |
|
|
255
|
+
|----------|-----------------|------------------|---------------------------------|
|
|
256
|
+
| English | 1st, 2nd, 3rd | "Your 3rd attempt"| Use sparingly in UI |
|
|
257
|
+
| French | 1er, 2e, 3e | Locale-formatted | Different rules for masculine |
|
|
258
|
+
| German | 1., 2., 3. | "3. Versuch" | Period after numeral |
|
|
259
|
+
|
|
260
|
+
Do not hardcode ordinal suffixes. Use `Intl.PluralRules` with `type: 'ordinal'` or
|
|
261
|
+
equivalent locale-aware formatting.
|
|
262
|
+
|
|
263
|
+
---
|
|
264
|
+
|
|
265
|
+
## 7. Date and Time in Copy
|
|
266
|
+
|
|
267
|
+
### 7.1 Relative vs Absolute
|
|
268
|
+
|
|
269
|
+
| Time distance | Use relative | Use absolute |
|
|
270
|
+
|-----------------|----------------------------|--------------------------------|
|
|
271
|
+
| < 1 minute ago | "Just now" | Never (too precise) |
|
|
272
|
+
| 1-59 minutes | "5 min ago" | Rarely |
|
|
273
|
+
| 1-24 hours | "3 hours ago" | When precision matters |
|
|
274
|
+
| 1-6 days | "Yesterday" or "3 days ago"| Calendar view, scheduling |
|
|
275
|
+
| 7+ days | Rarely | "Mar 7, 2026" (absolute) |
|
|
276
|
+
|
|
277
|
+
### 7.2 Format Rules
|
|
278
|
+
|
|
279
|
+
1. **Abbreviate months in compact UI.** "Jan," "Feb," "Mar" -- not "January." Full
|
|
280
|
+
month names in long-form text.
|
|
281
|
+
2. **Never use ambiguous date formats.** "03/07/2026" means March 7 in the US and
|
|
282
|
+
July 3 in Europe. Use "Mar 7, 2026" or locale-aware formatting.
|
|
283
|
+
3. **Use 12-hour format in US English, 24-hour elsewhere.** "3:30 PM" (en-US) vs
|
|
284
|
+
"15:30" (most of Europe). Locale-aware formatters handle this.
|
|
285
|
+
4. **Time zones:** Display time zones when the audience spans zones. Use the user's
|
|
286
|
+
local time by default. "3:30 PM EST" for cross-timezone communication.
|
|
287
|
+
5. **Duration:** Use "3 hr 45 min" in compact UI. "3 hours and 45 minutes" in
|
|
288
|
+
conversational copy. Never "3:45:00" unless it's a technical timestamp.
|
|
289
|
+
|
|
290
|
+
### 7.3 Common Patterns
|
|
291
|
+
|
|
292
|
+
```
|
|
293
|
+
"Last edited 5 min ago"
|
|
294
|
+
"Created Mar 7, 2026"
|
|
295
|
+
"Due tomorrow at 3:00 PM"
|
|
296
|
+
"Updated yesterday"
|
|
297
|
+
"Renews on Apr 1, 2026"
|
|
298
|
+
"Event starts in 2 days"
|
|
299
|
+
```
|
|
300
|
+
|
|
301
|
+
---
|
|
302
|
+
|
|
303
|
+
## 8. Inclusive Language
|
|
304
|
+
|
|
305
|
+
### 8.1 Principles
|
|
306
|
+
|
|
307
|
+
Inclusive language ensures that no user feels excluded, othered, or diminished by the
|
|
308
|
+
product's text. It is not political correctness -- it is precision. Exclusive language
|
|
309
|
+
is imprecise language.
|
|
310
|
+
|
|
311
|
+
### 8.2 Gender
|
|
312
|
+
|
|
313
|
+
1. **Default to "they/them" for unknown individuals.** "When a user signs in, they
|
|
314
|
+
see their dashboard."
|
|
315
|
+
2. **Use role titles, not gendered titles.** "Chairperson" not "chairman."
|
|
316
|
+
"Salesperson" not "salesman." "Flight attendant" not "stewardess."
|
|
317
|
+
3. **Avoid "guys" as a universal address.** Use "everyone," "team," "folks," or
|
|
318
|
+
"all."
|
|
319
|
+
4. **Do not assume binary gender.** If collecting gender, include "Non-binary,"
|
|
320
|
+
"Prefer not to say," or a free-text option.
|
|
321
|
+
|
|
322
|
+
### 8.3 Ability
|
|
323
|
+
|
|
324
|
+
1. **Don't use disability as metaphor.** "Blind to the issues," "crippled the system,"
|
|
325
|
+
"deaf to feedback" -- replace with specific language: "unaware of the issues,"
|
|
326
|
+
"severely limited the system," "ignored feedback."
|
|
327
|
+
2. **Don't describe tasks as "easy."** What is easy for one user may be impossible for
|
|
328
|
+
another due to ability, context, or familiarity.
|
|
329
|
+
3. **Use person-first or identity-first language as the community prefers.** "Person
|
|
330
|
+
with a disability" (person-first) or "disabled person" (identity-first) -- follow
|
|
331
|
+
the preference of the community you're addressing.
|
|
332
|
+
|
|
333
|
+
### 8.4 Culture and Geography
|
|
334
|
+
|
|
335
|
+
1. **Don't assume US-centric conventions.** Date formats, measurement units, holiday
|
|
336
|
+
references, and examples should be localizable. "Thanksgiving" is meaningless in
|
|
337
|
+
most of the world.
|
|
338
|
+
2. **Avoid idioms that don't translate.** "Hit a home run," "knock it out of the park,"
|
|
339
|
+
"ballpark figure" -- these are culturally specific. Use "succeed," "exceed
|
|
340
|
+
expectations," "rough estimate."
|
|
341
|
+
3. **Don't use "foreign" to mean "international."** "Foreign" implies otherness.
|
|
342
|
+
|
|
343
|
+
### 8.5 Banned Metaphors (Engineering Context)
|
|
344
|
+
|
|
345
|
+
These terms have been widely replaced in the industry:
|
|
346
|
+
|
|
347
|
+
| Old term | Replacement | Rationale |
|
|
348
|
+
|------------------|------------------------|---------------------------------------|
|
|
349
|
+
| Whitelist | Allowlist | Avoid racial connotation |
|
|
350
|
+
| Blacklist | Blocklist / Denylist | Avoid racial connotation |
|
|
351
|
+
| Master / Slave | Primary / Replica | Avoid slavery reference |
|
|
352
|
+
| Master branch | Main branch | Industry standard since 2020 |
|
|
353
|
+
| Sanity check | Confidence check | Avoid ableist connotation |
|
|
354
|
+
| Dummy value | Placeholder / Sample | Avoid ableist connotation |
|
|
355
|
+
| Grandfathered | Legacy / Exempt | Avoid reference to discriminatory laws|
|
|
356
|
+
| Native feature | Built-in feature | Avoid colonial connotation |
|
|
357
|
+
| Man-in-the-middle| On-path attack | Gender-neutral |
|
|
358
|
+
|
|
359
|
+
---
|
|
360
|
+
|
|
361
|
+
## 9. Common Mistakes in AI-Generated Editorial Content
|
|
362
|
+
|
|
363
|
+
### 9.1 Inconsistent Casing
|
|
364
|
+
|
|
365
|
+
**The problem:** AI generates "Sign In" in one component, "sign in" in another, and
|
|
366
|
+
"SIGN IN" in a third. Without a casing rule, every generation is a coin flip.
|
|
367
|
+
|
|
368
|
+
**How to fix:** Define casing rules per element type (see Section 1.2). Enforce via
|
|
369
|
+
linting rules on string files.
|
|
370
|
+
|
|
371
|
+
### 9.2 Passive Voice Overuse
|
|
372
|
+
|
|
373
|
+
**The problem:** AI defaults to passive constructions: "Your file has been uploaded,"
|
|
374
|
+
"The action was completed," "An error was encountered." These are longer and less
|
|
375
|
+
direct than active equivalents.
|
|
376
|
+
|
|
377
|
+
**How to fix:** Prompt for active voice. Review every "was," "has been," "will be"
|
|
378
|
+
construction. Rewrite: "File uploaded," "Action complete," "We hit an error."
|
|
379
|
+
|
|
380
|
+
### 9.3 Reading Level Inflation
|
|
381
|
+
|
|
382
|
+
**The problem:** AI generates text at grade 11-14 reading level: "The authentication
|
|
383
|
+
mechanism has been configured to facilitate seamless integration with your
|
|
384
|
+
organizational identity provider."
|
|
385
|
+
|
|
386
|
+
**How to fix:** Run readability scoring. Rewrite: "Sign-in is set up to work with your
|
|
387
|
+
company's identity provider."
|
|
388
|
+
|
|
389
|
+
### 9.4 Filler Words
|
|
390
|
+
|
|
391
|
+
**The problem:** AI pads text with "please note that," "it is important to," "in order
|
|
392
|
+
to," "simply," "just." These add length without meaning.
|
|
393
|
+
|
|
394
|
+
**How to fix:** Delete every "please," "simply," "just," "in order to," "note that"
|
|
395
|
+
and read the sentence again. If the meaning is preserved, the word was filler.
|
|
396
|
+
|
|
397
|
+
---
|
|
398
|
+
|
|
399
|
+
## 10. Quick Reference Checklist
|
|
400
|
+
|
|
401
|
+
### Casing
|
|
402
|
+
- [ ] **Sentence case for all UI elements** (unless platform requires Title Case)
|
|
403
|
+
- [ ] **No ALL CAPS except Material Design buttons** (if following M3 defaults)
|
|
404
|
+
- [ ] **Proper nouns and brand names match official casing**
|
|
405
|
+
|
|
406
|
+
### Voice
|
|
407
|
+
- [ ] **Active voice by default** (passive only when actor is unknown or blame is an issue)
|
|
408
|
+
- [ ] **Second person for addressing the user** ("You" not "the user")
|
|
409
|
+
- [ ] **"We" for the product** ("We'll send you a confirmation")
|
|
410
|
+
|
|
411
|
+
### Reading Level
|
|
412
|
+
- [ ] **Target grade 6-8 Flesch-Kincaid**
|
|
413
|
+
- [ ] **Average sentence length 15-20 words**
|
|
414
|
+
- [ ] **No sentences longer than 30 words**
|
|
415
|
+
- [ ] **Common words** ("use" not "utilize")
|
|
416
|
+
|
|
417
|
+
### Formatting
|
|
418
|
+
- [ ] **Spell out 0-9, numerals for 10+** (exception: data-dense UI uses all numerals)
|
|
419
|
+
- [ ] **Locale-aware number, date, and currency formatting**
|
|
420
|
+
- [ ] **No ambiguous date formats** ("Mar 7" not "03/07")
|
|
421
|
+
- [ ] **Relative time for recent events** ("5 min ago")
|
|
422
|
+
|
|
423
|
+
### Inclusivity
|
|
424
|
+
- [ ] **"They/them" for unknown individuals**
|
|
425
|
+
- [ ] **No disability metaphors**
|
|
426
|
+
- [ ] **No culturally-specific idioms in translatable text**
|
|
427
|
+
- [ ] **Allowlist/blocklist, primary/replica** (no legacy exclusionary terms)
|
|
428
|
+
|
|
429
|
+
### Terms
|
|
430
|
+
- [ ] **Banned terms eliminated** (see Section 4)
|
|
431
|
+
- [ ] **Abbreviations spelled out on first use**
|
|
432
|
+
- [ ] **No jargon in consumer-facing copy**
|
|
433
|
+
- [ ] **Consistent term usage across the product** (one term per concept)
|
|
434
|
+
|
|
435
|
+
---
|
|
436
|
+
|
|
437
|
+
**Sources:**
|
|
438
|
+
|
|
439
|
+
- [AP Stylebook](https://www.apstylebook.com)
|
|
440
|
+
- [Chicago Manual of Style](https://www.chicagomanualofstyle.org)
|
|
441
|
+
- [Microsoft Writing Style Guide](https://learn.microsoft.com/en-us/style-guide/welcome/)
|
|
442
|
+
- [Google Developer Documentation Style Guide](https://developers.google.com/style)
|
|
443
|
+
- [GOV.UK Content Design -- Style Guide](https://www.gov.uk/guidance/style-guide)
|
|
444
|
+
- [Mailchimp Content Style Guide](https://styleguide.mailchimp.com)
|
|
445
|
+
- [Conscious Style Guide](https://consciousstyleguide.com)
|
|
446
|
+
- [Hemingway Editor](https://hemingwayapp.com)
|
|
447
|
+
- [Readability Formulas -- Flesch-Kincaid](https://readabilityformulas.com/flesch-grade-level-readability-formula/)
|
|
448
|
+
- [IETF -- Terminology, Power, and Exclusionary Language](https://www.rfc-editor.org/rfc/rfc8718)
|
|
449
|
+
- [Google -- Writing Inclusive Documentation](https://developers.google.com/style/inclusive-documentation)
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# Directory Purpose
|
|
2
|
+
|
|
3
|
+
The `foundations` directory establishes the core content principles required to write clear, consistent, and localizable user-facing text.
|
|
4
|
+
|
|
5
|
+
# Key Concepts
|
|
6
|
+
|
|
7
|
+
- UX writing craft and microcopy patterns
|
|
8
|
+
- Dynamic string architecture for localization
|
|
9
|
+
- Editorial voice, grammar, and style governance
|
|
10
|
+
- Terminology management and glossary lifecycle
|
|
11
|
+
|
|
12
|
+
# File Map
|
|
13
|
+
|
|
14
|
+
- `microcopy.md` -- UX writing principles: button labels, error messages, tooltips, empty states, CTAs, placeholders, confirmation dialogs, and platform constraints
|
|
15
|
+
- `content-modeling.md` -- Dynamic string architecture: ICU MessageFormat authoring, pluralization, gender-aware strings, variable interpolation, truncation strategies, and conditional content
|
|
16
|
+
- `editorial-standards.md` -- Editorial governance: casing conventions, reading level, banned terms, number formatting, active voice, and inclusive language
|
|
17
|
+
- `terminology-governance.md` -- Glossary management: term disambiguation, canonical terms, cross-locale alignment, conflict resolution, and term lifecycle
|
|
18
|
+
|
|
19
|
+
# Reading Guide
|
|
20
|
+
|
|
21
|
+
If writing any UI text for the first time -> start with `microcopy.md`
|
|
22
|
+
If strings contain variables, counts, or conditional logic -> read `content-modeling.md`
|
|
23
|
+
If establishing style rules or auditing existing copy -> read `editorial-standards.md`
|
|
24
|
+
If resolving terminology conflicts or building a glossary -> read `terminology-governance.md`
|