@wazir-dev/cli 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (629) hide show
  1. package/AGENTS.md +111 -0
  2. package/CHANGELOG.md +14 -0
  3. package/CONTRIBUTING.md +101 -0
  4. package/LICENSE +21 -0
  5. package/README.md +314 -0
  6. package/assets/composition-engine.mmd +34 -0
  7. package/assets/demo-script.sh +17 -0
  8. package/assets/logo-dark.svg +14 -0
  9. package/assets/logo.svg +14 -0
  10. package/assets/pipeline.mmd +39 -0
  11. package/assets/record-demo.sh +51 -0
  12. package/docs/README.md +51 -0
  13. package/docs/adapters/context-mode.md +60 -0
  14. package/docs/concepts/architecture.md +87 -0
  15. package/docs/concepts/artifact-model.md +60 -0
  16. package/docs/concepts/composition-engine.md +36 -0
  17. package/docs/concepts/indexing-and-recall.md +160 -0
  18. package/docs/concepts/observability.md +41 -0
  19. package/docs/concepts/roles-and-workflows.md +59 -0
  20. package/docs/concepts/terminology-policy.md +27 -0
  21. package/docs/getting-started/01-installation.md +78 -0
  22. package/docs/getting-started/02-first-run.md +102 -0
  23. package/docs/getting-started/03-adding-to-project.md +15 -0
  24. package/docs/getting-started/04-host-setup.md +15 -0
  25. package/docs/guides/ci-integration.md +15 -0
  26. package/docs/guides/creating-skills.md +15 -0
  27. package/docs/guides/expertise-module-authoring.md +15 -0
  28. package/docs/guides/hook-development.md +15 -0
  29. package/docs/guides/memory-and-learnings.md +34 -0
  30. package/docs/guides/multi-host-export.md +15 -0
  31. package/docs/guides/troubleshooting.md +101 -0
  32. package/docs/guides/writing-custom-roles.md +15 -0
  33. package/docs/plans/2026-03-15-cli-pipeline-integration-design.md +592 -0
  34. package/docs/plans/2026-03-15-cli-pipeline-integration-plan.md +598 -0
  35. package/docs/plans/2026-03-15-docs-enforcement-plan.md +238 -0
  36. package/docs/readmes/INDEX.md +99 -0
  37. package/docs/readmes/features/expertise/README.md +171 -0
  38. package/docs/readmes/features/exports/README.md +222 -0
  39. package/docs/readmes/features/hooks/README.md +103 -0
  40. package/docs/readmes/features/hooks/loop-cap-guard.md +133 -0
  41. package/docs/readmes/features/hooks/post-tool-capture.md +121 -0
  42. package/docs/readmes/features/hooks/post-tool-lint.md +130 -0
  43. package/docs/readmes/features/hooks/pre-compact-summary.md +122 -0
  44. package/docs/readmes/features/hooks/pre-tool-capture-route.md +100 -0
  45. package/docs/readmes/features/hooks/protected-path-write-guard.md +128 -0
  46. package/docs/readmes/features/hooks/session-start.md +119 -0
  47. package/docs/readmes/features/hooks/stop-handoff-harvest.md +125 -0
  48. package/docs/readmes/features/roles/README.md +157 -0
  49. package/docs/readmes/features/roles/clarifier.md +152 -0
  50. package/docs/readmes/features/roles/content-author.md +190 -0
  51. package/docs/readmes/features/roles/designer.md +193 -0
  52. package/docs/readmes/features/roles/executor.md +184 -0
  53. package/docs/readmes/features/roles/learner.md +210 -0
  54. package/docs/readmes/features/roles/planner.md +182 -0
  55. package/docs/readmes/features/roles/researcher.md +164 -0
  56. package/docs/readmes/features/roles/reviewer.md +184 -0
  57. package/docs/readmes/features/roles/specifier.md +162 -0
  58. package/docs/readmes/features/roles/verifier.md +215 -0
  59. package/docs/readmes/features/schemas/README.md +178 -0
  60. package/docs/readmes/features/skills/README.md +63 -0
  61. package/docs/readmes/features/skills/brainstorming.md +96 -0
  62. package/docs/readmes/features/skills/debugging.md +148 -0
  63. package/docs/readmes/features/skills/design.md +120 -0
  64. package/docs/readmes/features/skills/prepare-next.md +109 -0
  65. package/docs/readmes/features/skills/run-audit.md +159 -0
  66. package/docs/readmes/features/skills/scan-project.md +109 -0
  67. package/docs/readmes/features/skills/self-audit.md +176 -0
  68. package/docs/readmes/features/skills/tdd.md +137 -0
  69. package/docs/readmes/features/skills/using-skills.md +92 -0
  70. package/docs/readmes/features/skills/verification.md +120 -0
  71. package/docs/readmes/features/skills/writing-plans.md +104 -0
  72. package/docs/readmes/features/tooling/README.md +320 -0
  73. package/docs/readmes/features/workflows/README.md +186 -0
  74. package/docs/readmes/features/workflows/author.md +181 -0
  75. package/docs/readmes/features/workflows/clarify.md +154 -0
  76. package/docs/readmes/features/workflows/design-review.md +171 -0
  77. package/docs/readmes/features/workflows/design.md +169 -0
  78. package/docs/readmes/features/workflows/discover.md +162 -0
  79. package/docs/readmes/features/workflows/execute.md +173 -0
  80. package/docs/readmes/features/workflows/learn.md +167 -0
  81. package/docs/readmes/features/workflows/plan-review.md +165 -0
  82. package/docs/readmes/features/workflows/plan.md +170 -0
  83. package/docs/readmes/features/workflows/prepare-next.md +167 -0
  84. package/docs/readmes/features/workflows/review.md +169 -0
  85. package/docs/readmes/features/workflows/run-audit.md +191 -0
  86. package/docs/readmes/features/workflows/spec-challenge.md +159 -0
  87. package/docs/readmes/features/workflows/specify.md +160 -0
  88. package/docs/readmes/features/workflows/verify.md +177 -0
  89. package/docs/readmes/packages/README.md +50 -0
  90. package/docs/readmes/packages/ajv.md +117 -0
  91. package/docs/readmes/packages/context-mode.md +118 -0
  92. package/docs/readmes/packages/gray-matter.md +116 -0
  93. package/docs/readmes/packages/node-test.md +137 -0
  94. package/docs/readmes/packages/yaml.md +112 -0
  95. package/docs/reference/configuration-reference.md +159 -0
  96. package/docs/reference/expertise-index.md +52 -0
  97. package/docs/reference/git-flow.md +43 -0
  98. package/docs/reference/hooks.md +87 -0
  99. package/docs/reference/host-exports.md +50 -0
  100. package/docs/reference/launch-checklist.md +172 -0
  101. package/docs/reference/marketplace-listings.md +76 -0
  102. package/docs/reference/release-process.md +34 -0
  103. package/docs/reference/roles-reference.md +77 -0
  104. package/docs/reference/skills.md +33 -0
  105. package/docs/reference/templates.md +29 -0
  106. package/docs/reference/tooling-cli.md +94 -0
  107. package/docs/truth-claims.yaml +222 -0
  108. package/expertise/PROGRESS.md +63 -0
  109. package/expertise/README.md +18 -0
  110. package/expertise/antipatterns/PROGRESS.md +56 -0
  111. package/expertise/antipatterns/backend/api-design-antipatterns.md +1271 -0
  112. package/expertise/antipatterns/backend/auth-antipatterns.md +1195 -0
  113. package/expertise/antipatterns/backend/caching-antipatterns.md +622 -0
  114. package/expertise/antipatterns/backend/database-antipatterns.md +1038 -0
  115. package/expertise/antipatterns/backend/index.md +24 -0
  116. package/expertise/antipatterns/backend/microservices-antipatterns.md +850 -0
  117. package/expertise/antipatterns/code/architecture-antipatterns.md +919 -0
  118. package/expertise/antipatterns/code/async-antipatterns.md +622 -0
  119. package/expertise/antipatterns/code/code-smells.md +1186 -0
  120. package/expertise/antipatterns/code/dependency-antipatterns.md +1209 -0
  121. package/expertise/antipatterns/code/error-handling-antipatterns.md +1360 -0
  122. package/expertise/antipatterns/code/index.md +27 -0
  123. package/expertise/antipatterns/code/naming-and-abstraction.md +1118 -0
  124. package/expertise/antipatterns/code/state-management-antipatterns.md +1076 -0
  125. package/expertise/antipatterns/code/testing-antipatterns.md +1053 -0
  126. package/expertise/antipatterns/design/accessibility-antipatterns.md +1136 -0
  127. package/expertise/antipatterns/design/dark-patterns.md +1121 -0
  128. package/expertise/antipatterns/design/index.md +22 -0
  129. package/expertise/antipatterns/design/ui-antipatterns.md +1202 -0
  130. package/expertise/antipatterns/design/ux-antipatterns.md +680 -0
  131. package/expertise/antipatterns/frontend/css-layout-antipatterns.md +691 -0
  132. package/expertise/antipatterns/frontend/flutter-antipatterns.md +1827 -0
  133. package/expertise/antipatterns/frontend/index.md +23 -0
  134. package/expertise/antipatterns/frontend/mobile-antipatterns.md +573 -0
  135. package/expertise/antipatterns/frontend/react-antipatterns.md +1128 -0
  136. package/expertise/antipatterns/frontend/spa-antipatterns.md +1235 -0
  137. package/expertise/antipatterns/index.md +31 -0
  138. package/expertise/antipatterns/performance/index.md +20 -0
  139. package/expertise/antipatterns/performance/performance-antipatterns.md +1013 -0
  140. package/expertise/antipatterns/performance/premature-optimization.md +623 -0
  141. package/expertise/antipatterns/performance/scaling-antipatterns.md +785 -0
  142. package/expertise/antipatterns/process/ai-coding-antipatterns.md +853 -0
  143. package/expertise/antipatterns/process/code-review-antipatterns.md +656 -0
  144. package/expertise/antipatterns/process/deployment-antipatterns.md +920 -0
  145. package/expertise/antipatterns/process/index.md +23 -0
  146. package/expertise/antipatterns/process/technical-debt-antipatterns.md +647 -0
  147. package/expertise/antipatterns/security/index.md +20 -0
  148. package/expertise/antipatterns/security/secrets-antipatterns.md +849 -0
  149. package/expertise/antipatterns/security/security-theater.md +843 -0
  150. package/expertise/antipatterns/security/vulnerability-patterns.md +801 -0
  151. package/expertise/architecture/PROGRESS.md +70 -0
  152. package/expertise/architecture/data/caching-architecture.md +671 -0
  153. package/expertise/architecture/data/data-consistency.md +574 -0
  154. package/expertise/architecture/data/data-modeling.md +536 -0
  155. package/expertise/architecture/data/event-streams-and-queues.md +634 -0
  156. package/expertise/architecture/data/index.md +25 -0
  157. package/expertise/architecture/data/search-architecture.md +663 -0
  158. package/expertise/architecture/data/sql-vs-nosql.md +708 -0
  159. package/expertise/architecture/decisions/architecture-decision-records.md +640 -0
  160. package/expertise/architecture/decisions/build-vs-buy.md +616 -0
  161. package/expertise/architecture/decisions/index.md +23 -0
  162. package/expertise/architecture/decisions/monolith-to-microservices.md +790 -0
  163. package/expertise/architecture/decisions/technology-selection.md +616 -0
  164. package/expertise/architecture/distributed/cap-theorem-and-tradeoffs.md +800 -0
  165. package/expertise/architecture/distributed/circuit-breaker-bulkhead.md +741 -0
  166. package/expertise/architecture/distributed/consensus-and-coordination.md +796 -0
  167. package/expertise/architecture/distributed/distributed-systems-fundamentals.md +564 -0
  168. package/expertise/architecture/distributed/idempotency-and-retry.md +796 -0
  169. package/expertise/architecture/distributed/index.md +25 -0
  170. package/expertise/architecture/distributed/saga-pattern.md +797 -0
  171. package/expertise/architecture/foundations/architectural-thinking.md +460 -0
  172. package/expertise/architecture/foundations/coupling-and-cohesion.md +770 -0
  173. package/expertise/architecture/foundations/design-principles-solid.md +649 -0
  174. package/expertise/architecture/foundations/domain-driven-design.md +719 -0
  175. package/expertise/architecture/foundations/index.md +25 -0
  176. package/expertise/architecture/foundations/separation-of-concerns.md +472 -0
  177. package/expertise/architecture/foundations/twelve-factor-app.md +797 -0
  178. package/expertise/architecture/index.md +34 -0
  179. package/expertise/architecture/integration/api-design-graphql.md +638 -0
  180. package/expertise/architecture/integration/api-design-grpc.md +804 -0
  181. package/expertise/architecture/integration/api-design-rest.md +892 -0
  182. package/expertise/architecture/integration/index.md +25 -0
  183. package/expertise/architecture/integration/third-party-integration.md +795 -0
  184. package/expertise/architecture/integration/webhooks-and-callbacks.md +1152 -0
  185. package/expertise/architecture/integration/websockets-realtime.md +791 -0
  186. package/expertise/architecture/mobile-architecture/index.md +22 -0
  187. package/expertise/architecture/mobile-architecture/mobile-app-architecture.md +780 -0
  188. package/expertise/architecture/mobile-architecture/mobile-backend-for-frontend.md +670 -0
  189. package/expertise/architecture/mobile-architecture/offline-first.md +719 -0
  190. package/expertise/architecture/mobile-architecture/push-and-sync.md +782 -0
  191. package/expertise/architecture/patterns/cqrs-event-sourcing.md +717 -0
  192. package/expertise/architecture/patterns/event-driven.md +797 -0
  193. package/expertise/architecture/patterns/hexagonal-clean-architecture.md +870 -0
  194. package/expertise/architecture/patterns/index.md +27 -0
  195. package/expertise/architecture/patterns/layered-architecture.md +736 -0
  196. package/expertise/architecture/patterns/microservices.md +753 -0
  197. package/expertise/architecture/patterns/modular-monolith.md +692 -0
  198. package/expertise/architecture/patterns/monolith.md +626 -0
  199. package/expertise/architecture/patterns/plugin-architecture.md +735 -0
  200. package/expertise/architecture/patterns/serverless.md +780 -0
  201. package/expertise/architecture/scaling/database-scaling.md +615 -0
  202. package/expertise/architecture/scaling/feature-flags-and-rollouts.md +757 -0
  203. package/expertise/architecture/scaling/horizontal-vs-vertical.md +606 -0
  204. package/expertise/architecture/scaling/index.md +24 -0
  205. package/expertise/architecture/scaling/multi-tenancy.md +800 -0
  206. package/expertise/architecture/scaling/stateless-design.md +787 -0
  207. package/expertise/backend/embedded-firmware.md +625 -0
  208. package/expertise/backend/go.md +853 -0
  209. package/expertise/backend/index.md +24 -0
  210. package/expertise/backend/java-spring.md +448 -0
  211. package/expertise/backend/node-typescript.md +625 -0
  212. package/expertise/backend/python-fastapi.md +724 -0
  213. package/expertise/backend/rust.md +458 -0
  214. package/expertise/backend/solidity.md +711 -0
  215. package/expertise/composition-map.yaml +443 -0
  216. package/expertise/content/foundations/content-modeling.md +395 -0
  217. package/expertise/content/foundations/editorial-standards.md +449 -0
  218. package/expertise/content/foundations/index.md +24 -0
  219. package/expertise/content/foundations/microcopy.md +455 -0
  220. package/expertise/content/foundations/terminology-governance.md +509 -0
  221. package/expertise/content/index.md +34 -0
  222. package/expertise/content/patterns/accessibility-copy.md +518 -0
  223. package/expertise/content/patterns/index.md +24 -0
  224. package/expertise/content/patterns/notification-content.md +433 -0
  225. package/expertise/content/patterns/sample-content.md +486 -0
  226. package/expertise/content/patterns/state-copy.md +439 -0
  227. package/expertise/design/PROGRESS.md +58 -0
  228. package/expertise/design/disciplines/dark-mode-theming.md +577 -0
  229. package/expertise/design/disciplines/design-systems.md +595 -0
  230. package/expertise/design/disciplines/index.md +25 -0
  231. package/expertise/design/disciplines/information-architecture.md +800 -0
  232. package/expertise/design/disciplines/interaction-design.md +788 -0
  233. package/expertise/design/disciplines/responsive-design.md +552 -0
  234. package/expertise/design/disciplines/usability-testing.md +516 -0
  235. package/expertise/design/disciplines/user-research.md +792 -0
  236. package/expertise/design/foundations/accessibility-design.md +796 -0
  237. package/expertise/design/foundations/color-theory.md +797 -0
  238. package/expertise/design/foundations/iconography.md +795 -0
  239. package/expertise/design/foundations/index.md +26 -0
  240. package/expertise/design/foundations/motion-and-animation.md +653 -0
  241. package/expertise/design/foundations/rtl-design.md +585 -0
  242. package/expertise/design/foundations/spacing-and-layout.md +607 -0
  243. package/expertise/design/foundations/typography.md +800 -0
  244. package/expertise/design/foundations/visual-hierarchy.md +761 -0
  245. package/expertise/design/index.md +32 -0
  246. package/expertise/design/patterns/authentication-flows.md +474 -0
  247. package/expertise/design/patterns/content-consumption.md +789 -0
  248. package/expertise/design/patterns/data-display.md +618 -0
  249. package/expertise/design/patterns/e-commerce.md +1494 -0
  250. package/expertise/design/patterns/feedback-and-states.md +642 -0
  251. package/expertise/design/patterns/forms-and-input.md +819 -0
  252. package/expertise/design/patterns/gamification.md +801 -0
  253. package/expertise/design/patterns/index.md +31 -0
  254. package/expertise/design/patterns/microinteractions.md +449 -0
  255. package/expertise/design/patterns/navigation.md +800 -0
  256. package/expertise/design/patterns/notifications.md +705 -0
  257. package/expertise/design/patterns/onboarding.md +700 -0
  258. package/expertise/design/patterns/search-and-filter.md +601 -0
  259. package/expertise/design/patterns/settings-and-preferences.md +768 -0
  260. package/expertise/design/patterns/social-and-community.md +748 -0
  261. package/expertise/design/platforms/desktop-native.md +612 -0
  262. package/expertise/design/platforms/index.md +25 -0
  263. package/expertise/design/platforms/mobile-android.md +825 -0
  264. package/expertise/design/platforms/mobile-cross-platform.md +983 -0
  265. package/expertise/design/platforms/mobile-ios.md +699 -0
  266. package/expertise/design/platforms/tablet.md +794 -0
  267. package/expertise/design/platforms/web-dashboard.md +790 -0
  268. package/expertise/design/platforms/web-responsive.md +550 -0
  269. package/expertise/design/psychology/behavioral-nudges.md +449 -0
  270. package/expertise/design/psychology/cognitive-load.md +1191 -0
  271. package/expertise/design/psychology/error-psychology.md +778 -0
  272. package/expertise/design/psychology/index.md +22 -0
  273. package/expertise/design/psychology/persuasive-design.md +736 -0
  274. package/expertise/design/psychology/user-mental-models.md +623 -0
  275. package/expertise/design/tooling/open-pencil.md +266 -0
  276. package/expertise/frontend/angular.md +1073 -0
  277. package/expertise/frontend/desktop-electron.md +546 -0
  278. package/expertise/frontend/flutter.md +782 -0
  279. package/expertise/frontend/index.md +27 -0
  280. package/expertise/frontend/native-android.md +409 -0
  281. package/expertise/frontend/native-ios.md +490 -0
  282. package/expertise/frontend/react-native.md +1160 -0
  283. package/expertise/frontend/react.md +808 -0
  284. package/expertise/frontend/vue.md +1089 -0
  285. package/expertise/humanize/domain-rules-code.md +79 -0
  286. package/expertise/humanize/domain-rules-content.md +67 -0
  287. package/expertise/humanize/domain-rules-technical-docs.md +56 -0
  288. package/expertise/humanize/index.md +35 -0
  289. package/expertise/humanize/self-audit-checklist.md +87 -0
  290. package/expertise/humanize/sentence-patterns.md +218 -0
  291. package/expertise/humanize/vocabulary-blacklist.md +105 -0
  292. package/expertise/i18n/PROGRESS.md +65 -0
  293. package/expertise/i18n/advanced/accessibility-and-i18n.md +28 -0
  294. package/expertise/i18n/advanced/bidirectional-text-algorithm.md +38 -0
  295. package/expertise/i18n/advanced/complex-scripts.md +30 -0
  296. package/expertise/i18n/advanced/performance-and-i18n.md +27 -0
  297. package/expertise/i18n/advanced/testing-i18n.md +28 -0
  298. package/expertise/i18n/content/content-adaptation.md +23 -0
  299. package/expertise/i18n/content/locale-specific-formatting.md +23 -0
  300. package/expertise/i18n/content/machine-translation-integration.md +28 -0
  301. package/expertise/i18n/content/translation-management.md +29 -0
  302. package/expertise/i18n/foundations/date-time-calendars.md +67 -0
  303. package/expertise/i18n/foundations/i18n-architecture.md +272 -0
  304. package/expertise/i18n/foundations/locale-and-language-tags.md +79 -0
  305. package/expertise/i18n/foundations/numbers-currency-units.md +61 -0
  306. package/expertise/i18n/foundations/pluralization-and-gender.md +109 -0
  307. package/expertise/i18n/foundations/string-externalization.md +236 -0
  308. package/expertise/i18n/foundations/text-direction-bidi.md +241 -0
  309. package/expertise/i18n/foundations/unicode-and-encoding.md +86 -0
  310. package/expertise/i18n/index.md +38 -0
  311. package/expertise/i18n/platform/backend-i18n.md +31 -0
  312. package/expertise/i18n/platform/flutter-i18n.md +148 -0
  313. package/expertise/i18n/platform/native-android-i18n.md +36 -0
  314. package/expertise/i18n/platform/native-ios-i18n.md +36 -0
  315. package/expertise/i18n/platform/react-i18n.md +103 -0
  316. package/expertise/i18n/platform/web-css-i18n.md +81 -0
  317. package/expertise/i18n/rtl/arabic-specific.md +175 -0
  318. package/expertise/i18n/rtl/hebrew-specific.md +149 -0
  319. package/expertise/i18n/rtl/rtl-animations-and-transitions.md +111 -0
  320. package/expertise/i18n/rtl/rtl-forms-and-input.md +161 -0
  321. package/expertise/i18n/rtl/rtl-fundamentals.md +211 -0
  322. package/expertise/i18n/rtl/rtl-icons-and-images.md +181 -0
  323. package/expertise/i18n/rtl/rtl-layout-mirroring.md +252 -0
  324. package/expertise/i18n/rtl/rtl-navigation-and-gestures.md +107 -0
  325. package/expertise/i18n/rtl/rtl-testing-and-qa.md +147 -0
  326. package/expertise/i18n/rtl/rtl-typography.md +160 -0
  327. package/expertise/index.md +113 -0
  328. package/expertise/index.yaml +216 -0
  329. package/expertise/infrastructure/cloud-aws.md +597 -0
  330. package/expertise/infrastructure/cloud-gcp.md +599 -0
  331. package/expertise/infrastructure/cybersecurity.md +816 -0
  332. package/expertise/infrastructure/database-mongodb.md +447 -0
  333. package/expertise/infrastructure/database-postgres.md +400 -0
  334. package/expertise/infrastructure/devops-cicd.md +787 -0
  335. package/expertise/infrastructure/index.md +27 -0
  336. package/expertise/performance/PROGRESS.md +50 -0
  337. package/expertise/performance/backend/api-latency.md +1204 -0
  338. package/expertise/performance/backend/background-jobs.md +506 -0
  339. package/expertise/performance/backend/connection-pooling.md +1209 -0
  340. package/expertise/performance/backend/database-query-optimization.md +515 -0
  341. package/expertise/performance/backend/index.md +23 -0
  342. package/expertise/performance/backend/rate-limiting-and-throttling.md +971 -0
  343. package/expertise/performance/foundations/algorithmic-complexity.md +954 -0
  344. package/expertise/performance/foundations/caching-strategies.md +489 -0
  345. package/expertise/performance/foundations/concurrency-and-parallelism.md +847 -0
  346. package/expertise/performance/foundations/index.md +24 -0
  347. package/expertise/performance/foundations/measuring-and-profiling.md +440 -0
  348. package/expertise/performance/foundations/memory-management.md +964 -0
  349. package/expertise/performance/foundations/performance-budgets.md +1314 -0
  350. package/expertise/performance/index.md +31 -0
  351. package/expertise/performance/infrastructure/auto-scaling.md +1059 -0
  352. package/expertise/performance/infrastructure/cdn-and-edge.md +1081 -0
  353. package/expertise/performance/infrastructure/index.md +22 -0
  354. package/expertise/performance/infrastructure/load-balancing.md +1081 -0
  355. package/expertise/performance/infrastructure/observability.md +1079 -0
  356. package/expertise/performance/mobile/index.md +23 -0
  357. package/expertise/performance/mobile/mobile-animations.md +544 -0
  358. package/expertise/performance/mobile/mobile-memory-battery.md +416 -0
  359. package/expertise/performance/mobile/mobile-network.md +452 -0
  360. package/expertise/performance/mobile/mobile-rendering.md +599 -0
  361. package/expertise/performance/mobile/mobile-startup-time.md +505 -0
  362. package/expertise/performance/platform-specific/flutter-performance.md +647 -0
  363. package/expertise/performance/platform-specific/index.md +22 -0
  364. package/expertise/performance/platform-specific/node-performance.md +1307 -0
  365. package/expertise/performance/platform-specific/postgres-performance.md +1366 -0
  366. package/expertise/performance/platform-specific/react-performance.md +1403 -0
  367. package/expertise/performance/web/bundle-optimization.md +1239 -0
  368. package/expertise/performance/web/image-and-media.md +636 -0
  369. package/expertise/performance/web/index.md +24 -0
  370. package/expertise/performance/web/network-optimization.md +1133 -0
  371. package/expertise/performance/web/rendering-performance.md +1098 -0
  372. package/expertise/performance/web/ssr-and-hydration.md +918 -0
  373. package/expertise/performance/web/web-vitals.md +1374 -0
  374. package/expertise/quality/accessibility.md +985 -0
  375. package/expertise/quality/evidence-based-verification.md +499 -0
  376. package/expertise/quality/index.md +24 -0
  377. package/expertise/quality/ml-model-audit.md +614 -0
  378. package/expertise/quality/performance.md +600 -0
  379. package/expertise/quality/testing-api.md +891 -0
  380. package/expertise/quality/testing-mobile.md +496 -0
  381. package/expertise/quality/testing-web.md +849 -0
  382. package/expertise/security/PROGRESS.md +54 -0
  383. package/expertise/security/agentic-identity.md +540 -0
  384. package/expertise/security/compliance-frameworks.md +601 -0
  385. package/expertise/security/data/data-encryption.md +364 -0
  386. package/expertise/security/data/data-privacy-gdpr.md +692 -0
  387. package/expertise/security/data/database-security.md +1171 -0
  388. package/expertise/security/data/index.md +22 -0
  389. package/expertise/security/data/pii-handling.md +531 -0
  390. package/expertise/security/foundations/authentication.md +1041 -0
  391. package/expertise/security/foundations/authorization.md +603 -0
  392. package/expertise/security/foundations/cryptography.md +1001 -0
  393. package/expertise/security/foundations/index.md +25 -0
  394. package/expertise/security/foundations/owasp-top-10.md +1354 -0
  395. package/expertise/security/foundations/secrets-management.md +1217 -0
  396. package/expertise/security/foundations/secure-sdlc.md +700 -0
  397. package/expertise/security/foundations/supply-chain-security.md +698 -0
  398. package/expertise/security/index.md +31 -0
  399. package/expertise/security/infrastructure/cloud-security-aws.md +1296 -0
  400. package/expertise/security/infrastructure/cloud-security-gcp.md +1376 -0
  401. package/expertise/security/infrastructure/container-security.md +721 -0
  402. package/expertise/security/infrastructure/incident-response.md +1295 -0
  403. package/expertise/security/infrastructure/index.md +24 -0
  404. package/expertise/security/infrastructure/logging-and-monitoring.md +1618 -0
  405. package/expertise/security/infrastructure/network-security.md +1337 -0
  406. package/expertise/security/mobile/index.md +23 -0
  407. package/expertise/security/mobile/mobile-android-security.md +1218 -0
  408. package/expertise/security/mobile/mobile-binary-protection.md +1229 -0
  409. package/expertise/security/mobile/mobile-data-storage.md +1265 -0
  410. package/expertise/security/mobile/mobile-ios-security.md +1401 -0
  411. package/expertise/security/mobile/mobile-network-security.md +1520 -0
  412. package/expertise/security/smart-contract-security.md +594 -0
  413. package/expertise/security/testing/index.md +22 -0
  414. package/expertise/security/testing/penetration-testing.md +1258 -0
  415. package/expertise/security/testing/security-code-review.md +1765 -0
  416. package/expertise/security/testing/threat-modeling.md +1074 -0
  417. package/expertise/security/testing/vulnerability-scanning.md +1062 -0
  418. package/expertise/security/web/api-security.md +586 -0
  419. package/expertise/security/web/cors-and-headers.md +433 -0
  420. package/expertise/security/web/csrf.md +562 -0
  421. package/expertise/security/web/file-upload.md +1477 -0
  422. package/expertise/security/web/index.md +25 -0
  423. package/expertise/security/web/injection.md +1375 -0
  424. package/expertise/security/web/session-management.md +1101 -0
  425. package/expertise/security/web/xss.md +1158 -0
  426. package/exports/README.md +17 -0
  427. package/exports/hosts/claude/.claude/agents/clarifier.md +42 -0
  428. package/exports/hosts/claude/.claude/agents/content-author.md +63 -0
  429. package/exports/hosts/claude/.claude/agents/designer.md +55 -0
  430. package/exports/hosts/claude/.claude/agents/executor.md +55 -0
  431. package/exports/hosts/claude/.claude/agents/learner.md +51 -0
  432. package/exports/hosts/claude/.claude/agents/planner.md +53 -0
  433. package/exports/hosts/claude/.claude/agents/researcher.md +43 -0
  434. package/exports/hosts/claude/.claude/agents/reviewer.md +54 -0
  435. package/exports/hosts/claude/.claude/agents/specifier.md +47 -0
  436. package/exports/hosts/claude/.claude/agents/verifier.md +71 -0
  437. package/exports/hosts/claude/.claude/commands/author.md +42 -0
  438. package/exports/hosts/claude/.claude/commands/clarify.md +38 -0
  439. package/exports/hosts/claude/.claude/commands/design-review.md +46 -0
  440. package/exports/hosts/claude/.claude/commands/design.md +44 -0
  441. package/exports/hosts/claude/.claude/commands/discover.md +37 -0
  442. package/exports/hosts/claude/.claude/commands/execute.md +48 -0
  443. package/exports/hosts/claude/.claude/commands/learn.md +38 -0
  444. package/exports/hosts/claude/.claude/commands/plan-review.md +42 -0
  445. package/exports/hosts/claude/.claude/commands/plan.md +39 -0
  446. package/exports/hosts/claude/.claude/commands/prepare-next.md +37 -0
  447. package/exports/hosts/claude/.claude/commands/review.md +40 -0
  448. package/exports/hosts/claude/.claude/commands/run-audit.md +41 -0
  449. package/exports/hosts/claude/.claude/commands/spec-challenge.md +41 -0
  450. package/exports/hosts/claude/.claude/commands/specify.md +38 -0
  451. package/exports/hosts/claude/.claude/commands/verify.md +37 -0
  452. package/exports/hosts/claude/.claude/settings.json +34 -0
  453. package/exports/hosts/claude/CLAUDE.md +19 -0
  454. package/exports/hosts/claude/export.manifest.json +38 -0
  455. package/exports/hosts/claude/host-package.json +67 -0
  456. package/exports/hosts/codex/AGENTS.md +19 -0
  457. package/exports/hosts/codex/export.manifest.json +38 -0
  458. package/exports/hosts/codex/host-package.json +41 -0
  459. package/exports/hosts/cursor/.cursor/hooks.json +16 -0
  460. package/exports/hosts/cursor/.cursor/rules/wazir-core.mdc +19 -0
  461. package/exports/hosts/cursor/export.manifest.json +38 -0
  462. package/exports/hosts/cursor/host-package.json +42 -0
  463. package/exports/hosts/gemini/GEMINI.md +19 -0
  464. package/exports/hosts/gemini/export.manifest.json +38 -0
  465. package/exports/hosts/gemini/host-package.json +41 -0
  466. package/hooks/README.md +18 -0
  467. package/hooks/definitions/loop_cap_guard.yaml +21 -0
  468. package/hooks/definitions/post_tool_capture.yaml +24 -0
  469. package/hooks/definitions/pre_compact_summary.yaml +19 -0
  470. package/hooks/definitions/pre_tool_capture_route.yaml +19 -0
  471. package/hooks/definitions/protected_path_write_guard.yaml +19 -0
  472. package/hooks/definitions/session_start.yaml +19 -0
  473. package/hooks/definitions/stop_handoff_harvest.yaml +20 -0
  474. package/hooks/loop-cap-guard +17 -0
  475. package/hooks/post-tool-lint +36 -0
  476. package/hooks/protected-path-write-guard +17 -0
  477. package/hooks/session-start +41 -0
  478. package/llms-full.txt +2355 -0
  479. package/llms.txt +43 -0
  480. package/package.json +79 -0
  481. package/roles/README.md +20 -0
  482. package/roles/clarifier.md +42 -0
  483. package/roles/content-author.md +63 -0
  484. package/roles/designer.md +55 -0
  485. package/roles/executor.md +55 -0
  486. package/roles/learner.md +51 -0
  487. package/roles/planner.md +53 -0
  488. package/roles/researcher.md +43 -0
  489. package/roles/reviewer.md +54 -0
  490. package/roles/specifier.md +47 -0
  491. package/roles/verifier.md +71 -0
  492. package/schemas/README.md +24 -0
  493. package/schemas/accepted-learning.schema.json +20 -0
  494. package/schemas/author-artifact.schema.json +156 -0
  495. package/schemas/clarification.schema.json +19 -0
  496. package/schemas/design-artifact.schema.json +80 -0
  497. package/schemas/docs-claim.schema.json +18 -0
  498. package/schemas/export-manifest.schema.json +20 -0
  499. package/schemas/hook.schema.json +67 -0
  500. package/schemas/host-export-package.schema.json +18 -0
  501. package/schemas/implementation-plan.schema.json +19 -0
  502. package/schemas/proposed-learning.schema.json +19 -0
  503. package/schemas/research.schema.json +18 -0
  504. package/schemas/review.schema.json +29 -0
  505. package/schemas/run-manifest.schema.json +18 -0
  506. package/schemas/spec-challenge.schema.json +18 -0
  507. package/schemas/spec.schema.json +20 -0
  508. package/schemas/usage.schema.json +102 -0
  509. package/schemas/verification-proof.schema.json +29 -0
  510. package/schemas/wazir-manifest.schema.json +173 -0
  511. package/skills/README.md +40 -0
  512. package/skills/brainstorming/SKILL.md +77 -0
  513. package/skills/debugging/SKILL.md +50 -0
  514. package/skills/design/SKILL.md +61 -0
  515. package/skills/dispatching-parallel-agents/SKILL.md +128 -0
  516. package/skills/executing-plans/SKILL.md +70 -0
  517. package/skills/finishing-a-development-branch/SKILL.md +169 -0
  518. package/skills/humanize/SKILL.md +123 -0
  519. package/skills/init-pipeline/SKILL.md +124 -0
  520. package/skills/prepare-next/SKILL.md +20 -0
  521. package/skills/receiving-code-review/SKILL.md +123 -0
  522. package/skills/requesting-code-review/SKILL.md +105 -0
  523. package/skills/requesting-code-review/code-reviewer.md +108 -0
  524. package/skills/run-audit/SKILL.md +197 -0
  525. package/skills/scan-project/SKILL.md +41 -0
  526. package/skills/self-audit/SKILL.md +153 -0
  527. package/skills/subagent-driven-development/SKILL.md +154 -0
  528. package/skills/subagent-driven-development/code-quality-reviewer-prompt.md +26 -0
  529. package/skills/subagent-driven-development/implementer-prompt.md +102 -0
  530. package/skills/subagent-driven-development/spec-reviewer-prompt.md +61 -0
  531. package/skills/tdd/SKILL.md +23 -0
  532. package/skills/using-git-worktrees/SKILL.md +163 -0
  533. package/skills/using-skills/SKILL.md +95 -0
  534. package/skills/verification/SKILL.md +22 -0
  535. package/skills/wazir/SKILL.md +463 -0
  536. package/skills/writing-plans/SKILL.md +30 -0
  537. package/skills/writing-skills/SKILL.md +157 -0
  538. package/skills/writing-skills/anthropic-best-practices.md +122 -0
  539. package/skills/writing-skills/persuasion-principles.md +50 -0
  540. package/templates/README.md +20 -0
  541. package/templates/artifacts/README.md +10 -0
  542. package/templates/artifacts/accepted-learning.md +19 -0
  543. package/templates/artifacts/accepted-learning.template.json +12 -0
  544. package/templates/artifacts/author.md +74 -0
  545. package/templates/artifacts/author.template.json +19 -0
  546. package/templates/artifacts/clarification.md +21 -0
  547. package/templates/artifacts/clarification.template.json +12 -0
  548. package/templates/artifacts/execute-notes.md +19 -0
  549. package/templates/artifacts/implementation-plan.md +21 -0
  550. package/templates/artifacts/implementation-plan.template.json +11 -0
  551. package/templates/artifacts/learning-proposal.md +19 -0
  552. package/templates/artifacts/next-run-handoff.md +21 -0
  553. package/templates/artifacts/plan-review.md +19 -0
  554. package/templates/artifacts/proposed-learning.template.json +12 -0
  555. package/templates/artifacts/research.md +21 -0
  556. package/templates/artifacts/research.template.json +12 -0
  557. package/templates/artifacts/review-findings.md +19 -0
  558. package/templates/artifacts/review.template.json +11 -0
  559. package/templates/artifacts/run-manifest.template.json +8 -0
  560. package/templates/artifacts/spec-challenge.md +19 -0
  561. package/templates/artifacts/spec-challenge.template.json +11 -0
  562. package/templates/artifacts/spec.md +21 -0
  563. package/templates/artifacts/spec.template.json +12 -0
  564. package/templates/artifacts/verification-proof.md +19 -0
  565. package/templates/artifacts/verification-proof.template.json +11 -0
  566. package/templates/examples/accepted-learning.example.json +14 -0
  567. package/templates/examples/author.example.json +152 -0
  568. package/templates/examples/clarification.example.json +15 -0
  569. package/templates/examples/docs-claim.example.json +8 -0
  570. package/templates/examples/export-manifest.example.json +7 -0
  571. package/templates/examples/host-export-package.example.json +11 -0
  572. package/templates/examples/implementation-plan.example.json +17 -0
  573. package/templates/examples/proposed-learning.example.json +13 -0
  574. package/templates/examples/research.example.json +15 -0
  575. package/templates/examples/research.example.md +6 -0
  576. package/templates/examples/review.example.json +17 -0
  577. package/templates/examples/run-manifest.example.json +9 -0
  578. package/templates/examples/spec-challenge.example.json +14 -0
  579. package/templates/examples/spec.example.json +21 -0
  580. package/templates/examples/verification-proof.example.json +21 -0
  581. package/templates/examples/wazir-manifest.example.yaml +65 -0
  582. package/templates/task-definition-schema.md +99 -0
  583. package/tooling/README.md +20 -0
  584. package/tooling/src/adapters/context-mode.js +50 -0
  585. package/tooling/src/capture/command.js +376 -0
  586. package/tooling/src/capture/store.js +99 -0
  587. package/tooling/src/capture/usage.js +270 -0
  588. package/tooling/src/checks/branches.js +50 -0
  589. package/tooling/src/checks/brand-truth.js +110 -0
  590. package/tooling/src/checks/changelog.js +231 -0
  591. package/tooling/src/checks/command-registry.js +36 -0
  592. package/tooling/src/checks/commits.js +102 -0
  593. package/tooling/src/checks/docs-drift.js +103 -0
  594. package/tooling/src/checks/docs-truth.js +201 -0
  595. package/tooling/src/checks/runtime-surface.js +156 -0
  596. package/tooling/src/cli.js +116 -0
  597. package/tooling/src/command-options.js +56 -0
  598. package/tooling/src/commands/validate.js +320 -0
  599. package/tooling/src/doctor/command.js +91 -0
  600. package/tooling/src/export/command.js +77 -0
  601. package/tooling/src/export/compiler.js +498 -0
  602. package/tooling/src/guards/loop-cap-guard.js +52 -0
  603. package/tooling/src/guards/protected-path-write-guard.js +67 -0
  604. package/tooling/src/index/command.js +152 -0
  605. package/tooling/src/index/storage.js +1061 -0
  606. package/tooling/src/index/summarizers.js +261 -0
  607. package/tooling/src/loaders.js +18 -0
  608. package/tooling/src/project-root.js +22 -0
  609. package/tooling/src/recall/command.js +225 -0
  610. package/tooling/src/schema-validator.js +30 -0
  611. package/tooling/src/state-root.js +40 -0
  612. package/tooling/src/status/command.js +71 -0
  613. package/wazir.manifest.yaml +135 -0
  614. package/workflows/README.md +19 -0
  615. package/workflows/author.md +42 -0
  616. package/workflows/clarify.md +38 -0
  617. package/workflows/design-review.md +46 -0
  618. package/workflows/design.md +44 -0
  619. package/workflows/discover.md +37 -0
  620. package/workflows/execute.md +48 -0
  621. package/workflows/learn.md +38 -0
  622. package/workflows/plan-review.md +42 -0
  623. package/workflows/plan.md +39 -0
  624. package/workflows/prepare-next.md +37 -0
  625. package/workflows/review.md +40 -0
  626. package/workflows/run-audit.md +41 -0
  627. package/workflows/spec-challenge.md +41 -0
  628. package/workflows/specify.md +38 -0
  629. package/workflows/verify.md +37 -0
