@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,592 @@
1
+ # CLI Pipeline Integration Design
2
+
3
+ > **Status:** Draft v4
4
+ > **Date:** 2026-03-15
5
+ > **Author:** Mohamed Abdallah
6
+ > **Scope:** Wire all 7 CLI command families into the agent pipeline so roles, workflows, skills, and hooks leverage indexing, recall, validation, capture, doctor, status, and export drift detection instead of raw file reads.
7
+ > **Review rounds:** 3 adversarial reviews completed. All critical, important, and most minor issues addressed.
8
+
9
+ ---
10
+
11
+ ## Problem Statement
12
+
13
+ Wazir ships 7 CLI command families (validate, capture, index, recall, doctor, status, export) but the agent pipeline only uses 2 of them (validate partially in verifier, capture via hooks). Every role says "local file reads" and "targeted repo reads," burning full file contents into context when L0/L1 summaries exist. The index, recall, doctor, status, and export drift systems are fully implemented but disconnected from the pipeline.
14
+
15
+ ## Goals
16
+
17
+ 1. Every CLI feature is used by the pipeline at the appropriate checkpoint
18
+ 2. Token consumption drops significantly on exploration-heavy phases via tiered recall
19
+ 3. Full audit trail via run lifecycle capture across all pipeline phases
20
+ 4. Broken repo state is caught before work begins (doctor) and after work completes (validate + export drift)
21
+ 5. Session recovery is possible via status reads across compaction boundaries
22
+ 6. Symbol-first exploration replaces grep-everything for debugging and review
23
+
24
+ ## Non-Goals
25
+
26
+ - Requiring index for simple/small tasks — agent decides based on bootstrap guidance
27
+ - Breaking existing hook behavior — capture hooks stay as-is
28
+ - Adding new recall tiers — L0 and L1 are the only valid `--tier` values
29
+ - Concurrent session safety — v1 assumes single session per project (see Risks)
30
+
31
+ ---
32
+
33
+ ## Acknowledged CLI Changes
34
+
35
+ This design requires **five** minor CLI changes to existing command handlers:
36
+
37
+ 1. **`tooling/src/checks/command-registry.js`** — Add `'wazir capture usage'` to `SUPPORTED_COMMAND_SUBJECTS`
38
+ 2. **`tooling/src/capture/command.js` → `handleInit`** — Import and call `initUsage(runPaths, runId)` from `usage.js`; write run ID to `<state-root>/runs/latest` (plain text file)
39
+ 3. **`tooling/src/capture/command.js` → `handleOutput`** — Import and call `recordCaptureSavings(runPaths, rawBytes, 0)` after `writeCaptureOutput` (summaryBytes is 0 because all bytes were routed to file instead of context)
40
+ 4. **`tooling/src/capture/command.js` → `handleEvent`** — Import and call `recordPhaseUsage(runPaths, phase, data)` when event is `phase_enter` or `phase_exit`
41
+ 5. **`tooling/src/capture/usage.js` → `recordPhaseUsage`** — Change `events_count` from replace to increment semantics: `existing.events_count += data.events_count ?? 0` (current code overwrites with `=`, which is a bug)
42
+
43
+ These are small, contained changes to existing handlers — not new commands or new CLI surfaces.
44
+
45
+ ---
46
+
47
+ ## Design Decisions
48
+
49
+ | # | Question | Decision | Rationale |
50
+ |---|----------|----------|-----------|
51
+ | 1 | Session bootstrap strategy | **Hybrid** — hook injects index/doctor guidance; agent decides refresh/build | Fast for small tasks, ensures agent knows index exists |
52
+ | 2 | Recall tier defaults per role | **Role-based** — L0/L1/direct-read assigned per role | Matches how humans work: planner reads structure, executor reads code |
53
+ | 3 | Capture integration depth | **Full run lifecycle** — init, phase events, usage report | Complete audit trail, enables session recovery and token savings proof |
54
+ | 4 | Validation checkpoint placement | **Bookend + export drift** — doctor at start, validate pre+post execution, export check in verifier | Never start work in broken repo, never ship broken state |
55
+ | 5 | Symbol search integration | **Symbol-first** for debugging and review | Biggest token burners explore broadly; funnel search→L1→targeted read |
56
+
57
+ ---
58
+
59
+ ## 1. Session Start Hook — Hybrid Bootstrap
60
+
61
+ ### Current Behavior
62
+
63
+ The session start hook is an **executable Node.js script** at `hooks/session-start` (not a markdown file). Its canonical definition lives at `hooks/definitions/session_start.yaml`. On trigger, it reads `skills/using-skills/SKILL.md`, wraps it in `<EXTREMELY_IMPORTANT>` tags, and writes to stdout for system context injection.
64
+
65
+ The hook fires on `startup|resume|clear|compact` events (configured in the export compiler at `tooling/src/export/compiler.js`, lines 99-116). The hook **cannot distinguish** which trigger event fired — it receives no trigger-type argument or environment variable.
66
+
67
+ ### New Behavior
68
+
69
+ The hook script (`hooks/session-start`) is extended to also inject CLI bootstrap guidance into the system context. This is **not** running doctor/index directly in the hook — the hook injects instructions that tell the agent what to do after bootstrap.
70
+
71
+ ```
72
+ hooks/session-start (executable Node.js script) outputs:
73
+ 1. wz:using-skills injection → existing behavior
74
+ 2. CLI bootstrap block:
75
+ - "Run `wazir doctor --json` to check repo health"
76
+ - "Run `wazir index refresh` to update the index (creates if missing)"
77
+ - "If index refresh reports no database, run `wazir index build && wazir index summarize --tier all`"
78
+ - "Check `<state-root>/runs/latest` for previous run ID"
79
+ - "If previous run is incomplete, resume it; otherwise run `wazir capture init --run <new-id> --phase clarify --status starting`"
80
+ ```
81
+
82
+ **Why `index refresh` instead of `index stats` for freshness:** `index stats` has no staleness metric — it returns counts and timestamps but does not compare against files on disk. `index refresh` is already incremental (hash-based delta), skips unchanged files, and is the correct tool for ensuring the index is current. No freshness heuristic needed.
83
+
84
+ ### Run ID Strategy — Agent-Managed via `capture init` + `latest` File
85
+
86
+ The hook **cannot distinguish** `startup` from `compact`/`resume` triggers, so it cannot know whether to generate a new run ID or reuse an existing one. Therefore:
87
+
88
+ 1. **The hook does NOT generate or manage run IDs.** It only injects guidance text.
89
+ 2. **`capture init` creates the run and writes the run ID** to `<state-root>/runs/latest` (a plain text file containing just the run ID string).
90
+ 3. **On compaction/resume:** The hook injects the same bootstrap guidance. The agent reads `<state-root>/runs/latest` to discover the current run ID. If `latest` exists and the run is incomplete, the agent resumes it.
91
+ 4. **Agent context carries the run ID** between capture calls within a single session segment.
92
+
93
+ ### `latest` File Implementation Detail
94
+
95
+ The `latest` file is written by `handleInit` in `tooling/src/capture/command.js`. Implementation:
96
+
97
+ ```javascript
98
+ // In handleInit, after writeStatus and appendEvent:
99
+ const latestPath = path.join(stateRoot, 'runs', 'latest');
100
+ try {
101
+ fs.writeFileSync(latestPath, options.run, 'utf8');
102
+ } catch {
103
+ // Non-fatal: latest file is a convenience, not required for run operation
104
+ process.stderr.write('Warning: could not write latest run pointer\n');
105
+ }
106
+ ```
107
+
108
+ This writes to `<state-root>/runs/latest` which is outside the `runPaths` structure (which is scoped to `<state-root>/runs/<runId>/`). The `stateRoot` is already available in `handleInit` via `resolveCaptureContext()`. No new store helper is needed — this is a direct `fs.writeFileSync` call.
109
+
110
+ **Collision safety:** The file is named `latest` (no timestamp prefix). A run ID could theoretically be "latest" but the format `run-YYYYMMDD-HHMMSS-XXXX` prevents this.
111
+
112
+ ### Contract Update for `session_start.yaml`
113
+
114
+ The current definition has stale declarations that don't match what the hook actually does:
115
+
116
+ **Current (stale):**
117
+ ```yaml
118
+ input_contract:
119
+ required:
120
+ - project_root
121
+ - run_id # ← hook never receives this
122
+ output_contract:
123
+ produces:
124
+ - status.json # ← hook never produces this
125
+ allowed_side_effects:
126
+ - create_status_file # ← hook never does this
127
+ - append_event # ← hook never does this
128
+ ```
129
+
130
+ **Updated (accurate):**
131
+ ```yaml
132
+ input_contract:
133
+ required:
134
+ - project_root
135
+ output_contract:
136
+ produces:
137
+ - skill_bootstrap_text
138
+ - cli_bootstrap_guidance
139
+ allowed_side_effects: [] # hook only writes to stdout, no side effects
140
+ ```
141
+
142
+ Changes:
143
+ - Remove `run_id` from `input_contract.required` (hook does not receive or generate run IDs)
144
+ - Replace `status.json` with `skill_bootstrap_text` and `cli_bootstrap_guidance` in `output_contract.produces`
145
+ - Empty `allowed_side_effects` (hook only writes to stdout — it has no side effects)
146
+
147
+ ### Run ID Discovery Flow
148
+
149
+ ```
150
+ Agent starts session:
151
+ 1. Hook fires → injects bootstrap guidance (no run ID)
152
+ 2. Agent checks: does <state-root>/runs/latest exist?
153
+ ├─ Yes → read run ID from file
154
+ │ ├─ wazir status --run <id> --json → incomplete? → resume
155
+ │ └─ wazir status --run <id> --json → completed? → capture init (new run)
156
+ └─ No → capture init (new run, generates run ID, writes latest)
157
+ 3. Agent uses run ID for all subsequent capture commands
158
+ ```
159
+
160
+ ### Fallback When Index Build/Summarize Fails
161
+
162
+ If `wazir index build` or `wazir index summarize` fails:
163
+ 1. Agent logs the failure via `wazir capture event --run <id> --event index_build_failed --message "<error>"`
164
+ 2. Agent falls back to direct file reads (the pre-existing behavior)
165
+ 3. Roles that specify L0/L1 defaults treat them as **preferences**, not hard requirements — if recall fails, the role escalates to direct read
166
+ 4. No retry — surface the failure to the user if it's a permissions/config issue
167
+
168
+ Note: `summarize` can throw if zero files are summarizable (all binary/skipped). This is treated the same as a build failure — fall back to direct reads.
169
+
170
+ ### Rules
171
+
172
+ - Hook stays exit 0 (never blocks session start)
173
+ - Doctor/index guidance is injected text, not executed by the hook itself
174
+ - The agent decides whether to act on the guidance
175
+ - Hook behavior is identical on startup, resume, clear, and compact — it always injects the same guidance text (it cannot distinguish triggers)
176
+ - Run ID management is entirely the agent's responsibility (via `capture init` + `latest` file)
177
+
178
+ ### Files Modified
179
+
180
+ - `hooks/session-start` — extend the executable script to inject CLI bootstrap guidance block
181
+ - `hooks/definitions/session_start.yaml` — full contract cleanup: remove `run_id` from input, remove stale `status.json` output and `allowed_side_effects`, add accurate output declarations
182
+
183
+ ---
184
+
185
+ ## 2. Role-Based Recall Tier Defaults
186
+
187
+ ### Tier Definitions
188
+
189
+ | Tier | CLI Flag | Size | Content |
190
+ |------|----------|------|---------|
191
+ | **L0** | `--tier L0` | ~100 tokens | One-line summary |
192
+ | **L1** | `--tier L1` | ~500-2k tokens | Imports + all symbol signatures |
193
+ | **Direct read** | _(no recall, use Read tool)_ | Full content | Raw file — used for editing/verifying |
194
+
195
+ Note: There is no `--tier L2` flag. "Direct read" means using the host's native file read tool (Read, cat, etc.), not a recall command.
196
+
197
+ ### Role Assignments
198
+
199
+ | Role | Default Approach | Rationale |
200
+ |------|-----------------|-----------|
201
+ | Clarifier | Recall L1 | Needs structure, not implementation detail |
202
+ | Researcher | Recall L1 | Explores broadly, needs signatures and outlines |
203
+ | Specifier | Recall L1 | References existing code structure for spec constraints |
204
+ | Content-Author | Recall L1 | Needs to understand what exists, not edit it |
205
+ | Designer | Recall L1 | References code structure for design alignment |
206
+ | Planner | Recall L1 | Reads structure to plan tasks, not every line |
207
+ | Executor | Direct read | Actively editing code — needs full files |
208
+ | Verifier | Direct read | Running and inspecting actual code |
209
+ | Reviewer | Recall L1 → direct read on demand | Starts with structure, drills into flagged issues |
210
+ | Learner | Recall L0 | High-level patterns only — minimal context cost |
211
+
212
+ ### Prerequisite: Summaries Must Exist
213
+
214
+ Roles that default to L0 or L1 require summaries to exist. The session start bootstrap (Section 1) ensures this by instructing the agent to run `wazir index build && wazir index summarize --tier all` when no index exists. If the agent skips indexing (small task, agent's decision), roles fall back to direct reads — the tier default is a preference, not a hard gate.
215
+
216
+ **Graceful degradation chain:** L0 fails → try L1 → L1 fails → direct file read. Every role contract documents this chain explicitly.
217
+
218
+ ### Escalation Rule
219
+
220
+ Any role CAN escalate to a higher tier when justified. The default is a starting point, not a cage. The role must start at its default before going deeper.
221
+
222
+ ### Contract Addition — L1 Roles (clarifier, researcher, specifier, content-author, designer, planner)
223
+
224
+ Added as a new section after `## Allowed Tools`:
225
+
226
+ ```markdown
227
+ ## Context retrieval
228
+
229
+ Default approach: recall L1 (structural summaries)
230
+ - Use `wazir index search-symbols <query>` to locate relevant code
231
+ - Use `wazir recall file <path> --tier L1` for structural understanding
232
+ - Use `wazir recall symbol <name-or-id> --tier L1` for symbol-level detail
233
+ - Escalate to direct file read only when the summary is insufficient for the task
234
+ - If recall fails (no index, no summaries), fall back to direct file reads
235
+ ```
236
+
237
+ Also add to `## Allowed Tools`: `- Wazir CLI recall and index commands (see Context retrieval)`
238
+
239
+ ### Contract Addition — Direct Read Roles (executor, verifier)
240
+
241
+ ```markdown
242
+ ## Context retrieval
243
+
244
+ Default approach: direct file read (full content)
245
+ - Use `wazir index search-symbols <query>` to locate relevant code before reading
246
+ - Read full files directly when editing or verifying
247
+ - Use `wazir recall file <path> --tier L1` for files you need to understand but not modify
248
+ ```
249
+
250
+ ### Contract Addition — Reviewer (L1 → direct read)
251
+
252
+ ```markdown
253
+ ## Context retrieval
254
+
255
+ Default approach: recall L1, escalate to direct read for flagged issues
256
+ - Read the diff first (primary input)
257
+ - Use `wazir index search-symbols <name>` to locate related code
258
+ - Use `wazir recall symbol <name-or-id> --tier L1` to check structural alignment
259
+ - Escalate to direct file read only for: logic errors, missing edge cases, integration concerns
260
+ - If recall fails, fall back to direct file reads
261
+ ```
262
+
263
+ ### Contract Addition — Learner (L0)
264
+
265
+ ```markdown
266
+ ## Context retrieval
267
+
268
+ Default approach: recall L0 (one-line summaries)
269
+ - Use `wazir recall file <path> --tier L0` for high-level understanding
270
+ - Use `wazir index search-symbols <query>` to discover relevant patterns
271
+ - Escalate: L0 fails → try L1 → L1 fails → direct file read
272
+ - If recall fails, fall back to direct file reads
273
+ ```
274
+
275
+ ### Files Modified
276
+
277
+ - `roles/clarifier.md` — add context retrieval section (L1) + update Allowed Tools
278
+ - `roles/researcher.md` — add context retrieval section (L1) + update Allowed Tools
279
+ - `roles/specifier.md` — add context retrieval section (L1) + update Allowed Tools
280
+ - `roles/content-author.md` — add context retrieval section (L1) + update Allowed Tools
281
+ - `roles/designer.md` — add context retrieval section (L1) + update Allowed Tools
282
+ - `roles/planner.md` — add context retrieval section (L1) + update Allowed Tools
283
+ - `roles/executor.md` — add context retrieval section (direct read) + update Allowed Tools
284
+ - `roles/verifier.md` — add context retrieval section (direct read) + update Allowed Tools
285
+ - `roles/reviewer.md` — add context retrieval section (L1→direct read) + update Allowed Tools
286
+ - `roles/learner.md` — add context retrieval section (L0) + update Allowed Tools
287
+
288
+ ---
289
+
290
+ ## 3. Full Run Lifecycle Capture
291
+
292
+ ### Current Behavior
293
+
294
+ Hooks fire `capture route/output/event` for tool-level observability. No phase-level tracking. No run initialization from the pipeline. No usage report at session end.
295
+
296
+ ### New Behavior
297
+
298
+ ```
299
+ Session start (agent executes after reading bootstrap guidance):
300
+ wazir capture init --run <generated-id> --phase clarify --status starting
301
+ (capture init now also: calls initUsage(), writes <state-root>/runs/latest)
302
+
303
+ Phase transition (agent executes at each phase boundary):
304
+ wazir capture event --run <id> --event phase_enter --phase <name> --status in_progress
305
+ ... phase work ...
306
+ wazir capture event --run <id> --event phase_exit --phase <name> --status completed
307
+
308
+ Gate decision (agent executes at approval gates):
309
+ wazir capture event --run <id> --event gate_approved --phase <name>
310
+ OR
311
+ wazir capture event --run <id> --event gate_rejected --phase <name> --message "reason"
312
+
313
+ Loop iteration (agent executes when phase loops back):
314
+ wazir capture event --run <id> --event phase_loop --phase <name> --loop-count N
315
+
316
+ Session end (agent executes before final summary):
317
+ wazir capture usage --run <id> → token savings report
318
+ wazir capture summary --run <id> → final summary
319
+ ```
320
+
321
+ ### Who Calls What
322
+
323
+ - **`capture init` creates:** run directory, `status.json`, `events.ndjson`, `usage.json` (new: via `initUsage()`), `<state-root>/runs/latest` file (new)
324
+ - **`capture output` records:** capture routing savings via `recordCaptureSavings(runPaths, rawBytes, 0)` (new) — `summaryBytes` is 0 because all output bytes are routed to file instead of injected into agent context
325
+ - **`capture event` records:** phase usage via `recordPhaseUsage(runPaths, phase, data)` when event is `phase_enter` or `phase_exit` (new)
326
+ - **Agent calls:** all `capture` commands via workflow instructions
327
+ - **Hooks call:** tool-level capture (route/output) — existing behavior, unchanged
328
+
329
+ ### Usage Data Population
330
+
331
+ **Problem identified in review:** `usage.json` is never created by `capture init`, and `recordCaptureSavings`/`recordPhaseUsage` are never called by any handler. These are dead code.
332
+
333
+ **Fix (five CLI changes listed in Acknowledged CLI Changes section):**
334
+
335
+ 1. `handleInit` → call `initUsage(runPaths, runId)` to create `usage.json` at run start
336
+ 2. `handleOutput` → call `recordCaptureSavings(runPaths, rawBytes, 0)` after writing capture file
337
+ - `rawBytes` = `Buffer.byteLength(output)` (already computed)
338
+ - `summaryBytes` = `0` (the output was routed to file, so zero bytes went to context)
339
+ 3. `handleEvent` → call `recordPhaseUsage(runPaths, phase, {events_count: 1})` for `phase_enter`/`phase_exit` events
340
+
341
+ **Bug fix needed:** `recordPhaseUsage` in `usage.js` line 129 uses replace semantics (`existing.events_count = data.events_count ?? existing.events_count`). This must change to increment semantics (`existing.events_count += data.events_count ?? 0`) or the phase event count will always show 1.
342
+
343
+ **What the usage report tracks:** Capture routing savings — how many bytes were routed to files instead of context. It does NOT track recall tier savings (tokens saved by using L1 instead of direct read). That would require recall-level instrumentation, which is out of scope.
344
+
345
+ ### Session Recovery
346
+
347
+ When a session starts and the bootstrap guidance is injected:
348
+
349
+ 1. Agent checks: does `<state-root>/runs/latest` exist?
350
+ 2. If yes, reads the run ID and runs `wazir status --run <id> --json`
351
+ 3. If status is not "completed": agent resumes from the last completed phase
352
+ 4. If status is "completed" or file doesn't exist: agent runs `capture init` to start fresh
353
+
354
+ ### Workflow File Changes
355
+
356
+ Each workflow markdown file gets two new sections. **Placement:** `## Phase entry` goes immediately after `## Purpose` (first thing the agent sees when entering the phase). `## Phase exit` goes immediately before `## Failure Conditions`.
357
+
358
+ ```markdown
359
+ ## Phase entry
360
+
361
+ On entering this phase, run:
362
+ `wazir capture event --run <run-id> --event phase_enter --phase <phase-name> --status in_progress`
363
+
364
+ ## Phase exit
365
+
366
+ On completing this phase, run:
367
+ `wazir capture event --run <run-id> --event phase_exit --phase <phase-name> --status completed`
368
+ ```
369
+
370
+ For gate workflows (spec-challenge, design-review, plan-review), add `## Gate decision` immediately after the existing `## Approval Gate`:
371
+
372
+ ```markdown
373
+ ## Gate decision
374
+
375
+ On approval: `wazir capture event --run <run-id> --event gate_approved --phase <phase-name>`
376
+ On rejection: `wazir capture event --run <run-id> --event gate_rejected --phase <phase-name> --message "<reason>"`
377
+ ```
378
+
379
+ ### Workflow Count and Export Drift
380
+
381
+ There are **16 files** in `workflows/`: 14 declared in manifest, `run-audit.md` (undeclared), and `README.md`.
382
+
383
+ - **14 declared workflows** get capture events AND cause export drift (they are hashed by the export compiler)
384
+ - **`run-audit.md`** gets capture events but does NOT cause export drift (undeclared in manifest, not hashed)
385
+ - **`README.md`** is excluded — it is not a workflow
386
+
387
+ Total: 15 workflow files modified (14 + run-audit). Only 14 trigger export drift.
388
+
389
+ **Note on `run-audit.md`:** This workflow is not exported to host packages, so agents only see its instructions if they read the file directly from the repo. Adding capture events to it is still useful for projects that use it directly. Whether to add it to the manifest is a separate concern.
390
+
391
+ ### Boilerplate Maintenance
392
+
393
+ Adding capture instructions to all 15 workflows creates ~120 lines of near-identical boilerplate. For v1 we inline the instructions to keep workflows self-contained. If maintenance becomes a burden (e.g., capture command interface changes), extract to a shared reference doc (`docs/reference/capture-protocol.md`) with workflows referencing it.
394
+
395
+ ### Files Modified
396
+
397
+ - 15 `workflows/*.md` files (excluding README.md) — add phase entry/exit capture instructions
398
+ - `tooling/src/checks/command-registry.js` — add `capture usage` entry
399
+ - `tooling/src/capture/command.js` — `handleInit`: call `initUsage()`, write `latest` file; `handleOutput`: call `recordCaptureSavings()`; `handleEvent`: call `recordPhaseUsage()`
400
+ - `tooling/src/capture/usage.js` — fix `recordPhaseUsage` to use increment instead of replace
401
+
402
+ ---
403
+
404
+ ## 4. Bookend Validation + Export Drift
405
+
406
+ ### Checkpoint Map
407
+
408
+ ```
409
+ Session start (agent, guided by hook bootstrap):
410
+ └─ wazir doctor → repo health check
411
+
412
+ Pre-execution (execute workflow precondition — agent checks before implementing):
413
+ ├─ wazir validate manifest → schema still valid
414
+ └─ wazir validate hooks → hook contracts intact
415
+
416
+ Post-execution (verifier role — extends existing validation surface):
417
+ ├─ wazir validate manifest → still valid after changes
418
+ ├─ wazir validate hooks → hooks not broken by changes
419
+ ├─ wazir validate docs → no doc drift introduced
420
+ ├─ wazir validate brand → naming conventions held
421
+ ├─ wazir validate runtime → no forbidden runtime surfaces
422
+ ├─ wazir validate branches → (existing)
423
+ ├─ wazir validate commits → (existing)
424
+ ├─ wazir validate changelog → (existing)
425
+ └─ wazir export --check → export drift detection
426
+ └─ if drift → executor runs `wazir export build` → re-verify
427
+ ```
428
+
429
+ ### Pre-Execution Validation Is a Precondition, Not a Gate
430
+
431
+ The pre-execution checks are instructions in the execute workflow that the agent runs before implementing. If validation fails:
432
+ 1. Agent surfaces the failure to the user
433
+ 2. Agent does NOT proceed with implementation
434
+ 3. User resolves the issue (or instructs agent to fix it)
435
+ 4. This is NOT an approval gate — it does not require explicit "approve" action, just passing checks
436
+
437
+ ### Export Drift Fix Loop
438
+
439
+ If `wazir export --check` detects drift in verifier:
440
+ 1. Verifier reports drift as a verification finding
441
+ 2. Executor runs `wazir export build` to regenerate
442
+ 3. Verifier re-runs `export --check` to confirm
443
+ 4. If `export build` itself fails — verifier reports as a blocking failure, escalates to user
444
+ 5. Maximum 1 export rebuild attempt per verification cycle (enforced by instruction, not loop-cap-guard)
445
+ 6. If rebuilt exports cause other validation failures (docs, brand) — verifier reports all failures together, executor addresses them, then re-verify
446
+
447
+ ### Failure Behavior
448
+
449
+ - Doctor failure at session start: agent surfaces to user, proceeds with caution (not blocked)
450
+ - Pre-execution validation failure: agent surfaces to user, blocks execution until resolved
451
+ - Post-execution validation failure: verifier reports as verification failure, loops back to executor
452
+ - Export drift: single rebuild attempt, then escalate if still failing
453
+
454
+ ### Files Modified
455
+
456
+ - `workflows/execute.md` — add pre-execution validation preconditions
457
+ - `roles/verifier.md` — extend validation surface with `export --check`
458
+
459
+ ---
460
+
461
+ ## 5. Symbol-First Exploration for Debugging & Review
462
+
463
+ ### wz:debugging — OBSERVE Phase Rewrite
464
+
465
+ Current: grep/read files broadly, form hypothesis from full content.
466
+
467
+ New:
468
+
469
+ ```
470
+ OBSERVE:
471
+ 1. wazir index search-symbols <suspected-area>
472
+ → find relevant symbols by name
473
+ 2. wazir recall symbol <name-or-id> --tier L1
474
+ → understand structure (signature, JSDoc, imports)
475
+ 3. Form hypothesis based on L1 summaries
476
+ 4. wazir recall file <path> --start-line N --end-line M
477
+ → read ONLY the suspect code slice
478
+ 5. Escalate to full file read only if the bug cannot be localized from slices
479
+ 6. If recall fails (no index/summaries), fall back to direct file reads — the generic
480
+ OBSERVE methodology (read files, inspect state, gather evidence) still applies
481
+ ```
482
+
483
+ ### Character Change Acknowledgment
484
+
485
+ This rewrite shifts `wz:debugging` from a generic, host-neutral debugging methodology to a Wazir-CLI-aware procedure. The generic 4-step loop (Observe → Hypothesize → Test → Fix) is preserved — only the OBSERVE implementation details change. Step 6 ensures the skill degrades gracefully to its original generic behavior when the index is unavailable.
486
+
487
+ ### Reviewer — Exploration Rewrite
488
+
489
+ Current: read full files referenced in diff.
490
+
491
+ New:
492
+
493
+ ```
494
+ 1. Read the diff (unchanged — this is the primary input)
495
+ 2. For flagged areas:
496
+ wazir index search-symbols <name>
497
+ → locate related code and callers
498
+ 3. wazir recall symbol <name-or-id> --tier L1
499
+ → check if change aligns with existing structure
500
+ 4. Escalate to direct file read ONLY for:
501
+ - Logic errors that need full function context
502
+ - Missing edge cases that need surrounding code
503
+ - Integration concerns that need call-site context
504
+ 5. If recall fails, fall back to direct file reads
505
+ ```
506
+
507
+ ### Files Modified
508
+
509
+ - `skills/debugging/SKILL.md` — rewrite OBSERVE phase with symbol-first protocol + fallback
510
+ - `roles/reviewer.md` — add symbol-first exploration protocol (combined with Section 2 context retrieval)
511
+
512
+ ---
513
+
514
+ ## 6. scan-project Skill Integration
515
+
516
+ ### Current Behavior
517
+
518
+ `skills/scan-project/SKILL.md` defines what to inspect (manifests, docs, tests, `input/`) and what to produce (a project profile). It does not prescribe specific tools.
519
+
520
+ ### New Behavior
521
+
522
+ After the initial scan, `scan-project` instructs the agent to:
523
+ - Run `wazir index build && wazir index summarize --tier all` if no index exists
524
+ - Run `wazir index refresh` if an index already exists
525
+ - Include index stats (file count, symbol count, outline count) in the project profile output
526
+
527
+ ### Files Modified
528
+
529
+ - `skills/scan-project/SKILL.md` — add index build/refresh step after scan
530
+
531
+ ---
532
+
533
+ ## Implementation Order
534
+
535
+ | Order | Change | Risk | Dependency | Export Drift? |
536
+ |-------|--------|------|------------|---------------|
537
+ | 1 | `tooling/src/checks/command-registry.js` (add `capture usage`) | Low | None | No |
538
+ | 2 | `tooling/src/capture/command.js` (initUsage + latest + recordCaptureSavings + recordPhaseUsage) | Low | None | No |
539
+ | 3 | `tooling/src/capture/usage.js` (fix increment bug) | Low | None | No |
540
+ | 4 | `hooks/session-start` + `hooks/definitions/session_start.yaml` (bootstrap guidance + contract cleanup) | Low | None | **Yes — hook defs are hashed** |
541
+ | 5 | Role context retrieval sections (all 10 roles) + Allowed Tools updates | Low | Step 4 ensures bootstrap guidance exists | **Yes** |
542
+ | 6 | Workflow capture events (14 declared + run-audit.md) | Low | Step 2 ensures `capture init` works | **Yes (14 declared only)** |
543
+ | 7 | `roles/verifier.md` validation extension + export drift | Medium | Steps 5-6 complete | **Yes** |
544
+ | 8 | `workflows/execute.md` preconditions | Medium | Step 7 (verifier handles failures) | **Yes** |
545
+ | 9 | `skills/debugging/SKILL.md` OBSERVE rewrite | Medium | Index CLI exists (pre-existing) | No (skills not hashed) |
546
+ | 10 | `skills/scan-project/SKILL.md` index integration | Low | Index CLI exists (pre-existing) | No (skills not hashed) |
547
+
548
+ **Export drift note:** Steps 4-8 modify files hashed in export manifests. `wazir export build` must run after each step or be batched.
549
+
550
+ **Recommended batching:**
551
+ - **Batch A (CLI fixes):** Steps 1-3 in one commit — no export drift
552
+ - **Batch B (pipeline wiring):** Steps 4-8 in one commit with `wazir export build` at the end
553
+ - **Batch C (skills):** Steps 9-10 in one commit — no export drift
554
+
555
+ ---
556
+
557
+ ## Risks and Mitigations
558
+
559
+ | Risk | Impact | Mitigation |
560
+ |------|--------|------------|
561
+ | Index build is slow on large repos | Session start delay | Hybrid: agent decides based on bootstrap guidance; `index refresh` is incremental |
562
+ | Stale L1 summaries mislead agent | Wrong assumptions | Recall returns `fresh: false` flag; agent re-summarizes or reads directly |
563
+ | No index/summaries available | Recall commands fail | Every role and skill has explicit fallback chain: L0 → L1 → direct read |
564
+ | `summarize` throws on zero files | Index build appears to succeed but summaries fail | Treated same as build failure: fall back to direct reads |
565
+ | Capture events add context noise | Token overhead | Events are fire-and-forget CLI calls; agent discards stdout |
566
+ | Export drift during multi-step implementation | CI failures between steps | Batch steps 4-8 into single commit with `export build` |
567
+ | Export drift fix loop in verifier | Potential infinite loop | Max 1 rebuild attempt per verification cycle, then escalate |
568
+ | `run-audit.md` undeclared in manifest | Not exported to hosts | Add capture events anyway; agents reading it directly still benefit |
569
+ | Hook cannot distinguish startup vs compact | Could regenerate run ID | Agent reads `latest` file to discover existing run; hook is stateless |
570
+ | `usage.json` never populated | Empty usage report | Fixed by CLI changes 2-5 (initUsage + recording calls + increment fix) |
571
+ | Concurrent sessions on same project | `latest` file race, event interleaving | v1 assumes single session per project; future: PID-based lock or session discriminator in run ID |
572
+
573
+ ---
574
+
575
+ ## Success Criteria
576
+
577
+ 1. `wazir doctor` guidance appears in session start bootstrap
578
+ 2. Index exists and is queryable before any exploration phase (when agent follows bootstrap)
579
+ 3. All 15 workflow files have capture event instructions (14 declared + run-audit)
580
+ 4. `wazir capture usage` produces a capture routing savings report at session end (tracks file-vs-context routing, not recall tier savings)
581
+ 5. Roles use their assigned default tier before escalating, with explicit fallback chain
582
+ 6. `wazir validate` + `export --check` run in verifier phase
583
+ 7. `wz:debugging` OBSERVE phase uses symbol search before file reads (with fallback to generic methodology)
584
+ 8. Reviewer uses L1 recall before reading full files (with fallback)
585
+ 9. Run ID persists across compaction via `<state-root>/runs/latest` file
586
+ 10. No regression in existing hook behavior (capture, protected paths, loop caps)
587
+ 11. `wazir export --check` passes after all changes are implemented
588
+ 12. `capture usage` is registered in command registry
589
+ 13. `capture init` creates `usage.json` and writes `latest` file
590
+ 14. `session_start.yaml` contract is fully cleaned up (stale outputs and side effects removed)
591
+ 15. `recordPhaseUsage` uses increment semantics for `events_count`
592
+ 16. Role `## Allowed Tools` sections mention CLI recall/index commands