@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,222 @@
1
+ # Host Exports
2
+
3
+ Wazir's export system compiles canonical role, workflow, and hook sources into
4
+ ready-to-deploy host packages for **Claude, Codex, Gemini, and Cursor**. Each host
5
+ gets a package shaped for its native integration model — no manual copying, no hand-
6
+ editing, no drift.
7
+
8
+ ---
9
+
10
+ ## What Host Exports Are
11
+
12
+ Every AI host has its own convention for loading agent instructions:
13
+
14
+ - Claude reads `CLAUDE.md`, `.claude/agents/`, and `.claude/commands/`
15
+ - Codex reads `AGENTS.md`
16
+ - Gemini reads `GEMINI.md`
17
+ - Cursor reads `.cursor/rules/` and `.cursor/hooks.json`
18
+
19
+ The export system generates all of these from a single set of canonical sources.
20
+ The canonical sources are the ground truth. The exports are derived artifacts.
21
+
22
+ **You never edit files in `exports/hosts/*` by hand.** Run `wazir export build`
23
+ and the compiler overwrites them from the canonical sources.
24
+
25
+ ---
26
+
27
+ ## Supported Hosts
28
+
29
+ | Host | Output path | Key files |
30
+ |---|---|---|
31
+ | Claude | `exports/hosts/claude/` | `CLAUDE.md`, `.claude/agents/*`, `.claude/commands/*`, `.claude/settings.json` |
32
+ | Codex | `exports/hosts/codex/` | `AGENTS.md` |
33
+ | Gemini | `exports/hosts/gemini/` | `GEMINI.md` |
34
+ | Cursor | `exports/hosts/cursor/` | `.cursor/rules/wazir-core.mdc`, `.cursor/hooks.json` |
35
+
36
+ ---
37
+
38
+ ## How Packages Are Generated
39
+
40
+ ```
41
+ wazir export build
42
+
43
+
44
+ 1. Validate wazir.manifest.yaml
45
+
46
+
47
+ 2. Validate canonical hook definitions
48
+
49
+
50
+ 3. Collect canonical sources
51
+ ┌────────────────────────────────┐
52
+ │ wazir.manifest.yaml │
53
+ │ roles/*.md (9 role files) │
54
+ │ workflows/*.md (13 workflows) │
55
+ │ hooks/definitions/*.yaml │
56
+ └────────────────────────────────┘
57
+
58
+
59
+ 4. SHA-256 hash each source file
60
+
61
+
62
+ 5. For each host in export_targets:
63
+ ├── Render host-specific package files
64
+ ├── Write host-package.json (sources + file list)
65
+ └── Write export.manifest.json (source hashes)
66
+
67
+
68
+ exports/hosts/<host>/
69
+ ```
70
+
71
+ The compiler (`tooling/src/export/compiler.js`) does not template files — it reads the
72
+ canonical Markdown directly and writes it into the host-appropriate directory structure.
73
+ This means roles and workflows appear verbatim in each host package.
74
+
75
+ ---
76
+
77
+ ## What Is Included in Each Package
78
+
79
+ ### Claude
80
+
81
+ ```
82
+ exports/hosts/claude/
83
+ CLAUDE.md Project bootstrap + canonical facts
84
+ .claude/agents/clarifier.md
85
+ .claude/agents/designer.md
86
+ .claude/agents/executor.md
87
+ .claude/agents/learner.md
88
+ .claude/agents/planner.md
89
+ .claude/agents/researcher.md
90
+ .claude/agents/reviewer.md
91
+ .claude/agents/specifier.md
92
+ .claude/agents/verifier.md
93
+ .claude/commands/clarify.md
94
+ .claude/commands/design.md
95
+ .claude/commands/design-review.md
96
+ .claude/commands/discover.md
97
+ .claude/commands/execute.md
98
+ .claude/commands/learn.md
99
+ .claude/commands/plan.md
100
+ .claude/commands/plan-review.md
101
+ .claude/commands/prepare-next.md
102
+ .claude/commands/review.md
103
+ .claude/commands/spec-challenge.md
104
+ .claude/commands/specify.md
105
+ .claude/commands/verify.md
106
+ .claude/settings.json
107
+ export.manifest.json Source hashes for drift detection
108
+ host-package.json Source list + generated file list
109
+ ```
110
+
111
+ ### Codex
112
+
113
+ ```
114
+ exports/hosts/codex/
115
+ AGENTS.md Single combined instruction file
116
+ export.manifest.json
117
+ host-package.json
118
+ ```
119
+
120
+ ### Gemini
121
+
122
+ ```
123
+ exports/hosts/gemini/
124
+ GEMINI.md Single combined instruction file
125
+ export.manifest.json
126
+ host-package.json
127
+ ```
128
+
129
+ ### Cursor
130
+
131
+ ```
132
+ exports/hosts/cursor/
133
+ .cursor/rules/wazir-core.mdc
134
+ .cursor/hooks.json
135
+ export.manifest.json
136
+ host-package.json
137
+ ```
138
+
139
+ ---
140
+
141
+ ## Drift Detection
142
+
143
+ Every export includes `export.manifest.json` — a map of canonical source paths to
144
+ their SHA-256 hashes at the time of the last build:
145
+
146
+ ```json
147
+ {
148
+ "host": "claude",
149
+ "source_hashes": {
150
+ "wazir.manifest.yaml": "63d162af...",
151
+ "roles/clarifier.md": "5e59e8e7...",
152
+ "workflows/clarify.md": "93034dce...",
153
+ ...
154
+ }
155
+ }
156
+ ```
157
+
158
+ `wazir export --check` re-hashes the current canonical sources and compares them
159
+ against the stored hashes. If any source has changed since the last build, the check
160
+ fails non-zero — catching stale exports before they reach CI or production.
161
+
162
+ **Recommended CI workflow:**
163
+
164
+ ```bash
165
+ # In CI, after any change to roles/, workflows/, or hooks/
166
+ wazir export --check
167
+ # Fails if exports are out of date — developer must run `export build` and commit
168
+ ```
169
+
170
+ ---
171
+
172
+ ## Using Exports in Your Project
173
+
174
+ ### Claude
175
+
176
+ Copy the contents of `exports/hosts/claude/` into your project root:
177
+
178
+ ```bash
179
+ cp -r exports/hosts/claude/.claude /your/project/
180
+ cp exports/hosts/claude/CLAUDE.md /your/project/
181
+ ```
182
+
183
+ Claude will automatically load `CLAUDE.md` as its system context and discover agents
184
+ and commands under `.claude/`.
185
+
186
+ ### Codex
187
+
188
+ ```bash
189
+ cp exports/hosts/codex/AGENTS.md /your/project/
190
+ ```
191
+
192
+ ### Gemini
193
+
194
+ ```bash
195
+ cp exports/hosts/gemini/GEMINI.md /your/project/
196
+ ```
197
+
198
+ ### Cursor
199
+
200
+ ```bash
201
+ cp -r exports/hosts/cursor/.cursor /your/project/
202
+ ```
203
+
204
+ ---
205
+
206
+ ## Protected Paths
207
+
208
+ `exports/hosts/` is declared as a protected path in `wazir.manifest.yaml`. The
209
+ `protected_path_write_guard` hook prevents agents from writing directly to this
210
+ directory. All changes must flow through `wazir export build`.
211
+
212
+ ---
213
+
214
+ ## Commands
215
+
216
+ | Command | Description |
217
+ |---|---|
218
+ | `wazir export build` | Compile all host packages from canonical sources |
219
+ | `wazir export --check` | Verify packages are current; exits non-zero on drift |
220
+
221
+ Both commands resolve the project root automatically by walking upward to find
222
+ `wazir.manifest.yaml`.
@@ -0,0 +1,103 @@
1
+ # Hooks
2
+
3
+ > Canonical hook contracts that enforce protected paths, loop caps, capture routing, and session observability across every AI host.
4
+
5
+ Hooks are **product contracts first**. Each hook definition in `hooks/definitions/*.yaml` specifies the authoritative behavior. Host-specific native hooks or wrapper scripts must preserve that behavior — they cannot relax it.
6
+
7
+ ## Hook Roster
8
+
9
+ | Hook ID | Type | Event | Failure Mode |
10
+ |---|---|---|---|
11
+ | [session_start](session-start.md) | Observability | Session begins | capture |
12
+ | [pre_tool_capture_route](pre-tool-capture-route.md) | Capture | Before large tool runs | warn |
13
+ | [post_tool_capture](post-tool-capture.md) | Capture | After every tool execution | capture |
14
+ | [pre_compact_summary](pre-compact-summary.md) | Observability | Before context compaction | warn |
15
+ | [stop_handoff_harvest](stop-handoff-harvest.md) | Observability | Session ends | capture |
16
+ | [protected_path_write_guard](protected-path-write-guard.md) | Guard | Write to protected path attempted | **block (exit 42)** |
17
+ | [loop_cap_guard](loop-cap-guard.md) | Guard | Phase iteration limit exceeded | **block (exit 43)** |
18
+
19
+ ## Hook Categories
20
+
21
+ | Category | Members | Purpose |
22
+ |---|---|---|
23
+ | **Guards** | `protected_path_write_guard`, `loop_cap_guard` | Hard blocks — prevent unsafe actions |
24
+ | **Capture** | `pre_tool_capture_route`, `post_tool_capture` | Route and persist tool output outside model context |
25
+ | **Observability** | `session_start`, `pre_compact_summary`, `stop_handoff_harvest` | Session lifecycle events and handoff data |
26
+
27
+ ## Guard Exit Codes
28
+
29
+ | Hook | Allowed | Blocked |
30
+ |---|---|---|
31
+ | `protected_path_write_guard` | `0` | `42` |
32
+ | `loop_cap_guard` | `0` | `43` |
33
+
34
+ ## Source of Truth
35
+
36
+ ```
37
+ hooks/definitions/*.yaml — canonical hook contracts
38
+ schemas/hook.schema.json — validation schema
39
+ wazir.manifest.yaml — required_hooks roster
40
+ ```
41
+
42
+ Validate with:
43
+ ```bash
44
+ node tooling/src/cli.js validate hooks
45
+ ```
46
+
47
+ ## Host Fallback Policy
48
+
49
+ Every hook definition specifies `host_fallback` guidance for Claude, Codex, Gemini, and Cursor. Fallbacks must preserve:
50
+
51
+ - The same trigger intent
52
+ - The same protected-path policy
53
+ - The same loop-cap policy
54
+ - The same observable outputs (or a documented equivalent)
55
+
56
+ | Hook ID | Claude | Codex | Gemini | Cursor |
57
+ |---|---|---|---|---|
58
+ | `session_start` | native_hook | wrapper | wrapper | native_or_wrapper |
59
+ | `pre_tool_capture_route` | native_hook | wrapper | wrapper | native_or_wrapper |
60
+ | `post_tool_capture` | native_hook | wrapper | wrapper | native_or_wrapper |
61
+ | `pre_compact_summary` | native_or_wrapper | wrapper | wrapper | wrapper |
62
+ | `stop_handoff_harvest` | native_hook | wrapper | wrapper | native_or_wrapper |
63
+ | `protected_path_write_guard` | native_or_wrapper | wrapper | wrapper | native_or_wrapper |
64
+ | `loop_cap_guard` | native_or_wrapper | wrapper | wrapper | native_or_wrapper |
65
+
66
+ ## Protected Paths
67
+
68
+ The following paths are protected by `protected_path_write_guard`:
69
+
70
+ ```
71
+ input/
72
+ roles/
73
+ workflows/
74
+ schemas/
75
+ exports/hosts/
76
+ ```
77
+
78
+ Writes to these paths outside approved regeneration flows are blocked with exit code `42`.
79
+
80
+ ## CLI Capture Commands
81
+
82
+ Capture hooks are backed by these CLI commands:
83
+
84
+ ```bash
85
+ wazir capture init # initialize status.json for the run
86
+ wazir capture event # append an event to events.ndjson
87
+ wazir capture route # register a capture target path
88
+ wazir capture output # write captured tool output
89
+ wazir capture summary # produce summary.md before compaction
90
+ ```
91
+
92
+ ## Implementation Status
93
+
94
+ | Component | Status |
95
+ |---|---|
96
+ | Canonical hook definitions | Implemented |
97
+ | Schema validation | Implemented |
98
+ | CLI capture commands | Implemented |
99
+ | `protected-path-write-guard` script | Implemented |
100
+ | `loop-cap-guard` script | Implemented |
101
+ | `session-start` script | Implemented |
102
+ | `post-tool-lint` script | Implemented |
103
+ | Native execution helpers | Planned |
@@ -0,0 +1,133 @@
1
+ # loop_cap_guard
2
+
3
+ > `PreToolUse` · Guard · Stops additional loop iterations after the configured phase cap is reached. Hard stop — exit 43.
4
+
5
+ | Property | Value |
6
+ |---|---|
7
+ | **Hook ID** | `loop_cap_guard` |
8
+ | **Trigger event** | Before each phase iteration, after the cap threshold is reached |
9
+ | **Failure mode** | `block` — exits `43` on violation |
10
+ | **Exit codes** | `0` allow · `43` block |
11
+ | **Script** | `hooks/loop-cap-guard` |
12
+
13
+ ## What It Guards
14
+
15
+ `loop_cap_guard` prevents runaway iteration. AI agents in a loop — debugging, verification retries, re-planning cycles — can iterate indefinitely when not constrained. This guard reads the current loop count from `status.json` and blocks the iteration if the configured cap for the current phase has been exceeded.
16
+
17
+ This is a hard block. Exit code `43` causes the host to reject the next iteration and surface the situation to the operator for a decision.
18
+
19
+ ## Why Loop Caps Matter
20
+
21
+ | Without loop_cap_guard | With loop_cap_guard |
22
+ |---|---|
23
+ | Debug loop runs 20+ cycles, no resolution | Debug loop capped at 3 — unresolved after cap is reported |
24
+ | Verification retries forever on a flaky test | Verification retries capped — flakiness documented, escalated |
25
+ | Re-planning cycles consume entire context window | Re-planning capped — operator is asked to unblock |
26
+ | No way to distinguish "working hard" from "spinning" | Cap breach is an explicit signal: escalation needed |
27
+
28
+ ## Trigger Event
29
+
30
+ Fires before each new iteration of a phase loop. Receives `run_id` and `phase` as inputs and reads the current iteration count from `status.json`.
31
+
32
+ ## Logic
33
+
34
+ 1. **Read payload** — `run_id` and `phase` from stdin.
35
+ 2. **Read `status.json`** — load the current loop count for the phase.
36
+ 3. **Load phase cap** — look up the configured cap for this phase.
37
+ 4. **Evaluate** — is `current_count >= cap`?
38
+ 5. **If under cap** — allow. Emit `{ "guard_decision": { "allowed": true } }`. Exit `0`.
39
+ 6. **If at or over cap** — block. Emit `{ "guard_decision": { "allowed": false } }`. Exit `43`.
40
+
41
+ ```javascript
42
+ // Decision shapes
43
+ { "guard_decision": { "allowed": true } }
44
+ { "guard_decision": { "allowed": false, "reason": "loop cap exceeded for phase: debug (cap: 3, current: 3)" } }
45
+ ```
46
+
47
+ ## Configuration
48
+
49
+ | Parameter | Required | Source | Description |
50
+ |---|---|---|---|
51
+ | `run_id` | Yes | Payload | Current session run identifier |
52
+ | `phase` | Yes | Payload | Phase name being iterated (e.g., `debug`, `verify`) |
53
+ | Phase caps | Yes | Status/config | Per-phase iteration limits |
54
+
55
+ ## What Happens on Violation
56
+
57
+ When the loop cap is exceeded:
58
+
59
+ 1. Guard emits `{ "guard_decision": { "allowed": false } }` to stdout.
60
+ 2. Script exits `43`.
61
+ 3. The host rejects the next iteration.
62
+ 4. The agent receives a block notification.
63
+ 5. The agent must surface the situation to the operator.
64
+
65
+ When the agent receives a `43` exit:
66
+ - Do not retry the blocked iteration.
67
+ - Do not invent certainty about what would have happened next.
68
+ - Record the block in the active execution artifact or handoff.
69
+ - Present the unresolved state and the evidence gathered so far to the operator.
70
+ - Ask the operator to decide: continue (with a raised cap), investigate differently, or defer.
71
+
72
+ > [!WARNING]
73
+ > A loop cap breach is not a failure of the agent — it is a signal that human judgment is needed. The correct response is escalation with evidence, not a workaround.
74
+
75
+ ## Example
76
+
77
+ **Scenario:** Debugging loop reaches 3 cycles without resolving the issue.
78
+
79
+ ```
80
+ Loop 1: wz:debugging cycle — hypothesis H1 tested, rejected
81
+ Loop 2: wz:debugging cycle — hypothesis H2 tested, rejected
82
+ Loop 3: wz:debugging cycle — hypothesis H3 tested, rejected
83
+
84
+ Loop 4 attempted:
85
+ loop_cap_guard fires:
86
+ Input: { "run_id": "run-42", "phase": "debug" }
87
+ Reads status.json: { "debug_loop_count": 3 }
88
+ Configured cap for "debug": 3
89
+ 3 >= 3 → BLOCK
90
+ Output: { "guard_decision": { "allowed": false, "reason": "loop cap exceeded..." } }
91
+ Exit: 43
92
+
93
+ Host blocks Loop 4.
94
+ Agent responds:
95
+ "I've completed 3 debugging cycles without resolving the failure. The loop cap has been reached.
96
+
97
+ Evidence gathered:
98
+ - H1: Redis not connected (rejected — connection log shows it is connected)
99
+ - H2: Test setup race condition (rejected — added await, same failure)
100
+ - H3: Off-by-one in token count (rejected — manual inspection shows correct math)
101
+
102
+ Unresolved: I don't know why the middleware returns 200 instead of 429.
103
+ Next step options:
104
+ 1. Add verbose debug logging and re-run with cap raised
105
+ 2. Escalate to a human reviewer with the evidence above
106
+ 3. Defer and open an issue"
107
+ ```
108
+
109
+ ## Testing
110
+
111
+ ```bash
112
+ # Test the guard script
113
+ echo '{"run_id":"test-run","phase":"debug"}' | node hooks/loop-cap-guard
114
+ # With no status file: should allow (exit 0) — no loop count yet
115
+
116
+ # Test with a status file showing cap exceeded
117
+ # (requires setting up a status.json with loop count at cap)
118
+
119
+ # Validate hook definition
120
+ node tooling/src/cli.js validate hooks
121
+
122
+ # Doctor check (includes loop cap guard status)
123
+ node tooling/src/cli.js doctor --json
124
+ ```
125
+
126
+ ## Host Fallback
127
+
128
+ | Host | Fallback |
129
+ |---|---|
130
+ | Claude | `native_or_wrapper` |
131
+ | Codex | `wrapper_command` |
132
+ | Gemini | `wrapper_command` |
133
+ | Cursor | `native_or_wrapper` |
@@ -0,0 +1,121 @@
1
+ # post_tool_capture
2
+
3
+ > `PostToolUse` · Capture · Appends tool execution events and captures output metadata after every tool run.
4
+
5
+ | Property | Value |
6
+ |---|---|
7
+ | **Hook ID** | `post_tool_capture` |
8
+ | **Trigger event** | After every tool execution completes |
9
+ | **Failure mode** | `capture` — exits 0, never interrupts the agent |
10
+ | **Exit codes** | `0` always |
11
+
12
+ ## What It Guards
13
+
14
+ `post_tool_capture` is the write half of the capture pipeline. After every tool executes, this hook appends a structured event record to `events.ndjson`, writes any captured output to the registered capture path, and updates `status.json` with the latest tool execution state.
15
+
16
+ This creates a complete, queryable record of every tool call in a session — the raw material for `pre_compact_summary` and `stop_handoff_harvest`.
17
+
18
+ ## Trigger Event
19
+
20
+ Fires after every tool execution, receiving the command and exit code as inputs.
21
+
22
+ ## Logic
23
+
24
+ 1. **Receive execution result** — command string and exit code from the completed tool.
25
+ 2. **Write captured output** — if a capture path was registered by `pre_tool_capture_route`, write the output to that file.
26
+ 3. **Append event** — append a structured event to `events.ndjson` with timestamp, command, exit code, and capture path reference.
27
+ 4. **Update status** — write latest tool execution state to `status.json`.
28
+ 5. **Exit 0** — agent proceeds in all cases.
29
+
30
+ ## Configuration
31
+
32
+ | Parameter | Required | Description |
33
+ |---|---|---|
34
+ | `command` | Yes | The command that just executed |
35
+ | `exit_code` | Yes | The exit code from the tool execution |
36
+
37
+ ## What Happens on Violation
38
+
39
+ This hook does not block. On failure:
40
+
41
+ | Condition | Outcome |
42
+ |---|---|
43
+ | Write fails (disk full, permissions) | Error logged to stderr; agent proceeds |
44
+ | `status.json` not initialized | Event append attempted, may fail silently |
45
+ | No capture path registered | Output not written to file; event still recorded |
46
+
47
+ **Side effects produced:**
48
+
49
+ | Artifact | Location | Description |
50
+ |---|---|---|
51
+ | `events.ndjson` | `~/.wazir/projects/<slug>/events.ndjson` | Newline-delimited JSON event stream |
52
+ | Capture file | Registered capture path | Raw tool output (if capture was routed) |
53
+ | `status.json` | `~/.wazir/projects/<slug>/status.json` | Updated run status |
54
+
55
+ ## Event Record Format
56
+
57
+ Each appended event has this shape:
58
+
59
+ ```json
60
+ {
61
+ "ts": "2026-03-13T10:23:45.123Z",
62
+ "type": "tool_execution",
63
+ "command": "npm test",
64
+ "exit_code": 0,
65
+ "capture_path": "~/.wazir/projects/myapp/captures/run-42/npm-test-001.txt"
66
+ }
67
+ ```
68
+
69
+ ## Example
70
+
71
+ **Scenario:** Full session showing the capture pipeline in action.
72
+
73
+ ```
74
+ 1. session_start fires → status.json initialized
75
+
76
+ 2. Agent runs: npm test
77
+ pre_tool_capture_route → capture_path registered: captures/run-42/npm-test-001.txt
78
+ Tool executes: npm test (exit 0, 127 tests passing)
79
+ post_tool_capture fires:
80
+ → Writes test output to captures/run-42/npm-test-001.txt (47KB)
81
+ → Appends to events.ndjson: { "command": "npm test", "exit_code": 0, ... }
82
+ → Updates status.json: { "last_command": "npm test", "status": "ok" }
83
+
84
+ 3. Agent runs: node --version
85
+ pre_tool_capture_route → no capture needed
86
+ Tool executes: node --version (exit 0)
87
+ post_tool_capture fires:
88
+ → No capture file to write
89
+ → Appends to events.ndjson: { "command": "node --version", "exit_code": 0 }
90
+ → Updates status.json
91
+
92
+ 4. pre_compact_summary fires → reads events.ndjson, produces summary.md
93
+ ```
94
+
95
+ ## Testing
96
+
97
+ ```bash
98
+ # Initialize a test run
99
+ wazir capture init
100
+
101
+ # Simulate an event append
102
+ wazir capture event --command "npm test" --exit-code 0
103
+
104
+ # Check the events file
105
+ cat ~/.wazir/projects/wazir/events.ndjson
106
+
107
+ # Validate hook definition
108
+ node tooling/src/cli.js validate hooks
109
+ ```
110
+
111
+ > [!TIP]
112
+ > The events.ndjson file is the authoritative session audit trail. `pre_compact_summary` and `stop_handoff_harvest` both read from it to produce their summaries.
113
+
114
+ ## Host Fallback
115
+
116
+ | Host | Fallback |
117
+ |---|---|
118
+ | Claude | `native_hook` |
119
+ | Codex | `wrapper_command` |
120
+ | Gemini | `wrapper_command` |
121
+ | Cursor | `native_or_wrapper` |