@azure-id/orc 1.8.2 → 1.9.1

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 (65) hide show
  1. package/CHANGELOG.md +299 -0
  2. package/README-id.md +68 -51
  3. package/README.md +60 -45
  4. package/bin/cli.js +301 -39
  5. package/bin/graph-audit.js +235 -0
  6. package/bin/graph-extract.js +308 -3
  7. package/bin/graph-gain.js +23 -3
  8. package/bin/graph-map.js +9 -1
  9. package/bin/graph-query.js +152 -10
  10. package/bin/graph-shard.js +6 -1
  11. package/bin/graph-signals.js +287 -4
  12. package/bin/graph.js +717 -658
  13. package/bin/verify-contracts.js +277 -61
  14. package/bin/verify-package.js +19 -1
  15. package/bin/webui/fixtures/knowledge.js +21 -4
  16. package/bin/webui/i18n/en/knowledge.json +5 -2
  17. package/bin/webui/i18n/id/knowledge.json +5 -2
  18. package/bin/webui/js/panels/knowledge.js +21 -2
  19. package/mock-run/orc-quick.md +141 -113
  20. package/package.json +1 -1
  21. package/templates/agents/MODEL-MAPPING.md +15 -5
  22. package/templates/agents/orc-executor-haiku-4-5.md +19 -1
  23. package/templates/agents/orc-executor-opus-4-7-high.md +19 -1
  24. package/templates/agents/orc-executor-opus-4-7-med.md +19 -1
  25. package/templates/agents/orc-executor-opus-4-8-high.md +19 -1
  26. package/templates/agents/orc-executor-opus-5-high.md +19 -1
  27. package/templates/agents/orc-executor-opus-5-low.md +19 -1
  28. package/templates/agents/orc-executor-opus-5-med.md +19 -1
  29. package/templates/agents/orc-executor-sonnet-4-6-high.md +19 -1
  30. package/templates/agents/orc-executor-sonnet-4-6-med.md +19 -1
  31. package/templates/agents/orc-executor-sonnet-5-high.md +19 -1
  32. package/templates/agents/orc-planner-mini-opus-5-med.md +75 -69
  33. package/templates/agents/orc-planner-mini-sonnet-5-high.md +73 -67
  34. package/templates/agents/orc-recon-opus-5-low.md +109 -0
  35. package/templates/agents/orc-recon-sonnet-4-6-med.md +109 -0
  36. package/templates/commands/orc-mini.md +10 -12
  37. package/templates/commands/orc-quick.md +20 -33
  38. package/templates/hooks/README.md +11 -1
  39. package/templates/hooks/orc-graph-hook.js +53 -7
  40. package/templates/hooks/orc-trace.js +476 -471
  41. package/templates/skills/_shared/code-graph.md +56 -17
  42. package/templates/skills/_shared/phases/execution.md +4 -4
  43. package/templates/skills/_shared/phases/planning.md +3 -3
  44. package/templates/skills/_shared/phases/preflight.md +1 -1
  45. package/templates/skills/_shared/phases/review.md +3 -1
  46. package/templates/skills/_shared/phases/rules.md +172 -159
  47. package/templates/skills/_shared/phases/ship.md +1 -1
  48. package/templates/skills/_shared/phases/trace.md +4 -2
  49. package/templates/skills/_shared/phases/wiki-consult.md +9 -5
  50. package/templates/skills/_shared/read-ladder.md +14 -1
  51. package/templates/skills/_shared/return-validation.md +22 -0
  52. package/templates/skills/context-combiner/SKILL.md +13 -13
  53. package/templates/skills/orc/SKILL.md +1 -1
  54. package/templates/skills/orc/subskills/orc-execution/core.md +171 -159
  55. package/templates/skills/orc-fast/SKILL.md +3 -3
  56. package/templates/skills/orc-mini/SKILL.md +145 -137
  57. package/templates/skills/orc-mini/examples/mini-run-mock.md +64 -50
  58. package/templates/skills/orc-mini/references/complexity.md +119 -0
  59. package/templates/skills/orc-quick/README.md +495 -423
  60. package/templates/skills/orc-quick/SKILL.md +157 -212
  61. package/templates/skills/orc-quick/references/context-doc.md +145 -114
  62. package/templates/skills/orc-quick/references/defect.md +101 -0
  63. package/templates/skills/orc-quick/references/dispatch-gate.md +55 -24
  64. package/templates/skills/orc-quick/references/gh-mode.md +148 -127
  65. package/templates/skills/orc-quick/references/look.md +107 -0
