@azure-id/orc 1.9.0 → 1.9.2

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 (134) hide show
  1. package/CHANGELOG.md +202 -0
  2. package/README-id.md +57 -59
  3. package/README.md +53 -54
  4. package/bin/build-agents.js +109 -109
  5. package/bin/cli.js +262 -58
  6. package/bin/graph-audit.js +235 -0
  7. package/bin/graph-extract.js +308 -3
  8. package/bin/graph-gain.js +23 -3
  9. package/bin/graph-map.js +9 -1
  10. package/bin/graph-query.js +152 -10
  11. package/bin/graph-shard.js +6 -1
  12. package/bin/graph-signals.js +287 -4
  13. package/bin/graph.js +717 -658
  14. package/bin/onboarding-content.js +4 -4
  15. package/bin/pricing.json +207 -200
  16. package/bin/verify-contracts.js +117 -2
  17. package/bin/verify-package.js +11 -7
  18. package/bin/webui/css/04-motion.css +162 -152
  19. package/bin/webui/css/panels/knowledge.css +563 -116
  20. package/bin/webui/fixtures/extra.js +2036 -2036
  21. package/bin/webui/fixtures/hookui.js +5 -5
  22. package/bin/webui/fixtures/knowledge.js +21 -4
  23. package/bin/webui/fixtures/settings.js +305 -305
  24. package/bin/webui/i18n/en/knowledge.json +122 -4
  25. package/bin/webui/i18n/id/knowledge.json +122 -4
  26. package/bin/webui/js/panels/knowledge.js +573 -9
  27. package/bin/webui/js/panels/overview.js +13 -4
  28. package/mock-run/context-combiner.md +100 -100
  29. package/mock-run/orc-budget.md +534 -534
  30. package/mock-run/orc-challenge-council.md +262 -262
  31. package/mock-run/orc-ultra.md +103 -103
  32. package/package.json +1 -1
  33. package/templates/agents/MODEL-MAPPING.md +43 -43
  34. package/templates/agents/orc-advisor-opus-5-xhigh.md +56 -56
  35. package/templates/agents/orc-analyze-mini-opus-5-med.md +60 -60
  36. package/templates/agents/orc-analyze-mini-sonnet-5-high.md +58 -58
  37. package/templates/agents/orc-challenge-advisor-opus-5-med.md +75 -75
  38. package/templates/agents/orc-challenge-contrarian-opus-5-high.md +110 -110
  39. package/templates/agents/orc-challenge-executor-opus-5-med.md +114 -114
  40. package/templates/agents/orc-challenge-expansionist-opus-5-med.md +112 -112
  41. package/templates/agents/orc-challenge-judge-opus-5-high.md +132 -132
  42. package/templates/agents/orc-challenge-outsider-opus-5-low.md +109 -109
  43. package/templates/agents/orc-challenge-principles-opus-5-high.md +109 -109
  44. package/templates/agents/orc-challenge-reader-opus-5-low.md +90 -90
  45. package/templates/agents/orc-claude-writer-opus-5-med.md +55 -55
  46. package/templates/agents/orc-context-combiner-opus-5-high.md +88 -88
  47. package/templates/agents/orc-doc-checker-opus-5-low.md +108 -108
  48. package/templates/agents/orc-doc-writer-opus-5-med.md +134 -134
  49. package/templates/agents/orc-executor-haiku-4-5.md +2 -1
  50. package/templates/agents/orc-executor-opus-4-7-high.md +2 -1
  51. package/templates/agents/orc-executor-opus-4-7-med.md +2 -1
  52. package/templates/agents/orc-executor-opus-4-8-high.md +2 -1
  53. package/templates/agents/orc-executor-opus-5-high.md +4 -3
  54. package/templates/agents/orc-executor-opus-5-low.md +4 -3
  55. package/templates/agents/orc-executor-opus-5-med.md +4 -3
  56. package/templates/agents/orc-executor-sonnet-4-6-high.md +2 -1
  57. package/templates/agents/orc-executor-sonnet-4-6-med.md +2 -1
  58. package/templates/agents/orc-executor-sonnet-5-high.md +2 -1
  59. package/templates/agents/orc-graph-noter-sonnet-4-6-med.md +1 -1
  60. package/templates/agents/orc-judge-opus-5-xhigh.md +85 -85
  61. package/templates/agents/orc-learn-writer-opus-5-low.md +73 -73
  62. package/templates/agents/orc-pattern-codifier-opus-5-med.md +65 -65
  63. package/templates/agents/orc-planner-mini-opus-5-med.md +4 -4
  64. package/templates/agents/orc-planner-mini-sonnet-5-high.md +1 -1
  65. package/templates/agents/orc-planner-opus-5-med.md +160 -160
  66. package/templates/agents/orc-recon-opus-5-low.md +18 -8
  67. package/templates/agents/orc-recon-sonnet-4-6-med.md +15 -5
  68. package/templates/agents/orc-retro-opus-5-med.md +3 -3
  69. package/templates/agents/orc-reviewer-opus-5-med.md +60 -60
  70. package/templates/agents/orc-scout-opus-5-low.md +40 -40
  71. package/templates/agents/orc-system-analyst-opus-5-high.md +120 -120
  72. package/templates/agents/orc-test-author-opus-5-med.md +71 -71
  73. package/templates/agents/orc-test-designer-opus-5-high.md +158 -158
  74. package/templates/agents/orc-test-interpreter-opus-5-low.md +130 -130
  75. package/templates/agents/orc-verifier-opus-5-med.md +69 -69
  76. package/templates/agents/orc-wiki-scanner-opus-5-med.md +81 -81
  77. package/templates/commands/orc-ultra.md +17 -17
  78. package/templates/commands/orc-verify.md +11 -11
  79. package/templates/hooks/README.md +13 -3
  80. package/templates/hooks/orc-effort-guard.js +178 -178
  81. package/templates/hooks/orc-graph-hook.js +53 -7
  82. package/templates/hooks/orc-statusline.js +6 -6
  83. package/templates/skills/_shared/code-graph.md +57 -18
  84. package/templates/skills/_shared/config-precedence.md +198 -198
  85. package/templates/skills/_shared/extra-dispatch.md +1346 -1346
  86. package/templates/skills/_shared/opus5-only.md +8 -8
  87. package/templates/skills/_shared/phases/analyst-gates.md +136 -136
  88. package/templates/skills/_shared/phases/execution.md +4 -4
  89. package/templates/skills/_shared/phases/planning.md +3 -3
  90. package/templates/skills/_shared/phases/preflight.md +1 -1
  91. package/templates/skills/_shared/phases/review.md +4 -2
  92. package/templates/skills/_shared/phases/ship.md +1 -1
  93. package/templates/skills/_shared/phases/trace.md +3 -2
  94. package/templates/skills/_shared/read-ladder.md +14 -1
  95. package/templates/skills/_shared/return-validation.md +1 -1
  96. package/templates/skills/context-combiner/SKILL.md +1 -1
  97. package/templates/skills/context-combiner/schemas/combined-report.md +78 -78
  98. package/templates/skills/orc/README.md +2 -2
  99. package/templates/skills/orc/SKILL.md +8 -8
  100. package/templates/skills/orc/config.md +9 -9
  101. package/templates/skills/orc/examples/full-run-mock.md +73 -73
  102. package/templates/skills/orc/references/effort-and-mode.md +222 -222
  103. package/templates/skills/orc/references/preflight-report.md +2 -2
  104. package/templates/skills/orc/references/ultra-mode.md +3 -3
  105. package/templates/skills/orc/subskills/orc-planner/SKILL.md +2 -2
  106. package/templates/skills/orc/subskills/orc-planner-mini/SKILL.md +121 -121
  107. package/templates/skills/orc/subskills/orc-review-verify/SKILL.md +76 -76
  108. package/templates/skills/orc/subskills/orc-testgen/SKILL.md +45 -45
  109. package/templates/skills/orc-analyze/SKILL.md +2 -2
  110. package/templates/skills/orc-analyze/examples/analyze-mock.md +42 -42
  111. package/templates/skills/orc-analyze/schemas/report-audit.md +83 -83
  112. package/templates/skills/orc-analyze/schemas/report-prose.md +63 -63
  113. package/templates/skills/orc-analyze/schemas/report-requirement.md +78 -78
  114. package/templates/skills/orc-challenge/README.md +142 -142
  115. package/templates/skills/orc-challenge/examples/council-full-roster.md +273 -273
  116. package/templates/skills/orc-challenge/references/council.md +315 -315
  117. package/templates/skills/orc-challenge/references/intake.md +171 -171
  118. package/templates/skills/orc-claude/SKILL.md +14 -14
  119. package/templates/skills/orc-diy/README.md +143 -143
  120. package/templates/skills/orc-diy/references/flow-schema.md +1 -1
  121. package/templates/skills/orc-doc/README.md +229 -229
  122. package/templates/skills/orc-doc/examples/orc-doc-prd-run.md +325 -325
  123. package/templates/skills/orc-doc/references/chunking.md +527 -527
  124. package/templates/skills/orc-fast/SKILL.md +4 -4
  125. package/templates/skills/orc-learn/SKILL.md +14 -14
  126. package/templates/skills/orc-learn/examples/learn-run-mock.md +61 -61
  127. package/templates/skills/orc-mini/SKILL.md +16 -20
  128. package/templates/skills/orc-mini/references/complexity.md +25 -11
  129. package/templates/skills/orc-quick/SKILL.md +12 -13
  130. package/templates/skills/orc-quick/references/gh-mode.md +1 -1
  131. package/templates/skills/orc-quick/references/look.md +5 -5
  132. package/templates/skills/orc-verify/SKILL.md +15 -15
  133. package/templates/skills/orc-verify/examples/verify-mock.md +33 -33
  134. package/templates/skills/orc-wiki/references/extra.md +1 -1
