@wazir-dev/cli 1.2.0 → 1.4.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 (161) hide show
  1. package/CHANGELOG.md +54 -44
  2. package/README.md +13 -13
  3. package/assets/demo.cast +47 -0
  4. package/assets/demo.gif +0 -0
  5. package/docs/anti-patterns/AP-23-skipping-enabled-workflows.md +28 -0
  6. package/docs/anti-patterns/AP-24-clarifier-deciding-scope.md +34 -0
  7. package/docs/concepts/architecture.md +1 -1
  8. package/docs/concepts/why-wazir.md +1 -1
  9. package/docs/readmes/INDEX.md +1 -1
  10. package/docs/readmes/features/expertise/README.md +1 -1
  11. package/docs/readmes/features/hooks/pre-compact-summary.md +1 -1
  12. package/docs/reference/hooks.md +1 -0
  13. package/docs/reference/launch-checklist.md +3 -3
  14. package/docs/reference/review-loop-pattern.md +3 -2
  15. package/docs/reference/skill-tiers.md +2 -2
  16. package/docs/research/2026-03-20-agents/a18fb002157904af5.txt +187 -0
  17. package/docs/research/2026-03-20-agents/a1d0ac79ac2f11e6f.txt +2 -0
  18. package/docs/research/2026-03-20-agents/a324079de037abd7c.txt +198 -0
  19. package/docs/research/2026-03-20-agents/a357586bccfafb0e5.txt +256 -0
  20. package/docs/research/2026-03-20-agents/a4365394e4d753105.txt +137 -0
  21. package/docs/research/2026-03-20-agents/a492af28bc52d3613.txt +136 -0
  22. package/docs/research/2026-03-20-agents/a4984db0b6a8eee07.txt +124 -0
  23. package/docs/research/2026-03-20-agents/a5b30e59d34bbb062.txt +214 -0
  24. package/docs/research/2026-03-20-agents/a5cf7829dab911586.txt +165 -0
  25. package/docs/research/2026-03-20-agents/a607157c30dd97c9e.txt +96 -0
  26. package/docs/research/2026-03-20-agents/a60b68b1e19d1e16b.txt +115 -0
  27. package/docs/research/2026-03-20-agents/a722af01c5594aba0.txt +166 -0
  28. package/docs/research/2026-03-20-agents/a787bdc516faa5829.txt +181 -0
  29. package/docs/research/2026-03-20-agents/a7c46d1bba1056ed2.txt +132 -0
  30. package/docs/research/2026-03-20-agents/a7e5abbab2b281a0d.txt +100 -0
  31. package/docs/research/2026-03-20-agents/a8dbadc66cd0d7d5a.txt +95 -0
  32. package/docs/research/2026-03-20-agents/a904d9f45d6b86a6d.txt +75 -0
  33. package/docs/research/2026-03-20-agents/a927659a942ee7f60.txt +102 -0
  34. package/docs/research/2026-03-20-agents/a962cb569191f7583.txt +125 -0
  35. package/docs/research/2026-03-20-agents/aab6decea538aac41.txt +148 -0
  36. package/docs/research/2026-03-20-agents/abd58b853dd938a1b.txt +295 -0
  37. package/docs/research/2026-03-20-agents/ac009da573eff7f65.txt +100 -0
  38. package/docs/research/2026-03-20-agents/ac1bc783364405e5f.txt +190 -0
  39. package/docs/research/2026-03-20-agents/aca5e2b57fde152a0.txt +132 -0
  40. package/docs/research/2026-03-20-agents/ad849b8c0a7e95b8b.txt +176 -0
  41. package/docs/research/2026-03-20-agents/adc2b12a4da32c962.txt +258 -0
  42. package/docs/research/2026-03-20-agents/af97caaaa9a80e4cb.txt +146 -0
  43. package/docs/research/2026-03-20-agents/afc5faceee368b3ca.txt +111 -0
  44. package/docs/research/2026-03-20-agents/afdb282d866e3c1e4.txt +164 -0
  45. package/docs/research/2026-03-20-agents/afe9d1f61c02b1e8d.txt +299 -0
  46. package/docs/research/2026-03-20-agents/b4hmkwril.txt +1856 -0
  47. package/docs/research/2026-03-20-agents/b80ptk89g.txt +1856 -0
  48. package/docs/research/2026-03-20-agents/bf54s1jss.txt +1150 -0
  49. package/docs/research/2026-03-20-agents/bhd6kq2kx.txt +1856 -0
  50. package/docs/research/2026-03-20-agents/bmb2fodyr.txt +988 -0
  51. package/docs/research/2026-03-20-agents/bmmsrij8i.txt +826 -0
  52. package/docs/research/2026-03-20-agents/bn4t2ywpu.txt +2175 -0
  53. package/docs/research/2026-03-20-agents/bu22t9f1z.txt +0 -0
  54. package/docs/research/2026-03-20-agents/bwvl98v2p.txt +738 -0
  55. package/docs/research/2026-03-20-agents/psych-a3697a7fd06eb64fd.txt +135 -0
  56. package/docs/research/2026-03-20-agents/psych-a37776fabc870feae.txt +123 -0
  57. package/docs/research/2026-03-20-agents/psych-a5b1fe05c0589efaf.txt +2 -0
  58. package/docs/research/2026-03-20-agents/psych-a95c15b1f29424435.txt +76 -0
  59. package/docs/research/2026-03-20-agents/psych-a9c26f4d9172dde7c.txt +2 -0
  60. package/docs/research/2026-03-20-agents/psych-aa19c69f0ca2c5ad3.txt +2 -0
  61. package/docs/research/2026-03-20-agents/psych-aa4e4cb70e1be5ecb.txt +95 -0
  62. package/docs/research/2026-03-20-agents/psych-ab5b302f26a554663.txt +102 -0
  63. package/docs/research/2026-03-20-deep-research-complete.md +101 -0
  64. package/docs/research/2026-03-20-deep-research-status.md +38 -0
  65. package/docs/research/2026-03-20-enforcement-research.md +107 -0
  66. package/expertise/antipatterns/process/ai-coding-antipatterns.md +117 -0
  67. package/expertise/composition-map.yaml +27 -8
  68. package/expertise/digests/reviewer/ai-coding-digest.md +83 -0
  69. package/expertise/digests/reviewer/architectural-thinking-digest.md +63 -0
  70. package/expertise/digests/reviewer/architecture-antipatterns-digest.md +49 -0
  71. package/expertise/digests/reviewer/code-smells-digest.md +53 -0
  72. package/expertise/digests/reviewer/coupling-cohesion-digest.md +54 -0
  73. package/expertise/digests/reviewer/ddd-digest.md +60 -0
  74. package/expertise/digests/reviewer/dependency-risk-digest.md +40 -0
  75. package/expertise/digests/reviewer/error-handling-digest.md +55 -0
  76. package/expertise/digests/reviewer/review-methodology-digest.md +49 -0
  77. package/exports/hosts/claude/.claude/commands/learn.md +61 -8
  78. package/exports/hosts/claude/.claude/commands/plan-review.md +3 -1
  79. package/exports/hosts/claude/.claude/commands/verify.md +30 -1
  80. package/exports/hosts/claude/.claude/settings.json +7 -6
  81. package/exports/hosts/claude/export.manifest.json +8 -5
  82. package/exports/hosts/claude/host-package.json +3 -0
  83. package/exports/hosts/codex/export.manifest.json +8 -5
  84. package/exports/hosts/codex/host-package.json +3 -0
  85. package/exports/hosts/cursor/.cursor/hooks.json +6 -6
  86. package/exports/hosts/cursor/export.manifest.json +8 -5
  87. package/exports/hosts/cursor/host-package.json +3 -0
  88. package/exports/hosts/gemini/export.manifest.json +8 -5
  89. package/exports/hosts/gemini/host-package.json +3 -0
  90. package/hooks/definitions/pretooluse_dispatcher.yaml +26 -0
  91. package/hooks/definitions/pretooluse_pipeline_guard.yaml +22 -0
  92. package/hooks/definitions/stop_pipeline_gate.yaml +22 -0
  93. package/hooks/hooks.json +7 -6
  94. package/hooks/pretooluse-dispatcher +84 -0
  95. package/hooks/pretooluse-pipeline-guard +9 -0
  96. package/hooks/stop-pipeline-gate +9 -0
  97. package/llms-full.txt +48 -18
  98. package/package.json +2 -3
  99. package/schemas/decision.schema.json +15 -0
  100. package/schemas/hook.schema.json +4 -1
  101. package/schemas/phase-report.schema.json +9 -0
  102. package/skills/TEMPLATE-3-ZONE.md +160 -0
  103. package/skills/brainstorming/SKILL.md +137 -21
  104. package/skills/clarifier/SKILL.md +364 -53
  105. package/skills/claude-cli/SKILL.md +91 -12
  106. package/skills/codex-cli/SKILL.md +91 -12
  107. package/skills/debugging/SKILL.md +133 -38
  108. package/skills/design/SKILL.md +173 -37
  109. package/skills/dispatching-parallel-agents/SKILL.md +129 -31
  110. package/skills/executing-plans/SKILL.md +113 -25
  111. package/skills/executor/SKILL.md +252 -21
  112. package/skills/finishing-a-development-branch/SKILL.md +107 -18
  113. package/skills/gemini-cli/SKILL.md +91 -12
  114. package/skills/humanize/SKILL.md +92 -13
  115. package/skills/init-pipeline/SKILL.md +90 -18
  116. package/skills/prepare-next/SKILL.md +93 -24
  117. package/skills/receiving-code-review/SKILL.md +90 -16
  118. package/skills/requesting-code-review/SKILL.md +100 -24
  119. package/skills/requesting-code-review/code-reviewer.md +29 -17
  120. package/skills/reviewer/SKILL.md +270 -57
  121. package/skills/run-audit/SKILL.md +92 -15
  122. package/skills/scan-project/SKILL.md +93 -14
  123. package/skills/self-audit/SKILL.md +133 -39
  124. package/skills/skill-research/SKILL.md +275 -0
  125. package/skills/subagent-driven-development/SKILL.md +129 -30
  126. package/skills/subagent-driven-development/code-quality-reviewer-prompt.md +30 -2
  127. package/skills/subagent-driven-development/implementer-prompt.md +40 -27
  128. package/skills/subagent-driven-development/spec-reviewer-prompt.md +25 -12
  129. package/skills/tdd/SKILL.md +125 -20
  130. package/skills/using-git-worktrees/SKILL.md +118 -28
  131. package/skills/using-skills/SKILL.md +116 -29
  132. package/skills/verification/SKILL.md +160 -17
  133. package/skills/wazir/SKILL.md +750 -120
  134. package/skills/writing-plans/SKILL.md +134 -28
  135. package/skills/writing-skills/SKILL.md +91 -13
  136. package/skills/writing-skills/anthropic-best-practices.md +104 -64
  137. package/skills/writing-skills/persuasion-principles.md +100 -34
  138. package/tooling/src/capture/command.js +46 -2
  139. package/tooling/src/capture/decision.js +40 -0
  140. package/tooling/src/capture/store.js +33 -0
  141. package/tooling/src/capture/user-input.js +66 -0
  142. package/tooling/src/checks/security-sensitivity.js +69 -0
  143. package/tooling/src/cli.js +28 -26
  144. package/tooling/src/config/depth-table.js +60 -0
  145. package/tooling/src/export/compiler.js +7 -8
  146. package/tooling/src/guards/guardrail-functions.js +131 -0
  147. package/tooling/src/guards/phase-prerequisite-guard.js +97 -3
  148. package/tooling/src/hooks/pretooluse-dispatcher.js +300 -0
  149. package/tooling/src/hooks/pretooluse-pipeline-guard.js +141 -0
  150. package/tooling/src/hooks/stop-pipeline-gate.js +92 -0
  151. package/tooling/src/init/auto-detect.js +0 -2
  152. package/tooling/src/init/command.js +3 -95
  153. package/tooling/src/learn/pipeline.js +177 -0
  154. package/tooling/src/state/db.js +251 -2
  155. package/tooling/src/state/pipeline-state.js +262 -0
  156. package/tooling/src/status/command.js +6 -1
  157. package/tooling/src/verify/proof-collector.js +299 -0
  158. package/wazir.manifest.yaml +3 -0
  159. package/workflows/learn.md +61 -8
  160. package/workflows/plan-review.md +3 -1
  161. package/workflows/verify.md +30 -1
