@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,160 @@
1
+ # specify
2
+
3
+ **Phase 3 — The contract that every phase downstream will be judged against.**
4
+
5
+ ![Phase](https://img.shields.io/badge/phase-3%20of%2014-blue)
6
+ ![Role](https://img.shields.io/badge/role-specifier-orange)
7
+ ![Gate](https://img.shields.io/badge/gate-hard%20%E2%98%85-red)
8
+ ![Status](https://img.shields.io/badge/status-stable-green)
9
+
10
+ ---
11
+
12
+ ## One-Line Purpose
13
+
14
+ Turn clarified scope and source-backed research into a measurable spec: explicit acceptance criteria, named assumptions, and documented non-goals that all downstream phases treat as law.
15
+
16
+ ---
17
+
18
+ ## Pipeline Position
19
+
20
+ ```
21
+ DISCOVER
22
+
23
+
24
+ ┌─────────┐
25
+ │ SPECIFY │ ◄── YOU ARE HERE
26
+ └─────────┘
27
+
28
+
29
+ SPEC-CHALLENGE ★ gate
30
+
31
+
32
+ DESIGN / PLAN ...
33
+ ```
34
+
35
+ ---
36
+
37
+ ## Role Responsible
38
+
39
+ `specifier`
40
+
41
+ The specifier transforms research into requirements. It does not invent requirements from nothing — it synthesizes what clarification identified and what research confirmed into a form that can be tested, challenged, and implemented. A specifier who writes acceptance criteria that cannot be verified has produced a spec in name only.
42
+
43
+ ---
44
+
45
+ ## Trigger
46
+
47
+ Both of the following artifacts are available in run state:
48
+
49
+ - Clarification artifact (complete, no unresolved blocking questions)
50
+ - Research artifact (all findings cited; no unsupported hypotheses flowing forward)
51
+
52
+ ---
53
+
54
+ ## Steps
55
+
56
+ 1. **Load clarification and research artifacts.** The spec is synthesized from these two sources. Do not introduce requirements not traceable to either.
57
+
58
+ 2. **Write the problem statement.** One paragraph. What is being built and why. Crisp enough that a reviewer who has read neither brief nor research can orient.
59
+
60
+ 3. **Write acceptance criteria.** Each criterion must be:
61
+ - Testable (can be confirmed true or false with a concrete action)
62
+ - Specific (no weasel words like "should feel fast" or "works on mobile")
63
+ - Bounded (scoped to this work, not aspirationally future)
64
+
65
+ 4. **Document assumptions.** Explicitly record every assumption the spec depends on. If the spec is later found to be wrong because an assumption was wrong, the assumption list is the audit trail.
66
+
67
+ 5. **Document non-goals.** State explicitly what this work does NOT do. Non-goals prevent scope creep in planning and execution.
68
+
69
+ 6. **Note open items.** If any advisory question from clarification was not resolved by research, document it here as a spec assumption or escalate to the operator.
70
+
71
+ 7. **Produce the spec artifact.** One document containing problem statement, acceptance criteria, assumptions, and non-goals.
72
+
73
+ ---
74
+
75
+ ## Input Artifacts
76
+
77
+ | Artifact | Location | Required |
78
+ |----------|----------|----------|
79
+ | Clarification artifact | Run state | Yes |
80
+ | Research artifact | Run state | Yes |
81
+
82
+ ---
83
+
84
+ ## Output Artifacts
85
+
86
+ | Artifact | Description |
87
+ |----------|-------------|
88
+ | Spec artifact | Problem statement, acceptance criteria, assumptions, non-goals |
89
+ | Acceptance criteria | Flat testable list extracted from spec (used by verifier) |
90
+ | Assumptions list | Named assumptions the spec depends on |
91
+
92
+ ---
93
+
94
+ ## Approval Gate
95
+
96
+ > [!IMPORTANT]
97
+ > **Explicit human approval is required before planning begins.** The spec is the contract. Once approved, the planner treats it as immutable. Changes to the spec after approval invalidate the plan and require a new planning run.
98
+
99
+ The approval gate is hard. An unapproved spec cannot be handed to the planner. The `spec-challenge` workflow runs before final approval to adversarially test the spec — do not conflate spec-challenge with final approval. Both must occur.
100
+
101
+ ---
102
+
103
+ ## Example Run
104
+
105
+ **Research artifact inputs (summary):**
106
+ - CSS custom properties pattern established in codebase
107
+ - `useLocalStorage` hook already exists for persistence
108
+ - Mobile breakpoint at 768px
109
+ - No brand color constraints found (assumption required)
110
+
111
+ **Spec artifact produced:**
112
+
113
+ ```
114
+ ## Problem Statement
115
+ Add a dark mode color scheme to the main dashboard (/dashboard). Users should be
116
+ able to toggle between light and dark mode. Preference persists across sessions
117
+ via localStorage. Dark mode must render correctly at the 768px mobile breakpoint.
118
+
119
+ ## Acceptance Criteria
120
+ AC-1: A toggle control is visible on the /dashboard page at all viewport widths.
121
+ AC-2: Activating the toggle switches the page to a dark color scheme within one
122
+ render cycle (no page reload).
123
+ AC-3: The dark mode preference survives a page reload (localStorage persistence).
124
+ AC-4: At 768px viewport width, the toggle is accessible and the dark scheme
125
+ renders without layout breakage.
126
+ AC-5: Toggling from dark back to light restores the original light scheme.
127
+ AC-6: No existing light mode styles are broken by the dark mode implementation.
128
+
129
+ ## Assumptions
130
+ A-1: Dark color palette will be defined by the designer; no pre-existing brand
131
+ dark palette doc exists.
132
+ A-2: Server-side preference sync is out of scope for this work.
133
+ A-3: Admin panel (/admin) is not in scope.
134
+
135
+ ## Non-Goals
136
+ - OS-level prefers-color-scheme auto-detection (future work)
137
+ - Dark mode for any page other than /dashboard
138
+ - Account-level server-side preference storage
139
+ ```
140
+
141
+ ---
142
+
143
+ ## Common Mistakes
144
+
145
+ | Mistake | Impact | Prevention |
146
+ |---------|--------|------------|
147
+ | Writing untestable acceptance criteria | Verifier cannot confirm completion | Each AC must be verifiable with a concrete action and observable outcome |
148
+ | Introducing requirements not in clarification or research | Scope creep before planning even starts | Trace every AC to a clarification item or research finding |
149
+ | Omitting non-goals | Executor and planner add scope during execution | Name non-goals explicitly; "we considered X and excluded it" |
150
+ | Writing assumptions as facts | When an assumption is wrong, there is no audit trail | Mark every assumption clearly as an assumption |
151
+ | Merging spec with design decisions | Spec is what; design is how | AC-6 above is correct ("no existing styles broken"); "use CSS variables" belongs in the plan |
152
+
153
+ ---
154
+
155
+ ## Related
156
+
157
+ - [Overview — All Workflows](README.md)
158
+ - [Previous: discover](discover.md)
159
+ - [Next: spec-challenge](spec-challenge.md)
160
+ - [Roles and Workflows](../../../concepts/roles-and-workflows.md)
@@ -0,0 +1,177 @@
1
+ # verify
2
+
3
+ **Phase 11 — No completion claim without deterministic proof.**
4
+
5
+ ![Phase](https://img.shields.io/badge/phase-11%20of%2014-blue)
6
+ ![Role](https://img.shields.io/badge/role-verifier-orange)
7
+ ![Gate](https://img.shields.io/badge/gate-hard%20%E2%98%85-red)
8
+ ![Status](https://img.shields.io/badge/status-stable-green)
9
+
10
+ ---
11
+
12
+ ## One-Line Purpose
13
+
14
+ Produce a deterministic, artifact-backed proof that every acceptance criterion claimed to be satisfied by execution is actually satisfied — because "it works" is not evidence.
15
+
16
+ ---
17
+
18
+ ## Pipeline Position
19
+
20
+ ```
21
+ EXECUTE
22
+
23
+
24
+ ┌────────┐
25
+ │ VERIFY │ ◄── YOU ARE HERE
26
+ └────────┘
27
+
28
+
29
+ REVIEW ★ gate
30
+
31
+
32
+ LEARN ...
33
+ ```
34
+
35
+ ---
36
+
37
+ ## Role Responsible
38
+
39
+ `verifier`
40
+
41
+ The verifier does not review code quality, architecture choices, or style. It confirms one thing: did execution produce outcomes that satisfy the acceptance criteria? This requires running real commands and capturing real output — not reading code and reasoning about whether it would work.
42
+
43
+ ---
44
+
45
+ ## Trigger
46
+
47
+ One or more execution batches are complete. The execution notes artifact exists with task completion statuses.
48
+
49
+ ---
50
+
51
+ ## Steps
52
+
53
+ 1. **Load the acceptance criteria from the spec.** This is the verification target. Every AC in scope must be verified.
54
+
55
+ 2. **Load the execution notes.** The notes list what was changed and what per-task verification was run. The verifier confirms these verification steps were valid and ran to completion.
56
+
57
+ 3. **Run verification for each acceptance criterion.** For each AC:
58
+ - Identify the relevant changed files
59
+ - Run the relevant test command(s), lint command(s), or visual check
60
+ - Capture the output
61
+
62
+ 4. **Map test output to acceptance criteria.** Each AC must map to at least one piece of captured output (test result, command output, screenshot). ACs without mapped output are unverified.
63
+
64
+ 5. **Run the full test suite.** Even if per-AC verification passes, the full suite must run clean. Regressions in adjacent functionality are execution failures.
65
+
66
+ 6. **Produce the verification proof artifact.** For each AC: verdict (pass/fail), the command run, and the captured output. A proof artifact must be reproducible — another verifier following the same steps should produce the same result.
67
+
68
+ ---
69
+
70
+ ## Input Artifacts
71
+
72
+ | Artifact | Location | Required |
73
+ |----------|----------|----------|
74
+ | Changed files | Repo (working branch) | Yes |
75
+ | Claimed outcomes / execution notes | Run state | Yes |
76
+ | Acceptance criteria (from spec) | Run state | Yes |
77
+
78
+ ---
79
+
80
+ ## Output Artifacts
81
+
82
+ | Artifact | Description |
83
+ |----------|-------------|
84
+ | Verification proof artifact | Per-AC: verdict, command run, captured output |
85
+
86
+ ---
87
+
88
+ ## Approval Gate
89
+
90
+ > [!IMPORTANT]
91
+ > **No completion claim can be made without a fresh verification proof artifact.** Stale proof (proof from a prior run before the most recent code changes) is not valid. The proof artifact must be produced against the current working branch state.
92
+
93
+ A partial proof — where some ACs are verified and others are labelled "assumed passing" — is a verification failure. Every AC in scope must have explicit proof.
94
+
95
+ ---
96
+
97
+ ## Example Run
98
+
99
+ **Acceptance criteria (abbreviated):**
100
+ ```
101
+ AC-1: Toggle visible at all viewport widths.
102
+ AC-2: Toggle switches scheme within one render cycle.
103
+ AC-3: Preference persists in localStorage across sessions and new tabs.
104
+ AC-4: Correct rendering at 768px breakpoint.
105
+ AC-5: Toggle back to light restores original scheme.
106
+ AC-6: No existing light mode styles broken.
107
+ ```
108
+
109
+ **Verification proof artifact:**
110
+
111
+ ```
112
+ ## AC-1 — Toggle visibility
113
+ Command: `npm test src/layouts/DashboardLayout.integration.test.tsx`
114
+ Output:
115
+ ✓ toggle renders at 320px viewport (12ms)
116
+ ✓ toggle renders at 1280px viewport (8ms)
117
+ 2 tests passed
118
+ Verdict: PASS
119
+
120
+ ## AC-2 — Scheme switches within one render cycle
121
+ Command: `npm test src/components/DarkModeToggle.test.tsx`
122
+ Output:
123
+ ✓ clicking toggle applies data-theme="dark" without page reload (15ms)
124
+ 1 test passed
125
+ Verdict: PASS
126
+
127
+ ## AC-3 — localStorage persistence
128
+ Command: `npm test src/hooks/useDarkMode.test.ts`
129
+ Output:
130
+ ✓ theme value persists after localStorage clear/re-read simulation (9ms)
131
+ ✓ new tab simulation reads stored theme on mount (11ms)
132
+ 2 of 6 relevant tests; full suite: 6/6 passed
133
+ Verdict: PASS
134
+
135
+ ## AC-4 — 768px rendering
136
+ Command: `npm test DarkModeToggle -- --viewport=768`
137
+ Output:
138
+ ✓ touch target ≥ 44px at 768px (snapshot match) (18ms)
139
+ ✓ focus ring visible at 768px (snapshot match) (14ms)
140
+ 2 tests passed
141
+ Verdict: PASS
142
+
143
+ ## AC-5 — Toggle back to light
144
+ Command: `npm test src/hooks/useDarkMode.test.ts`
145
+ Output:
146
+ ✓ toggling from dark to light removes data-theme attribute (8ms)
147
+ 1 test passed
148
+ Verdict: PASS
149
+
150
+ ## AC-6 — No regressions
151
+ Command: `npm test`
152
+ Output: 147 tests, 147 passed, 0 failed, 0 skipped
153
+ Verdict: PASS
154
+
155
+ ## Overall: ALL ACs PASS — proof is fresh against branch dark-mode-feature
156
+ ```
157
+
158
+ ---
159
+
160
+ ## Common Mistakes
161
+
162
+ | Mistake | Impact | Prevention |
163
+ |---------|--------|------------|
164
+ | Running verification against the wrong branch | Proof is valid for a different state than what ships | Always confirm branch before running verify |
165
+ | Mapping test names to ACs without running the tests | Proof is fabricated; review will be based on false evidence | Run every command and capture actual output — never assume |
166
+ | Marking an AC as "implicitly covered" | The AC has no proof; review cannot confirm it | Every AC needs explicit proof; no implicit coverage |
167
+ | Using stale proof from before the last code change | The proof does not reflect current branch state | Re-run verification after every code change |
168
+ | Stopping at per-task verification without running the full suite | Regressions go undetected until review or production | Full suite is always the final step |
169
+
170
+ ---
171
+
172
+ ## Related
173
+
174
+ - [Overview — All Workflows](README.md)
175
+ - [Previous: execute](execute.md)
176
+ - [Next: review](review.md)
177
+ - [Roles and Workflows](../../../concepts/roles-and-workflows.md)
@@ -0,0 +1,50 @@
1
+ # Package Deep Dives
2
+
3
+ This directory contains detailed technical documentation for each package and plugin used by Wazir. Each document covers what the package is, why Wazir chose it specifically, how it is used in the codebase, and key patterns.
4
+
5
+ ## npm Packages
6
+
7
+ These are declared in `package.json` as runtime dependencies.
8
+
9
+ | Package | Version | Purpose | README |
10
+ |---------|---------|---------|--------|
11
+ | `ajv` | `^8.18.0` | JSON Schema validation for manifests and artifacts | [ajv.md](ajv.md) |
12
+ | `gray-matter` | `^4.0.3` | YAML front-matter parsing for skill files | [gray-matter.md](gray-matter.md) |
13
+ | `yaml` | `^2.0.0` | YAML parsing for manifest and hook definition files | [yaml.md](yaml.md) |
14
+
15
+ ## Built-in Node.js Modules
16
+
17
+ Used as the test runner and assertion library — zero install required.
18
+
19
+ | Module | Purpose | README |
20
+ |--------|---------|--------|
21
+ | `node:test` | Test runner replacing Jest/Vitest | [node-test.md](node-test.md) |
22
+ | `node:assert` | Assertion library (used alongside `node:test`) | [node-test.md](node-test.md) |
23
+
24
+ ## Claude Code Plugins
25
+
26
+ External plugins declared as optional adapters in `wazir.manifest.yaml`. Not required for Wazir to function; provides an optional enhancement layer.
27
+
28
+ | Plugin | Manifest key | Purpose | README |
29
+ |--------|-------------|---------|--------|
30
+ | context-mode | `context_mode` | Context compression and sandboxed file execution | [context-mode.md](context-mode.md) |
31
+
32
+ ## Dependency Philosophy
33
+
34
+ Wazir intentionally keeps its dependency footprint minimal:
35
+
36
+ - **Three runtime npm dependencies** — ajv, gray-matter, yaml. No framework, no HTTP client, no ORM.
37
+ - **Zero test framework dependencies** — `node:test` and `node:assert` are built-in to Node.js.
38
+ - **All plugins are optional** — context-mode is declared as `package_presence: optional` in the manifest schema. Wazir's core CLI works without it installed.
39
+
40
+ This philosophy means `npm install` is fast, the dependency attack surface is small, and there are no version conflicts between the test runner and the production runtime.
41
+
42
+ ## Reading Order
43
+
44
+ If you are new to the Wazir tooling stack, read in this order:
45
+
46
+ 1. [yaml.md](yaml.md) — foundational; everything starts by reading a YAML file
47
+ 2. [ajv.md](ajv.md) — everything read is validated against a schema
48
+ 3. [node-test.md](node-test.md) — how the tooling is tested
49
+ 4. [gray-matter.md](gray-matter.md) — how skill files are structured and parsed
50
+ 5. [context-mode.md](context-mode.md) — optional context optimization layer
@@ -0,0 +1,117 @@
1
+ # ajv
2
+
3
+ > The fastest JSON Schema validator for Node.js and browsers, supporting JSON Schema drafts 04/06/07/2019/2020.
4
+
5
+ [![npm version](https://img.shields.io/npm/v/ajv)](https://www.npmjs.com/package/ajv)
6
+ [![license](https://img.shields.io/npm/l/ajv)](https://github.com/ajv-validator/ajv/blob/master/LICENSE)
7
+ [![downloads](https://img.shields.io/npm/dm/ajv)](https://www.npmjs.com/package/ajv)
8
+
9
+ ## What is ajv?
10
+
11
+ Ajv (Another JSON Validator) is the most widely used JSON Schema validation library in the JavaScript ecosystem. It compiles JSON Schema definitions into highly optimized JavaScript validation functions at startup time rather than interpreting the schema on every call. This compilation step is what makes ajv dramatically faster than interpreted validators — benchmarks consistently show it running 10-100x faster than naive alternatives.
12
+
13
+ Ajv supports the full JSON Schema specification through multiple drafts. Wazir uses the `2020` draft flavor (`ajv/dist/2020.js`), which is the most modern and supports features like `$dynamicRef`, `unevaluatedProperties`, and the updated `prefixItems` array semantics.
14
+
15
+ Beyond raw validation, ajv provides structured error output via `validate.errors`: an array of objects describing exactly which path in the instance failed, which keyword triggered the failure, and what the expected value was. This makes it practical to report meaningful validation feedback rather than generic "invalid" messages.
16
+
17
+ ## Why Wazir Uses ajv
18
+
19
+ Wazir's entire artifact and manifest system rests on JSON Schema contracts. Every phase artifact — from `clarification.json` to `verification-proof.json` — must conform to a schema before it can be accepted. Without reliable, fast schema validation, the system cannot enforce its contracts at the tool boundary.
20
+
21
+ ajv was chosen over alternatives for three specific reasons:
22
+
23
+ 1. **Compiled validators with caching**: Wazir compiles each schema once and caches the resulting function in a `Map` keyed by `schema.$id`. Subsequent validations of the same schema type hit the cache and pay no re-compilation cost.
24
+ 2. **Draft 2020-12 support**: The schemas in `schemas/` use `$id` URIs in the `https://wazir.dev/schemas/` namespace, a pattern encouraged by the 2020 draft. No other popular validator has first-class 2020 support in as stable a form.
25
+ 3. **`allErrors` mode**: Wazir configures ajv with `allErrors: true` so that a single validation call surfaces every problem in the document, not just the first one. This is essential for developer feedback — when a manifest or artifact is malformed, the operator sees all issues at once.
26
+
27
+ ## How Wazir Uses It
28
+
29
+ The entire ajv surface is encapsulated in a single module:
30
+
31
+ ```js
32
+ // tooling/src/schema-validator.js
33
+ import Ajv2020 from 'ajv/dist/2020.js';
34
+
35
+ const ajv = new Ajv2020({
36
+ allErrors: true,
37
+ strict: false,
38
+ validateFormats: false,
39
+ });
40
+ const validatorCache = new Map();
41
+
42
+ function formatError(error) {
43
+ const pointer = error.instancePath || '/';
44
+ return `${pointer} ${error.message}`;
45
+ }
46
+
47
+ export function validateAgainstSchema(schema, data) {
48
+ const schemaKey = schema.$id ?? JSON.stringify(schema);
49
+ let validate = validatorCache.get(schemaKey);
50
+
51
+ if (!validate) {
52
+ validate = ajv.compile(schema);
53
+ validatorCache.set(schemaKey, validate);
54
+ }
55
+
56
+ const valid = validate(data);
57
+
58
+ return {
59
+ valid,
60
+ errors: valid ? [] : (validate.errors ?? []).map(formatError),
61
+ };
62
+ }
63
+ ```
64
+
65
+ This function is called in two places in production code:
66
+
67
+ - `tooling/src/commands/validate.js` — validates `wazir.manifest.yaml` and every hook definition YAML against their respective schemas
68
+ - `tooling/src/export/compiler.js` — validates the generated `host-package.json` and `export.manifest.json` objects before they are committed to disk
69
+
70
+ In tests, `schema-examples.test.js` calls `validateAgainstSchema` directly against all 14 example templates to ensure every template document in `templates/examples/` stays in sync with its schema.
71
+
72
+ ## Key Concepts
73
+
74
+ **Schema compilation**: `ajv.compile(schema)` returns a reusable `validate` function. Calling `compile` is expensive; calling the resulting function is cheap. Always compile once and cache.
75
+
76
+ **`instancePath`**: In ajv's error objects, `instancePath` is a JSON Pointer (e.g., `/project/version`) pointing to the failing node in the input data. Wazir formats this as the primary error label.
77
+
78
+ **`$id`**: A URI in the schema that uniquely identifies it. Wazir uses `$id` as the cache key because it is stable across calls, while `JSON.stringify(schema)` is the fallback for inline schemas without an `$id`.
79
+
80
+ **`strict: false`**: Disables ajv's strict mode, which would reject schemas using unknown keywords. Wazir schemas use standard keywords only, but this option avoids surprises during schema iteration.
81
+
82
+ **`validateFormats: false`**: Format validation (e.g., `"format": "uri"`) is disabled because it requires an additional package and is not needed for Wazir's structural contracts.
83
+
84
+ ## API Reference (Wazir-relevant subset)
85
+
86
+ | API | Usage in Wazir |
87
+ |-----|---------------------|
88
+ | `new Ajv2020(options)` | Instantiated once as a module-level singleton |
89
+ | `ajv.compile(schema)` | Called once per unique schema, result cached |
90
+ | `validate(data)` | Called on every artifact/manifest to be validated |
91
+ | `validate.errors` | Inspected when `validate()` returns `false` |
92
+ | `error.instancePath` | Used as the human-readable location prefix in error messages |
93
+ | `error.message` | The human-readable failure description from the keyword |
94
+
95
+ ## Common Patterns
96
+
97
+ **Singleton + compile cache**: Create one `Ajv` instance for the entire process. Cache compiled validators by `$id`. This is the pattern used in `schema-validator.js` and is the recommended production approach.
98
+
99
+ **Structured error surfacing**: Map `validate.errors` to strings before returning. Never expose the raw ajv error objects to callers — they contain internal implementation details that change across versions.
100
+
101
+ **Schema-first contracts**: Every artifact type in Wazir is defined by a JSON Schema before any code produces or consumes it. The schema is the contract; the validator is the enforcement mechanism.
102
+
103
+ ## Alternatives Considered
104
+
105
+ | Package | Why not chosen |
106
+ |---------|---------------|
107
+ | `zod` | TypeScript-first, runtime overhead from object construction, no JSON Schema interoperability |
108
+ | `joi` | Custom schema language, not JSON Schema standard, harder to share schemas with non-JS consumers |
109
+ | `jsonschema` | Older, slower, no 2020-12 draft support |
110
+ | Native `JSON.parse` + manual checks | No schema language, no reuse, no standard tooling |
111
+
112
+ ## Resources
113
+
114
+ - [Official documentation](https://ajv.js.org/)
115
+ - [GitHub](https://github.com/ajv-validator/ajv)
116
+ - [npm](https://www.npmjs.com/package/ajv)
117
+ - [JSON Schema 2020-12 specification](https://json-schema.org/draft/2020-12/json-schema-core.html)
@@ -0,0 +1,118 @@
1
+ # context-mode
2
+
3
+ > An optional Claude Code plugin that provides context compression and sandboxed code execution tools for managing large conversation windows.
4
+
5
+ [![Claude Code Plugin](https://img.shields.io/badge/claude--code-plugin-blue)]()
6
+ [![Install mode](https://img.shields.io/badge/install-external-orange)]()
7
+ [![Status](https://img.shields.io/badge/adapter-optional-lightgrey)]()
8
+
9
+ ## What is context-mode?
10
+
11
+ context-mode is a Claude Code plugin that addresses one of the fundamental constraints of LLM-based coding agents: context window exhaustion. As a conversation grows — through tool outputs, file reads, test results, and back-and-forth clarification — the context window fills up, forcing the agent to either compact (summarize and lose detail) or stop.
12
+
13
+ context-mode provides tools that let the agent process files and run code in a sandboxed environment where only the relevant output enters the main context window. Instead of reading a 500-line file verbatim (consuming 500 lines of context), the agent can execute a targeted extraction script against the file and receive only the 10 lines it actually needed. This is the core trade: spend a tool call to save context space.
14
+
15
+ The plugin also provides an indexing and search surface for large codebases, allowing the agent to find relevant content by semantic or keyword search rather than reading files speculatively.
16
+
17
+ ## Why Wazir References context-mode
18
+
19
+ Wazir's manifest declares context-mode as an optional external adapter:
20
+
21
+ ```yaml
22
+ adapters:
23
+ context_mode:
24
+ enabled_by_default: false
25
+ required: false
26
+ install_mode: external
27
+ package_presence: optional
28
+ ```
29
+
30
+ This declaration is intentional and conservative. Wazir does not depend on context-mode for any of its core operations. The built-in indexing (`wazir index`), recall (`wazir recall`), and capture surfaces are designed to stand on their own without this adapter. The adapter entry in the manifest exists to:
31
+
32
+ 1. **Document the integration point**: Operators who already use context-mode can layer it on top of Wazir without conflict.
33
+ 2. **Track the dependency surface**: The manifest schema validates that only known adapters are declared, preventing undocumented external dependencies from accumulating silently.
34
+ 3. **Signal opt-in semantics**: `enabled_by_default: false` and `package_presence: optional` tell the tooling that context-mode must never be assumed to be present and must never be required for the core workflow to function.
35
+
36
+ The Wazir docs explicitly state: "Use the built-in Wazir context reduction path first. Treat context-mode as an optional host-specific enhancement, not a required dependency or product center."
37
+
38
+ ## How Wazir Relates to It
39
+
40
+ context-mode surfaces appear in the Wazir codebase in two ways:
41
+
42
+ **1. Manifest adapter registration**
43
+
44
+ The adapter is declared in `wazir.manifest.yaml` and validated against the adapter schema in `schemas/wazir-manifest.schema.json`. The schema defines the allowed adapter shape:
45
+
46
+ ```json
47
+ "adapter": {
48
+ "type": "object",
49
+ "required": ["enabled_by_default", "required", "install_mode", "package_presence"],
50
+ "properties": {
51
+ "enabled_by_default": { "type": "boolean" },
52
+ "required": { "type": "boolean" },
53
+ "install_mode": { "enum": ["external"] },
54
+ "package_presence": { "enum": ["optional"] }
55
+ }
56
+ }
57
+ ```
58
+
59
+ Both `install_mode` and `package_presence` are constrained to `"external"` and `"optional"` respectively — the schema enforces that no adapter can be declared as required or bundled.
60
+
61
+ **2. Test fixture declarations**
62
+
63
+ Every test fixture that constructs a synthetic manifest includes the context-mode adapter declaration to match the schema requirements:
64
+
65
+ ```js
66
+ adapters: {
67
+ context_mode: {
68
+ enabled_by_default: false,
69
+ required: false,
70
+ install_mode: 'external',
71
+ package_presence: 'optional',
72
+ },
73
+ },
74
+ ```
75
+
76
+ This appears in both `tooling/test/validate.test.js` and `tooling/test/export.test.js`.
77
+
78
+ **3. Hook hints in this conversation**
79
+
80
+ The `PreToolUse:Read` hook in this session adds a context tip pointing toward context-mode's `execute_file` tool as a way to process large files without loading their full content into context. This is context-mode working as designed — the hook system informing the agent of available optimization tools.
81
+
82
+ ## Key Concepts
83
+
84
+ **Sandboxed execution**: context-mode's `execute_file` and `execute` tools run code in a restricted sandbox. Only stdout is returned to the main context. This prevents accidental side effects while enabling targeted data extraction.
85
+
86
+ **Context budget management**: The guiding principle of context-mode is that context window space is a finite resource. Every file read, tool output, and conversation turn consumes it. context-mode provides alternatives to full-verbatim reads.
87
+
88
+ **Opt-in only**: Wazir enforces this at the manifest schema level. No adapter can be declared as required. The system must be fully functional without any adapter installed.
89
+
90
+ **Lazy integration**: If context-mode is present, the agent can use its tools. If it is absent, the agent falls back to standard file reading and native indexing. No code paths in Wazir's tooling check for or depend on context-mode being available.
91
+
92
+ ## Integration Pattern
93
+
94
+ When context-mode is installed alongside Wazir, the recommended usage pattern is:
95
+
96
+ - Use `execute_file` for large files (>50 lines) where only a subset of content is needed — the `PreToolUse:Read` hook tip surfaces this heuristic automatically.
97
+ - Use `search` for finding relevant files across a large codebase before reading them.
98
+ - Use `index` to pre-process a project root so that recall queries return targeted results.
99
+ - Continue using Wazir's built-in `wazir recall` for artifact-specific retrieval.
100
+
101
+ The two systems are complementary: context-mode handles general context compression; Wazir's built-in indexing handles structured artifact and role/workflow retrieval specific to the Wazir operating model.
102
+
103
+ ## Adapter Validation
104
+
105
+ Every `wazir validate manifest` run confirms the adapter declaration:
106
+
107
+ ```
108
+ $ wazir validate manifest
109
+ Manifest is valid.
110
+ ```
111
+
112
+ If the `context_mode` adapter block is removed from the manifest, the schema validation fails because `context_mode` is declared as a required key in the `adapters` object in `schemas/wazir-manifest.schema.json`. This ensures the operator cannot accidentally delete the adapter declaration and lose the documented integration surface.
113
+
114
+ ## Resources
115
+
116
+ - [Wazir adapter documentation](../../adapters/context-mode.md)
117
+ - [Wazir manifest schema](../../../schemas/wazir-manifest.schema.json)
118
+ - [context-mode adapter entry in manifest](../../../wazir.manifest.yaml)