@azure-id/orc 1.9.1 → 2.0.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.
- package/CHANGELOG.md +390 -0
- package/README-id.md +20 -36
- package/README.md +24 -34
- package/bin/build-agents.js +206 -109
- package/bin/cli.js +760 -62
- package/bin/gotcha-import.js +1081 -0
- package/bin/gotcha.js +1286 -0
- package/bin/graph-query.js +1 -1
- package/bin/graph.js +717 -717
- package/bin/habit.js +1453 -0
- package/bin/mockrun-catalog.js +281 -276
- package/bin/onboarding-content.js +4 -4
- package/bin/pricing.json +207 -200
- package/bin/run-undo.js +398 -0
- package/bin/trace-write.js +657 -0
- package/bin/verify-contracts.js +527 -81
- package/bin/verify-package.js +58 -11
- package/bin/webui/api.js +26 -0
- package/bin/webui/app.html +239 -232
- package/bin/webui/css/00-tokens.css +110 -92
- package/bin/webui/css/04-motion.css +249 -152
- package/bin/webui/css/06-responsive.css +203 -178
- package/bin/webui/css/panels/behaviour.css +205 -0
- package/bin/webui/css/panels/knowledge.css +563 -116
- package/bin/webui/fixtures/behaviour.js +532 -0
- package/bin/webui/fixtures/extra.js +2036 -2036
- package/bin/webui/fixtures/hookui.js +5 -5
- package/bin/webui/fixtures/index.js +34 -0
- package/bin/webui/fixtures/knowledge.js +7 -1
- package/bin/webui/fixtures/settings.js +305 -305
- package/bin/webui/fixtures/stats.js +16 -0
- package/bin/webui/i18n/en/behaviour.json +143 -0
- package/bin/webui/i18n/en/knowledge.json +117 -2
- package/bin/webui/i18n/en/nav.json +25 -24
- package/bin/webui/i18n/en/tour.json +37 -35
- package/bin/webui/i18n/id/behaviour.json +143 -0
- package/bin/webui/i18n/id/knowledge.json +117 -2
- package/bin/webui/i18n/id/nav.json +25 -24
- package/bin/webui/i18n/id/tour.json +37 -35
- package/bin/webui/js/01-i18n.js +155 -154
- 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 +1022 -0
- package/bin/webui/js/panels/knowledge.js +552 -7
- package/bin/webui/js/panels/overview.js +13 -4
- package/mock-run/INDEX.md +109 -107
- package/mock-run/context-combiner.md +100 -100
- package/mock-run/gotcha-import.md +118 -0
- package/mock-run/habits.md +129 -0
- package/mock-run/orc-budget.md +534 -534
- package/mock-run/orc-challenge-council.md +262 -262
- package/mock-run/orc-quick.md +6 -1
- package/mock-run/orc-ultra.md +103 -103
- package/package.json +1 -1
- package/templates/agents/MODEL-MAPPING.md +49 -49
- package/templates/agents/orc-advisor-opus-5-xhigh.md +50 -56
- package/templates/agents/orc-analyze-mini-opus-5-med.md +55 -60
- package/templates/agents/orc-analyze-mini-sonnet-5-high.md +55 -58
- package/templates/agents/orc-challenge-advisor-opus-5-med.md +75 -75
- package/templates/agents/orc-challenge-contrarian-opus-5-high.md +110 -110
- package/templates/agents/orc-challenge-executor-opus-5-med.md +114 -114
- package/templates/agents/orc-challenge-expansionist-opus-5-med.md +112 -112
- package/templates/agents/orc-challenge-judge-opus-5-high.md +132 -132
- package/templates/agents/orc-challenge-outsider-opus-5-low.md +109 -109
- package/templates/agents/orc-challenge-principles-opus-5-high.md +109 -109
- package/templates/agents/orc-challenge-reader-opus-5-low.md +90 -90
- package/templates/agents/orc-claude-writer-opus-4-8-high.md +48 -53
- package/templates/agents/orc-claude-writer-opus-5-med.md +48 -55
- package/templates/agents/orc-context-combiner-opus-5-high.md +78 -88
- package/templates/agents/orc-doc-checker-opus-5-low.md +108 -108
- package/templates/agents/orc-doc-writer-opus-5-med.md +134 -134
- 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 +15 -7
- package/templates/agents/orc-executor-opus-5-low.md +15 -7
- package/templates/agents/orc-executor-opus-5-med.md +15 -7
- 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 +14 -6
- package/templates/agents/orc-graph-noter-sonnet-4-6-med.md +1 -10
- package/templates/agents/orc-judge-opus-5-xhigh.md +81 -85
- package/templates/agents/orc-learn-writer-opus-5-low.md +67 -73
- package/templates/agents/orc-pattern-codifier-opus-5-med.md +58 -65
- package/templates/agents/orc-pattern-codifier-sonnet-5-high.md +58 -63
- package/templates/agents/orc-planner-mini-opus-5-med.md +4 -7
- package/templates/agents/orc-planner-mini-sonnet-5-high.md +2 -3
- package/templates/agents/orc-planner-opus-5-med.md +157 -160
- package/templates/agents/orc-recon-opus-5-low.md +3 -10
- package/templates/agents/orc-recon-sonnet-4-6-med.md +1 -8
- package/templates/agents/orc-retro-opus-5-med.md +8 -10
- package/templates/agents/orc-retro-sonnet-5-high.md +6 -7
- package/templates/agents/orc-reviewer-opus-5-med.md +96 -60
- package/templates/agents/orc-scout-opus-5-low.md +35 -40
- package/templates/agents/orc-scout-sonnet-4-6-high.md +35 -39
- package/templates/agents/orc-system-analyst-opus-5-high.md +115 -120
- package/templates/agents/orc-test-author-opus-5-med.md +70 -71
- package/templates/agents/orc-test-designer-opus-5-high.md +158 -158
- package/templates/agents/orc-test-interpreter-opus-5-low.md +130 -130
- package/templates/agents/orc-trace-writer-haiku-4-5.md +3 -7
- package/templates/agents/orc-verifier-opus-5-med.md +77 -69
- package/templates/agents/orc-wiki-scanner-opus-4-8-high.md +74 -79
- package/templates/agents/orc-wiki-scanner-opus-5-med.md +74 -81
- 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-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-ultra.md +17 -17
- package/templates/commands/orc-verify.md +11 -11
- package/templates/hooks/README.md +36 -2
- package/templates/hooks/orc-effort-guard.js +178 -178
- package/templates/hooks/orc-session-hook.js +264 -0
- package/templates/hooks/orc-statusline.js +9 -7
- package/templates/skills/_shared/README.md +9 -0
- package/templates/skills/_shared/code-graph.md +48 -56
- package/templates/skills/_shared/config-precedence.md +200 -198
- package/templates/skills/_shared/extra-dispatch.md +1331 -1346
- package/templates/skills/_shared/gotchas.md +228 -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 +8 -8
- package/templates/skills/_shared/phases/README.md +142 -83
- package/templates/skills/_shared/phases/analyst-gates.md +125 -136
- 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 +23 -27
- 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 +433 -0
- package/templates/skills/_shared/phases/trace.md +136 -367
- 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 +79 -0
- package/templates/skills/_shared/smoke-gate.md +46 -28
- package/templates/skills/context-combiner/SKILL.md +16 -45
- package/templates/skills/context-combiner/schemas/combined-report.md +78 -78
- package/templates/skills/orc/README.md +2 -2
- package/templates/skills/orc/SKILL.md +41 -69
- package/templates/skills/orc/config.md +9 -9
- package/templates/skills/orc/examples/full-run-mock.md +73 -73
- package/templates/skills/orc/references/effort-and-mode.md +222 -222
- 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 +10 -11
- package/templates/skills/orc/references/ultra-mode.md +11 -9
- 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-planner/SKILL.md +2 -2
- package/templates/skills/orc/subskills/orc-planner-mini/SKILL.md +121 -121
- package/templates/skills/orc/subskills/orc-review-verify/SKILL.md +35 -76
- 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 +34 -45
- 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 +32 -68
- package/templates/skills/orc-analyze/examples/analyze-mock.md +42 -42
- package/templates/skills/orc-analyze/schemas/report-audit.md +84 -83
- package/templates/skills/orc-analyze/schemas/report-prose.md +64 -63
- package/templates/skills/orc-analyze/schemas/report-requirement.md +78 -78
- package/templates/skills/orc-analyze-mini/SKILL.md +35 -70
- package/templates/skills/orc-challenge/README.md +142 -142
- package/templates/skills/orc-challenge/examples/council-full-roster.md +273 -273
- package/templates/skills/orc-challenge/references/council.md +315 -315
- package/templates/skills/orc-challenge/references/intake.md +171 -171
- package/templates/skills/orc-claude/SKILL.md +14 -14
- package/templates/skills/orc-diy/README.md +174 -143
- package/templates/skills/orc-diy/SKILL.md +23 -74
- package/templates/skills/orc-diy/references/blocks/pattern.md +18 -18
- package/templates/skills/orc-diy/references/flow-schema.md +1 -1
- package/templates/skills/orc-doc/README.md +229 -229
- package/templates/skills/orc-doc/examples/orc-doc-prd-run.md +325 -325
- package/templates/skills/orc-doc/references/chunking.md +527 -527
- package/templates/skills/orc-fast/SKILL.md +45 -73
- package/templates/skills/orc-judge/SKILL.md +77 -82
- package/templates/skills/orc-learn/SKILL.md +14 -14
- package/templates/skills/orc-learn/examples/learn-run-mock.md +61 -61
- package/templates/skills/orc-mini/SKILL.md +65 -113
- 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 +43 -2
- package/templates/skills/orc-quick/SKILL.md +76 -107
- package/templates/skills/orc-quick/references/dispatch-gate.md +16 -5
- package/templates/skills/orc-quick/references/gh-mode.md +48 -1
- package/templates/skills/orc-quick/references/look.md +3 -1
- package/templates/skills/orc-retro/SKILL.md +19 -18
- package/templates/skills/orc-retro/examples/retro-mock.md +1 -1
- 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 +21 -39
- package/templates/skills/orc-verify/examples/verify-mock.md +33 -33
- package/templates/skills/orc-wait/SKILL.md +156 -163
- package/templates/skills/orc-wiki/references/extra.md +1 -1
- package/templates/skills/orc-wiki/references/phases/phase-0.md +1 -6
- package/templates/skills/orc-wiki/references/phases/phase-1.md +1 -6
- package/templates/skills/orc-wiki/references/phases/phase-2.md +1 -6
- package/templates/skills/orc-wiki/references/phases/phase-3.md +1 -6
- package/templates/skills/orc-wiki/references/phases/phase-3c.md +1 -6
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: orc-fast
|
|
3
3
|
description: >
|
|
4
|
-
Fastest ORC lane — knowledge-gated single-executor implementation
|
|
5
|
-
"use orc-fast to implement X" or "/orc-fast".
|
|
6
|
-
a fresh project wiki (orc-wiki) AND a cached
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
Orchestrator runs fine at Sonnet medium. The orchestrator never implements —
|
|
11
|
-
it spawns.
|
|
4
|
+
Fastest ORC lane — knowledge-gated single-executor implementation, with no
|
|
5
|
+
analyst and no planner. Use for "use orc-fast to implement X" or "/orc-fast".
|
|
6
|
+
Requires TWO prerequisites: a fresh project wiki (orc-wiki) AND a cached
|
|
7
|
+
code-pattern for the request's language. If either is missing, it falls back
|
|
8
|
+
to orc-mini. One Sonnet 4.6 high executor, a build+test smoke gate, one repair
|
|
9
|
+
round, ship.
|
|
12
10
|
---
|
|
13
11
|
|
|
14
12
|
# ORC-FAST
|
|
@@ -32,24 +30,21 @@ fit gate hands it to orc-mini.
|
|
|
32
30
|
|
|
33
31
|
## Phases
|
|
34
32
|
|
|
35
|
-
`orc lane phases orc-fast --json` is this lane's pipeline
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
manifest, because a `read: section` pointer names a HEADING and a renamed heading
|
|
39
|
-
is a pointer into nothing.
|
|
33
|
+
`orc lane phases orc-fast --json` is this lane's pipeline. **The CLI owns the order**:
|
|
34
|
+
never derive it from the headings below, and never rename or renumber one
|
|
35
|
+
without the manifest (`../_shared/lane-contract.md` §Phases).
|
|
40
36
|
|
|
41
37
|
## Phase F0 — Preflight (the two prerequisite gates; no spawn)
|
|
42
38
|
|
|
43
|
-
Emit a `GATE` trace line per check
|
|
39
|
+
Emit a `GATE` trace line per check.
|
|
44
40
|
|
|
45
41
|
**a. Wiki gate.** Decide existence with `orc wiki status` — the deterministic
|
|
46
42
|
probe in `../_shared/detecting-artifacts.md`, never an ad-hoc `find` (`.claude`
|
|
47
|
-
is hidden). `none` = gate FAILED → fallback; else
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
absent but docs present = STALE; wiki absent/empty = gate FAILED → fallback).
|
|
43
|
+
is hidden). `none` = gate FAILED → fallback; else read the tier from
|
|
44
|
+
`orc wiki status --json` → `.tier` (FRESH / AGING / STALE; the CLI computes
|
|
45
|
+
it — never recompute it by hand).
|
|
51
46
|
- **FRESH** → proceed silently. **AGING** → one-line notice, proceed.
|
|
52
|
-
- **STALE** → the user judges. Ask with exactly these options:
|
|
47
|
+
- **STALE** → the user judges. Ask (H `fast.f0.stale-wiki`) with exactly these options:
|
|
53
48
|
1. **Refresh wiki, then continue fast** *(recommended)* — run orc-wiki's
|
|
54
49
|
incremental refresh (diff since `scan_commit`, re-scan only affected
|
|
55
50
|
docs), then re-enter this preflight.
|
|
@@ -99,7 +94,7 @@ migration) and write the intent-spec + a minimal checkpoint.
|
|
|
99
94
|
## Phase F2 — Slice build + dispatch (ONE executor)
|
|
100
95
|
|
|
101
96
|
Build one slice for `orc-executor-sonnet-4-6-high` (dispatch BY NAME; model
|
|
102
|
-
pinned in the agent file). **Under `opus5_only` it is `orc-executor-opus-5-low`** — forced, and while that mode is on this lane needs an Opus 5 main session, so the "runs fine at Sonnet medium" premise applies only with it off (`../_shared/opus5-only.md`).
|
|
97
|
+
pinned in the agent file). **Under `opus5_only` it is `orc-executor-opus-5-low`** — forced, and while that mode is on this lane needs an Opus 5.5 main session, so the "runs fine at Sonnet medium" premise applies only with it off (`../_shared/opus5-only.md`).
|
|
103
98
|
|
|
104
99
|
**Extra (`extra_enabled`, `../_shared/extra-dispatch.md`):** the same slice may run off Claude. **This lane has no score at all, so it holds a POSITION, not a band:** resolve `orc extra resolve --slot fast-executor --json` (set with `orc extra role set fast-executor <profile>/<model>`). No row on that slot = Claude, and that is an answer, not a gap. The `extra:` line joins the F0 preflight (P0, printed whenever the gate is on) and NAMES the agent it displaces — `orc-executor-sonnet-4-6-high`; dispatch through `orc extra dispatch --task <file> --json` with `slot: "fast-executor"` and **no `score`** (both is refused by name); validate with `return-validation.md` **§2b, not §2**; a failure runs `orc extra reconcile <task_id>` FIRST — a worktree that moved is RESUMED, never re-done — then falls back to that same pinned agent BY NAME, announced. Extra is orthogonal to the knowledge gate — a fresh wiki and a cached pattern are still required, and a foreign worker gets the same pointers-not-content slice.
|
|
105
100
|
|
|
@@ -134,35 +129,35 @@ pinned in the agent file). **Under `opus5_only` it is `orc-executor-opus-5-low`*
|
|
|
134
129
|
- **terse-return rule:** standard contract fields, NO narrative prose — files
|
|
135
130
|
changed, one-line diff summary, smoke-relevant notes only.
|
|
136
131
|
|
|
137
|
-
Validate the return per `../_shared/return-validation.md`
|
|
132
|
+
Validate the return per `../_shared/return-validation.md` §1–§3 + the § of
|
|
133
|
+
each field you injected — `unmet[]`
|
|
138
134
|
honesty, `pattern_version` + `invariants_checked` attestation, `actual_model`
|
|
139
135
|
/ `actual_effort` downgrade check (emit the `VERIFY` trace line), and §6's worktree delta (`git status --short` before/after; a path changed outside `declared_files` is a violation whatever the return said). Malformed
|
|
140
136
|
return = failure (one re-dispatch, then fallback offer).
|
|
141
137
|
|
|
142
|
-
**Before any re-dispatch, run `orc run inflight
|
|
138
|
+
**Before any re-dispatch, run `orc run inflight`**. A Task error does not kill the agent behind it, and exit 2 REFUSES by default — `a lane that re-dispatches over a live attempt` has broken the contract. Canonical: `../_shared/return-validation.md`.
|
|
143
139
|
|
|
144
140
|
## Phase F3 — Smoke gate (build + test; blocks ship on red)
|
|
145
141
|
|
|
146
142
|
Run the gate per `../_shared/smoke-gate.md`, sourcing commands **from
|
|
147
143
|
`wiki-meta.json`'s `commands` block** (recorded at wiki scan — don't
|
|
148
144
|
rediscover tooling; manifest lacks them → detect once and say so). **GREEN**
|
|
149
|
-
→ code-graph step e.(3) (never a gate) → ship. **RED** → one repair round; second red → STOP and offer: escalate to
|
|
145
|
+
→ code-graph step e.(3) (never a gate) → ship. **RED** → the flaky check, then one repair round; second red → STOP and offer: escalate to
|
|
150
146
|
orc-mini (reason `smoke-red-escalation`) / switch to full `/orc` / stop.
|
|
151
147
|
Docs-only → gate N/A, say so.
|
|
152
148
|
|
|
153
149
|
## Phase F3.5 — Mock example (config `mock_example`, default ask)
|
|
154
150
|
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
committed/staged**. Drift answer → `DRIFT-FROM` recovery (cap 2 loops, honest
|
|
159
|
-
report on cap). Trace: `PHASE mock-example`, `DRIFT loop=<n>`.
|
|
151
|
+
After a GREEN F3, before ship (H `fast.f3-5.mock`): follow `../_shared/drift-recovery.md` (load on
|
|
152
|
+
fire) — the `mock-examples/<change-slug>/` deliverable, the `DRIFT-FROM` loop and
|
|
153
|
+
its cap. Trace: `PHASE mock-example`, `DRIFT loop=<n>`.
|
|
160
154
|
|
|
161
155
|
## Phase F4 — Ship
|
|
162
156
|
|
|
163
|
-
Offer commit (push if asked; never stage `mock-examples/`). Append the final markers to the checkpoint, emit
|
|
157
|
+
Offer commit (H `fast.f4.ship` · `any.ship.review-before-push`; push if asked; never stage `mock-examples/`). Append the final markers to the checkpoint, emit
|
|
164
158
|
`OUTCOME task=… band=fast model=… retries=… unmet=…` + `FINISH`, show the
|
|
165
|
-
dispatch line (model/effort actually used) + the `/usage` reminder.
|
|
159
|
+
dispatch line (model/effort actually used) + the `/usage` reminder. Every end — ship
|
|
160
|
+
or a red STOP — prints the card (`../_shared/phases/summary.md` §End-of-run card). Fast never
|
|
166
161
|
triggers the post-ship wiki refresh ask (preflight polices freshness on the
|
|
167
162
|
way in) — the passive stale-flag note still applies to touched covered files.
|
|
168
163
|
|
|
@@ -176,46 +171,25 @@ already in the shared format — no migration.
|
|
|
176
171
|
|
|
177
172
|
## Behavior trace (always on)
|
|
178
173
|
|
|
179
|
-
`../_shared/phases/trace.md` (`core`, at run start; `orc lane phases`
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
Nothing else about the protocol is restated here; a phase that ends with
|
|
186
|
-
`zero new trace lines is a protocol violation`.
|
|
187
|
-
|
|
188
|
-
## Config
|
|
189
|
-
|
|
190
|
-
**ONE resolver, and it is not you:** `orc lane config orc-fast --json`. Obey
|
|
191
|
-
`effective`, print every line in `announce[]` VERBATIM at preflight, and honour
|
|
192
|
-
`stops[]` before wave 1. Never re-derive a value, a precedence or an inertness
|
|
193
|
-
from `.claude/orc.config.yaml` — a key this lane does not read is not in the
|
|
194
|
-
answer, and a key another key shadows comes back already marked. Exit ≠ 0 → say
|
|
195
|
-
the CLI is unavailable and fall back to `../_shared/config-precedence.md`'s
|
|
196
|
-
documented defaults, out loud. Priorities and families:
|
|
197
|
-
`../_shared/config-precedence.md`.
|
|
174
|
+
`../_shared/phases/trace.md` (`core`, at run start; `orc lane phases orc-fast --json` →
|
|
175
|
+
`trace_grammar` gives the verbs). Lane token `fast`, tier
|
|
176
|
+
**Build lanes** — batched to **2 packets** (preflight+dispatch ·
|
|
177
|
+
gate+ship) → `orc trace write --packet -`. At run start write `log_dir/.current` =
|
|
178
|
+
`run-fast-<slug>-<DDMMYY>-<HHMMSS>.txt` AND `touch the trace file` of that name
|
|
179
|
+
in the SAME step. A phase that ends with `zero new trace lines is a protocol violation`.
|
|
198
180
|
|
|
199
|
-
|
|
200
|
-
keys never apply, and the tier edges the F0 gate reads arrive resolved.
|
|
201
|
-
|
|
202
|
-
## Rules — the anti-slop card (`../_shared/phases/rules.md`)
|
|
181
|
+
## Lane contract (`../_shared/lane-contract.md` — read it ONLY when a call exits ≠ 0)
|
|
203
182
|
|
|
204
|
-
`orc
|
|
205
|
-
|
|
206
|
-
**
|
|
207
|
-
VERBATIM at preflight
|
|
208
|
-
|
|
209
|
-
|
|
183
|
+
- **Calls:** `orc lane calls orc-fast --json` names every call and its exit codes.
|
|
184
|
+
**An exit code is an ANSWER where it says so, not a failure.** Make no other call.
|
|
185
|
+
- **Config:** `orc lane config orc-fast --json`. Obey `effective`, print every line
|
|
186
|
+
in `announce[]` VERBATIM at preflight, and honour `stops[]` before wave 1.
|
|
187
|
+
Never merge `.claude/orc.config.yaml` yourself (`../_shared/config-precedence.md`).
|
|
188
|
+
- **Rules:** `orc rules slice --lane orc-fast --json` is the ONLY assembler
|
|
189
|
+
(`../_shared/phases/rules.md`). Its `line` prints VERBATIM at preflight.
|
|
210
190
|
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
it, and what an EMPTY answer means. Never invent a spelling, never re-word an
|
|
214
|
-
exit code, and never re-derive a state word — the CLI's state words are the only
|
|
215
|
-
state words, and **an exit code is an ANSWER wherever that contract says so, not
|
|
216
|
-
a failure**. A call the answer does not name is a call this lane does not make.
|
|
217
|
-
Exit ≠ 0 from the catalogue itself → say the CLI is unavailable and name the
|
|
218
|
-
command you are about to run, out loud, before running it.
|
|
191
|
+
Fast has no config key of its own — command-entry only; wave/scoring/review
|
|
192
|
+
keys never apply, and the tier edges the F0 gate reads arrive resolved.
|
|
219
193
|
|
|
220
194
|
## Checkpoint (minimal, append-only)
|
|
221
195
|
|
|
@@ -223,14 +197,12 @@ One `fast-checkpoint.md` in the run folder: GATE results (+ any
|
|
|
223
197
|
`wiki_stale_override`), the dispatch, smoke verdicts, OUTCOME — enough for
|
|
224
198
|
/orc-retro mining and fresh-session resume, nothing more.
|
|
225
199
|
|
|
226
|
-
## What fast still enforces
|
|
200
|
+
## What fast still enforces
|
|
227
201
|
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
(malformed = failure) · never offer commit on a red build · report the
|
|
231
|
-
dispatch + remind the user to run `/usage` (never invoke it programmatically).
|
|
202
|
+
All artifacts in the run subfolder, never project root · never offer commit on
|
|
203
|
+
a red build · never invoke `/usage` programmatically.
|
|
232
204
|
|
|
233
205
|
## Waiting mid-run (`/orc-wait`)
|
|
234
206
|
|
|
235
207
|
Canonical: `../_shared/wait.md`. **`a lane that waits without a hand-back` has broken this contract.**
|
|
236
|
-
Checkpoint **full** · safe point **after the executor returns**.
|
|
208
|
+
Checkpoint **full** · safe point **after the executor returns**.
|
|
@@ -1,82 +1,77 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: orc-judge
|
|
3
|
-
description: >
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
`
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
(
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
- **
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
| implementation | Phase 6/6.5 + traceability matrix + static analysis | fidelity to the user's ask + ultra-strict quality (security, smells, simplification, placement, pattern invariants) | scored executor fix wave → re-verify → re-judge |
|
|
79
|
-
|
|
80
|
-
Return fields include `actual_model` + `actual_effort` (standard
|
|
81
|
-
claimed-vs-actual check) and `rubric_items_checked[]` +
|
|
82
|
-
`unconfirmed_assumptions_touched[]` — validate them like any worker return.
|
|
1
|
+
---
|
|
2
|
+
name: orc-judge
|
|
3
|
+
description: >
|
|
4
|
+
Internal to /orc-ultra: the three judgment gates — analysis, plan,
|
|
5
|
+
implementation. Returns APPROVE | REVISE | ESCALATE with anchored findings;
|
|
6
|
+
REVISE has a hard 2-loop cap. No slash command of its own.
|
|
7
|
+
disable-model-invocation: true
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# ORC-JUDGE (ultra-lane judgment gates)
|
|
11
|
+
|
|
12
|
+
A model-based quality gate on top of ORC's deterministic gates. The judge
|
|
13
|
+
handles what determinism cannot: scope-interpretation correctness, plan
|
|
14
|
+
soundness, implementation fidelity, and — at the final gate — ultra-strict
|
|
15
|
+
code quality. Deterministic gates ALWAYS run first; the judge never re-checks
|
|
16
|
+
what a string-compare catches.
|
|
17
|
+
|
|
18
|
+
Ultra lane ONLY. No `/orc-judge` command; the orchestrator dispatches
|
|
19
|
+
`orc-judge-opus-5-xhigh` at the three ultra gates.
|
|
20
|
+
|
|
21
|
+
## Hard rules
|
|
22
|
+
|
|
23
|
+
1. **The orchestrator never judges — it spawns.** One agent, three contexts
|
|
24
|
+
(`gate=analysis|plan|implementation`).
|
|
25
|
+
2. **Deterministic first.** A judge dispatch is only legal AFTER the gate's
|
|
26
|
+
deterministic checks passed (evidence spot-check + derivation lint /
|
|
27
|
+
coverage + graph checks / verify + traceability matrix + static analysis).
|
|
28
|
+
3. **The judge is read-only** and blind to the author's internal reasoning or
|
|
29
|
+
self-assessment (anti-anchoring): it sees the artifact, its evidence, the
|
|
30
|
+
advisor brief + rubric, and the original request.
|
|
31
|
+
4. **Judge gates ADD to user sign-offs, never replace them.** Gate approvals
|
|
32
|
+
never skip the analyst challenge round or the plan sign-off.
|
|
33
|
+
5. **Gate scope is one-directional.** gate=plan takes the approved spec as
|
|
34
|
+
fixed ground truth; gate=implementation takes the approved plan as fixed —
|
|
35
|
+
no gate re-litigates an earlier approved gate.
|
|
36
|
+
6. **The judge never fixes.** Authors fix: analyst (gate=analysis), planner
|
|
37
|
+
(gate=plan), a scored executor fix wave (gate=implementation).
|
|
38
|
+
|
|
39
|
+
## Verdict handling (orchestrator side)
|
|
40
|
+
|
|
41
|
+
Validate the return against the agent's verdict contract, then:
|
|
42
|
+
|
|
43
|
+
- **Downgrade enforcement:** any blocking finding missing its verbatim
|
|
44
|
+
anchor or its class-appropriate justification (failure_consequence for
|
|
45
|
+
correctness/security; named category + concrete alternative for
|
|
46
|
+
smell/simplification/placement) → downgrade to advisory and tell the user.
|
|
47
|
+
EXCEPTION: a security finding with a concrete consequence is always
|
|
48
|
+
blocking — never downgraded.
|
|
49
|
+
- **APPROVE** → record the verdict artifact, continue the pipeline.
|
|
50
|
+
- **REVISE** → re-dispatch the author with the original slice + the blocking
|
|
51
|
+
findings verbatim. The author's return must echo `finding_id → resolution`
|
|
52
|
+
per finding; a missing echo is a malformed return (requeue). Then RE-JUDGE
|
|
53
|
+
under the convergence rule: block only on unresolved prior findings by id
|
|
54
|
+
or on lines the revision changed; new findings on untouched material are
|
|
55
|
+
advisory-only. **Hard cap: 2 revision loops per gate**, counted in the
|
|
56
|
+
checkpoint.
|
|
57
|
+
- **ESCALATE** (or a third failure) → present the ESCALATE menu:
|
|
58
|
+
accept-and-proceed (unresolved findings recorded in the Phase 7 summary) /
|
|
59
|
+
user fixes manually then re-judge (does not consume a loop) / grant one
|
|
60
|
+
extra loop / stop-and-checkpoint.
|
|
61
|
+
- Advisory findings NEVER loop — they ride forward attached to the next
|
|
62
|
+
phase's slices as notes.
|
|
63
|
+
- Persist every verdict as `run/{run-slug}/ultra/verdict-<gate>-<round>.md`
|
|
64
|
+
(mined by /orc-retro; survives resume). When logging, emit
|
|
65
|
+
`JUDGE <gate> <verdict>` and the judgment GATE line (pass|bounce|escalate).
|
|
66
|
+
|
|
67
|
+
## The three gates
|
|
68
|
+
|
|
69
|
+
| Gate | After | Judges | REVISE target |
|
|
70
|
+
|------|-------|--------|---------------|
|
|
71
|
+
| analysis | analyst-return deterministic gates | scope interpretation, requirement coherence, rubric misses, stale-doc risk | analyst |
|
|
72
|
+
| plan | Phase 1 exit gate + blast-radius map | decomposition, declared-file plausibility, deps, right-sizing, blast-radius coverage | planner |
|
|
73
|
+
| implementation | Phase 6/6.5 + traceability matrix + static analysis | fidelity to the user's ask + ultra-strict quality (security, smells, simplification, placement, pattern invariants) | scored executor fix wave → re-verify → re-judge |
|
|
74
|
+
|
|
75
|
+
Return fields include `actual_model` + `actual_effort` (standard
|
|
76
|
+
claimed-vs-actual check) and `rubric_items_checked[]` +
|
|
77
|
+
`unconfirmed_assumptions_touched[]` — validate them like any worker return.
|
|
@@ -23,7 +23,7 @@ it — the human-onboarding lane. It is NOT the wiki: the wiki grounds the
|
|
|
23
23
|
|
|
24
24
|
**Dispatch, don't do.** Whatever model this chat runs on, the skill only picks
|
|
25
25
|
the topic/mode and spawns `orc-learn-writer-opus-5-low` (the pinned
|
|
26
|
-
engine) — the deepening scan + all writes run at Opus 5 low regardless of
|
|
26
|
+
engine) — the deepening scan + all writes run at Opus 5.5 low regardless of
|
|
27
27
|
the caller's tier. The skill's only self-writes are the behavior-trace
|
|
28
28
|
markers around the spawn. Interactivity is DELIBERATELY minimal but non-zero
|
|
29
29
|
(unlike orc-claude): exactly one question per mode — "which feature?" (INIT)
|
|
@@ -173,16 +173,16 @@ exit code, and never re-derive a state word — the CLI's state words are the on
|
|
|
173
173
|
state words, and **an exit code is an ANSWER wherever that contract says so, not
|
|
174
174
|
a failure**. A call the answer does not name is a call this lane does not make.
|
|
175
175
|
Exit ≠ 0 from the catalogue itself → say the CLI is unavailable and name the
|
|
176
|
-
command you are about to run, out loud, before running it.
|
|
177
|
-
|
|
178
|
-
## Rules — the anti-slop card (`../_shared/phases/rules.md`)
|
|
179
|
-
|
|
180
|
-
`orc rules slice --lane orc-learn --json` is the ONLY assembler; never build
|
|
181
|
-
the card here. It rides under the house rules and above the task —
|
|
182
|
-
**house rules > your project's rules > ORC's own packs** — and its `line` prints
|
|
183
|
-
VERBATIM at preflight. Returns gain `rules_applied[]`, `rules_conflicts[]` (a gap,
|
|
184
|
-
never a silent choice) and `rules_overridden[]`.
|
|
185
|
-
## Waiting mid-run (`/orc-wait`)
|
|
186
|
-
|
|
187
|
-
Canonical: `../_shared/wait.md`. **`a lane that waits without a hand-back` has broken this contract.**
|
|
188
|
-
Checkpoint **none** · safe point **single dispatch**. Nothing here to checkpoint, so all three modes behave identically — say so rather than asking. Never begin a wait between a dispatch and its validated return, or before the smoke gate has reported.
|
|
176
|
+
command you are about to run, out loud, before running it.
|
|
177
|
+
|
|
178
|
+
## Rules — the anti-slop card (`../_shared/phases/rules.md`)
|
|
179
|
+
|
|
180
|
+
`orc rules slice --lane orc-learn --json` is the ONLY assembler; never build
|
|
181
|
+
the card here. It rides under the house rules and above the task —
|
|
182
|
+
**house rules > your project's rules > ORC's own packs** — and its `line` prints
|
|
183
|
+
VERBATIM at preflight. Returns gain `rules_applied[]`, `rules_conflicts[]` (a gap,
|
|
184
|
+
never a silent choice) and `rules_overridden[]`.
|
|
185
|
+
## Waiting mid-run (`/orc-wait`)
|
|
186
|
+
|
|
187
|
+
Canonical: `../_shared/wait.md`. **`a lane that waits without a hand-back` has broken this contract.**
|
|
188
|
+
Checkpoint **none** · safe point **single dispatch**. Nothing here to checkpoint, so all three modes behave identically — say so rather than asking. Never begin a wait between a dispatch and its validated return, or before the smoke gate has reported.
|
|
@@ -1,61 +1,61 @@
|
|
|
1
|
-
# Worked example — orc-learn runs (mock; orient only, never execute from this)
|
|
2
|
-
|
|
3
|
-
## Run 1 — INIT with a fresh wiki
|
|
4
|
-
|
|
5
|
-
U: /orc-learn
|
|
6
|
-
C: Repo root found. Reads wiki/INDEX.md + the wiki manifest → tier FRESH.
|
|
7
|
-
Presents the wiki's feature areas; user picks "orders". Slug: `orders`.
|
|
8
|
-
Spawns orc-learn-writer-opus-5-low with mode=init, covers from the
|
|
9
|
-
orders doc's globs (the skill never writes the docs itself).
|
|
10
|
-
W: Reads the orders wiki doc for boundary + contracts, re-verifies against
|
|
11
|
-
code. Deepens: maps 14 functions (file:line), traces one real flow —
|
|
12
|
-
POST /orders → validate (routes/orders.ts:31) → price (pricing.ts:88) →
|
|
13
|
-
persist (repo/orders.ts:15) → emit event → 201. Harvests 3 invariants,
|
|
14
|
-
4 why-this-way findings, 2 couplings.
|
|
15
|
-
W: Writes learning-docs/orders/knowledge.md (fingerprint header:
|
|
16
|
-
source_commit=HEAD, 9 hashed files; functions & flow; contracts; verify
|
|
17
|
-
commands from the wiki manifest's `commands`) and learning.md (mental
|
|
18
|
-
model, walkthrough of the SAME flow, 3 change recipes, gotchas, FAQ ×6).
|
|
19
|
-
Derives learning-docs/INDEX.md. Returns functions_mapped=14,
|
|
20
|
-
flow_traced=true, faq_count=6, actual_model=claude-opus-5,
|
|
21
|
-
actual_effort=low.
|
|
22
|
-
C: Relays the report. `learning-docs/` not in .gitignore → offers the line;
|
|
23
|
-
user accepts → appended.
|
|
24
|
-
|
|
25
|
-
## Run 2 — INIT, no wiki
|
|
26
|
-
|
|
27
|
-
U: /orc-learn focus=src/billing
|
|
28
|
-
C: No wiki/ → tier none (traced all the same). Asks only to confirm the
|
|
29
|
-
feature ("billing", from the focus pointer). Writer does a TARGETED scan
|
|
30
|
-
of src/billing/** only — never repo-wide — then deepens and writes the
|
|
31
|
-
pair as above.
|
|
32
|
-
|
|
33
|
-
## Run 3 — REFRESH, multi-select
|
|
34
|
-
|
|
35
|
-
U: /orc-learn refresh
|
|
36
|
-
C: Reads each learning-docs/*/knowledge.md header; computes tiers on read:
|
|
37
|
-
orders STALE (drift hit pricing.ts), billing FRESH. Shows BOTH with
|
|
38
|
-
flags; user picks orders only. One writer dispatch regenerates the orders
|
|
39
|
-
pair (new source_commit, recomputed hashes, changelog line), re-derives
|
|
40
|
-
INDEX.md. billing: byte-untouched.
|
|
41
|
-
|
|
42
|
-
## Run 4 — behavior trace (permanent, always on)
|
|
43
|
-
|
|
44
|
-
The skill writes the run pointer (`run-learn-<slug>-<DDMMYY>-<HHMMSS>.txt` into
|
|
45
|
-
`log_dir`) before the spawn, records these events as they happen, and — as a
|
|
46
|
-
single-dispatch lane — dispatches the trace writer ONCE at run end to append
|
|
47
|
-
them (`SPAWN`/`RETURN` come from the `orc-trace.js` hook as they occur):
|
|
48
|
-
|
|
49
|
-
```
|
|
50
|
-
[170726 10:02:01.050] writer WIKI-CONSULT tier=FRESH :: topic-pick
|
|
51
|
-
[170726 10:02:44.310] writer DISPATCH orc-learn-writer :: init orders expect=opus-5/low
|
|
52
|
-
[170726 10:02:44.420] hook SPAWN orc-learn-writer-opus-5-low
|
|
53
|
-
[170726 10:06:12.900] hook RETURN
|
|
54
|
-
[170726 10:06:13.010] writer VERIFY writer actual=claude-opus-5/low ✅ MATCH
|
|
55
|
-
[170726 10:06:13.120] writer FINISH :: init orders
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
Then the writer packet returns and the run pointer is deleted (in that order).
|
|
59
|
-
REFRESH traces one DISPATCH/VERIFY pair per
|
|
60
|
-
selected feature, ending `FINISH :: refresh <n> features`. No phase/score/
|
|
61
|
-
finding/verdict markers — this lane runs none of those phases.
|
|
1
|
+
# Worked example — orc-learn runs (mock; orient only, never execute from this)
|
|
2
|
+
|
|
3
|
+
## Run 1 — INIT with a fresh wiki
|
|
4
|
+
|
|
5
|
+
U: /orc-learn
|
|
6
|
+
C: Repo root found. Reads wiki/INDEX.md + the wiki manifest → tier FRESH.
|
|
7
|
+
Presents the wiki's feature areas; user picks "orders". Slug: `orders`.
|
|
8
|
+
Spawns orc-learn-writer-opus-5-low with mode=init, covers from the
|
|
9
|
+
orders doc's globs (the skill never writes the docs itself).
|
|
10
|
+
W: Reads the orders wiki doc for boundary + contracts, re-verifies against
|
|
11
|
+
code. Deepens: maps 14 functions (file:line), traces one real flow —
|
|
12
|
+
POST /orders → validate (routes/orders.ts:31) → price (pricing.ts:88) →
|
|
13
|
+
persist (repo/orders.ts:15) → emit event → 201. Harvests 3 invariants,
|
|
14
|
+
4 why-this-way findings, 2 couplings.
|
|
15
|
+
W: Writes learning-docs/orders/knowledge.md (fingerprint header:
|
|
16
|
+
source_commit=HEAD, 9 hashed files; functions & flow; contracts; verify
|
|
17
|
+
commands from the wiki manifest's `commands`) and learning.md (mental
|
|
18
|
+
model, walkthrough of the SAME flow, 3 change recipes, gotchas, FAQ ×6).
|
|
19
|
+
Derives learning-docs/INDEX.md. Returns functions_mapped=14,
|
|
20
|
+
flow_traced=true, faq_count=6, actual_model=claude-opus-5-5,
|
|
21
|
+
actual_effort=low.
|
|
22
|
+
C: Relays the report. `learning-docs/` not in .gitignore → offers the line;
|
|
23
|
+
user accepts → appended.
|
|
24
|
+
|
|
25
|
+
## Run 2 — INIT, no wiki
|
|
26
|
+
|
|
27
|
+
U: /orc-learn focus=src/billing
|
|
28
|
+
C: No wiki/ → tier none (traced all the same). Asks only to confirm the
|
|
29
|
+
feature ("billing", from the focus pointer). Writer does a TARGETED scan
|
|
30
|
+
of src/billing/** only — never repo-wide — then deepens and writes the
|
|
31
|
+
pair as above.
|
|
32
|
+
|
|
33
|
+
## Run 3 — REFRESH, multi-select
|
|
34
|
+
|
|
35
|
+
U: /orc-learn refresh
|
|
36
|
+
C: Reads each learning-docs/*/knowledge.md header; computes tiers on read:
|
|
37
|
+
orders STALE (drift hit pricing.ts), billing FRESH. Shows BOTH with
|
|
38
|
+
flags; user picks orders only. One writer dispatch regenerates the orders
|
|
39
|
+
pair (new source_commit, recomputed hashes, changelog line), re-derives
|
|
40
|
+
INDEX.md. billing: byte-untouched.
|
|
41
|
+
|
|
42
|
+
## Run 4 — behavior trace (permanent, always on)
|
|
43
|
+
|
|
44
|
+
The skill writes the run pointer (`run-learn-<slug>-<DDMMYY>-<HHMMSS>.txt` into
|
|
45
|
+
`log_dir`) before the spawn, records these events as they happen, and — as a
|
|
46
|
+
single-dispatch lane — dispatches the trace writer ONCE at run end to append
|
|
47
|
+
them (`SPAWN`/`RETURN` come from the `orc-trace.js` hook as they occur):
|
|
48
|
+
|
|
49
|
+
```
|
|
50
|
+
[170726 10:02:01.050] writer WIKI-CONSULT tier=FRESH :: topic-pick
|
|
51
|
+
[170726 10:02:44.310] writer DISPATCH orc-learn-writer :: init orders expect=opus-5/low
|
|
52
|
+
[170726 10:02:44.420] hook SPAWN orc-learn-writer-opus-5-low
|
|
53
|
+
[170726 10:06:12.900] hook RETURN
|
|
54
|
+
[170726 10:06:13.010] writer VERIFY writer actual=claude-opus-5-5/low ✅ MATCH
|
|
55
|
+
[170726 10:06:13.120] writer FINISH :: init orders
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
Then the writer packet returns and the run pointer is deleted (in that order).
|
|
59
|
+
REFRESH traces one DISPATCH/VERIFY pair per
|
|
60
|
+
selected feature, ending `FINISH :: refresh <n> features`. No phase/score/
|
|
61
|
+
finding/verdict markers — this lane runs none of those phases.
|