@@ -0,0 +1,449 @@
1
+ # Behavioral Nudges — Expertise Module
2
+
3
+ > Behavioral nudges are subtle design interventions that guide users toward beneficial actions without restricting choice. This module covers cognitive load reduction, smart defaults, ADHD-friendly interfaces, motivation scaffolding, time-boxing UX, opt-out completion, and ethical notification design — with implementation-level code patterns. Theory lives in `persuasive-design.md` and `cognitive-load.md`.
4
+
5
+ ---
6
+
7
+ ## 1. Theoretical Foundations
8
+
9
+ **Thaler & Sunstein — Nudge (2008).** Richard Thaler (Nobel Prize in Economics, 2017) demonstrated that choice architecture — how options are presented — shapes decisions more than the options themselves. Designers who control the choice environment have an ethical obligation to nudge toward outcomes that benefit the user, not the business.
10
+
11
+ **BJ Fogg — Behavior Model (B=MAP).** Behavior occurs when Motivation, Ability, and Prompt converge simultaneously. If users are not taking an action, diagnose which component is missing before adding more prompts.
12
+
13
+ | Component | Low | High |
14
+ |-----------|-----|------|
15
+ | Motivation | User does not care about the outcome | User urgently wants the outcome |
16
+ | Ability | Task requires 15 steps and expert knowledge | Task requires 1 tap |
17
+ | Prompt | No visible trigger; user must remember | Clear, timely, contextual cue |
18
+
19
+ **Kahneman — Thinking, Fast and Slow (2011).** System 1 (fast, automatic) handles most interface interactions. System 2 (slow, deliberate) activates for complex decisions. Nudges work because they target System 1. When a nudge requires System 2 processing, it becomes a demand, not a nudge.
20
+
21
+ **Nir Eyal — Hooked (2014).** The Hook Model (Trigger > Action > Variable Reward > Investment) explains habit formation. Duolingo exemplifies this at scale: 300M+ users, 80% of revenue from free users nudged to premium via ethical retention mechanics.
22
+
23
+ **Google Material Design Accessibility.** ADHD-friendly interface guidelines: reduce visual clutter, minimize decisions per screen, provide persistent external memory (visible state), and support micro-task completion. These principles benefit all users under cognitive load.
24
+
25
+ ---
26
+
27
+ ## 2. Cognitive Load Reduction
28
+
29
+ Show the right thing at the right time. Hide everything else behind progressive disclosure.
30
+
31
+ ### 2.1 Hick's Law in Practice
32
+
33
+ Decision time increases logarithmically with options. Showing 50 tasks on login is paralyzing — show 1 actionable item.
34
+
35
+ ```typescript
36
+ // Progressive task list — show next action, not entire backlog
37
+ function getNextAction(tasks: Task[]): Task | null {
38
+ const inProgress = tasks.find(t => t.status === 'in_progress');
39
+ if (inProgress) return inProgress;
40
+
41
+ const highest = tasks
42
+ .filter(t => t.status === 'pending')
43
+ .sort((a, b) => b.priority - a.priority)[0];
44
+ return highest ?? null;
45
+ }
46
+ ```
47
+
48
+ ### 2.2 Chunking and Grouping
49
+
50
+ Target 3-5 items per visible group. Beyond 5, the group needs subgroups or progressive disclosure.
51
+
52
+ ```typescript
53
+ function chunkByCategory<T extends { category: string }>(
54
+ items: T[],
55
+ visiblePerChunk: number = 5,
56
+ ): { label: string; items: T[]; hasMore: boolean; totalCount: number }[] {
57
+ const grouped = Map.groupBy(items, (item) => item.category);
58
+ return Array.from(grouped.entries()).map(([label, group]) => ({
59
+ label,
60
+ items: group.slice(0, visiblePerChunk),
61
+ hasMore: group.length > visiblePerChunk,
62
+ totalCount: group.length,
63
+ }));
64
+ }
65
+ ```
66
+
67
+ ### 2.3 Progressive Loading
68
+
69
+ Prefer infinite scroll with progress indication over pagination. Pagination forces a decision ("which page?"). Always show a position indicator — "Showing 15 of 47" — so users retain spatial awareness.
70
+
71
+ ### 2.4 Collapsible Sections
72
+
73
+ Expand the most recently interacted section. Collapse everything else. Persist expanded state in local preferences across sessions.
74
+
75
+ ```typescript
76
+ function getDefaultExpandedSections(
77
+ sections: string[],
78
+ recentActivity: { sectionId: string; timestamp: number }[],
79
+ ): Set<string> {
80
+ if (recentActivity.length === 0) return new Set(sections.slice(0, 1));
81
+ const sorted = [...recentActivity].sort((a, b) => b.timestamp - a.timestamp);
82
+ return new Set([sorted[0].sectionId]);
83
+ }
84
+ ```
85
+
86
+ ---
87
+
88
+ ## 3. Default Bias
89
+
90
+ Defaults are the most powerful nudge. 70-90% of users never change default settings — default selection is an ethical act.
91
+
92
+ ### 3.1 Principles
93
+
94
+ - Pre-fill forms with the most common correct value (not the most profitable one)
95
+ - Highlight recommended options visually, but never pre-select consent-sensitive choices
96
+ - Use user history as the default when available ("Last time you chose Express Shipping")
97
+
98
+ ### 3.2 Ethical Framework
99
+
100
+ | Pattern | When Ethical | When Dark Pattern |
101
+ |---------|-------------|-------------------|
102
+ | Pre-selected checkbox | Newsletter toggle in account settings | Hidden consent in purchase flow |
103
+ | Recommended option | Plan comparison with clear labeling | Bundled upsells disguised as features |
104
+ | Auto-enrollment | Security features (2FA, backup) | Paid subscriptions, recurring charges |
105
+ | Pre-filled quantity | "1" in e-commerce cart | "3" to inflate order value |
106
+ | Default sort order | Most relevant to user query | Most profitable for business |
107
+
108
+ ### 3.3 Implementation
109
+
110
+ ```typescript
111
+ interface DefaultConfig<T> {
112
+ value: T;
113
+ source: 'user_history' | 'most_common' | 'safest' | 'system';
114
+ overridable: boolean;
115
+ requiresExplicitConsent: boolean;
116
+ }
117
+
118
+ function resolveDefault<T>(
119
+ userHistory: T | undefined,
120
+ safest: T,
121
+ ): DefaultConfig<T> {
122
+ if (userHistory !== undefined) {
123
+ return { value: userHistory, source: 'user_history', overridable: true, requiresExplicitConsent: false };
124
+ }
125
+ return { value: safest, source: 'safest', overridable: true, requiresExplicitConsent: false };
126
+ }
127
+ ```
128
+
129
+ When user history is absent, prefer the safest default over the most common. Safety protects the user; convenience optimizes for speed. When they conflict, safety wins.
130
+
131
+ ---
132
+
133
+ ## 4. ADHD-Friendly Patterns
134
+
135
+ These patterns benefit all users but are essential for the estimated 5-8% of adults with ADHD. Core challenges: sustained attention difficulty, executive function deficits, and working memory limitations.
136
+
137
+ ### 4.1 Micro-Sprints
138
+
139
+ Break work into 5-10-15 minute blocks. Never suggest an initial block longer than 15 minutes — activation energy for "work for an hour" is dramatically higher than "just 5 minutes."
140
+
141
+ ```typescript
142
+ interface MicroSprint {
143
+ taskId: string;
144
+ durationMinutes: 5 | 10 | 15;
145
+ breakMinutes: 2 | 5;
146
+ completedSprints: number;
147
+ streak: number;
148
+ }
149
+
150
+ function generateNudge(sprint: MicroSprint): string {
151
+ if (sprint.completedSprints === 0) return "Just 5 minutes. Ready?";
152
+ if (sprint.completedSprints === 1) return "One done! Keep going?";
153
+ if (sprint.streak >= 3) return `${sprint.streak}-sprint streak! Take a break?`;
154
+ return `${sprint.completedSprints} done. Another round?`;
155
+ }
156
+ ```
157
+
158
+ Design rationale: initial prompt uses shortest duration; post-first celebrates before asking for more; at 3+ consecutive sprints, suggest a break to prevent hyperfocus burnout.
159
+
160
+ ### 4.2 Momentum Building (Small Wins Chain)
161
+
162
+ Order tasks so the first completable item takes under 2 minutes. Completion generates dopamine and reduces perceived weight of remaining tasks.
163
+
164
+ ```typescript
165
+ function sortForMomentum(tasks: Task[]): Task[] {
166
+ return [...tasks].sort((a, b) => {
167
+ const aQuick = (a.estimatedMinutes ?? Infinity) <= 2 ? 0 : 1;
168
+ const bQuick = (b.estimatedMinutes ?? Infinity) <= 2 ? 0 : 1;
169
+ if (aQuick !== bQuick) return aQuick - bQuick;
170
+ return b.priority - a.priority;
171
+ });
172
+ }
173
+ ```
174
+
175
+ ### 4.3 External Working Memory
176
+
177
+ Never rely on the user remembering where they left off — show them:
178
+ - Always display current task context (what am I working on?)
179
+ - Show breadcrumb trails (how did I get here?)
180
+ - Persist draft state automatically (what was I typing?)
181
+ - Surface recent items prominently (what did I do last?)
182
+
183
+ ### 4.4 Reducing Context-Switching Costs
184
+
185
+ Every interruption costs 15-25 minutes of refocus time (Gloria Mark, UC Irvine). Design for deep work:
186
+ - "Focus mode" suppressing non-critical notifications
187
+ - Deferred notification queue delivering at natural break points
188
+ - Single-task views hiding navigation during active work
189
+ - Re-entry summaries after breaks ("You were editing Section 3, paragraph 2")
190
+
191
+ ---
192
+
193
+ ## 5. Motivation Scaffolding
194
+
195
+ Motivation is a design variable, not a personality trait. Build it through environmental cues.
196
+
197
+ ### 5.1 Progress Bars
198
+
199
+ Always show progress >0%. An empty bar feels hopeless. The "endowed progress effect" (Nunes & Dreze, 2006) increases completion rates by 15-20%.
200
+
201
+ ```typescript
202
+ function calculateDisplayProgress(completed: number, total: number): number {
203
+ return Math.min(Math.max(completed / total, 0.05), 1.0);
204
+ }
205
+ ```
206
+
207
+ ```css
208
+ .progress-bar {
209
+ transition: width 0.6s cubic-bezier(0.22, 1, 0.36, 1);
210
+ min-width: 5%;
211
+ }
212
+ .progress-bar[data-complete="true"] {
213
+ animation: celebrate 0.8s ease-out;
214
+ }
215
+ @keyframes celebrate {
216
+ 0%, 100% { transform: scaleX(1); }
217
+ 50% { transform: scaleX(1.02); }
218
+ }
219
+ ```
220
+
221
+ ### 5.2 Streak Counters with Grace Periods
222
+
223
+ Losing a streak causes permanent churn. Always include a grace period — at minimum, 1 missed day without breaking the streak.
224
+
225
+ ```typescript
226
+ interface StreakState {
227
+ currentStreak: number;
228
+ longestStreak: number;
229
+ lastActivityDate: string; // ISO date
230
+ gracePeriodUsed: boolean;
231
+ }
232
+
233
+ function updateStreak(state: StreakState, today: string): StreakState {
234
+ const daysDiff = Math.floor(
235
+ (new Date(today).getTime() - new Date(state.lastActivityDate).getTime()) / 86_400_000,
236
+ );
237
+
238
+ if (daysDiff <= 1) {
239
+ const newStreak = daysDiff === 0 ? state.currentStreak : state.currentStreak + 1;
240
+ return { currentStreak: newStreak, longestStreak: Math.max(state.longestStreak, newStreak), lastActivityDate: today, gracePeriodUsed: false };
241
+ }
242
+ if (daysDiff === 2 && !state.gracePeriodUsed) {
243
+ const newStreak = state.currentStreak + 1;
244
+ return { currentStreak: newStreak, longestStreak: Math.max(state.longestStreak, newStreak), lastActivityDate: today, gracePeriodUsed: true };
245
+ }
246
+ return { currentStreak: 1, longestStreak: state.longestStreak, lastActivityDate: today, gracePeriodUsed: false };
247
+ }
248
+ ```
249
+
250
+ ### 5.3 Celebration Moments
251
+
252
+ Deploy animations at milestones only — first task completed, streak milestones (7, 30, 100 days), level-ups, project completions. Overuse causes celebration fatigue.
253
+
254
+ ### 5.4 Social Proof
255
+
256
+ "3 teammates completed this today" motivates more than "1,000 users completed this." Proximity amplifies social proof. Use the closest reference group: team > department > company > all users.
257
+
258
+ ### 5.5 Variable Reward Schedules
259
+
260
+ Unexpected positive feedback activates dopamine more strongly than predictable rewards. Schedule at random intervals (~1 in 5-7 eligible interactions, max 1 per session). Optimize for task completion, not time-in-app.
261
+
262
+ ---
263
+
264
+ ## 6. Time-Boxing UX
265
+
266
+ Time-boxing transforms open-ended work into bounded sprints. The constraint reduces anxiety and increases output.
267
+
268
+ ### 6.1 Pomodoro Integration
269
+
270
+ ```typescript
271
+ interface TimeBox {
272
+ taskId: string;
273
+ workMinutes: number;
274
+ breakMinutes: number;
275
+ startedAt: number;
276
+ state: 'working' | 'break' | 'paused' | 'complete';
277
+ }
278
+
279
+ function getTimeRemaining(box: TimeBox, now: number): number {
280
+ const elapsed = (now - box.startedAt) / 60_000;
281
+ const duration = box.state === 'break' ? box.breakMinutes : box.workMinutes;
282
+ return Math.max(duration - elapsed, 0);
283
+ }
284
+ ```
285
+
286
+ Support standard Pomodoro (25/5) with customization. Starting a timer should be as easy as starting the task.
287
+
288
+ ### 6.2 Deadline-Aware Interfaces
289
+
290
+ Gentle urgency, not panic. Color-code by proximity: green (>3 days), amber (1-3 days), red (<1 day). Never use countdown timers for deadlines unless the user explicitly opted in.
291
+
292
+ ### 6.3 Time Estimates
293
+
294
+ Display estimated time on every task. Reduces planning anxiety and enables matching tasks to available time slots.
295
+
296
+ ### 6.4 Quick-Win Sorting
297
+
298
+ Sort by estimated duration ascending. Users who are stuck often have motivation but cannot find a starting point.
299
+
300
+ ---
301
+
302
+ ## 7. Opt-Out Completion
303
+
304
+ The moment a flow feels coercive, trust evaporates. Design every multi-step process with exits.
305
+
306
+ - **"Save and finish later" always visible** — a styled button, not a hidden link
307
+ - **No countdown pressure** unless user explicitly opted in
308
+ - **Graceful degradation** — auto-save partial state; resume exactly where the user left off
309
+ - **Exit surveys: 1 question max**, never blocking, "Skip" as the most prominent option
310
+ - **No guilt language** — never "Are you sure?" or "You'll lose your progress!" Instead: "Your progress is saved. Come back anytime."
311
+
312
+ ```html
313
+ <div class="flow-footer">
314
+ <button class="btn-primary" type="submit">Continue</button>
315
+ <button class="btn-secondary" type="button" data-action="save-and-exit">
316
+ Save and finish later
317
+ </button>
318
+ </div>
319
+
320
+ <dialog class="exit-dialog">
321
+ <p>Your progress is saved. You can pick up right where you left off.</p>
322
+ <button class="btn-primary" data-action="leave">Leave</button>
323
+ <button class="btn-ghost" data-action="stay">Keep working</button>
324
+ </dialog>
325
+ ```
326
+
327
+ ### 7.1 Partial State Persistence
328
+
329
+ ```typescript
330
+ interface PartialFlowState {
331
+ flowId: string;
332
+ currentStep: number;
333
+ totalSteps: number;
334
+ data: Record<string, unknown>;
335
+ savedAt: number;
336
+ }
337
+
338
+ function resumeOrStart(flowId: string, totalSteps: number): PartialFlowState {
339
+ const saved = localStorage.getItem(`flow_state_${flowId}`);
340
+ if (saved) {
341
+ const parsed: PartialFlowState = JSON.parse(saved);
342
+ const thirtyDays = 30 * 24 * 60 * 60 * 1000;
343
+ if (Date.now() - parsed.savedAt < thirtyDays) return parsed;
344
+ }
345
+ return { flowId, currentStep: 0, totalSteps, data: {}, savedAt: Date.now() };
346
+ }
347
+ ```
348
+
349
+ ---
350
+
351
+ ## 8. Notification Design
352
+
353
+ A notification that does not lead to an immediate, valuable action is not a nudge — it is an interruption.
354
+
355
+ ### 8.1 Batch Over Individual
356
+
357
+ Batch non-urgent notifications into daily or weekly digests. Individual pings for non-urgent events cause fatigue.
358
+
359
+ ### 8.2 Actionable Only
360
+
361
+ | Notification Type | Actionable? | Verdict |
362
+ |-------------------|-------------|---------|
363
+ | "Task assigned to you" | Yes — open task | Send |
364
+ | "You haven't logged in for 3 days" | No — guilt trip | Do not send |
365
+ | "Your report is ready" | Yes — download | Send |
366
+ | "Just checking in!" | No — no action | Do not send |
367
+ | "3 tasks due tomorrow" | Yes — review tasks | Send |
368
+ | "Someone liked your post" | Marginal | Batch into digest |
369
+
370
+ ### 8.3 User-Controlled Frequency
371
+
372
+ Per-category toggles, not just global on/off. Default to the least intrusive channel (in-app badge, not push).
373
+
374
+ ### 8.4 Smart Timing
375
+
376
+ Never send during focus hours. Infer quiet hours from usage patterns when not explicitly set.
377
+
378
+ ```typescript
379
+ function shouldSendNow(
380
+ quietStart: number, quietEnd: number, currentHour: number,
381
+ ): boolean {
382
+ if (quietStart < quietEnd) {
383
+ return currentHour < quietStart || currentHour >= quietEnd;
384
+ }
385
+ // Wraps midnight (e.g., 22:00-07:00)
386
+ return currentHour >= quietEnd && currentHour < quietStart;
387
+ }
388
+ ```
389
+
390
+ ---
391
+
392
+ ## 9. Anti-Patterns
393
+
394
+ These patterns masquerade as nudges but violate user autonomy or cause psychological harm.
395
+
396
+ **9.1 Overwhelming Task Dumps.** Showing the entire backlog on login. Users cannot process 50 items — they process 0 and close the app.
397
+
398
+ **9.2 Guilt-Driven Notifications.** "You haven't logged in for 3 days!" weaponizes absence. Instead, on return: "Welcome back. Here's where you left off."
399
+
400
+ **9.3 Infinite Scroll Without Progress.** Without a position indicator ("30 of 120"), users lose spatial awareness.
401
+
402
+ **9.4 Forced Completion Flows.** No exit means the user is trapped, not nudged. Every step must offer "Save and finish later."
403
+
404
+ **9.5 Dark Patterns Disguised as Nudges.** Pre-checked upgrades, confirm-shaming ("No thanks, I don't want to save money"). Test: would the user thank you for this default?
405
+
406
+ **9.6 Gamification That Punishes.** Losing streaks, negative scoring, public shame leaderboards. Gamification should only add — never subtract from baseline.
407
+
408
+ **9.7 Social Pressure Notifications.** "Everyone else has finished!" creates anxiety. Social proof should inspire, not shame.
409
+
410
+ **9.8 Arbitrary Urgency.** "Only 2 left!" when there are 2,000. Fake scarcity permanently erodes trust.
411
+
412
+ **9.9 Dopamine Hijacking.** Variable rewards optimized for time-in-app rather than task completion. That is manipulation, not nudging.
413
+
414
+ **9.10 Asymmetric Friction.** Signup in one click, cancellation in seven steps. Opt-in and opt-out must require symmetric effort.
415
+
416
+ ---
417
+
418
+ ## 10. Implementation Checklist
419
+
420
+ - [ ] Each nudge targets exactly one behavior
421
+ - [ ] The nudge operates on System 1 (fast, automatic)
422
+ - [ ] Default values serve the user's interest, not the business's
423
+ - [ ] Users can override every default with minimal friction
424
+ - [ ] Consent-sensitive choices are never pre-selected
425
+ - [ ] Progress indicators show >0% from the start
426
+ - [ ] Streaks include a grace period of at least 1 missed day
427
+ - [ ] Notifications are actionable — "what should I do?" has a clear answer
428
+ - [ ] No guilt language in any user-facing copy
429
+ - [ ] Exit is always available, visible, and preserves partial state
430
+ - [ ] Time pressure is opt-in only
431
+ - [ ] Social proof uses proximate reference groups
432
+ - [ ] Variable rewards optimize for task completion, not time-in-app
433
+ - [ ] Opt-in and opt-out require symmetric effort
434
+ - [ ] The nudge passes the "would the user thank you?" test
435
+
436
+ ---
437
+
438
+ ## 11. Measuring Nudge Effectiveness
439
+
440
+ | Metric | What It Measures | Healthy Signal |
441
+ |--------|-----------------|----------------|
442
+ | Task completion rate | Did the nudge help finish? | Increase without time-in-app increase |
443
+ | Time to first action | Did it reduce activation energy? | Decrease |
444
+ | Return rate (7-day) | Did it build habit? | Increase |
445
+ | Opt-out rate | Did it feel coercive? | Below 5% |
446
+ | Feature discovery | Did it surface hidden value? | Feature adoption increase |
447
+ | Reported satisfaction | Did it feel helpful? | No decrease |
448
+
449
+ If a nudge increases engagement but decreases satisfaction, it is not a nudge — it is a manipulation. Remove it.