@@ -27,8 +27,6 @@ const CONTRACTS = [
27
27
  token: "actual_model",
28
28
  files: [
29
29
  "agents/MODEL-MAPPING.md",
30
- // v1.8.0 — the graph noter reports its model like every other role.
31
- "agents/orc-graph-noter-sonnet-4-6-med.md",
32
30
  "agents/orc-advisor-opus-5-xhigh.md",
33
31
  "agents/orc-analyze-mini-opus-5-med.md",
34
32
  "agents/orc-analyze-mini-sonnet-5-high.md",
@@ -62,6 +60,8 @@ const CONTRACTS = [
62
60
  "agents/orc-planner-mini-opus-5-med.md",
63
61
  "agents/orc-planner-mini-sonnet-5-high.md",
64
62
  "agents/orc-planner-opus-5-med.md",
63
+ "agents/orc-recon-opus-5-low.md",
64
+ "agents/orc-recon-sonnet-4-6-med.md",
65
65
  "agents/orc-retro-opus-5-med.md",
66
66
  "agents/orc-retro-sonnet-5-high.md",
67
67
  "agents/orc-reviewer-opus-5-med.md",
@@ -76,6 +76,9 @@ const CONTRACTS = [
76
76
  "agents/orc-wiki-scanner-sonnet-5-high.md",
77
77
  "hooks/orc-trace.js",
78
78
  "skills/_shared/extra-dispatch.md",
79
+ "skills/_shared/phases/execution.md",
80
+ "skills/_shared/phases/trace.md",
81
+ "skills/_shared/phases/trace.md",
79
82
  "skills/_shared/return-validation.md",
80
83
  "skills/orc-advisor/SKILL.md",
81
84
  "skills/orc-analyze-mini/SKILL.md",
@@ -88,7 +91,6 @@ const CONTRACTS = [
88
91
  "skills/orc-challenge/references/council.md",
89
92
  "skills/orc-claude/SKILL.md",
90
93
  "skills/orc-claude/examples/claude-run-mock.md",
91
- "skills/_shared/phases/trace.md",
92
94
  "skills/orc-doc/SKILL.md",
93
95
  "skills/orc-doc/examples/orc-doc-prd-run.md",
94
96
  "skills/orc-fast/SKILL.md",
@@ -104,7 +106,6 @@ const CONTRACTS = [
104
106
  "skills/orc-wiki/references/extra.md",
105
107
  "skills/orc/README.md",
106
108
  "skills/orc/SKILL.md",
107
- "skills/_shared/phases/trace.md",
108
109
  "skills/orc/schemas/checkpoint.md",
109
110
  "skills/orc/subskills/orc-execution/SKILL.md",
110
111
  "skills/orc/subskills/orc-execution/core.md",
@@ -112,7 +113,8 @@ const CONTRACTS = [
112
113
  "skills/orc/subskills/orc-review-verify/SKILL.md",
113
114
  "skills/orc/subskills/orc-review-verify/core.md",
114
115
  "skills/orc/subskills/orc-testgen/core.md",
115
- "skills/_shared/phases/execution.md",
116
+ // v1.8.0 — the graph noter reports its model like every other role.
117
+ "agents/orc-graph-noter-sonnet-4-6-med.md",
116
118
  ],
117
119
  },
118
120
  {
@@ -440,16 +442,18 @@ const CONTRACTS = [
440
442
  token: "orc run inflight",
441
443
  binFiles: ["bin/cli.js"],
442
444
  files: [
443
- "skills/orc-test/SKILL.md",
445
+ "agents/MODEL-MAPPING.md",
444
446
  "hooks/README.md",
445
- "skills/_shared/return-validation.md",
446
447
  "skills/_shared/phases/execution.md",
447
- "skills/orc/SKILL.md",
448
+ "skills/_shared/return-validation.md",
448
449
  "skills/orc-doc/SKILL.md",
449
- "skills/orc-wiki/SKILL.md",
450
- "skills/orc-quick/SKILL.md",
451
- "skills/orc-mini/SKILL.md",
452
450
  "skills/orc-fast/SKILL.md",
451
+ "skills/orc-mini/SKILL.md",
452
+ "skills/orc-quick/SKILL.md",
453
+ "skills/orc-quick/references/dispatch-gate.md",
454
+ "skills/orc-test/SKILL.md",
455
+ "skills/orc-wiki/SKILL.md",
456
+ "skills/orc/SKILL.md",
453
457
  ],
454
458
  },
455
459
  {
@@ -624,10 +628,9 @@ const CONTRACTS = [
624
628
  files: [
625
629
  "agents/orc-analyze-mini-opus-5-med.md",
626
630
  "agents/orc-analyze-mini-sonnet-5-high.md",
631
+ "agents/orc-recon-opus-5-low.md",
632
+ "agents/orc-recon-sonnet-4-6-med.md",
627
633
  "agents/orc-system-analyst-opus-5-high.md",
628
- // v0.39.0: the read ladder's anti-chain rule ends in a `searched:` return,
629
- // so a rename of the attestation field has to reach it too.
630
- "skills/_shared/read-ladder.md",
631
634
  "skills/orc-analyze-mini/SKILL.md",
632
635
  "skills/orc-analyze/SKILL.md",
633
636
  "skills/orc-analyze/references/deep-mode.md",
@@ -635,6 +638,9 @@ const CONTRACTS = [
635
638
  "skills/orc-analyze/schemas/report-prose.md",
636
639
  "skills/orc-analyze/schemas/report-requirement.md",
637
640
  "skills/orc-analyze/schemas/requirement-spec.md",
641
+ // so a rename of the attestation field has to reach it too.
642
+ "skills/_shared/read-ladder.md",
643
+ // v0.39.0: the read ladder's anti-chain rule ends in a `searched:` return,
638
644
  ],
639
645
  },
640
646
  {
@@ -722,29 +728,31 @@ const CONTRACTS = [
722
728
  files: [
723
729
  "agents/orc-retro-opus-5-med.md",
724
730
  "agents/orc-retro-sonnet-5-high.md",
725
- "skills/orc-analyze/SKILL.md",
731
+ "skills/_shared/phases/analyst-gates.md",
732
+ "skills/_shared/phases/execution.md",
733
+ "skills/_shared/phases/plan-handoff.md",
734
+ "skills/_shared/phases/planning.md",
735
+ "skills/_shared/phases/preflight.md",
736
+ "skills/_shared/phases/ship.md",
737
+ "skills/_shared/phases/stop-resume.md",
738
+ "skills/_shared/phases/trace.md",
726
739
  "skills/_shared/phases/trace.md",
740
+ "skills/orc-analyze/SKILL.md",
727
741
  "skills/orc-fast/SKILL.md",
728
742
  "skills/orc-mini/SKILL.md",
743
+ "skills/orc-mini/references/complexity.md",
729
744
  "skills/orc-poly/SKILL.md",
730
745
  "skills/orc-poly/examples/poly-run-mock.md",
746
+ "skills/orc-pr-driver/SKILL.md",
731
747
  "skills/orc-quick/SKILL.md",
748
+ "skills/orc-quick/references/look.md",
732
749
  "skills/orc-retro/SKILL.md",
733
750
  "skills/orc/SKILL.md",
734
- "skills/_shared/phases/analyst-gates.md",
751
+ "skills/orc/config.md",
735
752
  "skills/orc/references/effort-and-mode.md",
736
- "skills/_shared/phases/plan-handoff.md",
737
- "skills/_shared/phases/stop-resume.md",
738
- "skills/_shared/phases/trace.md",
753
+ "skills/orc/references/preflight-report.md",
739
754
  "skills/orc/references/ultra-mode.md",
740
- "skills/orc-pr-driver/SKILL.md",
741
755
  "skills/orc/subskills/orc-pr/stack-gate.md",
742
- "skills/orc/config.md",
743
- "skills/orc/references/preflight-report.md",
744
- "skills/_shared/phases/preflight.md",
745
- "skills/_shared/phases/execution.md",
746
- "skills/_shared/phases/planning.md",
747
- "skills/_shared/phases/ship.md",
748
756
  ],
749
757
  },
750
758
  {
@@ -1161,6 +1169,7 @@ const CONTRACTS = [
1161
1169
  "skills/_shared/README.md",
1162
1170
  "skills/_shared/interview.md",
1163
1171
  "skills/_shared/lane-suspend.md",
1172
+ "skills/_shared/phases/intake.md",
1164
1173
  "skills/orc-boundary/SKILL.md",
1165
1174
  "skills/orc-brainstorm/SKILL.md",
1166
1175
  "skills/orc-challenge/SKILL.md",
@@ -1170,7 +1179,8 @@ const CONTRACTS = [
1170
1179
  "skills/orc-doc/references/gates.md",
1171
1180
  "skills/orc-grill/SKILL.md",
1172
1181
  "skills/orc-pact/SKILL.md",
1173
- "skills/_shared/phases/intake.md",
1182
+ "skills/orc-quick/SKILL.md",
1183
+ "skills/orc-quick/references/dispatch-gate.md",
1174
1184
  ],
1175
1185
  },
1176
1186
  {
@@ -1893,25 +1903,26 @@ const CONTRACTS = [
1893
1903
  "agents/orc-planner-opus-5-med.md",
1894
1904
  "agents/orc-retro-opus-5-med.md",
1895
1905
  "agents/orc-retro-sonnet-5-high.md",
1906
+ "commands/orc-route.md",
1907
+ "skills/_shared/phases/analyst-gates.md",
1908
+ "skills/_shared/phases/plan-handoff.md",
1909
+ "skills/_shared/phases/planning.md",
1910
+ "skills/_shared/phases/scoring.md",
1911
+ "skills/_shared/phases/trace.md",
1912
+ "skills/_shared/phases/wave-grouping.md",
1896
1913
  "skills/orc-mini/SKILL.md",
1914
+ "skills/orc-mini/references/complexity.md",
1897
1915
  "skills/orc-retro/SKILL.md",
1916
+ "skills/orc-route/SKILL.md",
1898
1917
  "skills/orc/README.md",
1899
1918
  "skills/orc/SKILL.md",
1900
1919
  "skills/orc/config.md",
1901
1920
  "skills/orc/examples/full-run-mock.md",
1902
- "skills/_shared/phases/analyst-gates.md",
1903
1921
  "skills/orc/references/effort-and-mode.md",
1904
- "skills/_shared/phases/plan-handoff.md",
1905
- "skills/_shared/phases/trace.md",
1906
- "skills/_shared/phases/wave-grouping.md",
1922
+ "skills/orc/references/preflight-report.md",
1907
1923
  "skills/orc/schemas/planning-output.md",
1908
1924
  "skills/orc/subskills/orc-planner-mini/SKILL.md",
1909
1925
  "skills/orc/subskills/orc-planner/SKILL.md",
1910
- "commands/orc-route.md",
1911
- "skills/orc-route/SKILL.md",
1912
- "skills/orc/references/preflight-report.md",
1913
- "skills/_shared/phases/planning.md",
1914
- "skills/_shared/phases/scoring.md",
1915
1926
  ],
1916
1927
  },
1917
1928
  {
@@ -2521,23 +2532,24 @@ const CONTRACTS = [
2521
2532
  binFiles: ["bin/cli.js"],
2522
2533
  files: [
2523
2534
  "skills/_shared/fallback-handoff.md",
2535
+ "skills/_shared/phases/intake.md",
2536
+ "skills/_shared/phases/stop-resume.md",
2524
2537
  "skills/_shared/stack-plan.md",
2525
2538
  "skills/orc-diy/references/blocks/header.md",
2526
2539
  "skills/orc-diy/references/locked-blocks.md",
2540
+ "skills/orc-doc/README.md",
2541
+ "skills/orc-doc/references/chunking.md",
2542
+ "skills/orc-doc/references/gates.md",
2543
+ "skills/orc-doc/references/resume-protocol.md",
2527
2544
  "skills/orc-export/SKILL.md",
2528
2545
  "skills/orc-fast/SKILL.md",
2529
2546
  "skills/orc-mini/SKILL.md",
2547
+ "skills/orc-quick/SKILL.md",
2530
2548
  "skills/orc-quick/references/context-doc.md",
2531
2549
  "skills/orc-wiki/SKILL.md",
2532
2550
  "skills/orc/README.md",
2533
2551
  "skills/orc/SKILL.md",
2534
2552
  "skills/orc/config.md",
2535
- "skills/_shared/phases/intake.md",
2536
- "skills/_shared/phases/stop-resume.md",
2537
- "skills/orc-doc/README.md",
2538
- "skills/orc-doc/references/chunking.md",
2539
- "skills/orc-doc/references/gates.md",
2540
- "skills/orc-doc/references/resume-protocol.md",
2541
2553
  ],
2542
2554
  },
2543
2555
  // ── Stacked pull requests (v0.37.0) ──────────────────────────────────────
@@ -2673,15 +2685,16 @@ const CONTRACTS = [
2673
2685
  "skills/_shared/phases/wiki-consult.md",
2674
2686
  "skills/_shared/read-ladder.md",
2675
2687
  "skills/_shared/return-validation.md",
2676
- // W6 — the six code lanes open it (S5: a declared capability no lane
2677
- // points at is a gate that is always off).
2678
- "skills/orc-diy/references/flow-schema.md",
2679
2688
  "skills/orc-fast/SKILL.md",
2680
2689
  "skills/orc-mini/SKILL.md",
2681
2690
  "skills/orc-quick/SKILL.md",
2682
2691
  "skills/orc-quick/references/dispatch-gate.md",
2692
+ "skills/orc-quick/references/look.md",
2683
2693
  "skills/orc-wiki/references/staleness.md",
2684
2694
  "skills/orc/SKILL.md",
2695
+ // W6 — the six code lanes open it (S5: a declared capability no lane
2696
+ // points at is a gate that is always off).
2697
+ "skills/orc-diy/references/flow-schema.md",
2685
2698
  ],
2686
2699
  },
2687
2700
  {
@@ -2691,9 +2704,12 @@ const CONTRACTS = [
2691
2704
  name: "graph precedence (v1.8.0 — code > graph structure > fresh wiki > stale wiki > graph notes > priors)",
2692
2705
  token: "code > graph structure",
2693
2706
  files: [
2707
+ "agents/orc-recon-opus-5-low.md",
2708
+ "agents/orc-recon-sonnet-4-6-med.md",
2694
2709
  "skills/_shared/code-graph.md",
2695
2710
  "skills/_shared/phases/wiki-consult.md",
2696
2711
  "skills/_shared/read-ladder.md",
2712
+ "skills/orc-quick/references/look.md",
2697
2713
  "skills/orc-wiki/references/staleness.md",
2698
2714
  ],
2699
2715
  },
@@ -2713,14 +2729,86 @@ const CONTRACTS = [
2713
2729
  "agents/orc-executor-sonnet-4-6-high.md",
2714
2730
  "agents/orc-executor-sonnet-4-6-med.md",
2715
2731
  "agents/orc-executor-sonnet-5-high.md",
2732
+ "agents/orc-recon-opus-5-low.md",
2733
+ "agents/orc-recon-sonnet-4-6-med.md",
2716
2734
  "skills/_shared/code-graph.md",
2717
2735
  "skills/_shared/phases/execution.md",
2718
2736
  "skills/_shared/read-ladder.md",
2719
2737
  "skills/_shared/return-validation.md",
2738
+ "skills/orc-mini/SKILL.md",
2739
+ "skills/orc-quick/SKILL.md",
2720
2740
  // W9: the two single-executor spines name it in their code-graph step.
2721
2741
  "skills/orc-fast/SKILL.md",
2742
+ ],
2743
+ },
2744
+ // ── v1.9.1 W3 — the brief answer, and the lines the CLI now computes ──
2745
+ {
2746
+ // Every `--json` read a lane makes carries it, and the CLI is the only
2747
+ // thing that can answer it. A rename that reached one side and not the
2748
+ // other would leave every lane asking for a flag nothing knows.
2749
+ name: "graph brief answer (v1.9.1 — --brief on every --json read a lane makes)",
2750
+ token: "--brief",
2751
+ files: [
2752
+ "agents/orc-executor-haiku-4-5.md",
2753
+ "agents/orc-executor-opus-4-7-high.md",
2754
+ "agents/orc-executor-opus-4-7-med.md",
2755
+ "agents/orc-executor-opus-4-8-high.md",
2756
+ "agents/orc-executor-opus-5-high.md",
2757
+ "agents/orc-executor-opus-5-low.md",
2758
+ "agents/orc-executor-opus-5-med.md",
2759
+ "agents/orc-executor-sonnet-4-6-high.md",
2760
+ "agents/orc-executor-sonnet-4-6-med.md",
2761
+ "agents/orc-executor-sonnet-5-high.md",
2762
+ "agents/orc-recon-opus-5-low.md",
2763
+ "agents/orc-recon-sonnet-4-6-med.md",
2764
+ "skills/_shared/code-graph.md",
2765
+ "skills/_shared/phases/execution.md",
2766
+ "skills/_shared/phases/planning.md",
2767
+ "skills/_shared/phases/preflight.md",
2768
+ // review.md names it to say where it is deliberately NOT used.
2769
+ "skills/_shared/phases/review.md",
2770
+ "skills/_shared/phases/ship.md",
2771
+ // trace.md names the call each trace verb is copied from.
2772
+ "skills/_shared/phases/trace.md",
2773
+ "skills/_shared/read-ladder.md",
2774
+ "skills/orc/SKILL.md",
2775
+ "skills/orc-fast/SKILL.md",
2722
2776
  "skills/orc-mini/SKILL.md",
2777
+ "skills/orc-mini/references/complexity.md",
2778
+ "skills/orc-quick/SKILL.md",
2779
+ "skills/orc-quick/references/gh-mode.md",
2780
+ "skills/orc-quick/references/look.md",
2723
2781
  ],
2782
+ binFiles: ["bin/cli.js"],
2783
+ },
2784
+ {
2785
+ // The blast radius is the CLI's line now. A lane that assembled it by hand
2786
+ // would drift from the CLI's grammar the first time either side moved.
2787
+ name: "graph blast line (v1.9.1 — changes computes the blast radius, the lane prints it)",
2788
+ token: "blast_line",
2789
+ files: ["skills/orc-mini/SKILL.md", "skills/orc-quick/SKILL.md"],
2790
+ binFiles: ["bin/graph-signals.js"],
2791
+ },
2792
+ {
2793
+ // Mini's one call. The flag, the prose that explains it and the engine that
2794
+ // answers it move together or not at all.
2795
+ name: "graph complexity read (v1.9.1 — impact --complexity, one call, one line)",
2796
+ token: "--complexity",
2797
+ files: [
2798
+ "skills/_shared/code-graph.md",
2799
+ "skills/_shared/phases/trace.md",
2800
+ "skills/orc-mini/SKILL.md",
2801
+ "skills/orc-mini/references/complexity.md",
2802
+ ],
2803
+ binFiles: ["bin/cli.js"],
2804
+ },
2805
+ {
2806
+ // The four thresholds live in ONE place. The prose quotes them by NAME, so
2807
+ // a rename that reaches only the engine fails here.
2808
+ name: "graph complexity thresholds (v1.9.1 — the constants the prose quotes)",
2809
+ token: "COMPLEXITY_CALLER_FILES",
2810
+ files: ["skills/orc-mini/references/complexity.md"],
2811
+ binFiles: ["bin/graph-signals.js"],
2724
2812
  },
2725
2813
  // ── v1.8.2 W3 — the delivery flags (D1 · D2 · D3 · D5) ────────────────
2726
2814
  {
@@ -2729,7 +2817,15 @@ const CONTRACTS = [
2729
2817
  // CLI that answers it.
2730
2818
  name: "graph slice view (v1.8.2 — ctx --for-slice, the OUTSIDE view of a declared file)",
2731
2819
  token: "--for-slice",
2732
- files: ["hooks/orc-graph-hook.js", "skills/_shared/code-graph.md", "skills/_shared/phases/execution.md"],
2820
+ files: [
2821
+ "hooks/orc-graph-hook.js",
2822
+ "skills/_shared/code-graph.md",
2823
+ "skills/_shared/phases/execution.md",
2824
+ "skills/orc-mini/SKILL.md",
2825
+ "skills/orc-mini/examples/mini-run-mock.md",
2826
+ "skills/orc-quick/SKILL.md",
2827
+ "skills/orc-quick/references/look.md",
2828
+ ],
2733
2829
  binFiles: ["bin/cli.js", "bin/graph-query.js"],
2734
2830
  },
2735
2831
  {
@@ -2737,7 +2833,88 @@ const CONTRACTS = [
2737
2833
  // bare `--source` is also `orc doc`'s own flag.
2738
2834
  name: "graph source block (v1.8.2 — ctx --source [N], charged to the same budget)",
2739
2835
  token: "--source [N]",
2740
- files: ["skills/_shared/code-graph.md", "skills/_shared/read-ladder.md"],
2836
+ files: [
2837
+ "agents/orc-recon-opus-5-low.md",
2838
+ "agents/orc-recon-sonnet-4-6-med.md",
2839
+ "skills/_shared/code-graph.md",
2840
+ "skills/_shared/read-ladder.md",
2841
+ "skills/orc-quick/references/look.md",
2842
+ ],
2843
+ binFiles: ["bin/cli.js"],
2844
+ },
2845
+ // ── v1.9.1 W5 — delivery where the paid reads are (R1 · R4) ─────────────
2846
+ {
2847
+ // The call sites WITH the card. The recon agents ask for it, the ladder
2848
+ // and the contract say what it may never print, and the CLI answers it.
2849
+ name: "graph callers source (v1.9.1 — ctx --callers-source, six lines per confident call site)",
2850
+ token: "--callers-source",
2851
+ files: [
2852
+ "agents/orc-recon-opus-5-low.md",
2853
+ "agents/orc-recon-sonnet-4-6-med.md",
2854
+ "skills/_shared/code-graph.md",
2855
+ "skills/_shared/read-ladder.md",
2856
+ ],
2857
+ binFiles: ["bin/cli.js", "bin/graph-query.js"],
2858
+ },
2859
+ {
2860
+ // Where a language server is asked. Every reader that is told to use it
2861
+ // names the field, and the engine is the only thing that computes it.
2862
+ name: "graph LSP anchor (v1.9.1 — lsp_at on a symbol card: file, line, 1-based character)",
2863
+ token: "lsp_at",
2864
+ files: [
2865
+ "agents/orc-executor-haiku-4-5.md",
2866
+ "agents/orc-executor-opus-4-7-high.md",
2867
+ "agents/orc-executor-opus-4-7-med.md",
2868
+ "agents/orc-executor-opus-4-8-high.md",
2869
+ "agents/orc-executor-opus-5-high.md",
2870
+ "agents/orc-executor-opus-5-low.md",
2871
+ "agents/orc-executor-opus-5-med.md",
2872
+ "agents/orc-executor-sonnet-4-6-high.md",
2873
+ "agents/orc-executor-sonnet-4-6-med.md",
2874
+ "agents/orc-executor-sonnet-5-high.md",
2875
+ "agents/orc-recon-opus-5-low.md",
2876
+ "agents/orc-recon-sonnet-4-6-med.md",
2877
+ "skills/_shared/code-graph.md",
2878
+ "skills/_shared/read-ladder.md",
2879
+ ],
2880
+ binFiles: ["bin/graph-query.js"],
2881
+ },
2882
+ // ── v1.9.0 — the lean lanes reproduce before they fix ───────────────────
2883
+ {
2884
+ // The slice field that makes a defect entry show the bug RED first. It is
2885
+ // a CONDITIONAL, and the conditional is the contract: `repro` alone also
2886
+ // matches "reproducible" and "reproduce" in files that owe nothing here.
2887
+ // Every executor carries the step, the shared return contract validates it
2888
+ // (§5d), and the full lane's execution core states it once.
2889
+ name: "reproduce-first slice field (v1.9.0 — repro.required)",
2890
+ token: "repro.required: true",
2891
+ files: [
2892
+ "agents/orc-executor-haiku-4-5.md",
2893
+ "agents/orc-executor-opus-4-7-high.md",
2894
+ "agents/orc-executor-opus-4-7-med.md",
2895
+ "agents/orc-executor-opus-4-8-high.md",
2896
+ "agents/orc-executor-opus-5-high.md",
2897
+ "agents/orc-executor-opus-5-low.md",
2898
+ "agents/orc-executor-opus-5-med.md",
2899
+ "agents/orc-executor-sonnet-4-6-high.md",
2900
+ "agents/orc-executor-sonnet-4-6-med.md",
2901
+ "agents/orc-executor-sonnet-5-high.md",
2902
+ "skills/_shared/return-validation.md",
2903
+ "skills/orc/subskills/orc-execution/core.md",
2904
+ ],
2905
+ },
2906
+ {
2907
+ // The trace verb. `/orc-retro` counts a reproduction apart from a TDD
2908
+ // cycle, so the verb is defined in the protocol, emitted by the lane that
2909
+ // asks for it, explained in that lane's reference, and declared in the
2910
+ // CLI's own phase manifest — one place each, pinned together.
2911
+ name: "reproduce-first trace verb (v1.9.0 — REPRO red|green)",
2912
+ token: "REPRO",
2913
+ files: [
2914
+ "skills/_shared/phases/trace.md",
2915
+ "skills/orc-quick/SKILL.md",
2916
+ "skills/orc-quick/references/defect.md",
2917
+ ],
2741
2918
  binFiles: ["bin/cli.js"],
2742
2919
  },
2743
2920
  {
@@ -2745,7 +2922,12 @@ const CONTRACTS = [
2745
2922
  // uses this one, so the flag has to exist wherever the text says it does.
2746
2923
  name: "graph one-call update (v1.8.2 — update --notes-pending)",
2747
2924
  token: "--notes-pending",
2748
- files: ["skills/_shared/code-graph.md", "skills/_shared/phases/execution.md"],
2925
+ files: [
2926
+ "skills/_shared/code-graph.md",
2927
+ "skills/_shared/phases/execution.md",
2928
+ "skills/orc-mini/SKILL.md",
2929
+ "skills/orc-quick/SKILL.md",
2930
+ ],
2749
2931
  binFiles: ["bin/cli.js"],
2750
2932
  },
2751
2933
  {
@@ -2818,8 +3000,11 @@ const CONTRACTS = [
2818
3000
  "skills/_shared/code-graph.md",
2819
3001
  "skills/_shared/phases/planning.md",
2820
3002
  "skills/_shared/phases/trace.md",
2821
- "skills/orc/SKILL.md",
2822
3003
  "skills/orc-diy/references/flow-schema.md",
3004
+ "skills/orc-mini/SKILL.md",
3005
+ "skills/orc-quick/SKILL.md",
3006
+ "skills/orc-quick/references/look.md",
3007
+ "skills/orc/SKILL.md",
2823
3008
  ],
2824
3009
  binFiles: ["bin/cli.js", "bin/graph-map.js"],
2825
3010
  },
@@ -2829,8 +3014,9 @@ const CONTRACTS = [
2829
3014
  name: "graph map trace (v1.8.2 — GRAPH-MAP, one line at the start of planning)",
2830
3015
  token: "GRAPH-MAP",
2831
3016
  files: [
2832
- "skills/_shared/phases/trace.md",
2833
3017
  "skills/_shared/phases/planning.md",
3018
+ "skills/_shared/phases/trace.md",
3019
+ "skills/orc-mini/examples/mini-run-mock.md",
2834
3020
  ],
2835
3021
  binFiles: ["bin/cli.js"],
2836
3022
  },
@@ -2880,12 +3066,6 @@ const CONTRACTS = [
2880
3066
  name: "read ladder (escalating read discipline for read-heavy roles)",
2881
3067
  token: "read-ladder.md",
2882
3068
  files: [
2883
- // v1.6.0 — the ENFORCEMENT half. The ladder was advisory prose in three
2884
- // places and enforced in none; this hook is the layer that can refuse.
2885
- // It cites the ladder by name because its two carve-outs ARE the
2886
- // ladder's two exceptions — rename the file and the gate's reason text
2887
- // stops naming anything real.
2888
- "hooks/orc-read-gate.js",
2889
3069
  "agents/orc-executor-haiku-4-5.md",
2890
3070
  "agents/orc-executor-opus-4-7-high.md",
2891
3071
  "agents/orc-executor-opus-4-7-med.md",
@@ -2896,29 +3076,40 @@ const CONTRACTS = [
2896
3076
  "agents/orc-executor-sonnet-4-6-high.md",
2897
3077
  "agents/orc-executor-sonnet-4-6-med.md",
2898
3078
  "agents/orc-executor-sonnet-5-high.md",
3079
+ "agents/orc-recon-opus-5-low.md",
3080
+ "agents/orc-recon-sonnet-4-6-med.md",
2899
3081
  "skills/_shared/README.md",
2900
3082
  "skills/_shared/interview.md",
3083
+ "skills/_shared/phases/README.md",
3084
+ "skills/_shared/phases/wiki-consult.md",
2901
3085
  "skills/_shared/read-ladder.md",
2902
3086
  "skills/orc-analyze-mini/SKILL.md",
2903
3087
  "skills/orc-analyze/SKILL.md",
2904
3088
  "skills/orc-boundary/SKILL.md",
2905
3089
  "skills/orc-fast/SKILL.md",
2906
3090
  "skills/orc-quick/references/dispatch-gate.md",
3091
+ "skills/orc-quick/references/look.md",
2907
3092
  "skills/orc-wiki/SKILL.md",
2908
3093
  "skills/orc/SKILL.md",
2909
- "skills/_shared/phases/wiki-consult.md",
2910
3094
  "skills/orc/subskills/orc-execution/core.md",
2911
- "skills/_shared/phases/README.md",
3095
+ // v1.6.0 — the ENFORCEMENT half. The ladder was advisory prose in three
3096
+ // places and enforced in none; this hook is the layer that can refuse.
3097
+ // It cites the ladder by name because its two carve-outs ARE the
3098
+ // ladder's two exceptions — rename the file and the gate's reason text
3099
+ // stops naming anything real.
3100
+ "hooks/orc-read-gate.js",
2912
3101
  ],
2913
3102
  },
2914
3103
  {
2915
3104
  name: "foreign input is evidence, never instruction",
2916
3105
  token: "untrusted-input.md",
2917
3106
  files: [
2918
- "skills/orc-test/SKILL.md",
2919
3107
  "agents/orc-doc-writer-opus-5-med.md",
3108
+ "agents/orc-recon-opus-5-low.md",
3109
+ "agents/orc-recon-sonnet-4-6-med.md",
2920
3110
  "skills/_shared/README.md",
2921
3111
  "skills/_shared/extra-dispatch.md",
3112
+ "skills/_shared/phases/wiki-consult.md",
2922
3113
  "skills/_shared/untrusted-input.md",
2923
3114
  "skills/orc-analyze/SKILL.md",
2924
3115
  "skills/orc-boundary/SKILL.md",
@@ -2931,8 +3122,8 @@ const CONTRACTS = [
2931
3122
  "skills/orc-pact/SKILL.md",
2932
3123
  "skills/orc-poly/SKILL.md",
2933
3124
  "skills/orc-quick/references/gh-mode.md",
3125
+ "skills/orc-test/SKILL.md",
2934
3126
  "skills/orc-wiki/SKILL.md",
2935
- "skills/_shared/phases/wiki-consult.md",
2936
3127
  ],
2937
3128
  },
2938
3129
  // ── v0.40.0 — gotchas (repair memory) ───────────────────────────────────
@@ -3772,7 +3963,15 @@ const BUDGETS = [
3772
3963
  // 1 measured a mini run with `code_graph: on` that never called `orc graph`:
3773
3964
  // a pointer at the end of a long probe line was skipped. The three steps now
3774
3965
  // have their own heading; the mechanics stay in _shared/code-graph.md.
3775
- { file: "skills/orc-mini/SKILL.md", maxLines: 270 },
3966
+ // v1.9.0: deliberate raise 270→280 — the lean-lane revamp. W1 trimmed the
3967
+ // spine to 246 by moving the Phase X/T narration and the fallback and switch
3968
+ // paragraphs into _shared and the phase's own reference. W4 spent that room on
3969
+ // contracts that must survive compaction: the graph_facts planner slice, the
3970
+ // complexity read's four thresholds, the wiki POINTERS-not-bodies rule, the
3971
+ // affected-tests-first smoke gate and the `none is an answer` record. The
3972
+ // arithmetic (how to count, why each threshold is that number, the
3973
+ // graph_facts shape) lives in references/complexity.md.
3974
+ { file: "skills/orc-mini/SKILL.md", maxLines: 280 },
3776
3975
  // v0.39.0: deliberate raises 195→201 / 179→182 — the analyst gains hard rules
3777
3976
  // 2b (a source it did not author is FOREIGN input) and 4a (the read ladder);
3778
3977
  // fast gains the ladder as a slice line. Both are hard rules by nature: they
@@ -3835,6 +4034,14 @@ const BUDGETS = [
3835
4034
  // v1.8.0 W9: deliberate raise 230→240 — the F0 code-graph step (e.), for the
3836
4035
  // same measured reason as orc-mini's raise: a lengthened line was skipped.
3837
4036
  { file: "skills/orc-fast/SKILL.md", maxLines: 240 },
4037
+ // v1.9.0: a FIRST pin for the quick spine, at 325. It had none, and it grew
4038
+ // to 379 lines. W1 trimmed it to 298 by moving the step table, the gate menu,
4039
+ // the repair-loop example and the doc shape into references/ and README.md;
4040
+ // W2 and W3 spent the rest on the graph-first dig, the reproduce-first step,
4041
+ // the blast-radius line and the one-call cache update. 325 is where that
4042
+ // lands plus nothing — a spine that grows past its own references has moved
4043
+ // prose the wrong way.
4044
+ { file: "skills/orc-quick/SKILL.md", maxLines: 325 },
3838
4045
  ];
3839
4046
 
3840
4047
  function walk(dir, out) {
@@ -4461,6 +4668,15 @@ for (const b of BUDGETS) {
4461
4668
  // one. design-05 §6.3: a call one lane makes belongs to that lane.
4462
4669
  for (const [id, c] of Object.entries(CALLS)) {
4463
4670
  const want = [...(measured[prefixOf(c.cmd)] || new Set())].sort();
4671
+ // v1.9.1: a row with `lanes: []` is a USER command — catalogued so
4672
+ // `orc lane calls --all` documents it, and asserted the OTHER way round:
4673
+ // no lane may name it. `orc graph audit` is the first one. The assertion is
4674
+ // stronger than the >= 2 rule, not an exception to it.
4675
+ if (Array.isArray(c.lanes) && c.lanes.length === 0) {
4676
+ if (want.length)
4677
+ errs.push(`${id}: a user command, and ${want.join(", ")} name it — remove the call, or give the row its lanes`);
4678
+ continue;
4679
+ }
4464
4680
  if (want.length < 2)
4465
4681
  errs.push(
4466
4682
  `${id}: only ${want.length} lane names it — a call one lane makes belongs to that lane and is not catalogued`
@@ -198,6 +198,10 @@ const required = [
198
198
  // every read falls back to the full model. It breaks the SPEED, silently, on
199
199
  // the one call every lane makes — which is the worst kind of missing file.
200
200
  "bin/graph-shard.js",
201
+ // v1.9.1 W4 — the audit (A2). Dropping it breaks `orc graph audit`, which is
202
+ // the only answer that says WHY a THIN map is thin. Without it the status
203
+ // line still says THIN and names a command that is not there.
204
+ "bin/graph-audit.js",
201
205
 
202
206
  // The two DATED data files (v0.50.0). Both ship inside the package and both
203
207
  // are load-bearing on absence rather than on content: without the catalog
@@ -434,6 +438,10 @@ const required = [
434
438
  "templates/agents/orc-reviewer-opus-5-med.md",
435
439
  "templates/agents/orc-verifier-opus-5-med.md",
436
440
  "templates/agents/orc-scout-sonnet-4-6-high.md",
441
+ // v1.9.0 — the /orc-quick recon pair. Both halves must ship: the gate offers
442
+ // them side by side, so a missing file makes half the menu a dead option.
443
+ "templates/agents/orc-recon-sonnet-4-6-med.md",
444
+ "templates/agents/orc-recon-opus-5-low.md",
437
445
  "templates/agents/orc-test-author-opus-5-med.md",
438
446
  "templates/agents/orc-pattern-codifier-sonnet-5-high.md",
439
447
  "templates/agents/orc-retro-sonnet-5-high.md",
@@ -590,8 +598,18 @@ const agentCount = walkCount(path.join(ROOT, "templates/agents"), ".md");
590
598
  // by model+effort and earns no agent, the v0.38.0/v0.45.0 precedent, and that
591
599
  // limit is stated in the skill: no `SPAWN` line, so `/orc-retro` cannot
592
600
  // aggregate it.
601
+ // v1.9.0: +0 skills and +2 agents — the /orc-quick recon PAIR. This reverses
602
+ // the v0.38.0/v0.45.0 precedent for ONE lane, on purpose: recon stayed ad-hoc
603
+ // because it was cheap and varied, and the cost was measured — the trace hook
604
+ // only sees an agent whose name starts with `orc-`, so every read-only entry
605
+ // was invisible to `SPAWN`/`RETURN`, to `orc run inflight` and to /orc-retro,
606
+ // and the gate offered an "effort" the Agent tool has no per-call knob for. Two
607
+ // files, one per model, with one shared return contract. The ad-hoc escape
608
+ // hatch survives on the menu as line 3 (model only). Both names earn an
609
+ // explicit guard entry above and a MODEL-MAPPING row; `opus5_only` adds no
610
+ // pair, because orc-quick is the lane that key is inert in.
593
611
  if (skillCount < 39) missing.push(`templates/skills (expected >=39 SKILL.md, found ${skillCount})`);
594
- if (agentCount < 48) missing.push(`templates/agents (expected >=48 .md, found ${agentCount})`);
612
+ if (agentCount < 50) missing.push(`templates/agents (expected >=50 .md, found ${agentCount})`);
595
613
 
596
614
  // B4 — encoding/mojibake guard. The OneDrive corruption rule becomes a gate:
597
615
  // scan every shipped text file for the U+FFFD replacement char (invalid UTF-8