@azure-id/orc 1.9.2 → 2.1.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.
- package/CHANGELOG.md +722 -0
- package/README-id.md +56 -42
- package/README.md +58 -41
- package/bin/build-agents.js +125 -29
- package/bin/clear-logs.js +620 -0
- package/bin/cli.js +1873 -180
- package/bin/fix.js +459 -0
- package/bin/gotcha-import.js +1081 -0
- package/bin/gotcha.js +1566 -0
- package/bin/graph-query.js +1 -1
- package/bin/graph.js +717 -717
- package/bin/habit.js +1538 -0
- package/bin/mockrun-catalog.js +284 -276
- package/bin/onboarding-content.js +2 -1
- package/bin/pricing.json +28 -21
- package/bin/run-undo.js +398 -0
- package/bin/trace-write.js +869 -0
- package/bin/verify-contracts.js +627 -100
- package/bin/verify-package.js +68 -10
- package/bin/webui/api.js +151 -6
- package/bin/webui/app.html +239 -232
- package/bin/webui/css/00-tokens.css +110 -92
- package/bin/webui/css/04-motion.css +87 -0
- package/bin/webui/css/06-responsive.css +203 -178
- package/bin/webui/css/panels/behaviour.css +205 -0
- package/bin/webui/css/panels/hookui.css +79 -0
- package/bin/webui/fixtures/behaviour.js +562 -0
- package/bin/webui/fixtures/extra.js +9 -9
- package/bin/webui/fixtures/flow.js +81 -81
- package/bin/webui/fixtures/hookui.js +506 -431
- package/bin/webui/fixtures/index.js +66 -3
- package/bin/webui/fixtures/knowledge.js +9 -3
- package/bin/webui/fixtures/maintenance.js +123 -42
- package/bin/webui/fixtures/rules.js +1007 -1002
- package/bin/webui/fixtures/settings.js +6 -7
- package/bin/webui/fixtures/stats.js +25 -6
- package/bin/webui/fixtures/wait.js +98 -97
- package/bin/webui/i18n/en/behaviour.json +156 -0
- package/bin/webui/i18n/en/hookui.json +290 -194
- package/bin/webui/i18n/en/maintenance.json +71 -52
- package/bin/webui/i18n/en/nav.json +25 -24
- package/bin/webui/i18n/en/settings.json +60 -60
- package/bin/webui/i18n/en/tour.json +37 -35
- package/bin/webui/i18n/id/behaviour.json +156 -0
- package/bin/webui/i18n/id/hookui.json +290 -194
- package/bin/webui/i18n/id/maintenance.json +71 -52
- package/bin/webui/i18n/id/nav.json +25 -24
- package/bin/webui/i18n/id/settings.json +60 -60
- package/bin/webui/i18n/id/tour.json +37 -35
- package/bin/webui/js/01-i18n.js +155 -154
- package/bin/webui/js/05-banners.js +181 -172
- package/bin/webui/js/06-edit.js +193 -183
- package/bin/webui/js/90-tour.js +498 -494
- package/bin/webui/js/91-shortcuts.js +126 -126
- package/bin/webui/js/99-boot.js +121 -118
- package/bin/webui/js/panels/behaviour.js +1087 -0
- package/bin/webui/js/panels/hookui.js +2196 -1691
- package/bin/webui/js/panels/maintenance.js +336 -235
- package/bin/webui/js/panels/settings.js +726 -719
- package/mock-run/INDEX.md +110 -107
- package/mock-run/extra-slots.md +1 -1
- package/mock-run/gotcha-import.md +118 -0
- package/mock-run/habits.md +129 -0
- package/mock-run/orc-aftermath.md +392 -392
- package/mock-run/orc-budget.md +29 -33
- package/mock-run/orc-cli.md +200 -200
- package/mock-run/orc-explain.md +86 -86
- package/mock-run/orc-extra.md +389 -392
- package/mock-run/orc-fix.md +87 -0
- package/mock-run/orc-pattern.md +112 -112
- package/mock-run/orc-quick.md +6 -1
- package/mock-run/orc.md +157 -157
- package/package.json +1 -1
- package/templates/agents/MODEL-MAPPING.md +37 -34
- package/templates/agents/orc-advisor-opus-5-xhigh.md +1 -7
- package/templates/agents/orc-analyze-mini-opus-5-med.md +1 -6
- package/templates/agents/orc-analyze-mini-sonnet-5-high.md +2 -5
- package/templates/agents/{orc-claude-writer-opus-4-8-high.md → orc-claude-writer-opus-5-low.md} +48 -53
- package/templates/agents/orc-context-combiner-opus-5-high.md +1 -11
- package/templates/agents/orc-executor-haiku-4-5.md +14 -6
- package/templates/agents/orc-executor-opus-4-7-high.md +14 -6
- package/templates/agents/orc-executor-opus-4-7-med.md +14 -6
- package/templates/agents/orc-executor-opus-4-8-high.md +14 -6
- package/templates/agents/orc-executor-opus-5-high.md +14 -6
- package/templates/agents/orc-executor-opus-5-low.md +14 -6
- package/templates/agents/orc-executor-opus-5-med.md +14 -6
- package/templates/agents/orc-executor-sonnet-4-6-high.md +14 -6
- package/templates/agents/orc-executor-sonnet-4-6-med.md +14 -6
- package/templates/agents/orc-executor-sonnet-5-high.md +15 -7
- package/templates/agents/orc-executor-sonnet-5-low.md +155 -0
- package/templates/agents/orc-executor-sonnet-5-med.md +155 -0
- package/templates/agents/orc-graph-noter-sonnet-4-6-med.md +1 -10
- package/templates/agents/orc-judge-opus-5-xhigh.md +5 -9
- package/templates/agents/orc-learn-writer-opus-5-low.md +1 -7
- package/templates/agents/orc-pattern-codifier-opus-5-med.md +1 -8
- package/templates/agents/orc-pattern-codifier-sonnet-5-high.md +58 -63
- package/templates/agents/orc-planner-mini-opus-5-med.md +1 -4
- package/templates/agents/orc-planner-mini-sonnet-5-high.md +2 -3
- package/templates/agents/orc-planner-opus-5-med.md +1 -4
- package/templates/agents/orc-recon-opus-5-low.md +1 -8
- package/templates/agents/orc-recon-sonnet-4-6-med.md +1 -8
- package/templates/agents/orc-retro-opus-5-med.md +6 -8
- package/templates/agents/orc-retro-sonnet-5-high.md +7 -8
- package/templates/agents/orc-reviewer-opus-5-low.md +96 -0
- package/templates/agents/orc-scout-opus-5-low.md +1 -6
- package/templates/agents/orc-scout-sonnet-4-6-high.md +35 -39
- package/templates/agents/orc-system-analyst-opus-5-high.md +1 -6
- package/templates/agents/orc-test-author-opus-5-med.md +4 -5
- package/templates/agents/orc-trace-writer-haiku-4-5.md +3 -7
- package/templates/agents/orc-verifier-opus-5-med.md +16 -8
- package/templates/agents/{orc-wiki-scanner-opus-4-8-high.md → orc-wiki-scanner-opus-5-low.md} +74 -79
- package/templates/agents/orc-wiki-scanner-sonnet-5-high.md +97 -106
- package/templates/commands/orc-analyze.md +13 -21
- package/templates/commands/orc-fast.md +10 -15
- package/templates/commands/orc-fix.md +18 -0
- package/templates/commands/orc-poly.md +12 -21
- package/templates/commands/orc-pr-driver.md +11 -30
- package/templates/commands/orc-pr-setup.md +10 -31
- package/templates/commands/orc-route.md +11 -41
- package/templates/commands/orc-test.md +5 -60
- package/templates/commands/orc-wiki.md +64 -64
- package/templates/hooks/README.md +109 -7
- package/templates/hooks/orc-session-hook.js +339 -0
- package/templates/hooks/orc-statusline-render.js +317 -23
- package/templates/hooks/orc-statusline.js +165 -50
- package/templates/hooks/orc-subagent-line.js +23 -5
- package/templates/hooks/orc-weather-fetch.js +123 -0
- package/templates/skills/_shared/README.md +9 -0
- package/templates/skills/_shared/code-graph.md +47 -55
- package/templates/skills/_shared/config-precedence.md +3 -1
- package/templates/skills/_shared/extra-dispatch.md +78 -93
- package/templates/skills/_shared/gotchas.md +248 -177
- package/templates/skills/_shared/habits.md +101 -0
- package/templates/skills/_shared/lane-contract.md +84 -0
- package/templates/skills/_shared/opus5-only.md +14 -14
- package/templates/skills/_shared/phases/README.md +142 -83
- package/templates/skills/_shared/phases/analyst-gates.md +10 -21
- package/templates/skills/_shared/phases/execution.md +8 -14
- package/templates/skills/_shared/phases/house-rules.md +27 -32
- package/templates/skills/_shared/phases/intake.md +127 -133
- package/templates/skills/_shared/phases/mock-example.md +46 -56
- package/templates/skills/_shared/phases/plan-handoff.md +91 -97
- package/templates/skills/_shared/phases/planning.md +7 -17
- package/templates/skills/_shared/phases/preflight.md +19 -42
- package/templates/skills/_shared/phases/review.md +24 -28
- package/templates/skills/_shared/phases/rules.md +18 -42
- package/templates/skills/_shared/phases/scoring.md +55 -65
- package/templates/skills/_shared/phases/security-checklist.md +46 -50
- package/templates/skills/_shared/phases/security.md +45 -55
- package/templates/skills/_shared/phases/ship.md +6 -15
- package/templates/skills/_shared/phases/stop-resume.md +2 -5
- package/templates/skills/_shared/phases/summary.md +73 -48
- package/templates/skills/_shared/phases/testgen.md +41 -51
- package/templates/skills/_shared/phases/trace-verbs.md +447 -0
- package/templates/skills/_shared/phases/trace.md +66 -297
- package/templates/skills/_shared/phases/verify.md +62 -70
- package/templates/skills/_shared/phases/wave-grouping.md +128 -133
- package/templates/skills/_shared/phases/wiki-consult.md +10 -6
- package/templates/skills/_shared/read-ladder.md +2 -55
- package/templates/skills/_shared/return-validation.md +17 -70
- package/templates/skills/_shared/review-slice.md +106 -0
- package/templates/skills/_shared/smoke-gate.md +46 -28
- package/templates/skills/_shared/wait.md +1 -0
- package/templates/skills/context-combiner/SKILL.md +15 -44
- package/templates/skills/orc/README.md +2 -2
- package/templates/skills/orc/SKILL.md +35 -63
- package/templates/skills/orc/config.md +25 -27
- package/templates/skills/orc/examples/full-run-mock.md +2 -1
- package/templates/skills/orc/references/effort-and-mode.md +17 -17
- package/templates/skills/orc/references/pattern-gate.md +89 -89
- package/templates/skills/orc/references/phases/intake.md +41 -47
- package/templates/skills/orc/references/phases/integration.md +13 -19
- package/templates/skills/orc/references/preflight-report.md +11 -12
- package/templates/skills/orc/references/ultra-mode.md +9 -7
- package/templates/skills/orc/schemas/checkpoint.md +122 -122
- package/templates/skills/orc/subskills/orc-execution/SKILL.md +27 -73
- package/templates/skills/orc/subskills/orc-execution/core.md +12 -99
- package/templates/skills/orc/subskills/orc-execution/subagent.md +14 -13
- package/templates/skills/orc/subskills/orc-review-verify/SKILL.md +12 -53
- package/templates/skills/orc/subskills/orc-review-verify/core.md +52 -135
- package/templates/skills/orc/subskills/orc-review-verify/subagent.md +7 -7
- package/templates/skills/orc/subskills/orc-testgen/SKILL.md +11 -22
- package/templates/skills/orc/subskills/orc-testgen/core.md +20 -59
- package/templates/skills/orc/subskills/orc-testgen/subagent.md +7 -7
- package/templates/skills/orc-advisor/SKILL.md +56 -60
- package/templates/skills/orc-analyze/SKILL.md +33 -67
- package/templates/skills/orc-analyze/schemas/report-audit.md +2 -1
- package/templates/skills/orc-analyze/schemas/report-prose.md +2 -1
- package/templates/skills/orc-analyze-mini/SKILL.md +35 -70
- package/templates/skills/orc-claude/SKILL.md +14 -14
- package/templates/skills/orc-claude/examples/claude-run-mock.md +65 -65
- package/templates/skills/orc-diy/README.md +31 -0
- package/templates/skills/orc-diy/SKILL.md +27 -78
- package/templates/skills/orc-diy/references/blocks/pattern.md +18 -18
- package/templates/skills/orc-fast/SKILL.md +49 -75
- package/templates/skills/orc-fix/SKILL.md +110 -0
- package/templates/skills/orc-judge/SKILL.md +77 -82
- package/templates/skills/orc-mini/SKILL.md +64 -112
- package/templates/skills/orc-mini/examples/mini-run-mock.md +4 -2
- package/templates/skills/orc-pattern/SKILL.md +27 -48
- package/templates/skills/orc-poly/SKILL.md +32 -61
- package/templates/skills/orc-pr-driver/SKILL.md +25 -51
- package/templates/skills/orc-pr-driver/references/green-gate.md +113 -105
- package/templates/skills/orc-pr-setup/SKILL.md +20 -45
- package/templates/skills/orc-quick/README.md +44 -3
- package/templates/skills/orc-quick/SKILL.md +77 -108
- package/templates/skills/orc-quick/references/dispatch-gate.md +18 -6
- package/templates/skills/orc-quick/references/gh-mode.md +50 -1
- package/templates/skills/orc-quick/references/look.md +3 -1
- package/templates/skills/orc-retro/SKILL.md +20 -19
- package/templates/skills/orc-retro/examples/retro-mock.md +17 -17
- package/templates/skills/orc-route/SKILL.md +25 -45
- package/templates/skills/orc-test/SKILL.md +16 -37
- package/templates/skills/orc-verify/SKILL.md +14 -32
- package/templates/skills/orc-wait/SKILL.md +156 -163
- package/templates/skills/orc-wiki/README.md +325 -325
- package/templates/skills/orc-wiki/SKILL.md +195 -195
- package/templates/skills/orc-wiki/examples/wiki-run-mock.md +37 -37
- package/templates/skills/orc-wiki/references/extra.md +2 -2
- package/templates/skills/orc-wiki/references/partial-refresh.md +276 -271
- package/templates/skills/orc-wiki/references/phases/phase-0.md +2 -7
- package/templates/skills/orc-wiki/references/phases/phase-1.md +1 -6
- package/templates/skills/orc-wiki/references/phases/phase-2.md +4 -9
- package/templates/skills/orc-wiki/references/phases/phase-3.md +1 -6
- package/templates/skills/orc-wiki/references/phases/phase-3c.md +4 -8
- package/templates/agents/orc-claude-writer-opus-5-med.md +0 -55
- package/templates/agents/orc-reviewer-opus-5-med.md +0 -60
- package/templates/agents/orc-wiki-scanner-opus-5-med.md +0 -81
|
@@ -780,7 +780,7 @@ const extraRoute = {
|
|
|
780
780
|
profile: "glm", model: "glm-4.6", small_model: null, max_turns: null,
|
|
781
781
|
engine: "claude-shim", provider: "zai", verify_state: "STALE", model_known: true,
|
|
782
782
|
},
|
|
783
|
-
{ from: 55, to: 65, band: "[55,65)", range: "scores 55 to 64", meaning: "several files, or a new surface, or logic that carries state", via: "claude", agent: "orc-executor-
|
|
783
|
+
{ from: 55, to: 65, band: "[55,65)", range: "scores 55 to 64", meaning: "several files, or a new surface, or logic that carries state", via: "claude", agent: "orc-executor-opus-5-low" },
|
|
784
784
|
{
|
|
785
785
|
// A routed model the last ping did not list — the state that becomes a
|
|
786
786
|
// 404 in the middle of a wave if nothing shows it first.
|
|
@@ -788,9 +788,9 @@ const extraRoute = {
|
|
|
788
788
|
profile: "cheap", model: "deepseek-coder", small_model: null, max_turns: null,
|
|
789
789
|
engine: "api", provider: "deepseek", verify_state: "VERIFIED", model_known: false,
|
|
790
790
|
},
|
|
791
|
-
// v1.0.0 W4 — the route
|
|
792
|
-
//
|
|
793
|
-
// routed
|
|
791
|
+
// v1.0.0 W4 — the route rows above split the default table's [41,90) band
|
|
792
|
+
// (v2.1.0: it was [65,90)), so the Claude remainders are [55,65) and [70,90).
|
|
793
|
+
// Both resolve to the SAME agent the routed parts displaced. That is the honest picture of an overlay: a row
|
|
794
794
|
// takes a slice of a band, and what it did not take falls through.
|
|
795
795
|
{ from: 70, to: 90, band: "[70,90)", range: "scores 70 to 89", meaning: "wide reach or genuinely new work (a cited risk floors a task to 70, so it lands here or above)", via: "claude", agent: "orc-executor-opus-5-low" },
|
|
796
796
|
{ from: 90, to: 100, band: "[90,100]", range: "scores 90 to 100", meaning: "the hardest work: a novel algorithm, or wide reach with deep logic", via: "claude", agent: "orc-executor-opus-5-med" },
|
|
@@ -890,9 +890,9 @@ const extraRole = {
|
|
|
890
890
|
provider: null, engine: null, verify_state: null, verify_age_days: null, model_known: null,
|
|
891
891
|
meaning: "a scanner returns an evidence-anchored doc body the orchestrator writes; every claim in it is anchored to a file you can open.",
|
|
892
892
|
asks: false, announce_point: "per scan-batch, beside the resolved tier",
|
|
893
|
-
claude: { via: "claude", agent: "orc-wiki-scanner-opus-
|
|
893
|
+
claude: { via: "claude", agent: "orc-wiki-scanner-opus-5-low", agents: ["orc-wiki-scanner-opus-5-low"], table: "shipped" },
|
|
894
894
|
resolved: "claude", held_back: null,
|
|
895
|
-
why: "no slot row holds wiki-scanner-deep — Extra is an OVERLAY, so an unrouted position falls straight through to orc-wiki-scanner-opus-
|
|
895
|
+
why: "no slot row holds wiki-scanner-deep — Extra is an OVERLAY, so an unrouted position falls straight through to orc-wiki-scanner-opus-5-low.",
|
|
896
896
|
announce: null,
|
|
897
897
|
next: "orc extra role set wiki-scanner-deep <profile>/<model>",
|
|
898
898
|
},
|
|
@@ -956,8 +956,8 @@ const extraLanes = {
|
|
|
956
956
|
},
|
|
957
957
|
{
|
|
958
958
|
lane: "/orc-mini", shape: "fixed-executor", agent: "orc-executor-sonnet-5-high",
|
|
959
|
-
band: "[
|
|
960
|
-
detail: "
|
|
959
|
+
band: "[31,41)", edges: [31, 40], agree: true, routes: "claude", resolved: null,
|
|
960
|
+
detail: "both edges resolve to Claude: row [30,55) covers this band, but its profile is STALE, so it does not route.",
|
|
961
961
|
},
|
|
962
962
|
{
|
|
963
963
|
lane: "/orc-fast", shape: "slot", agent: null, routes: "roles",
|
|
@@ -999,7 +999,7 @@ const extraLanes = {
|
|
|
999
999
|
// answering honestly instead of blaming a role name nobody could set.
|
|
1000
1000
|
lane: "/orc-wiki", shape: "slot", agent: null, routes: "claude",
|
|
1001
1001
|
slots: [
|
|
1002
|
-
{ slot: "wiki-scanner-deep", routes: false, profile: null, model: null, claude: "orc-wiki-scanner-opus-
|
|
1002
|
+
{ slot: "wiki-scanner-deep", routes: false, profile: null, model: null, claude: "orc-wiki-scanner-opus-5-low", held_back: null, why: "no slot row holds wiki-scanner-deep — Extra is an OVERLAY, so an unrouted position falls straight through to orc-wiki-scanner-opus-5-low." },
|
|
1003
1003
|
{ slot: "wiki-scanner-light", routes: false, profile: null, model: null, claude: "orc-wiki-scanner-sonnet-5-high", held_back: null, why: "no slot row holds wiki-scanner-light — Extra is an OVERLAY, so an unrouted position falls straight through to orc-wiki-scanner-sonnet-5-high." },
|
|
1004
1004
|
],
|
|
1005
1005
|
detail: "no position in this lane is held, so every one of them stays on its pinned Claude agent.",
|
|
@@ -1,81 +1,81 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/* fixtures/flow.js — canned data for `orc ui --fixtures`.
|
|
3
|
-
A compiled DIY flow with an OFF phase, so the red struck-through step is
|
|
4
|
-
designable.
|
|
5
|
-
|
|
6
|
-
THE RULE FOR EVERY FILE IN HERE: carry ONE OF EVERY STATE, including the
|
|
7
|
-
ugly ones. You cannot DESIGN a STALE chip on a fresh wiki, and a state
|
|
8
|
-
with no fixture is a state nobody has ever looked at. A per-state count
|
|
9
|
-
test asserts this, so a new state cannot ship without one.
|
|
10
|
-
|
|
11
|
-
Shapes MUST match what `bin/cli.js --json` really emits — a drifted
|
|
12
|
-
fixture is worse than no fixture. */
|
|
13
|
-
|
|
14
|
-
const { PROJECT } = require("./shell.js");
|
|
15
|
-
|
|
16
|
-
const diy = {
|
|
17
|
-
state: "STALE",
|
|
18
|
-
reason: "config changed since the last compile; orc updated 0.41.0 → 0.43.0 — run `orc diy compile`",
|
|
19
|
-
triggers: ["config changed since the last compile", "orc updated 0.41.0 → 0.43.0"],
|
|
20
|
-
configured: true,
|
|
21
|
-
paths: { config: PROJECT + "/.claude/orc-diy.config.yaml", compiled: PROJECT + "/.claude/orc/diy/FLOW-COMPILED.md", lock: PROJECT + "/.claude/orc/diy/flow.lock.json" },
|
|
22
|
-
// `options` is the key's closed set (v0.44.0) and the panel turns it into a
|
|
23
|
-
// dropdown. The fixture carries all three shapes on purpose: an ordinary
|
|
24
|
-
// enum, a NUMERIC set (rubric_bands — every band, not just the current one),
|
|
25
|
-
// `options: null` free text (flow_name), and the ugly one — `fixed_executor`
|
|
26
|
-
// holding the empty value, which is NOT in its own option list.
|
|
27
|
-
keys: [
|
|
28
|
-
{ key: "flow_name", value: "my-lean", default: "custom", is_set: true, desc: "Name shown in the compiled flow.", options: null },
|
|
29
|
-
{ key: "wiki_gate", value: "notice", default: "notice", is_set: false, desc: "Wiki freshness at preflight.", options: ["notice", "off", "hard"] },
|
|
30
|
-
{ key: "analyze", value: "off", default: "full", is_set: true, desc: "Analyst phase.", options: ["auto", "off", "mini", "full"] },
|
|
31
|
-
{ key: "planning", value: "own-planner", default: "auto", is_set: true, desc: "Planning route.", options: ["auto", "own-planner", "superpowers", "openspec"] },
|
|
32
|
-
{ key: "pattern", value: "ask", default: "ask", is_set: false, desc: "Code-pattern gate on a cache miss.", options: ["ask", "off", "on"] },
|
|
33
|
-
{ key: "scoring", value: "on", default: "on", is_set: false, desc: "Rubric scoring.", options: ["on", "off"] },
|
|
34
|
-
{ key: "fixed_executor", value: "", default: "", is_set: false, desc: "Executor used for every task when scoring is off.", options: ["orc-executor-haiku-4-5", "orc-executor-sonnet-4-6-med", "orc-executor-sonnet-5-high", "orc-executor-opus-4-8-high", "orc-executor-opus-5-high"] },
|
|
35
|
-
{ key: "review", value: "blocking-only", default: "full", is_set: true, desc: "Review phase depth.", options: ["on", "off", "blocking-only"] },
|
|
36
|
-
{ key: "security", value: "off", default: "off", is_set: false, desc: "Security pass.", options: ["off", "ask", "on", "always"] },
|
|
37
|
-
{ key: "verify", value: "smoke", default: "full", is_set: true, desc: "Verification depth.", options: ["full", "off", "smoke"] },
|
|
38
|
-
{ key: "testgen", value: "off", default: "off", is_set: false, desc: "Test-authoring phase.", options: ["off", "ask", "on"] },
|
|
39
|
-
{ key: "mock_example", value: "ask", default: "ask", is_set: false, desc: "Post-verify mocked example.", options: ["ask", "on", "off"] },
|
|
40
|
-
{ key: "ship_mode", value: "ask", default: "ask", is_set: false, desc: "Terminal ship behavior.", options: ["ask", "commit", "pr", "report-only"] },
|
|
41
|
-
{ key: "summary", value: "short", default: "full", is_set: true, desc: "Summary depth.", options: ["full", "off", "short"] },
|
|
42
|
-
{ key: "tdd", value: "on", default: "on", is_set: false, desc: "TDD gate.", options: ["on", "off"] },
|
|
43
|
-
{ key: "rubric_bands", value: 5, default: 5, is_set: false, desc: "Scoring granularity (scoring on only).", options: [2, 3, 4, 5, 6, 7, 8] },
|
|
44
|
-
{ key: "session_tier", value: "opus-4-8-high", default: "opus-5-high", is_set: true, desc: "Declared main-session tier.", options: ["sonnet-4-6-high", "opus-4-7-high", "opus-4-8-high", "opus-5-high", "opus-5-max", "fable-5-high"] },
|
|
45
|
-
],
|
|
46
|
-
// The bootstrap catalog, empty name first (= full-lane defaults, no --preset
|
|
47
|
-
// flag). `lean` is ACTIVE here even though this flow was renamed away from
|
|
48
|
-
// it — that is the state the "in use" chip exists for, and you cannot design
|
|
49
|
-
// it against a catalog where nothing matches.
|
|
50
|
-
presets: [
|
|
51
|
-
{ name: "", changes: {}, active: false },
|
|
52
|
-
{ name: "lean", changes: { analyze: "off", review: "blocking-only", verify: "smoke", summary: "short", flow_name: "lean" }, active: true },
|
|
53
|
-
{ name: "paranoid", changes: { analyze: "full", security: "always", testgen: "on", verify: "full", flow_name: "paranoid" }, active: false },
|
|
54
|
-
{ name: "solo-fast", changes: { scoring: "off", fixed_executor: "orc-executor-sonnet-5-high", review: "off", verify: "smoke", autonomy: "semi", flow_name: "solo-fast" }, active: false },
|
|
55
|
-
],
|
|
56
|
-
errors: [],
|
|
57
|
-
warnings: ["tdd is on but verify is smoke — the red proof gates less than it could"],
|
|
58
|
-
// The stepper's data. A lean flow is the useful fixture here precisely
|
|
59
|
-
// because it is half switched off — you cannot design the red OFF state
|
|
60
|
-
// against a pipeline where every phase is on.
|
|
61
|
-
steps: [
|
|
62
|
-
{ block: "header", label: "intake", key: null, value: "", on: true, note: "self-gate" },
|
|
63
|
-
{ block: "trace", label: "trace", key: null, value: "", on: true, note: "always on" },
|
|
64
|
-
{ block: "wiki", label: "wiki", key: "wiki_gate", value: "notice", on: true, note: "notice" },
|
|
65
|
-
{ block: "analyze", label: "analyze", key: "analyze", value: "off", on: false, note: "off" },
|
|
66
|
-
{ block: "planning", label: "plan", key: "planning", value: "own-planner", on: true, note: "own-planner" },
|
|
67
|
-
{ block: "pattern", label: "pattern", key: "pattern", value: "ask", on: true, note: "ask" },
|
|
68
|
-
{ block: "scoring", label: "score", key: "scoring", value: "on", on: true, note: "on" },
|
|
69
|
-
{ block: "execution", label: "execute", key: null, value: "", on: true, note: "scored" },
|
|
70
|
-
{ block: "review", label: "review", key: "review", value: "blocking-only", on: true, note: "blocking-only" },
|
|
71
|
-
{ block: "security", label: "security", key: "security", value: "off", on: false, note: "off" },
|
|
72
|
-
{ block: "verify", label: "verify", key: "verify", value: "smoke", on: true, note: "smoke" },
|
|
73
|
-
{ block: "testgen", label: "testgen", key: "testgen", value: "off", on: false, note: "off" },
|
|
74
|
-
{ block: "mock-example", label: "mock", key: "mock_example", value: "ask", on: true, note: "ask" },
|
|
75
|
-
{ block: "ship", label: "ship", key: "ship_mode", value: "ask", on: true, note: "ask" },
|
|
76
|
-
{ block: "summary", label: "summary", key: "summary", value: "short", on: true, note: "short" },
|
|
77
|
-
],
|
|
78
|
-
score_table: "| Score | Executor agent |\n|-------|----------------|\n| [0,
|
|
79
|
-
};
|
|
80
|
-
|
|
81
|
-
module.exports = { diy };
|
|
1
|
+
"use strict";
|
|
2
|
+
/* fixtures/flow.js — canned data for `orc ui --fixtures`.
|
|
3
|
+
A compiled DIY flow with an OFF phase, so the red struck-through step is
|
|
4
|
+
designable.
|
|
5
|
+
|
|
6
|
+
THE RULE FOR EVERY FILE IN HERE: carry ONE OF EVERY STATE, including the
|
|
7
|
+
ugly ones. You cannot DESIGN a STALE chip on a fresh wiki, and a state
|
|
8
|
+
with no fixture is a state nobody has ever looked at. A per-state count
|
|
9
|
+
test asserts this, so a new state cannot ship without one.
|
|
10
|
+
|
|
11
|
+
Shapes MUST match what `bin/cli.js --json` really emits — a drifted
|
|
12
|
+
fixture is worse than no fixture. */
|
|
13
|
+
|
|
14
|
+
const { PROJECT } = require("./shell.js");
|
|
15
|
+
|
|
16
|
+
const diy = {
|
|
17
|
+
state: "STALE",
|
|
18
|
+
reason: "config changed since the last compile; orc updated 0.41.0 → 0.43.0 — run `orc diy compile`",
|
|
19
|
+
triggers: ["config changed since the last compile", "orc updated 0.41.0 → 0.43.0"],
|
|
20
|
+
configured: true,
|
|
21
|
+
paths: { config: PROJECT + "/.claude/orc-diy.config.yaml", compiled: PROJECT + "/.claude/orc/diy/FLOW-COMPILED.md", lock: PROJECT + "/.claude/orc/diy/flow.lock.json" },
|
|
22
|
+
// `options` is the key's closed set (v0.44.0) and the panel turns it into a
|
|
23
|
+
// dropdown. The fixture carries all three shapes on purpose: an ordinary
|
|
24
|
+
// enum, a NUMERIC set (rubric_bands — every band, not just the current one),
|
|
25
|
+
// `options: null` free text (flow_name), and the ugly one — `fixed_executor`
|
|
26
|
+
// holding the empty value, which is NOT in its own option list.
|
|
27
|
+
keys: [
|
|
28
|
+
{ key: "flow_name", value: "my-lean", default: "custom", is_set: true, desc: "Name shown in the compiled flow.", options: null },
|
|
29
|
+
{ key: "wiki_gate", value: "notice", default: "notice", is_set: false, desc: "Wiki freshness at preflight.", options: ["notice", "off", "hard"] },
|
|
30
|
+
{ key: "analyze", value: "off", default: "full", is_set: true, desc: "Analyst phase.", options: ["auto", "off", "mini", "full"] },
|
|
31
|
+
{ key: "planning", value: "own-planner", default: "auto", is_set: true, desc: "Planning route.", options: ["auto", "own-planner", "superpowers", "openspec"] },
|
|
32
|
+
{ key: "pattern", value: "ask", default: "ask", is_set: false, desc: "Code-pattern gate on a cache miss.", options: ["ask", "off", "on"] },
|
|
33
|
+
{ key: "scoring", value: "on", default: "on", is_set: false, desc: "Rubric scoring.", options: ["on", "off"] },
|
|
34
|
+
{ key: "fixed_executor", value: "", default: "", is_set: false, desc: "Executor used for every task when scoring is off.", options: ["orc-executor-haiku-4-5", "orc-executor-sonnet-4-6-med", "orc-executor-sonnet-5-high", "orc-executor-opus-4-8-high", "orc-executor-opus-5-high"] },
|
|
35
|
+
{ key: "review", value: "blocking-only", default: "full", is_set: true, desc: "Review phase depth.", options: ["on", "off", "blocking-only"] },
|
|
36
|
+
{ key: "security", value: "off", default: "off", is_set: false, desc: "Security pass.", options: ["off", "ask", "on", "always"] },
|
|
37
|
+
{ key: "verify", value: "smoke", default: "full", is_set: true, desc: "Verification depth.", options: ["full", "off", "smoke"] },
|
|
38
|
+
{ key: "testgen", value: "off", default: "off", is_set: false, desc: "Test-authoring phase.", options: ["off", "ask", "on"] },
|
|
39
|
+
{ key: "mock_example", value: "ask", default: "ask", is_set: false, desc: "Post-verify mocked example.", options: ["ask", "on", "off"] },
|
|
40
|
+
{ key: "ship_mode", value: "ask", default: "ask", is_set: false, desc: "Terminal ship behavior.", options: ["ask", "commit", "pr", "report-only"] },
|
|
41
|
+
{ key: "summary", value: "short", default: "full", is_set: true, desc: "Summary depth.", options: ["full", "off", "short"] },
|
|
42
|
+
{ key: "tdd", value: "on", default: "on", is_set: false, desc: "TDD gate.", options: ["on", "off"] },
|
|
43
|
+
{ key: "rubric_bands", value: 5, default: 5, is_set: false, desc: "Scoring granularity (scoring on only).", options: [2, 3, 4, 5, 6, 7, 8] },
|
|
44
|
+
{ key: "session_tier", value: "opus-4-8-high", default: "opus-5-high", is_set: true, desc: "Declared main-session tier.", options: ["sonnet-4-6-high", "opus-4-7-high", "opus-4-8-high", "opus-5-high", "opus-5-max", "fable-5-high"] },
|
|
45
|
+
],
|
|
46
|
+
// The bootstrap catalog, empty name first (= full-lane defaults, no --preset
|
|
47
|
+
// flag). `lean` is ACTIVE here even though this flow was renamed away from
|
|
48
|
+
// it — that is the state the "in use" chip exists for, and you cannot design
|
|
49
|
+
// it against a catalog where nothing matches.
|
|
50
|
+
presets: [
|
|
51
|
+
{ name: "", changes: {}, active: false },
|
|
52
|
+
{ name: "lean", changes: { analyze: "off", review: "blocking-only", verify: "smoke", summary: "short", flow_name: "lean" }, active: true },
|
|
53
|
+
{ name: "paranoid", changes: { analyze: "full", security: "always", testgen: "on", verify: "full", flow_name: "paranoid" }, active: false },
|
|
54
|
+
{ name: "solo-fast", changes: { scoring: "off", fixed_executor: "orc-executor-sonnet-5-high", review: "off", verify: "smoke", autonomy: "semi", flow_name: "solo-fast" }, active: false },
|
|
55
|
+
],
|
|
56
|
+
errors: [],
|
|
57
|
+
warnings: ["tdd is on but verify is smoke — the red proof gates less than it could"],
|
|
58
|
+
// The stepper's data. A lean flow is the useful fixture here precisely
|
|
59
|
+
// because it is half switched off — you cannot design the red OFF state
|
|
60
|
+
// against a pipeline where every phase is on.
|
|
61
|
+
steps: [
|
|
62
|
+
{ block: "header", label: "intake", key: null, value: "", on: true, note: "self-gate" },
|
|
63
|
+
{ block: "trace", label: "trace", key: null, value: "", on: true, note: "always on" },
|
|
64
|
+
{ block: "wiki", label: "wiki", key: "wiki_gate", value: "notice", on: true, note: "notice" },
|
|
65
|
+
{ block: "analyze", label: "analyze", key: "analyze", value: "off", on: false, note: "off" },
|
|
66
|
+
{ block: "planning", label: "plan", key: "planning", value: "own-planner", on: true, note: "own-planner" },
|
|
67
|
+
{ block: "pattern", label: "pattern", key: "pattern", value: "ask", on: true, note: "ask" },
|
|
68
|
+
{ block: "scoring", label: "score", key: "scoring", value: "on", on: true, note: "on" },
|
|
69
|
+
{ block: "execution", label: "execute", key: null, value: "", on: true, note: "scored" },
|
|
70
|
+
{ block: "review", label: "review", key: "review", value: "blocking-only", on: true, note: "blocking-only" },
|
|
71
|
+
{ block: "security", label: "security", key: "security", value: "off", on: false, note: "off" },
|
|
72
|
+
{ block: "verify", label: "verify", key: "verify", value: "smoke", on: true, note: "smoke" },
|
|
73
|
+
{ block: "testgen", label: "testgen", key: "testgen", value: "off", on: false, note: "off" },
|
|
74
|
+
{ block: "mock-example", label: "mock", key: "mock_example", value: "ask", on: true, note: "ask" },
|
|
75
|
+
{ block: "ship", label: "ship", key: "ship_mode", value: "ask", on: true, note: "ask" },
|
|
76
|
+
{ block: "summary", label: "summary", key: "summary", value: "short", on: true, note: "short" },
|
|
77
|
+
],
|
|
78
|
+
score_table: "| Score | Executor agent |\n|-------|----------------|\n| [0,21) | orc-executor-sonnet-5-low |\n| [90,100] | orc-executor-opus-5-med |",
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
module.exports = { diy };
|