@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,130 @@
1
+ # post-tool-lint
2
+
3
+ > `PostToolUse` · Guard · Validates JavaScript file syntax immediately after any write that produces a `.js` file.
4
+
5
+ | Property | Value |
6
+ |---|---|
7
+ | **Script** | `hooks/post-tool-lint` |
8
+ | **Trigger event** | After a tool write that produces a `.js` file |
9
+ | **Failure mode** | Syntax error blocks — exits `2` |
10
+ | **Exit codes** | `0` allow · `2` syntax error |
11
+
12
+ ## What It Guards
13
+
14
+ `post-tool-lint` catches JavaScript syntax errors the moment a `.js` file is written — before the error can propagate to a test run or a runtime crash. It runs `node --check` on the written file immediately after each write, producing an actionable error message pinpointing exactly which file has the problem.
15
+
16
+ This is the fastest possible syntax feedback loop: error surfaces at write time, not at execution time.
17
+
18
+ ## Trigger Event
19
+
20
+ Fires after any tool execution that writes a file. Checks whether the written file path ends in `.js`. If not, exits immediately with `0` (no-op). If yes, runs the syntax check.
21
+
22
+ ## Logic
23
+
24
+ 1. **Read payload** — attempt to parse tool input JSON from stdin; fall back to `CLAUDE_TOOL_FILE_PATH` env variable.
25
+ 2. **Extract file path** — from `tool_input.file_path` in payload or the env variable.
26
+ 3. **Check extension** — if not `.js`, exit `0` immediately (no-op for all other file types).
27
+ 4. **Check file existence** — if the file doesn't exist on disk, exit `0` (write may have been blocked or virtual).
28
+ 5. **Run `node --check`** — execute syntax-only validation (no execution, no side effects).
29
+ 6. **If valid** — exit `0`.
30
+ 7. **If syntax error** — write error details to stderr. Exit `2`.
31
+
32
+ ## Configuration
33
+
34
+ | Parameter | Source | Description |
35
+ |---|---|---|
36
+ | File path | `tool_input.file_path` or `CLAUDE_TOOL_FILE_PATH` | The `.js` file to lint |
37
+
38
+ The hook is stateless — no configuration files or manifests needed.
39
+
40
+ ## What Happens on Violation
41
+
42
+ When a `.js` file has a syntax error:
43
+
44
+ 1. Script writes a detailed error to stderr:
45
+ ```
46
+ Syntax error in src/middleware/rate-limit.js:
47
+ /path/to/src/middleware/rate-limit.js:23
48
+ const foo = {
49
+ ^
50
+ SyntaxError: Unexpected token '}'
51
+ ```
52
+ 2. Script exits `2`.
53
+ 3. The host surfaces the error to the agent.
54
+ 4. The agent must fix the syntax error and rewrite the file.
55
+
56
+ > [!WARNING]
57
+ > Exit `2` from this hook means the last write produced invalid JavaScript. Do not continue to the next implementation step — fix the syntax error first. A broken `.js` file that passes to the next tool call is harder to debug than one caught immediately.
58
+
59
+ ## Example
60
+
61
+ **Scenario:** Agent writes a middleware file with a missing closing brace.
62
+
63
+ ```javascript
64
+ // Written: src/middleware/rate-limit.js (line 23 has missing brace)
65
+ export function rateLimit(options) {
66
+ return (req, res, next) => {
67
+ const tokens = getTokens(req.auth);
68
+ if (tokens <= 0) {
69
+ return res.status(429).json({ error: 'Rate limit exceeded' });
70
+ // Missing: closing brace for if block
71
+ next();
72
+ };
73
+ }
74
+ ```
75
+
76
+ ```
77
+ post-tool-lint fires:
78
+ File: src/middleware/rate-limit.js
79
+ Extension: .js — proceed with check
80
+ Runs: node --check src/middleware/rate-limit.js
81
+
82
+ Syntax error in src/middleware/rate-limit.js:
83
+ ...
84
+ SyntaxError: Unexpected token '}'
85
+ at line 28
86
+
87
+ Exit: 2
88
+
89
+ Agent receives the error:
90
+ "Syntax error in the written file. Fixing the missing closing brace in the if block."
91
+ [Agent rewrites the file with correct syntax]
92
+
93
+ post-tool-lint fires again:
94
+ node --check → exits 0
95
+ Exit: 0 — file is valid
96
+ ```
97
+
98
+ **Scenario:** Agent writes a markdown file — hook is a no-op.
99
+
100
+ ```
101
+ post-tool-lint fires:
102
+ File: docs/plans/2026-03-13-design.md
103
+ Extension: .md — not .js, exit 0 immediately
104
+ ```
105
+
106
+ ## Testing
107
+
108
+ ```bash
109
+ # Test with a valid JS file
110
+ echo 'const x = 1;' > /tmp/test-valid.js
111
+ CLAUDE_TOOL_FILE_PATH=/tmp/test-valid.js node hooks/post-tool-lint
112
+ echo $? # Expected: 0
113
+
114
+ # Test with an invalid JS file
115
+ echo 'const x = {' > /tmp/test-invalid.js
116
+ CLAUDE_TOOL_FILE_PATH=/tmp/test-invalid.js node hooks/post-tool-lint
117
+ echo $? # Expected: 2
118
+
119
+ # Test with a non-JS file (no-op)
120
+ CLAUDE_TOOL_FILE_PATH=/tmp/README.md node hooks/post-tool-lint
121
+ echo $? # Expected: 0
122
+
123
+ # Test with JSON payload
124
+ echo '{"tool_input":{"file_path":"/tmp/test-valid.js"}}' | node hooks/post-tool-lint
125
+ echo $? # Expected: 0
126
+ ```
127
+
128
+ ## Scope
129
+
130
+ `post-tool-lint` only checks `.js` files. TypeScript, JSON, YAML, and other file types are not checked by this hook. TypeScript syntax validation requires a separate tsc-based hook.
@@ -0,0 +1,122 @@
1
+ # pre_compact_summary
2
+
3
+ > `PreCompact` · Observability · Summarizes captured session state before context compaction or handoff so nothing is lost when the context window shrinks.
4
+
5
+ | Property | Value |
6
+ |---|---|
7
+ | **Hook ID** | `pre_compact_summary` |
8
+ | **Trigger event** | Before context compaction or session handoff |
9
+ | **Failure mode** | `warn` — exits 0, compaction proceeds even if summary fails |
10
+ | **Exit codes** | `0` always |
11
+
12
+ ## What It Guards
13
+
14
+ Context compaction discards detail to make room. `pre_compact_summary` runs immediately before compaction and writes a structured summary of everything captured in the current run — tool executions, outcomes, findings — so that information survives the compaction in human-readable form.
15
+
16
+ Without this hook, compaction discards the raw `events.ndjson` detail and the next agent turn starts with no record of what was executed or what happened.
17
+
18
+ ## Trigger Event
19
+
20
+ Fires immediately before the host performs context compaction or before a session handoff is initiated.
21
+
22
+ ## Logic
23
+
24
+ 1. **Receive run ID** — identify the current session's state directory.
25
+ 2. **Read `events.ndjson`** — load the complete event stream for this run.
26
+ 3. **Read any capture files** — load content from capture paths registered during the run.
27
+ 4. **Produce summary** — synthesize events and captures into a structured `summary.md`.
28
+ 5. **Write `summary.md`** — persist to the run state directory.
29
+ 6. **Exit 0** — compaction proceeds regardless.
30
+
31
+ ## Configuration
32
+
33
+ | Parameter | Required | Description |
34
+ |---|---|---|
35
+ | `run_id` | Yes | The current session run identifier |
36
+
37
+ ## What Happens on Violation
38
+
39
+ This hook does not block. On failure:
40
+
41
+ | Condition | Outcome |
42
+ |---|---|
43
+ | `events.ndjson` not found | Warning emitted; summary written with "no events captured" note |
44
+ | Write fails | Warning to stderr; compaction proceeds without summary |
45
+ | Hook encounters an error | Warning emitted; compaction proceeds |
46
+
47
+ **Side effects produced:**
48
+
49
+ | Artifact | Location | Description |
50
+ |---|---|---|
51
+ | `summary.md` | `~/.wazir/projects/<slug>/summary.md` | Structured summary of session captured state |
52
+
53
+ ## Summary Format
54
+
55
+ ```markdown
56
+ # Session Summary — run-42 — 2026-03-13T10:45:00Z
57
+
58
+ ## Tool Executions (7)
59
+ | Command | Exit | Capture |
60
+ |---------|------|---------|
61
+ | npm test | 0 | captures/npm-test-001.txt (47KB, 127 passing) |
62
+ | node tooling/src/cli.js validate hooks | 0 | — |
63
+ | git diff | 0 | captures/git-diff-001.txt (12KB) |
64
+
65
+ ## Key Findings
66
+ - All 127 tests passing after rate-limit middleware implementation
67
+ - Hook validation: all 7 hooks validated
68
+
69
+ ## Captures
70
+ - captures/npm-test-001.txt — full test run output (47KB)
71
+ - captures/git-diff-001.txt — diff of changes in session (12KB)
72
+ ```
73
+
74
+ ## Example
75
+
76
+ **Scenario:** Long implementation session is about to compact.
77
+
78
+ ```
79
+ Agent has run 7 commands during the session. Context is 85% full.
80
+ Host triggers context compaction.
81
+
82
+ pre_compact_summary fires:
83
+ → Reads events.ndjson (7 events)
84
+ → Reads 3 capture files
85
+ → Produces summary.md:
86
+ 7 tool executions
87
+ 2 capture files (60KB total)
88
+ All verifications passed
89
+ → Writes to ~/.wazir/projects/myapp/summary.md
90
+
91
+ Context compacts. Raw event detail discarded.
92
+ Next agent turn reads summary.md — session continuity preserved.
93
+ ```
94
+
95
+ ## Testing
96
+
97
+ ```bash
98
+ # Initialize and add test events
99
+ wazir capture init
100
+ wazir capture event --command "npm test" --exit-code 0
101
+
102
+ # Run the summary
103
+ wazir capture summary
104
+
105
+ # Check the output
106
+ cat ~/.wazir/projects/wazir/summary.md
107
+
108
+ # Validate hook definition
109
+ node tooling/src/cli.js validate hooks
110
+ ```
111
+
112
+ > [!TIP]
113
+ > The `stop_handoff_harvest` hook also produces a `summary.md` — but at session end, not at compaction time. `pre_compact_summary` may fire multiple times in a long session; `stop_handoff_harvest` fires exactly once.
114
+
115
+ ## Host Fallback
116
+
117
+ | Host | Fallback |
118
+ |---|---|
119
+ | Claude | `native_or_wrapper` |
120
+ | Codex | `wrapper_command` |
121
+ | Gemini | `wrapper_command` |
122
+ | Cursor | `wrapper_command` |
@@ -0,0 +1,100 @@
1
+ # pre_tool_capture_route
2
+
3
+ > `PreToolUse` · Capture · Routes large command output away from model context before the tool runs.
4
+
5
+ | Property | Value |
6
+ |---|---|
7
+ | **Hook ID** | `pre_tool_capture_route` |
8
+ | **Trigger event** | Before a tool execution that may produce large output |
9
+ | **Failure mode** | `warn` — exits 0, never blocks tool execution |
10
+ | **Exit codes** | `0` always |
11
+
12
+ ## What It Guards
13
+
14
+ `pre_tool_capture_route` prevents large tool outputs from flooding the model's context window. When a command is about to run that could produce substantial output (test suites, build logs, audit results), this hook registers a capture target so the output is written to disk rather than injected directly into the model's active context.
15
+
16
+ Without this hook, large outputs can consume the context window, degrade response quality, and trigger expensive context compaction cycles.
17
+
18
+ ## Trigger Event
19
+
20
+ Fires before each tool execution, evaluated against the command being run to determine whether capture routing is needed.
21
+
22
+ ## Logic
23
+
24
+ 1. **Receive command** — the incoming tool's command string is passed as input.
25
+ 2. **Evaluate output size risk** — assess whether the command is likely to produce large output (e.g., full test suites, build systems, log tails, dependency scans).
26
+ 3. **Register capture target** — if routing is warranted, create a capture path where output will be written (a file under the run's state directory).
27
+ 4. **Emit capture path** — return the `capture_path` so the tool execution layer knows where to redirect output.
28
+ 5. **Exit 0** — tool execution proceeds in all cases.
29
+
30
+ ## Configuration
31
+
32
+ | Parameter | Required | Description |
33
+ |---|---|---|
34
+ | `command` | Yes | The command string about to be executed |
35
+
36
+ ## What Happens on Violation
37
+
38
+ This hook does not block. On failure or when routing is not needed:
39
+
40
+ | Condition | Outcome |
41
+ |---|---|
42
+ | Command unlikely to produce large output | No capture path registered; output goes to context normally |
43
+ | Hook encounters an error | Warning emitted; tool proceeds without capture routing |
44
+
45
+ **Side effects produced:**
46
+
47
+ | Artifact | Location | Description |
48
+ |---|---|---|
49
+ | `capture_path` | State root | File path where captured output will be written |
50
+ | Capture target registration | Session state | Records the intent to capture for this command |
51
+
52
+ ## Example
53
+
54
+ **Scenario:** Agent is about to run a full test suite.
55
+
56
+ ```
57
+ Pre-tool hook fires with: { "command": "npm test" }
58
+
59
+ Hook evaluates: npm test likely produces > 500 lines of output
60
+ Hook creates capture target: ~/.wazir/projects/myapp/captures/run-42/npm-test-001.txt
61
+ Hook returns: { "capture_path": "~/.wazir/projects/myapp/captures/run-42/npm-test-001.txt" }
62
+
63
+ Tool execution proceeds, output routed to capture path.
64
+ Model context receives a summary reference rather than raw test output.
65
+ ```
66
+
67
+ **Scenario:** Agent runs a small targeted command.
68
+
69
+ ```
70
+ Pre-tool hook fires with: { "command": "node --version" }
71
+
72
+ Hook evaluates: single-line output, no capture needed.
73
+ No capture path registered.
74
+ Output goes directly to context normally.
75
+ ```
76
+
77
+ ## Testing
78
+
79
+ ```bash
80
+ # Validate hook definition
81
+ node tooling/src/cli.js validate hooks
82
+
83
+ # Test capture init (which pre_tool_capture_route depends on)
84
+ wazir capture init
85
+
86
+ # Test capture route registration
87
+ wazir capture route --path /tmp/test-capture.txt
88
+ ```
89
+
90
+ > [!TIP]
91
+ > The `post_tool_capture` hook is the counterpart to this hook — it writes the actual captured output after tool execution. Both hooks must be registered for the capture pipeline to work end-to-end.
92
+
93
+ ## Host Fallback
94
+
95
+ | Host | Fallback |
96
+ |---|---|
97
+ | Claude | `native_hook` |
98
+ | Codex | `wrapper_command` |
99
+ | Gemini | `wrapper_command` |
100
+ | Cursor | `native_or_wrapper` |
@@ -0,0 +1,128 @@
1
+ # protected_path_write_guard
2
+
3
+ > `PreToolUse` · Guard · Blocks writes to canonical protected paths outside approved regeneration flows. Hard stop — exit 42.
4
+
5
+ | Property | Value |
6
+ |---|---|
7
+ | **Hook ID** | `protected_path_write_guard` |
8
+ | **Trigger event** | Any write operation targeting a protected path |
9
+ | **Failure mode** | `block` — exits `42` on violation |
10
+ | **Exit codes** | `0` allow · `42` block |
11
+ | **Script** | `hooks/protected-path-write-guard` |
12
+
13
+ ## What It Guards
14
+
15
+ `protected_path_write_guard` enforces the boundary between read-only operator truth and agent-modifiable surfaces. Certain paths in the Wazir repo are canonical — they define roles, schemas, workflows, and host exports. Modifying them outside of the approved `export build` regeneration flow would silently corrupt the project's source of truth.
16
+
17
+ This guard is a hard block. Exit code `42` causes the host to reject the write immediately.
18
+
19
+ ## Protected Paths
20
+
21
+ | Path | Why Protected |
22
+ |---|---|
23
+ | `input/` | Operator-supplied requirements — read-only by agents |
24
+ | `roles/` | Canonical role contracts — modified only by maintainers |
25
+ | `workflows/` | Phase entrypoints — modified only by maintainers |
26
+ | `schemas/` | Validation schemas — modified only by maintainers |
27
+ | `exports/hosts/` | Generated host packages — regenerated only via `export build` |
28
+
29
+ ## Trigger Event
30
+
31
+ Fires before any file write operation. Receives the target path as input and evaluates it against the protected path list from `wazir.manifest.yaml`.
32
+
33
+ ## Logic
34
+
35
+ 1. **Read target path** from tool input payload.
36
+ 2. **Load protected paths** from manifest (`wazir.manifest.yaml → protected_paths`).
37
+ 3. **Evaluate match** — does the target path fall under any protected path prefix?
38
+ 4. **If no match** — write is allowed. Exit `0`.
39
+ 5. **If match** — write is blocked. Emit guard decision JSON to stdout. Exit `42`.
40
+
41
+ ```javascript
42
+ // Decision shape
43
+ { "guard_decision": { "allowed": false, "reason": "protected path: input/" } }
44
+ ```
45
+
46
+ ## Configuration
47
+
48
+ | Parameter | Required | Source | Description |
49
+ |---|---|---|---|
50
+ | `target_path` | Yes | Tool input payload | The file path being written |
51
+ | Protected paths list | Yes | `wazir.manifest.yaml` | `protected_paths` array |
52
+
53
+ ## What Happens on Violation
54
+
55
+ When a write targets a protected path:
56
+
57
+ 1. Guard emits `{ "guard_decision": { "allowed": false } }` to stdout.
58
+ 2. Script exits `42`.
59
+ 3. The host rejects the write operation.
60
+ 4. The agent receives a block notification.
61
+ 5. No write occurs.
62
+
63
+ The agent should respond to a `42` exit by:
64
+ - Explaining why the write was blocked.
65
+ - Asking the operator if a regeneration flow should be triggered (`export build`) if the intent was to update exports.
66
+ - Proceeding without the write if the intent was a direct edit of a protected file.
67
+
68
+ > [!WARNING]
69
+ > Exit code `42` is not an error — it is an intentional block. Do not retry the write. Do not attempt to work around the guard by writing to a temporary path and then moving the file.
70
+
71
+ ## Example
72
+
73
+ **Scenario:** Agent attempts to directly edit a role file.
74
+
75
+ ```
76
+ Agent attempts: Write to roles/executor.md
77
+
78
+ protected_path_write_guard fires:
79
+ Input: { "target_path": "roles/executor.md" }
80
+ Checks against protected_paths: ["input", "roles", "workflows", "schemas", "exports/hosts"]
81
+ Match found: "roles"
82
+ Output: { "guard_decision": { "allowed": false, "reason": "protected path: roles/" } }
83
+ Exit: 42
84
+
85
+ Host blocks the write.
86
+ Agent receives block notification.
87
+ Agent responds: "roles/executor.md is a protected canonical path and cannot be written directly.
88
+ To modify role contracts, make changes through the maintainer review process."
89
+ ```
90
+
91
+ **Scenario:** Agent writes to an allowed path.
92
+
93
+ ```
94
+ Agent attempts: Write to docs/plans/2026-03-13-design.md
95
+
96
+ protected_path_write_guard fires:
97
+ Input: { "target_path": "docs/plans/2026-03-13-design.md" }
98
+ Checks against protected_paths — no match.
99
+ Output: { "guard_decision": { "allowed": true } }
100
+ Exit: 0
101
+
102
+ Write proceeds normally.
103
+ ```
104
+
105
+ ## Testing
106
+
107
+ ```bash
108
+ # Test the guard script directly
109
+ echo '{"target_path": "input/requirements.md"}' | node hooks/protected-path-write-guard
110
+ # Expected exit: 42
111
+ # Expected stdout: {"guard_decision":{"allowed":false,...}}
112
+
113
+ echo '{"target_path": "docs/plans/my-plan.md"}' | node hooks/protected-path-write-guard
114
+ # Expected exit: 0
115
+ # Expected stdout: {"guard_decision":{"allowed":true}}
116
+
117
+ # Validate hook definition
118
+ node tooling/src/cli.js validate hooks
119
+ ```
120
+
121
+ ## Host Fallback
122
+
123
+ | Host | Fallback |
124
+ |---|---|
125
+ | Claude | `native_or_wrapper` |
126
+ | Codex | `wrapper_command` |
127
+ | Gemini | `wrapper_command` |
128
+ | Cursor | `native_or_wrapper` |
@@ -0,0 +1,119 @@
1
+ # session_start
2
+
3
+ > `PreToolUse` · Observability · Initializes run-local status capture and injects the skill bootstrap at every session start.
4
+
5
+ | Property | Value |
6
+ |---|---|
7
+ | **Hook ID** | `session_start` |
8
+ | **Trigger event** | Session begins |
9
+ | **Failure mode** | `capture` — always exits 0, never blocks the session |
10
+ | **Exit codes** | `0` always |
11
+ | **Script** | `hooks/session-start` |
12
+
13
+ ## What It Guards
14
+
15
+ `session_start` does two things: it bootstraps skill discovery by injecting the `wz:using-skills` skill content into the agent's system context, and it initializes the run-local `status.json` file that all other capture hooks write to throughout the session.
16
+
17
+ Without this hook firing correctly:
18
+ - Skills are not auto-discovered — the agent operates without the skill framework.
19
+ - Capture hooks have no status file to append to — observability is broken.
20
+
21
+ ## Trigger Event
22
+
23
+ Fires once at the start of every session, before any tool or agent response.
24
+
25
+ ## Logic
26
+
27
+ 1. **Resolve skill file** — locate `skills/using-skills/SKILL.md` relative to the hooks directory.
28
+ 2. **Read skill content** — read the full `SKILL.md` file.
29
+ 3. **Write to stdout** — emit the skill content wrapped in `<EXTREMELY_IMPORTANT>` tags so the host injects it as a system-level instruction.
30
+ 4. **Exit 0** — session proceeds regardless of outcome.
31
+
32
+ If `SKILL.md` is not found:
33
+ 1. Write a `<system-reminder>` warning to stdout indicating the skill is missing.
34
+ 2. Exit 0 — session proceeds without skill bootstrap.
35
+
36
+ ## Configuration
37
+
38
+ | Parameter | Source | Description |
39
+ |---|---|---|
40
+ | `project_root` | Runtime (resolved from script location) | Root of the Wazir repo |
41
+ | `run_id` | Runtime (session context) | Unique identifier for this session run |
42
+ | Skill file path | Hardcoded relative: `skills/using-skills/SKILL.md` | Location of the bootstrap skill |
43
+
44
+ ## What Happens on Violation
45
+
46
+ This hook does not block. It always exits 0. Failure modes:
47
+
48
+ | Condition | Outcome |
49
+ |---|---|
50
+ | `SKILL.md` not found | Warning emitted to stdout; session proceeds without skill bootstrap |
51
+ | Script parse/runtime error | Error written to stderr; session proceeds |
52
+
53
+ **Side effects produced:**
54
+
55
+ | Artifact | Location | Description |
56
+ |---|---|---|
57
+ | `status.json` | `~/.wazir/projects/<slug>/status.json` | Run-local status file, initialized for this session |
58
+ | Skill content | Agent system context | Full `wz:using-skills` skill injected as `<EXTREMELY_IMPORTANT>` |
59
+
60
+ ## Example
61
+
62
+ **Normal operation:**
63
+
64
+ ```bash
65
+ node hooks/session-start
66
+ # Stdout:
67
+ <EXTREMELY_IMPORTANT>
68
+ You have skills.
69
+
70
+ **Below is the full content of your 'wz:using-skills' skill:**
71
+
72
+ ---
73
+ name: wz:using-skills
74
+ ...
75
+ </EXTREMELY_IMPORTANT>
76
+ ```
77
+
78
+ **Missing skill file:**
79
+
80
+ ```bash
81
+ # After removing skills/using-skills/SKILL.md
82
+ node hooks/session-start
83
+ # Stdout:
84
+ <system-reminder>
85
+ WARNING: wz:using-skills skill not found at /path/to/skills/using-skills/SKILL.md
86
+ The Wazir skill bootstrap is not available. Skills will not be auto-discovered.
87
+ Run: check that skills/using-skills/SKILL.md exists.
88
+ </system-reminder>
89
+ ```
90
+
91
+ ## Testing
92
+
93
+ ```bash
94
+ # Verify normal operation
95
+ node hooks/session-start | head -3
96
+ # Expected: <EXTREMELY_IMPORTANT>
97
+
98
+ # Verify skill content is present
99
+ node hooks/session-start | grep "wz:using-skills"
100
+ # Expected: name: wz:using-skills
101
+
102
+ # Verify graceful degradation
103
+ mv skills/using-skills/SKILL.md /tmp/SKILL.md.bak
104
+ node hooks/session-start | grep "WARNING"
105
+ # Expected: WARNING: wz:using-skills skill not found
106
+ mv /tmp/SKILL.md.bak skills/using-skills/SKILL.md
107
+
108
+ # Validate hook definition against schema
109
+ node tooling/src/cli.js validate hooks
110
+ ```
111
+
112
+ ## Host Fallback
113
+
114
+ | Host | Fallback |
115
+ |---|---|
116
+ | Claude | `native_hook` |
117
+ | Codex | `wrapper_command` |
118
+ | Gemini | `wrapper_command` |
119
+ | Cursor | `native_or_wrapper` |