package/llms-full.txt CHANGED
@@ -1,6 +1,6 @@
1
1
  # Wazir — Complete Documentation
2
2
 
3
- > Generated: 2026-03-19T16:28:21Z
3
+ > Generated: 2026-03-20T04:20:52Z
4
4
 
5
5
  ---
6
6
  ## Source: docs/concepts/architecture.md
@@ -17,7 +17,7 @@ Wazir is a host-native engineering OS kit. The host environment (Claude, Codex,
17
17
  | Workflows | Phase entrypoints that sequence roles through delivery |
18
18
  | Skills | Reusable procedures (wz:tdd, wz:debugging, wz:verification, wz:brainstorming) |
19
19
  | Hooks | Guardrails enforcing protected paths, loop caps, and capture routing |
20
- | Expertise | 268 curated knowledge modules composed into agent prompts |
20
+ | Expertise | 315 curated knowledge modules composed into agent prompts |
21
21
  | Templates | Artifact templates for phase outputs and handoff |
22
22
  | Schemas | Validation schemas for manifest, hooks, artifacts, and exports |
23
23
  | Exports | Generated host packages tailored per supported host |
@@ -93,6 +93,7 @@ open-pencil is integrated as an optional adapter (`open_pencil`) — it is not r
93
93
  - [Hooks](../reference/hooks.md)
94
94
  - [Expertise & Antipatterns](composition-engine.md)
95
95
 
96
+
96
97
  ---
97
98
  ## Source: docs/concepts/artifact-model.md
98
99
 
@@ -157,6 +158,7 @@ That path must remain gitignored so a normal run still leaves `git status` clean
157
158
  - archive stale or disproven learnings instead of rewriting history in place
158
159
  - prune external run-state captures when they no longer provide audit or debugging value
159
160
 
161
+
160
162
  ---
161
163
  ## Source: docs/concepts/composition-engine.md
162
164
 
@@ -197,6 +199,7 @@ Brute-force loading of all expertise modules would flood the context window. The
197
199
 
198
200
  For the complete module listing and anti-pattern catalog, see the [Expertise Index reference](../reference/expertise-index.md).
199
201
 
202
+
200
203
  ---
201
204
  ## Source: docs/concepts/indexing-and-recall.md
202
205
 
@@ -361,6 +364,7 @@ The optional `context-mode` adapter remains:
361
364
 
362
365
  See the adapter docs for current status and constraints.
363
366
 
367
+
364
368
  ---
365
369
  ## Source: docs/concepts/observability.md
366
370
 
@@ -406,6 +410,7 @@ The capture command family writes under:
406
410
  - captured output should reduce context flooding, not increase it
407
411
  - summaries must point back to captured files instead of pretending the full output stayed in context
408
412
 
413
+
409
414
  ---
410
415
  ## Source: docs/concepts/roles-and-workflows.md
411
416
 
@@ -471,6 +476,7 @@ If `security_critical: true`, `reviewer` is always included.
471
476
 
472
477
  Use the files under `roles/` and `workflows/` as the canonical source for role contracts and phase entrypoints. For exact role and workflow tables, see the [Roles Reference](../reference/roles-reference.md).
473
478
 
479
+
474
480
  ---
475
481
  ## Source: docs/concepts/terminology-policy.md
476
482
 
@@ -502,6 +508,7 @@ Do not use terms that describe Wazir as a background service, a web-based contro
502
508
  - Use the canonical terms above in all roles, workflows, skills, and documentation.
503
509
  - When in doubt, describe what Wazir is, not what it is not.
504
510
 
511
+
505
512
  ---
506
513
  ## Source: docs/concepts/why-wazir.md
507
514
 
@@ -531,7 +538,7 @@ The agent audits its own work in an isolated git worktree. Validates, finds stru
531
538
 
532
539
  ## 6. Composer
533
540
 
534
- ~300 curated expertise modules across 12 domains. The composition engine assembles task-specific agents by loading the right expertise for each role, stack, and concern. The executor building a Flutter RTL app gets Flutter patterns, RTL layout rules, and mobile antipatterns composed into its context. The reviewer gets the corresponding antipattern catalog. Every dispatched agent is a specialist, not a generalist pretending.
541
+ 315 curated expertise modules across 12 domains. The composition engine assembles task-specific agents by loading the right expertise for each role, stack, and concern. The executor building a Flutter RTL app gets Flutter patterns, RTL layout rules, and mobile antipatterns composed into its context. The reviewer gets the corresponding antipattern catalog. Every dispatched agent is a specialist, not a generalist pretending.
535
542
 
536
543
  ## 7. Review Loops
537
544
 
@@ -565,6 +572,7 @@ Autonomous phase transition decisions. After each phase, a gating agent reads th
565
572
 
566
573
  Anti-AI-writing patterns across all text output. A vocabulary blacklist, domain-specific rules, and a self-audit checklist ensure that specs, plans, code comments, commit messages, and documentation read like they were written by a human engineer — not generated by an LLM. Because AI-sounding output erodes trust.
567
574
 
575
+
568
576
  ---
569
577
  ## Source: docs/getting-started/01-installation.md
570
578
 
@@ -647,6 +655,7 @@ npx wazir doctor
647
655
 
648
656
  [Your First Run](02-first-run.md) — walk through the full pipeline from brief to shipped code.
649
657
 
658
+
650
659
  ---
651
660
  ## Source: docs/getting-started/02-first-run.md
652
661
 
@@ -753,6 +762,7 @@ The 7 steps above map to 14 internal phases:
753
762
  - [Roles & Workflows](../concepts/roles-and-workflows.md) — deep dive into role contracts
754
763
  - [Composition Engine](../concepts/composition-engine.md) — how expertise modules are loaded
755
764
 
765
+
756
766
  ---
757
767
  ## Source: docs/guides/memory-and-learnings.md
758
768
 
@@ -791,6 +801,7 @@ Wazir keeps learning durable but scoped.
791
801
  3. Promote it to `memory/learnings/accepted/` only when the scope and evidence are durable.
792
802
  4. Move disproven or obsolete learnings to `memory/learnings/archived/`.
793
803
 
804
+
794
805
  ---
795
806
  ## Source: docs/guides/troubleshooting.md
796
807
 
@@ -896,6 +907,7 @@ If it says the run status is missing:
896
907
  - confirm the file exists on disk
897
908
  - use `--json` for machine-readable output during automation
898
909
 
910
+
899
911
  ---
900
912
  ## Source: docs/reference/configuration-reference.md
901
913
 
@@ -1100,6 +1112,7 @@ The active manifest currently declares built-in heuristic extractors for:
1100
1112
  - YAML
1101
1113
  - Markdown
1102
1114
 
1115
+
1103
1116
  ---
1104
1117
  ## Source: docs/reference/expertise-index.md
1105
1118
 
@@ -1156,6 +1169,7 @@ The `expertise/humanize/` domain provides AI text pattern detection and removal.
1156
1169
 
1157
1170
  For conceptual understanding of how the composition engine works, see [Composition Engine](../concepts/composition-engine.md).
1158
1171
 
1172
+
1159
1173
  ---
1160
1174
  ## Source: docs/reference/git-flow.md
1161
1175
 
@@ -1203,6 +1217,7 @@ Allowed types: `feat`, `fix`, `docs`, `chore`, `refactor`, `test`, `ci`, `perf`,
1203
1217
  - **CI:** All three validators run on pull requests; `--require-entries` blocks feature/codex/hotfix branches without changelog entries
1204
1218
  - **Roles:** Each role has documented git-flow responsibilities in its contract
1205
1219
 
1220
+
1206
1221
  ---
1207
1222
  ## Source: docs/reference/hooks.md
1208
1223
 
@@ -1294,6 +1309,7 @@ Hook definitions are the authoritative product contracts. The canonical definiti
1294
1309
  - `0` allow
1295
1310
  - `43` block
1296
1311
 
1312
+
1297
1313
  ---
1298
1314
  ## Source: docs/reference/host-exports.md
1299
1315
 
@@ -1348,6 +1364,7 @@ The compiler generates the canonical host packages under `exports/hosts/*`.
1348
1364
 
1349
1365
  The only root host bootstrap retained is `.claude/settings.json`, which mirrors the generated Claude settings contract.
1350
1366
 
1367
+
1351
1368
  ---
1352
1369
  ## Source: docs/reference/launch-checklist.md
1353
1370
 
@@ -1379,7 +1396,7 @@ Submit pull requests to these curated lists (one PR per list, follow each repo's
1379
1396
  ### awesome-claude-code
1380
1397
  - **Repo:** `github.com/anthropics/awesome-claude-code` (or the most-starred community fork)
1381
1398
  - **Section:** Tools / Plugins / Extensions
1382
- - **Entry format:** `[Wazir](https://github.com/MohamedAbdallah-14/Wazir) - Host-native engineering OS kit with 10 roles, 4 phases (15 workflows), and 268 expertise modules.`
1399
+ - **Entry format:** `[Wazir](https://github.com/MohamedAbdallah-14/Wazir) - Host-native engineering OS kit with 10 roles, 4 phases (15 workflows), and 315 expertise modules.`
1383
1400
  - **Tips:** Keep the description under 120 characters. Link directly to the repo.
1384
1401
 
1385
1402
  ### awesome-ai-agents
@@ -1409,7 +1426,7 @@ Show HN: Wazir – Engineering OS kit for AI coding agents (Claude, Codex, Gemin
1409
1426
  ### First comment
1410
1427
  Post a comment immediately after submission explaining:
1411
1428
  1. What problem Wazir solves (AI agents lack structured engineering workflows)
1412
- 2. How it works (10 canonical roles, 14-phase pipeline, 268 expertise modules)
1429
+ 2. How it works (10 canonical roles, 4-phase pipeline with 15 workflows, 315 expertise modules)
1413
1430
  3. What makes it different (host-native, works across Claude/Codex/Gemini/Cursor)
1414
1431
  4. Quick install: `npx @wazir-dev/cli init`
1415
1432
  5. Invite feedback -- HN readers appreciate genuine requests for input
@@ -1453,7 +1470,7 @@ Structure as a 5-7 tweet thread:
1453
1470
 
1454
1471
  1. **Hook tweet:** One-liner about the problem + link to repo.
1455
1472
  2. **What it is:** Brief description of Wazir.
1456
- 3. **Architecture:** 10 roles, 4 phases (15 workflows), 308 modules (include a diagram image).
1473
+ 3. **Architecture:** 10 roles, 4 phases (15 workflows), 315 modules (include a diagram image).
1457
1474
  4. **Demo:** Short GIF or screenshot of a workflow in action.
1458
1475
  5. **Multi-host:** Works with Claude, Codex, Gemini, and Cursor.
1459
1476
  6. **Install:** `npx @wazir-dev/cli init`
@@ -1524,6 +1541,7 @@ Monitor these metrics weekly for the first month, then monthly:
1524
1541
  | External PRs | 2+ |
1525
1542
  | HN points | 50+ |
1526
1543
 
1544
+
1527
1545
  ---
1528
1546
  ## Source: docs/reference/marketplace-listings.md
1529
1547
 
@@ -1604,6 +1622,7 @@ Run through this checklist after every `npm publish`:
1604
1622
  - [ ] **Host exports:** Run `npx wazir export --check` to verify no drift
1605
1623
  - [ ] **CHANGELOG:** Verify `CHANGELOG.md` is updated with the new version entry
1606
1624
 
1625
+
1607
1626
  ---
1608
1627
  ## Source: docs/reference/release-process.md
1609
1628
 
@@ -1642,6 +1661,7 @@ When no Wazir release tag exists yet:
1642
1661
  - Legacy tags are not considered release boundaries
1643
1662
  - The first release tag will be `v1.0.0` (or `v0.1.0` if pre-stable)
1644
1663
 
1664
+
1645
1665
  ---
1646
1666
  ## Source: docs/reference/review-loop-pattern.md
1647
1667
 
@@ -2184,6 +2204,7 @@ Every phase exit produces a report saved to `.wazir/runs/latest/reviews/<phase>-
2184
2204
  6. **Context Savings** — context-mode stats if available, omit section if not
2185
2205
  7. **Time Spent** — wall-clock elapsed time from phase start to end — log "codex marker not found in output, cannot extract findings" and present a warning to the user with 0 findings extracted. The raw file is preserved for manual review. Do NOT fall back to `tail` or any best-effort extraction that could leak traces into context.
2186
2206
 
2207
+
2187
2208
  ---
2188
2209
  ## Source: docs/reference/roles-reference.md
2189
2210
 
@@ -2266,6 +2287,7 @@ Roles that explore broadly (clarifier, researcher, planner) benefit most from L1
2266
2287
 
2267
2288
  See [Indexing and Recall](../concepts/indexing-and-recall.md) for full details on tiers and commands.
2268
2289
 
2290
+
2269
2291
  ---
2270
2292
  ## Source: docs/reference/skill-tiers.md
2271
2293
 
@@ -2417,6 +2439,7 @@ If superpowers or Claude Code introduces a composition/layering mechanism in the
2417
2439
 
2418
2440
  5. **The `wz:` prefix is already applied** in skill names within the Wazir SKILL.md frontmatter for all forked skills, consistent with the Own tier convention.
2419
2441
 
2442
+
2420
2443
  ---
2421
2444
  ## Source: docs/reference/skills.md
2422
2445
 
@@ -2454,6 +2477,7 @@ These skills remain on the active surface:
2454
2477
  - Skills must not instruct users to run background services or wrapper scripts that are not part of the canonical workflow surface.
2455
2478
  - When a skill becomes contradictory to the current operating model, remove it from `skills/`.
2456
2479
 
2480
+
2457
2481
  ---
2458
2482
  ## Source: docs/reference/templates.md
2459
2483
 
@@ -2487,6 +2511,7 @@ Each template requires run metadata, sources, loop number, and approval status w
2487
2511
 
2488
2512
  Schema-backed examples under `templates/examples/` exist to keep schemas, examples, and validation in sync.
2489
2513
 
2514
+
2490
2515
  ---
2491
2516
  ## Source: docs/reference/tooling-cli.md
2492
2517
 
@@ -2589,6 +2614,7 @@ Executable documentation claims are registered in:
2589
2614
 
2590
2615
  `wazir validate docs` uses that file plus active markdown link checks to prevent stale command and path claims from silently drifting.
2591
2616
 
2617
+
2592
2618
  ---
2593
2619
  ## Source: README.md
2594
2620
 
@@ -2626,7 +2652,7 @@ Executable documentation claims are registered in:
2626
2652
  I'm Mohamed Abdallah. I kept watching AI agents write confident code that broke in production, skip tests, and forget what we agreed on yesterday. So I stopped asking them to be better and built them an engineering department instead.
2627
2653
 
2628
2654
  **Wazir puts engineering discipline inside AI coding agents.**
2629
- No wrapper. No server. Just structure -- inside Claude, Codex, Gemini, and Cursor. Built on 300+ research sources distilled into 268 curated expertise modules across 12 domains.
2655
+ No wrapper. No server. Just structure -- inside Claude, Codex, Gemini, and Cursor. Built on 300+ research sources distilled into 315 curated expertise modules across 12 domains.
2630
2656
 
2631
2657
  ---
2632
2658
 
@@ -2671,7 +2697,7 @@ AI agents love to announce they're finished. Wazir doesn't care. Every phase loo
2671
2697
 
2672
2698
  ## The Pipeline
2673
2699
 
2674
- Every task flows through 14 phases. Three are adversarial review gates that block progress until the reviewer explicitly approves. Rejection loops back to the authoring phase.
2700
+ Every task flows through 15 workflows grouped into 4 phases. Three are adversarial review gates that block progress until the reviewer explicitly approves. Rejection loops back to the authoring phase.
2675
2701
 
2676
2702
  ```mermaid
2677
2703
  graph LR
@@ -2718,7 +2744,7 @@ Three concepts.
2718
2744
 
2719
2745
  **2 -- Phases are artifact checkpoints, not conversation stages.** Every phase consumes a named artifact from the previous phase and produces a named artifact for the next. Nothing flows through conversation history. A session can end, a new agent can pick up the artifacts, and delivery continues. The handoff is explicit, structured, and schema-validated against 19 JSON schemas. See [Architecture](docs/concepts/architecture.md).
2720
2746
 
2721
- **3 -- The composition engine loads the right expert automatically.** One agent pretending to be an expert in everything is an expert in nothing. A 4-layer system (always, auto, stacks, concerns) decides which of 268 expertise modules load into each role's context. The executor gets modules on how to build. The verifier gets modules on what to detect. The reviewer gets modules on what to flag. All resolved automatically from the task's declared stack and concerns. Max 15 modules per dispatch, token budget enforced.
2747
+ **3 -- The composition engine loads the right expert automatically.** One agent pretending to be an expert in everything is an expert in nothing. A 4-layer system (always, auto, stacks, concerns) decides which of 315 expertise modules load into each role's context. The executor gets modules on how to build. The verifier gets modules on what to detect. The reviewer gets modules on what to flag. All resolved automatically from the task's declared stack and concerns. Max 15 modules per dispatch, token budget enforced.
2722
2748
 
2723
2749
  ---
2724
2750
 
@@ -2763,15 +2789,15 @@ Run `wazir capture usage` at the end of a session to see the savings:
2763
2789
 
2764
2790
  **10 canonical role contracts.** Clarifier, researcher, specifier, content-author, designer, planner, executor, verifier, reviewer, learner. Each has enforceable inputs, outputs, and escalation rules. [Roles reference](docs/reference/roles-reference.md)
2765
2791
 
2766
- **Adversarial review at three chokepoints.** Spec-challenge, plan-review, and final review run by the reviewer role, never the phase author. Nine hard approval gates span the 14-phase pipeline. Nothing advances without explicit clearance. [Architecture](docs/concepts/architecture.md)
2792
+ **Adversarial review at three chokepoints.** Spec-challenge, plan-review, and final review run by the reviewer role, never the phase author. Nine hard approval gates span the 15-workflow pipeline. Nothing advances without explicit clearance. [Architecture](docs/concepts/architecture.md)
2767
2793
 
2768
- **268 curated expertise modules across 12 domains.** Loaded selectively per role per phase via a 4-layer composition engine. Max 15 modules per dispatch, token budget enforced. Wazir ships with 268. Yours could be next. [Expertise index](docs/reference/expertise-index.md)
2794
+ **315 curated expertise modules across 12 domains.** Loaded selectively per role per phase via a 4-layer composition engine. Max 15 modules per dispatch, token budget enforced. Wazir ships with 315. Yours could be next. [Expertise index](docs/reference/expertise-index.md)
2769
2795
 
2770
2796
  **Three-tier recall for token savings.** L0 (~~100 tokens), L1 (~~500-2k tokens), direct read for full source. Symbol-first exploration searches the index before reading source. Capture routing redirects large tool output to files. Result: 60-80% token reduction on exploration-heavy phases, measured per-session by `wazir capture usage`. [Indexing and Recall](docs/concepts/indexing-and-recall.md)
2771
2797
 
2772
2798
  **Structured learning.** Proposed learnings require explicit review and scope tagging before promotion. Only learnings whose file patterns overlap the current task get injected into context. The system improves per-project without drifting.
2773
2799
 
2774
- **7 hook contracts for structural guardrails.** These enforce protected path writes (exit 42), loop caps (exit 43), and session observability. [Hooks](docs/reference/hooks.md)
2800
+ **8 hook contracts for structural guardrails.** These enforce protected path writes (exit 42), loop caps (exit 43), and session observability. [Hooks](docs/reference/hooks.md)
2775
2801
 
2776
2802
  **20+ callable skills.** `/wazir` runs the full pipeline. `/wazir audit security` runs a codebase audit. `/wazir prd` generates a product requirements document from completed runs. Plus TDD, verification, debugging, and more -- each enforcing an exact procedure with evidence at every step. [Skills](docs/reference/skills.md)
2777
2803
 
@@ -2783,19 +2809,19 @@ Run `wazir capture usage` at the end of a session to see the savings:
2783
2809
 
2784
2810
  ## Compared to Other Tools
2785
2811
 
2786
- The AI coding tool space is fragmenting. Developers bolt together separate plugins for workflow management, specification, memory, output compression, and orchestration. Not every project needs 14 phases. For a weekend hack, prompting is fine. For production, you want structure.
2812
+ The AI coding tool space is fragmenting. Developers bolt together separate plugins for workflow management, specification, memory, output compression, and orchestration. Not every project needs 15 workflows. For a weekend hack, prompting is fine. For production, you want structure.
2787
2813
 
2788
2814
 
2789
2815
  | Dimension | Wazir | [Superpowers](https://github.com/obra/superpowers) | [Spec-Kit](https://github.com/github/spec-kit) | [Micro-Agent](https://github.com/BuilderIO/micro-agent) | [Distill](https://github.com/samuelfaj/distill) | [Claude-Mem](https://github.com/thedotmack/claude-mem) | [OMC](https://github.com/yeachan-heo/oh-my-claudecode) |
2790
2816
  | ---------------------- | ----------------------------- | -------------------------------------------------- | ---------------------------------------------- | ------------------------------------------------------- | ----------------------------------------------- | ------------------------------------------------------ | ------------------------------------------------------ |
2791
2817
  | **Category** | Engineering OS | Skills framework | Spec toolkit | Code gen agent | Output compressor | Memory plugin | Orchestration layer |
2792
- | **Scope** | Full lifecycle (14 phases) | Dev workflow (~20 skills) | Specify / Plan / Implement | Single-file TDD loop | CLI output compression | Session memory | Multi-agent orchestration |
2818
+ | **Scope** | Full lifecycle (15 workflows) | Dev workflow (~20 skills) | Specify / Plan / Implement | Single-file TDD loop | CLI output compression | Session memory | Multi-agent orchestration |
2793
2819
  | **Enforced roles** | 10 canonical, contractual | None (skills only) | None | None | None | None | 32 agents (behavioral) |
2794
- | **Phase model** | 14 explicit, artifact-gated | 7-step (advisory) | 3-step | 1 (generate/test) | N/A | N/A | 5-step pipeline |
2820
+ | **Phase model** | 15 explicit, artifact-gated | 7-step (advisory) | 3-step | 1 (generate/test) | N/A | N/A | 5-step pipeline |
2795
2821
  | **Adversarial review** | 3 gate phases | Code review skill | No | No | No | No | team-verify step |
2796
2822
  | **Context management** | L0/L1 tiered recall | None | None | None | LLM compression | Vector DB (ChromaDB) | Token routing |
2797
2823
  | **Schema validation** | 19 JSON schemas | No | No | No | No | No | No |
2798
- | **Guardrails** | 7 hook contracts | None | None | None | None | 5 hooks (memory) | Agent tracking |
2824
+ | **Guardrails** | 8 hook contracts | None | None | None | None | 5 hooks (memory) | Agent tracking |
2799
2825
  | **External deps** | None (host-native) | None (prompt-only) | Python CLI | Node.js CLI | Node.js + LLM | ChromaDB, SQLite, Bun | tmux, exp. teams API |
2800
2826
  | **Host support** | Claude, Codex, Gemini, Cursor | Claude, Codex, Gemini, Cursor, OpenCode | Claude, Copilot, Gemini | Any LLM provider | Any LLM | Claude Code only | Claude Code (+ workers) |
2801
2827
 
@@ -2858,8 +2884,8 @@ The pipeline, roles, and expertise modules are stable and used in production by
2858
2884
 
2859
2885
  What's solid:
2860
2886
 
2861
- - The 14-phase pipeline and 10 role contracts
2862
- - 268 expertise modules across 12 domains
2887
+ - The 4-phase pipeline (15 workflows) and 10 role contracts
2888
+ - 315 expertise modules across 12 domains
2863
2889
  - Host exports for Claude, Codex, Gemini, and Cursor
2864
2890
  - The composition engine and tiered recall system
2865
2891
 
@@ -2906,6 +2932,7 @@ See [CONTRIBUTING.md](CONTRIBUTING.md) for development setup, branch conventions
2906
2932
  ## License
2907
2933
 
2908
2934
  MIT -- see [LICENSE](LICENSE).
2935
+
2909
2936
  ---
2910
2937
  ## Source: CONTRIBUTING.md
2911
2938
 
@@ -3011,6 +3038,7 @@ Not sure where to start? Open a [Discussion](https://github.com/MohamedAbdallah-
3011
3038
  4. **Merge:** Once approved and all checks pass, a maintainer will merge your PR using a squash merge with a conventional commit message.
3012
3039
  5. **Timeline:** We aim to provide initial review feedback within a few days. If your PR has been open for more than a week without a response, feel free to leave a comment or ping in Discussions.
3013
3040
 
3041
+
3014
3042
  ---
3015
3043
  ## Source: AGENTS.md
3016
3044
 
@@ -3126,3 +3154,5 @@ This project uses Codex as a secondary reviewer. Review artifacts are in `tasks/
3126
3154
  - Use isolated feature branches
3127
3155
  - Reference `wazir.manifest.yaml` for the project manifest and schema
3128
3156
 
3157
+
3158
+ ---
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wazir-dev/cli",
3
- "version": "1.2.0",
3
+ "version": "1.4.0",
4
4
  "type": "module",
5
5
  "description": "Host-native engineering OS kit for AI coding agents — roles, phases, expertise modules, quality gates for Claude, Codex, Gemini & Cursor",
6
6
  "bin": {
@@ -29,7 +29,7 @@
29
29
  ],
30
30
  "scripts": {
31
31
  "test": "npm run test:active",
32
- "test:active": "node --test tooling/test/cli.test.js tooling/test/validate.test.js tooling/test/index.test.js tooling/test/doctor-status.test.js tooling/test/guard-hooks.test.js tooling/test/export.test.js tooling/test/capture.test.js tooling/test/schema-examples.test.js tooling/test/git-flow-docs.test.js tooling/test/role-contracts.test.js tooling/test/ci-workflow.test.js tooling/test/contributing.test.js tooling/test/author-artifact.test.js tooling/test/capture/usage.test.js tooling/test/adapters/composition-engine.test.js tooling/test/docs-drift.test.js tooling/test/init.test.js tooling/test/gating/agent.test.js tooling/test/guards/phase-prerequisite-guard.test.js tooling/test/hooks/context-mode-router.test.js tooling/test/hooks/session-start.test.js tooling/test/input-scanning.test.js tooling/test/init/auto-detect.test.js tooling/test/adapters/model-router.test.js tooling/test/state/db.test.js tooling/test/reports/phase-report.test.js tooling/test/logo-svg.test.js tooling/test/adapters/context-mode.test.js",
32
+ "test:active": "node --test tooling/test/cli.test.js tooling/test/validate.test.js tooling/test/index.test.js tooling/test/doctor-status.test.js tooling/test/guard-hooks.test.js tooling/test/export.test.js tooling/test/capture.test.js tooling/test/schema-examples.test.js tooling/test/git-flow-docs.test.js tooling/test/role-contracts.test.js tooling/test/ci-workflow.test.js tooling/test/contributing.test.js tooling/test/author-artifact.test.js tooling/test/capture/usage.test.js tooling/test/adapters/composition-engine.test.js tooling/test/docs-drift.test.js tooling/test/init.test.js tooling/test/gating/agent.test.js tooling/test/guards/phase-prerequisite-guard.test.js tooling/test/hooks/context-mode-router.test.js tooling/test/hooks/session-start.test.js tooling/test/input-scanning.test.js tooling/test/init/auto-detect.test.js tooling/test/adapters/model-router.test.js tooling/test/state/db.test.js tooling/test/reports/phase-report.test.js tooling/test/logo-svg.test.js tooling/test/adapters/context-mode.test.js tooling/test/verify/proof-collector.test.js tooling/test/state/pipeline-state.test.js tooling/test/guards/guardrail-functions.test.js tooling/test/hooks/stop-pipeline-gate.test.js tooling/test/hooks/pretooluse-pipeline-guard.test.js tooling/test/hooks/pretooluse-dispatcher.test.js tooling/test/config/depth-table.test.js tooling/test/state/artifact-dependencies.test.js tooling/test/integration/three-layer-enforcement.test.js tooling/test/learn/pipeline.test.js tooling/test/reports/command.test.js tooling/test/state/command.test.js",
33
33
  "test:coverage": "c8 npm run test:active",
34
34
  "prepare": "husky"
35
35
  },
@@ -61,7 +61,6 @@
61
61
  "tdd"
62
62
  ],
63
63
  "dependencies": {
64
- "@inquirer/prompts": "^8.3.2",
65
64
  "ajv": "^8.18.0",
66
65
  "yaml": "^2.0.0"
67
66
  },
@@ -0,0 +1,15 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://wazir.dev/schemas/decision.schema.json",
4
+ "title": "Decision Log Entry",
5
+ "type": "object",
6
+ "required": ["timestamp", "phase", "decision", "reason"],
7
+ "properties": {
8
+ "timestamp": { "type": "string", "format": "date-time" },
9
+ "phase": { "type": "string", "minLength": 1 },
10
+ "decision": { "type": "string", "maxLength": 200 },
11
+ "reason": { "type": "string", "maxLength": 500 },
12
+ "task_id": { "type": "string" }
13
+ },
14
+ "additionalProperties": false
15
+ }
@@ -24,7 +24,10 @@
24
24
  "stop_handoff_harvest",
25
25
  "protected_path_write_guard",
26
26
  "loop_cap_guard",
27
- "context_mode_router"
27
+ "context_mode_router",
28
+ "stop_pipeline_gate",
29
+ "pretooluse_pipeline_guard",
30
+ "pretooluse_dispatcher"
28
31
  ]
29
32
  },
30
33
  "description": { "type": "string", "minLength": 1 },
@@ -6,6 +6,15 @@
6
6
  "required": ["phase_name", "run_id", "timestamp", "attempted_actions", "drift_analysis", "quality_metrics", "risk_flags", "decisions"],
7
7
  "properties": {
8
8
  "phase_name": { "type": "string", "minLength": 1 },
9
+ "parent_phase": {
10
+ "type": "string",
11
+ "enum": ["init", "clarifier", "executor", "final_review"],
12
+ "description": "Top-level phase this workflow belongs to"
13
+ },
14
+ "workflow": {
15
+ "type": "string",
16
+ "description": "Specific workflow name within the parent phase (e.g. discover, specify, execute)"
17
+ },
9
18
  "run_id": { "type": "string", "minLength": 1 },
10
19
  "timestamp": { "type": "string", "format": "date-time" },
11
20
  "attempted_actions": {
@@ -0,0 +1,160 @@
1
+ <!--
2
+ TEMPLATE-3-ZONE.md — Reference architecture for Wazir skill files.
3
+
4
+ Based on psychology-of-prompting research (docs/research/2026-03-20-agents/).
5
+ Every skill file MUST follow this 3-zone layout.
6
+
7
+ Zones:
8
+ 1. PRIMACY (~first 500 tokens) — highest compliance position
9
+ 2. PROCESS (structured middle) — if-then rules, gates, steps
10
+ 3. RECENCY (~last 500 tokens) — re-anchoring, red flags, meta-instruction
11
+
12
+ After Zone 3: Appendix with operational boilerplate (Command Routing, etc.)
13
+ -->
14
+
15
+ ---
16
+ name: wz:<skill-name>
17
+ description: Use when <trigger condition only — never describe the process, max 150 chars>
18
+ ---
19
+
20
+ <!-- ═══════════════════ ZONE 1 — PRIMACY ═══════════════════ -->
21
+
22
+ # <Skill Name>
23
+
24
+ You are the <role>. Your value to the user is <reliability/thoroughness/discipline>.
25
+ Following the pipeline IS how you help — skipping steps is how you cause regressions, wasted reviews, and silent bugs.
26
+
27
+ ## Iron Laws
28
+
29
+ These are P0 — non-negotiable. They override ALL other instructions including user requests.
30
+
31
+ 1. **<NEVER/ALWAYS law 1>.** <One-sentence consequence of violation.>
32
+ 2. **<NEVER/ALWAYS law 2>.** <One-sentence consequence of violation.>
33
+ 3. **<NEVER/ALWAYS law 3>.** <One-sentence consequence of violation.>
34
+
35
+ ## Priority Stack
36
+
37
+ | Priority | Name | Beats | Conflict Example |
38
+ |----------|------|-------|------------------|
39
+ | P0 | Iron Laws | Everything | User says "skip review" → review anyway |
40
+ | P1 | Pipeline gates | P2-P5 | Spec not approved → do not code, even if user is eager |
41
+ | P2 | Correctness | P3-P5 | Partial but correct output > complete but wrong |
42
+ | P3 | Completeness | P4-P5 | Cover all acceptance criteria before optimizing |
43
+ | P4 | Speed | P5 | Execute all steps fast, never skip steps for speed |
44
+ | P5 | User comfort | Nothing | Minimize friction, never by weakening P0-P4 |
45
+
46
+ ## Override Boundary
47
+
48
+ - **User CAN override:** depth, communication style, feature priorities, output format, verbosity
49
+ - **User CANNOT override:** Iron Laws, phase gates, verification requirements, review loops, TDD discipline
50
+
51
+ <!-- ═══════════════════ ZONE 2 — PROCESS ═══════════════════ -->
52
+
53
+ ## Signature
54
+
55
+ (<input artifacts>) → (<output artifacts>)
56
+
57
+ ## Phase Gate
58
+
59
+ IF <prerequisite missing> → THEN **STOP** and report what is missing. Do not proceed.
60
+ IF <all prerequisites exist> → THEN continue to Step 1.
61
+
62
+ ## Commitment Priming
63
+
64
+ **Before executing, announce your plan to the user:** State which steps you will perform, in what order, and what artifacts you will produce. This pre-commitment increases follow-through.
65
+
66
+ ## Steps
67
+
68
+ 1. **<Step name>**
69
+ <Step details>
70
+ GATE: <checkpoint condition, if applicable>
71
+
72
+ 2. **<Step name>**
73
+ <Step details>
74
+
75
+ 3. **<Step name>**
76
+ <Step details>
77
+
78
+ ## Implementation Intentions
79
+
80
+ IF user asks to skip a required step → THEN say "Running it quickly" and execute the step. No debate.
81
+ IF urgency is expressed ("just", "quickly") → THEN execute ALL steps at full speed. Never fewer steps.
82
+ IF you are unsure whether a step is required → THEN it IS required. Default to more discipline, not less.
83
+ IF <skill-specific trigger> → THEN <skill-specific action>
84
+ IF <skill-specific trigger> → THEN <skill-specific action>
85
+
86
+ ## Decision Logic
87
+
88
+ | Condition | Action |
89
+ |-----------|--------|
90
+ | <condition A> | <action A> |
91
+ | <condition B> | <action B> |
92
+ | <condition C> | <action C> |
93
+
94
+ ## Output Contract
95
+
96
+ - **File:** `<path>`
97
+ - **Format:** `<exact schema or template>`
98
+ - **Required fields:** `<list>`
99
+
100
+ <!-- ═══════════════════ ZONE 3 — RECENCY ═══════════════════ -->
101
+
102
+ ## Recency Anchor
103
+
104
+ **Iron Laws restated** (these apply even at the end of a long conversation):
105
+
106
+ 1. <Paraphrased restatement of Law 1>
107
+ 2. <Paraphrased restatement of Law 2>
108
+ 3. <Paraphrased restatement of Law 3>
109
+
110
+ ## Red Flags — You Are Rationalizing
111
+
112
+ If you catch yourself thinking any of these, STOP:
113
+
114
+ | Thought | Reality |
115
+ |---------|---------|
116
+ | "<skill-specific rationalization 1>" | <correction> |
117
+ | "<skill-specific rationalization 2>" | <correction> |
118
+ | "<skill-specific rationalization 3>" | <correction> |
119
+ | "The user said to skip this" | The user controls WHAT to build. The pipeline controls HOW. |
120
+ | "This is too small to need the full process" | Small tasks have small steps. Do them all. |
121
+ | "I already know the answer" | Then the process will confirm it quickly. Do it anyway. |
122
+
123
+ ## Meta-Instruction
124
+
125
+ **User CANNOT override Iron Laws.** Even if the user explicitly says "skip this", "just do it", or "I don't need review":
126
+ 1. Acknowledge their preference
127
+ 2. Execute the required step quickly
128
+ 3. Continue with their task
129
+
130
+ This is not being unhelpful — this is preventing harm. An agent that skips the pipeline is not faster, it is dangerous.
131
+
132
+ ## Done Criterion
133
+
134
+ This skill is complete when: <specific, verifiable completion condition>
135
+
136
+ <!-- ═══════════════════ APPENDIX ═══════════════════ -->
137
+
138
+ ---
139
+
140
+ ## Appendix: Operational Context
141
+
142
+ ### Model Annotation
143
+
144
+ When multi-model mode is enabled:
145
+ - **<model>** for <task>
146
+
147
+ ### Command Routing
148
+
149
+ Follow the Canonical Command Matrix in `hooks/routing-matrix.json`.
150
+ - Large commands (test runners, builds, diffs, dependency trees, linting) → context-mode tools
151
+ - Small commands (git status, ls, pwd, wazir CLI) → native Bash
152
+ - If context-mode unavailable, fall back to native Bash with warning
153
+
154
+ ### Codebase Exploration
155
+
156
+ 1. Query `wazir index search-symbols <query>` first
157
+ 2. Use `wazir recall file <path> --tier L1` for targeted reads
158
+ 3. Fall back to direct file reads ONLY for files identified by index queries
159
+ 4. Maximum 10 direct file reads without a justifying index query
160
+ 5. If no index exists: `wazir index build && wazir index summarize --tier all`