@@ -66,8 +66,9 @@ const FINDING_ROUTE = {
66
66
  "lane-keys-drifted": { panel: "maintenance", cta: "overview.item.laneKeysDrifted.cta" },
67
67
  // v1.8.0. A DRIFTED code graph is cleared by the free `orc graph update`, which
68
68
  // is a button on the Knowledge panel's code graph card — the panel that can
69
- // CLEAR it, not the default.
70
- "graph-drifted": { panel: "knowledge", cta: "overview.item.graphDrifted.cta" },
69
+ // CLEAR it, not the default. Since v1.9.2 it opens the Code graph TAB, where
70
+ // the state ladder carries that button.
71
+ "graph-drifted": { panel: "knowledge", tab: "graph", cta: "overview.item.graphDrifted.cta" },
71
72
  // v1.3.0. The rule again, and cleanly: every one of these is cleared on the
72
73
  // CLI Hook Interface panel — the board is where an orphaned component is
73
74
  // removed, the caution strip is where an invalid layout is named, and the
@@ -97,6 +98,13 @@ const FINDING_ROUTE = {
97
98
  const DEFAULT_FINDING_ROUTE = { panel: "maintenance", cta: "overview.item.doctor.cta" };
98
99
  const findingRoute = (id) => FINDING_ROUTE[id] || DEFAULT_FINDING_ROUTE;
99
100
 
101
+ // Go to a panel, and — when the route names one — to its tab. Only Knowledge
102
+ // has a tab a finding can name (KN_TAB, which survives a re-render).
103
+ function goRoute(panel, tab) {
104
+ if (panel === "knowledge" && tab && typeof KN_TAB !== "undefined") KN_TAB = tab;
105
+ location.hash = "#/" + panel;
106
+ }
107
+
100
108
  PANELS.overview = function (host) {
101
109
  head(host, t("overview.title"), t("overview.sub"));
102
110
  section(
@@ -317,7 +325,7 @@ PANELS.overview = function (host) {
317
325
  if (r.panel) {
318
326
  const go = el("button", "btn btn-ghost btn-sm", t(r.cta));
319
327
  go.type = "button";
320
- go.addEventListener("click", () => (location.hash = "#/" + r.panel));
328
+ go.addEventListener("click", () => goRoute(r.panel, r.tab));
321
329
  detail.append(go);
322
330
  } else {
323
331
  detail.append(el("div", "note", t("overview.attention.nothingToDo")));
@@ -387,6 +395,7 @@ function attentionCard(d, findings) {
387
395
  // as the title beats paraphrasing it into something less exact.
388
396
  title: f.message,
389
397
  panel: r.panel,
398
+ tab: r.tab,
390
399
  cta: t(r.cta),
391
400
  });
392
401
  }
@@ -458,7 +467,7 @@ function attentionCard(d, findings) {
458
467
  // The CLI's own words for WHY, kept verbatim under our explanation.
459
468
  if (it.evidence) mid.append(el("div", "todo-evidence", it.evidence));
460
469
  row.append(mid, el("span", "todo-cta", it.cta));
461
- row.addEventListener("click", () => (location.hash = "#/" + it.panel));
470
+ row.addEventListener("click", () => goRoute(it.panel, it.tab));
462
471
  list.append(row);
463
472
  }
464
473
  if (items.length) c.append(list);
@@ -1,100 +1,100 @@
1
- # Mock run — the context combiner
2
-
3
- > Two analyses of two related documents, merged into one spec — and it proves
4
- > that nothing was lost.
5
-
6
- There is no slash command for this. It is offered by `/orc-analyze` when two or
7
- more related analyses already exist.
8
-
9
- ---
10
-
11
- ## 1. What it does
12
-
13
- You analysed the refund policy PDF last week. Today you analysed the support
14
- escalation doc. Both talk about refunds. Building from either one alone means
15
- building half the thing.
16
-
17
- The combiner pools **every** requirement from **every** source and gives each
18
- one exactly one outcome. Then it counts. If the count is not 100%, it does not
19
- hand off.
20
-
21
- ---
22
-
23
- ## 2. The run
24
-
25
- ```
26
- /orc-analyze … Phase F:
27
-
28
- Two related analyses found. Merge them into one spec?
29
- · refund-policy 11 requirements 2026-08-04
30
- · support-escalation 7 requirements 2026-08-12
31
-
32
- > yes
33
- ```
34
-
35
- ```
36
- Dispatching orc-context-combiner-opus-5-high …
37
- returned as: claude-opus-5 / high ✓
38
-
39
- Phase B — are these really related?
40
- shared files api/refunds/ (both), web/refunds/ (both)
41
- shared subject refund state and who is told about it
42
- Verdict: related. Continuing.
43
-
44
- Phase C — pooled 18 requirements, reconciled one at a time
45
-
46
- exact duplicate R-04 = S-02 "refund state must be visible to support"
47
- → ONE row, both sources cited
48
- partial overlap R-07 "notify the customer" vs S-05 "notify support"
49
- → SPLIT into two rows, never collapsed into "notify"
50
- conflict R-09 says refunds are final; S-06 describes a re-open
51
- → CONFLICT, raised to you (below)
52
- ordering S-01 must happen before R-02 (it creates the state)
53
-
54
- Phase D — one question at a time
55
-
56
- ❓ R-09 vs S-06 — can a closed refund be re-opened?
57
- R-09 (policy PDF, p.4): "a completed refund is final"
58
- S-06 (escalation doc, §2): "support may re-open within 14 days"
59
- ➡️ The escalation doc is newer. I recommend S-06 wins, with R-09 kept
60
- as a note. Your call.
61
-
62
- > S-06 wins, and add the 14 days as a hard rule
63
-
64
- Phase E — conservation gate
65
- source requirements 18
66
- rows in the merged spec 19 (one split into two)
67
- every source id has exactly one outcome:
68
- kept 15 · merged 2 · split 1→2 · resolved-by-you 1 · dropped 0
69
- coverage_pct: 100 → handoff allowed
70
-
71
- Phase F — written
72
- combined-report.md
73
- combined-requirement-spec.md (a normal spec, plus the source map)
74
-
75
- Evidence freshness: 2 anchors from last week no longer match HEAD.
76
- api/refunds/create.ts:31 → now :44 (flagged, not silently fixed)
77
- ```
78
-
79
- ---
80
-
81
- ## 3. What to notice
82
-
83
- - **Nothing may vanish quietly.** Below 100% coverage there is no handoff.
84
- Dropping a requirement is allowed — but only as your explicit decision, and
85
- it is recorded as one.
86
- - **A partial overlap is split, never collapsed.** Collapsing two similar
87
- requirements into one shorter sentence is how scope disappears.
88
- - **Old evidence is re-checked against HEAD**, because an anchor that was true
89
- last week is not a fact today.
90
- - **The merged spec is a normal spec.** The planner and the build pipeline do
91
- not know or care that it came from two documents.
92
- - **Full lane only.** There is no mini version of this, and it never builds
93
- anything or spawns anything itself.
94
-
95
- ---
96
-
97
- ## 4. Related
98
-
99
- - Where it starts: [`/orc-analyze`](../templates/skills/orc-analyze/examples/analyze-mock.md)
100
- - What happens next: [`/orc-plan`](orc-plan.md)
1
+ # Mock run — the context combiner
2
+
3
+ > Two analyses of two related documents, merged into one spec — and it proves
4
+ > that nothing was lost.
5
+
6
+ There is no slash command for this. It is offered by `/orc-analyze` when two or
7
+ more related analyses already exist.
8
+
9
+ ---
10
+
11
+ ## 1. What it does
12
+
13
+ You analysed the refund policy PDF last week. Today you analysed the support
14
+ escalation doc. Both talk about refunds. Building from either one alone means
15
+ building half the thing.
16
+
17
+ The combiner pools **every** requirement from **every** source and gives each
18
+ one exactly one outcome. Then it counts. If the count is not 100%, it does not
19
+ hand off.
20
+
21
+ ---
22
+
23
+ ## 2. The run
24
+
25
+ ```
26
+ /orc-analyze … Phase F:
27
+
28
+ Two related analyses found. Merge them into one spec?
29
+ · refund-policy 11 requirements 2026-08-04
30
+ · support-escalation 7 requirements 2026-08-12
31
+
32
+ > yes
33
+ ```
34
+
35
+ ```
36
+ Dispatching orc-context-combiner-opus-5-high …
37
+ returned as: claude-opus-5-5 / high ✓
38
+
39
+ Phase B — are these really related?
40
+ shared files api/refunds/ (both), web/refunds/ (both)
41
+ shared subject refund state and who is told about it
42
+ Verdict: related. Continuing.
43
+
44
+ Phase C — pooled 18 requirements, reconciled one at a time
45
+
46
+ exact duplicate R-04 = S-02 "refund state must be visible to support"
47
+ → ONE row, both sources cited
48
+ partial overlap R-07 "notify the customer" vs S-05 "notify support"
49
+ → SPLIT into two rows, never collapsed into "notify"
50
+ conflict R-09 says refunds are final; S-06 describes a re-open
51
+ → CONFLICT, raised to you (below)
52
+ ordering S-01 must happen before R-02 (it creates the state)
53
+
54
+ Phase D — one question at a time
55
+
56
+ ❓ R-09 vs S-06 — can a closed refund be re-opened?
57
+ R-09 (policy PDF, p.4): "a completed refund is final"
58
+ S-06 (escalation doc, §2): "support may re-open within 14 days"
59
+ ➡️ The escalation doc is newer. I recommend S-06 wins, with R-09 kept
60
+ as a note. Your call.
61
+
62
+ > S-06 wins, and add the 14 days as a hard rule
63
+
64
+ Phase E — conservation gate
65
+ source requirements 18
66
+ rows in the merged spec 19 (one split into two)
67
+ every source id has exactly one outcome:
68
+ kept 15 · merged 2 · split 1→2 · resolved-by-you 1 · dropped 0
69
+ coverage_pct: 100 → handoff allowed
70
+
71
+ Phase F — written
72
+ combined-report.md
73
+ combined-requirement-spec.md (a normal spec, plus the source map)
74
+
75
+ Evidence freshness: 2 anchors from last week no longer match HEAD.
76
+ api/refunds/create.ts:31 → now :44 (flagged, not silently fixed)
77
+ ```
78
+
79
+ ---
80
+
81
+ ## 3. What to notice
82
+
83
+ - **Nothing may vanish quietly.** Below 100% coverage there is no handoff.
84
+ Dropping a requirement is allowed — but only as your explicit decision, and
85
+ it is recorded as one.
86
+ - **A partial overlap is split, never collapsed.** Collapsing two similar
87
+ requirements into one shorter sentence is how scope disappears.
88
+ - **Old evidence is re-checked against HEAD**, because an anchor that was true
89
+ last week is not a fact today.
90
+ - **The merged spec is a normal spec.** The planner and the build pipeline do
91
+ not know or care that it came from two documents.
92
+ - **Full lane only.** There is no mini version of this, and it never builds
93
+ anything or spawns anything itself.
94
+
95
+ ---
96
+
97
+ ## 4. Related
98
+
99
+ - Where it starts: [`/orc-analyze`](../templates/skills/orc-analyze/examples/analyze-mock.md)
100
+ - What happens next: [`/orc-plan`](orc-plan.md)