@azure-id/orc 2.0.2 → 2.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +455 -0
- package/README-id.md +52 -23
- package/README.md +36 -20
- package/bin/build-agents.js +205 -206
- package/bin/clear-logs.js +620 -0
- package/bin/cli.js +47417 -46420
- package/bin/fix.js +459 -0
- package/bin/gotcha.js +288 -8
- package/bin/habit.js +1538 -1453
- package/bin/mockrun-catalog.js +3 -0
- package/bin/onboarding-content.js +2 -1
- package/bin/pricing.json +28 -21
- package/bin/trace-write.js +869 -657
- package/bin/verify-contracts.js +5552 -5471
- package/bin/verify-package.js +716 -705
- package/bin/webui/api.js +125 -6
- package/bin/webui/css/panels/hookui.css +79 -0
- package/bin/webui/fixtures/behaviour.js +30 -0
- package/bin/webui/fixtures/extra.js +2036 -2036
- package/bin/webui/fixtures/flow.js +81 -81
- package/bin/webui/fixtures/hookui.js +506 -431
- package/bin/webui/fixtures/index.js +32 -3
- package/bin/webui/fixtures/knowledge.js +2 -2
- 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 +9 -6
- package/bin/webui/fixtures/wait.js +98 -97
- package/bin/webui/i18n/en/behaviour.json +13 -0
- package/bin/webui/i18n/en/hookui.json +290 -194
- package/bin/webui/i18n/en/maintenance.json +71 -52
- package/bin/webui/i18n/en/settings.json +60 -60
- package/bin/webui/i18n/id/behaviour.json +13 -0
- package/bin/webui/i18n/id/hookui.json +290 -194
- package/bin/webui/i18n/id/maintenance.json +71 -52
- package/bin/webui/i18n/id/settings.json +60 -60
- package/bin/webui/js/05-banners.js +181 -172
- package/bin/webui/js/06-edit.js +193 -183
- package/bin/webui/js/panels/behaviour.js +77 -12
- 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 +1 -0
- package/mock-run/a-normal-day.md +2 -2
- package/mock-run/extra-slots.md +177 -177
- package/mock-run/habits.md +1 -1
- 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-fast.md +2 -2
- package/mock-run/orc-fix.md +87 -0
- package/mock-run/orc-pattern.md +112 -112
- package/mock-run/orc-quick.md +146 -146
- package/mock-run/orc.md +4 -4
- package/package.json +1 -1
- package/templates/agents/MODEL-MAPPING.md +176 -173
- package/templates/agents/orc-analyze-mini-sonnet-5-high.md +2 -2
- package/templates/agents/{orc-claude-writer-opus-5-med.md → orc-claude-writer-opus-5-low.md} +4 -4
- package/templates/agents/orc-executor-haiku-4-5.md +1 -1
- package/templates/agents/orc-executor-opus-5-low.md +1 -1
- package/templates/agents/orc-executor-sonnet-4-6-high.md +1 -1
- package/templates/agents/orc-executor-sonnet-4-6-med.md +1 -1
- package/templates/agents/orc-executor-sonnet-5-high.md +2 -2
- 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-pattern-codifier-sonnet-5-high.md +2 -2
- package/templates/agents/orc-planner-mini-sonnet-5-high.md +2 -2
- package/templates/agents/{orc-recon-sonnet-4-6-med.md → orc-recon-sonnet-5-med.md} +4 -4
- package/templates/agents/orc-retro-sonnet-5-high.md +2 -2
- package/templates/agents/{orc-reviewer-opus-5-med.md → orc-reviewer-opus-5-low.md} +4 -4
- package/templates/agents/{orc-wiki-scanner-opus-5-med.md → orc-wiki-scanner-opus-5-low.md} +3 -3
- package/templates/agents/orc-wiki-scanner-sonnet-5-high.md +2 -2
- package/templates/commands/orc-fast.md +10 -10
- package/templates/commands/orc-fix.md +18 -0
- package/templates/commands/orc-wiki.md +64 -64
- package/templates/hooks/README.md +75 -7
- package/templates/hooks/orc-session-hook.js +78 -3
- package/templates/hooks/orc-statusline-render.js +317 -23
- package/templates/hooks/orc-statusline.js +162 -49
- package/templates/hooks/orc-subagent-line.js +23 -5
- package/templates/hooks/orc-weather-fetch.js +123 -0
- package/templates/skills/_shared/extra-dispatch.md +1331 -1331
- package/templates/skills/_shared/gotchas.md +27 -7
- package/templates/skills/_shared/habits.md +2 -2
- package/templates/skills/_shared/opus5-only.md +137 -137
- package/templates/skills/_shared/phases/review.md +2 -2
- package/templates/skills/_shared/phases/trace-verbs.md +17 -3
- package/templates/skills/_shared/phases/trace.md +136 -136
- package/templates/skills/_shared/review-slice.md +28 -1
- package/templates/skills/_shared/wait.md +1 -0
- package/templates/skills/orc/README.md +2 -2
- package/templates/skills/orc/SKILL.md +227 -227
- package/templates/skills/orc/config.md +25 -27
- package/templates/skills/orc/examples/full-run-mock.md +74 -73
- package/templates/skills/orc/references/effort-and-mode.md +222 -222
- package/templates/skills/orc/references/preflight-report.md +3 -3
- package/templates/skills/orc/references/ultra-mode.md +1 -1
- package/templates/skills/orc/schemas/checkpoint.md +122 -122
- package/templates/skills/orc/subskills/orc-review-verify/SKILL.md +3 -3
- package/templates/skills/orc/subskills/orc-review-verify/core.md +1 -1
- package/templates/skills/orc-analyze/SKILL.md +4 -2
- 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/SKILL.md +5 -5
- package/templates/skills/orc-fast/SKILL.md +210 -208
- package/templates/skills/orc-fix/SKILL.md +110 -0
- package/templates/skills/orc-grill/SKILL.md +232 -232
- package/templates/skills/orc-grill/references/grill-doc.md +1 -1
- package/templates/skills/orc-mini/SKILL.md +4 -4
- package/templates/skills/orc-mini/examples/mini-run-mock.md +4 -2
- package/templates/skills/orc-quick/README.md +536 -536
- package/templates/skills/orc-quick/SKILL.md +2 -2
- package/templates/skills/orc-quick/references/context-doc.md +145 -145
- package/templates/skills/orc-quick/references/dispatch-gate.md +220 -219
- package/templates/skills/orc-quick/references/gh-mode.md +4 -2
- package/templates/skills/orc-retro/SKILL.md +1 -1
- package/templates/skills/orc-retro/examples/retro-mock.md +16 -16
- 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 +1 -1
- package/templates/skills/orc-wiki/references/phases/phase-2.md +3 -3
- package/templates/skills/orc-wiki/references/phases/phase-3c.md +3 -2
- package/templates/agents/orc-claude-writer-opus-4-8-high.md +0 -48
- package/templates/agents/orc-wiki-scanner-opus-4-8-high.md +0 -74
package/mock-run/orc-fast.md
CHANGED
|
@@ -39,12 +39,12 @@ Fit gate + one question
|
|
|
39
39
|
|
|
40
40
|
> nothing, follow api/orders/
|
|
41
41
|
|
|
42
|
-
Dispatch orc-executor-sonnet-
|
|
42
|
+
Dispatch orc-executor-sonnet-5-med
|
|
43
43
|
slice carries:
|
|
44
44
|
· wiki pointers wiki/orc-feature-orders.md (the route table)
|
|
45
45
|
· the express pattern, copied in literally
|
|
46
46
|
· your one constraint
|
|
47
|
-
returned as: claude-sonnet-
|
|
47
|
+
returned as: claude-sonnet-5-5 / medium ✓
|
|
48
48
|
|
|
49
49
|
Smoke gate
|
|
50
50
|
build ✓
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
# Mock run — `/orc-fix`
|
|
2
|
+
|
|
3
|
+
> You fixed something, and the fix says something about an earlier review.
|
|
4
|
+
> Type this, and ORC records what the fix fixes, so the next review sees it.
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## 1. What it does
|
|
9
|
+
|
|
10
|
+
It records ONE fix and what it fixes. It looks at the evidence first: what
|
|
11
|
+
found the problem (Sonar, a failed check, a defect, a PR comment) and who wrote
|
|
12
|
+
the bad lines (an ORC run, an AI tool, a person). It asks you once. Then it
|
|
13
|
+
records the fix and goes back to exactly where you were.
|
|
14
|
+
|
|
15
|
+
It opens no run of its own. You can type it in the middle of another run, also
|
|
16
|
+
while that run waits at a question.
|
|
17
|
+
|
|
18
|
+
- **A run is open** → it only records. The run you are in makes the fix.
|
|
19
|
+
- **No run is open** → it can also make the fix, like `/orc-quick`: you pick
|
|
20
|
+
the agent, the build and the tests must be green, and then it records.
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## 2. The run
|
|
25
|
+
|
|
26
|
+
Rina is in an `/orc-quick` run. Sonar flagged `computeTotal()` as too complex,
|
|
27
|
+
and those lines came from last week's `/orc-mini` run, which had a review.
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
> /orc-fix this fixes Sonar typescript:S3776 in src/orders/total.ts:40-58
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
```
|
|
34
|
+
This fix: source sonar · introduced by ORC (run-mini-total-290926-101500)
|
|
35
|
+
- a Sonar rule key (typescript:S3776)
|
|
36
|
+
- git blame → 4c1e2a9: the commit falls inside the run's trace window and
|
|
37
|
+
src/orders/total.ts is in the run's changed set
|
|
38
|
+
host run: run-quick-total-fix-021026-091200 — record only, the host lane
|
|
39
|
+
makes the fix
|
|
40
|
+
|
|
41
|
+
1. confirm 2. change the class 3. cancel
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
```
|
|
45
|
+
> 1
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
```
|
|
49
|
+
recorded F-9f2c41ab · sonar typescript:S3776 · introduced by ORC
|
|
50
|
+
(run-mini-total-290926-101500) · missed by review run-mini-total-290926-101500
|
|
51
|
+
· the next review sees it
|
|
52
|
+
|
|
53
|
+
Back to the run. Entry 3 is waiting for your "go".
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
The next time a reviewer looks at `src/orders/total.ts`, its card has this line:
|
|
57
|
+
|
|
58
|
+
```
|
|
59
|
+
fix: src/orders/total.ts — Sonar typescript:S3776 after ORC run
|
|
60
|
+
run-mini-total-290926-101500 · missed by review
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## 3. What to notice
|
|
66
|
+
|
|
67
|
+
- **It classifies from evidence, and your word wins.** `orc fix classify` reads
|
|
68
|
+
`git blame`, the traces and the run snapshots. If you change the class, the
|
|
69
|
+
record says `class_by: user`.
|
|
70
|
+
- **"Missed by review" is computed.** Every review stores the line ranges it
|
|
71
|
+
read. A fix on those lines, from an earlier run, is a miss. ORC never guesses
|
|
72
|
+
it, and you never type it.
|
|
73
|
+
- **A fix is never a review.** The record's author is who FOUND the problem
|
|
74
|
+
(Sonar is a bot, a user report is a person). Review Quality counts reviews
|
|
75
|
+
apart, and shows fixes in their own block: **Fixes after review**.
|
|
76
|
+
- **A Sonar fix and the Sonar import are the same row.** With the issue key, the
|
|
77
|
+
record uses the importer's id, so the next `orc gotcha sync` completes it.
|
|
78
|
+
- **One trace line.** `orc fix record` writes ONE `FIX` line into the run you
|
|
79
|
+
are in. It never writes the run pointer.
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
## 4. Related
|
|
84
|
+
|
|
85
|
+
- The panel: `orc ui` ▸ Behaviour ▸ Review quality ▸ **Fixes after review**
|
|
86
|
+
- The records: `orc fix list`
|
|
87
|
+
- The Sonar import: [gotcha-import](gotcha-import.md)
|
package/mock-run/orc-pattern.md
CHANGED
|
@@ -1,112 +1,112 @@
|
|
|
1
|
-
# Mock run — `/orc-pattern`
|
|
2
|
-
|
|
3
|
-
> Learns how **your** code is actually written, and caches it, so every future
|
|
4
|
-
> executor writes code that looks like yours.
|
|
5
|
-
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
## 1. What it does
|
|
9
|
-
|
|
10
|
-
ORC ships a generic best-practice playbook for each language (React, Vue,
|
|
11
|
-
Next.js, Angular, Express, NestJS, Django, FastAPI, Go, Postgres, plus a11y and
|
|
12
|
-
performance rule packs). On its own, a playbook would fight your codebase.
|
|
13
|
-
|
|
14
|
-
So the pattern is a **reconciliation** of two things, with two different rules:
|
|
15
|
-
|
|
16
|
-
| Rule class | Example | Who wins |
|
|
17
|
-
|---|---|---|
|
|
18
|
-
| **Conventions** — style and shape | folder layout, naming, how you do DI | **Your project wins**, even if the playbook disagrees |
|
|
19
|
-
| **Invariants** — correctness and security | no SQL built by string concat, no stack traces in a response, no index as a React key | **Always applied.** A project breaking these is buggy, not different |
|
|
20
|
-
|
|
21
|
-
The result is cached at `.claude/orc/patterns/<lang>-pattern.md` and copied
|
|
22
|
-
**word for word** into every executor slice from then on.
|
|
23
|
-
|
|
24
|
-
---
|
|
25
|
-
|
|
26
|
-
## 2. The run
|
|
27
|
-
|
|
28
|
-
```
|
|
29
|
-
> /orc-pattern
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
```
|
|
33
|
-
Languages I can see in this repo:
|
|
34
|
-
express api/ 38 files no cached pattern
|
|
35
|
-
react web/ 52 files no cached pattern
|
|
36
|
-
|
|
37
|
-
Learning a pattern reads your most recently changed files with a subagent.
|
|
38
|
-
That costs tokens once, and every run after it is cheaper and more accurate.
|
|
39
|
-
|
|
40
|
-
Codify which? [both / express / react / none]
|
|
41
|
-
|
|
42
|
-
> both
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
```
|
|
46
|
-
Dispatching orc-pattern-codifier-sonnet-5-high (express) …
|
|
47
|
-
returned as: claude-sonnet-5 / high ✓
|
|
48
|
-
|
|
49
|
-
PATTERN — express source: reconciled 14 recent files read
|
|
50
|
-
|
|
51
|
-
Conventions taken FROM YOUR CODE (the playbook lost these)
|
|
52
|
-
· routes live in api/<area>/routes.ts, handlers in the same folder
|
|
53
|
-
· every handler is `export async function`, never an arrow const
|
|
54
|
-
· errors go through next(err) — you do not try/catch in handlers
|
|
55
|
-
· money is always integer minor units (api/payments/*.ts, 6 files)
|
|
56
|
-
|
|
57
|
-
Invariants KEPT from the playbook (not negotiable)
|
|
58
|
-
· no SQL string interpolation — you use parameterised queries already ✓
|
|
59
|
-
· no stack trace or raw error in a response body
|
|
60
|
-
· every route that reads :id re-checks ownership
|
|
61
|
-
|
|
62
|
-
Conflicts I will not guess about (1)
|
|
63
|
-
· api/refunds/ uses try/catch in 3 handlers while api/orders/ uses
|
|
64
|
-
next(err). Most recently modified wins → next(err). Say so if that is
|
|
65
|
-
backwards and I will flip it.
|
|
66
|
-
|
|
67
|
-
Written: .claude/orc/patterns/express-pattern.md
|
|
68
|
-
|
|
69
|
-
Dispatching orc-pattern-codifier-sonnet-5-high (react) …
|
|
70
|
-
Written: .claude/orc/patterns/react-pattern.md
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
---
|
|
74
|
-
|
|
75
|
-
## 3. How other lanes see it
|
|
76
|
-
|
|
77
|
-
```
|
|
78
|
-
$ orc pattern status express
|
|
79
|
-
express cached 2026-08-12 (exit 0)
|
|
80
|
-
|
|
81
|
-
$ orc pattern status svelte
|
|
82
|
-
svelte unknown language key (exit 2)
|
|
83
|
-
keys come from orc-pattern/references/INDEX.md — it is a framework
|
|
84
|
-
name, never a file extension
|
|
85
|
-
|
|
86
|
-
$ orc pattern status go
|
|
87
|
-
go not cached (exit 1)
|
|
88
|
-
```
|
|
89
|
-
|
|
90
|
-
That exit code is how `/orc-fast` decides whether it is allowed to run. It is
|
|
91
|
-
a deterministic probe, never a guess and never a file search — the `.claude/`
|
|
92
|
-
folder is hidden, so a plain search would say "missing" from the wrong folder.
|
|
93
|
-
|
|
94
|
-
---
|
|
95
|
-
|
|
96
|
-
## 4. What to notice
|
|
97
|
-
|
|
98
|
-
- **ORC does not codify by itself.** It sends a subagent, reads the answer,
|
|
99
|
-
and writes the cache itself.
|
|
100
|
-
- **The cache survives updates.** It lives outside `templates/`, so
|
|
101
|
-
`orc update` never touches it.
|
|
102
|
-
- **Ambiguity is reported once, not guessed silently.** The try/catch conflict
|
|
103
|
-
above is a real example of that rule.
|
|
104
|
-
- **A brand new language folder gets the plain playbook**, marked
|
|
105
|
-
`source: generic` — there is nothing to reconcile yet.
|
|
106
|
-
|
|
107
|
-
---
|
|
108
|
-
|
|
109
|
-
## 5. Related
|
|
110
|
-
|
|
111
|
-
- The lane that requires this: [`/orc-fast`](orc-fast.md)
|
|
112
|
-
- Build the other half of the knowledge: [`/orc-wiki`](../templates/skills/orc-wiki/examples/wiki-run-mock.md)
|
|
1
|
+
# Mock run — `/orc-pattern`
|
|
2
|
+
|
|
3
|
+
> Learns how **your** code is actually written, and caches it, so every future
|
|
4
|
+
> executor writes code that looks like yours.
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## 1. What it does
|
|
9
|
+
|
|
10
|
+
ORC ships a generic best-practice playbook for each language (React, Vue,
|
|
11
|
+
Next.js, Angular, Express, NestJS, Django, FastAPI, Go, Postgres, plus a11y and
|
|
12
|
+
performance rule packs). On its own, a playbook would fight your codebase.
|
|
13
|
+
|
|
14
|
+
So the pattern is a **reconciliation** of two things, with two different rules:
|
|
15
|
+
|
|
16
|
+
| Rule class | Example | Who wins |
|
|
17
|
+
|---|---|---|
|
|
18
|
+
| **Conventions** — style and shape | folder layout, naming, how you do DI | **Your project wins**, even if the playbook disagrees |
|
|
19
|
+
| **Invariants** — correctness and security | no SQL built by string concat, no stack traces in a response, no index as a React key | **Always applied.** A project breaking these is buggy, not different |
|
|
20
|
+
|
|
21
|
+
The result is cached at `.claude/orc/patterns/<lang>-pattern.md` and copied
|
|
22
|
+
**word for word** into every executor slice from then on.
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## 2. The run
|
|
27
|
+
|
|
28
|
+
```
|
|
29
|
+
> /orc-pattern
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
Languages I can see in this repo:
|
|
34
|
+
express api/ 38 files no cached pattern
|
|
35
|
+
react web/ 52 files no cached pattern
|
|
36
|
+
|
|
37
|
+
Learning a pattern reads your most recently changed files with a subagent.
|
|
38
|
+
That costs tokens once, and every run after it is cheaper and more accurate.
|
|
39
|
+
|
|
40
|
+
Codify which? [both / express / react / none]
|
|
41
|
+
|
|
42
|
+
> both
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
```
|
|
46
|
+
Dispatching orc-pattern-codifier-sonnet-5-high (express) …
|
|
47
|
+
returned as: claude-sonnet-5-5 / high ✓
|
|
48
|
+
|
|
49
|
+
PATTERN — express source: reconciled 14 recent files read
|
|
50
|
+
|
|
51
|
+
Conventions taken FROM YOUR CODE (the playbook lost these)
|
|
52
|
+
· routes live in api/<area>/routes.ts, handlers in the same folder
|
|
53
|
+
· every handler is `export async function`, never an arrow const
|
|
54
|
+
· errors go through next(err) — you do not try/catch in handlers
|
|
55
|
+
· money is always integer minor units (api/payments/*.ts, 6 files)
|
|
56
|
+
|
|
57
|
+
Invariants KEPT from the playbook (not negotiable)
|
|
58
|
+
· no SQL string interpolation — you use parameterised queries already ✓
|
|
59
|
+
· no stack trace or raw error in a response body
|
|
60
|
+
· every route that reads :id re-checks ownership
|
|
61
|
+
|
|
62
|
+
Conflicts I will not guess about (1)
|
|
63
|
+
· api/refunds/ uses try/catch in 3 handlers while api/orders/ uses
|
|
64
|
+
next(err). Most recently modified wins → next(err). Say so if that is
|
|
65
|
+
backwards and I will flip it.
|
|
66
|
+
|
|
67
|
+
Written: .claude/orc/patterns/express-pattern.md
|
|
68
|
+
|
|
69
|
+
Dispatching orc-pattern-codifier-sonnet-5-high (react) …
|
|
70
|
+
Written: .claude/orc/patterns/react-pattern.md
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
## 3. How other lanes see it
|
|
76
|
+
|
|
77
|
+
```
|
|
78
|
+
$ orc pattern status express
|
|
79
|
+
express cached 2026-08-12 (exit 0)
|
|
80
|
+
|
|
81
|
+
$ orc pattern status svelte
|
|
82
|
+
svelte unknown language key (exit 2)
|
|
83
|
+
keys come from orc-pattern/references/INDEX.md — it is a framework
|
|
84
|
+
name, never a file extension
|
|
85
|
+
|
|
86
|
+
$ orc pattern status go
|
|
87
|
+
go not cached (exit 1)
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
That exit code is how `/orc-fast` decides whether it is allowed to run. It is
|
|
91
|
+
a deterministic probe, never a guess and never a file search — the `.claude/`
|
|
92
|
+
folder is hidden, so a plain search would say "missing" from the wrong folder.
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
## 4. What to notice
|
|
97
|
+
|
|
98
|
+
- **ORC does not codify by itself.** It sends a subagent, reads the answer,
|
|
99
|
+
and writes the cache itself.
|
|
100
|
+
- **The cache survives updates.** It lives outside `templates/`, so
|
|
101
|
+
`orc update` never touches it.
|
|
102
|
+
- **Ambiguity is reported once, not guessed silently.** The try/catch conflict
|
|
103
|
+
above is a real example of that rule.
|
|
104
|
+
- **A brand new language folder gets the plain playbook**, marked
|
|
105
|
+
`source: generic` — there is nothing to reconcile yet.
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
## 5. Related
|
|
110
|
+
|
|
111
|
+
- The lane that requires this: [`/orc-fast`](orc-fast.md)
|
|
112
|
+
- Build the other half of the knowledge: [`/orc-wiki`](../templates/skills/orc-wiki/examples/wiki-run-mock.md)
|
package/mock-run/orc-quick.md
CHANGED
|
@@ -1,146 +1,146 @@
|
|
|
1
|
-
# Mock run — `/orc-quick`
|
|
2
|
-
|
|
3
|
-
> Ask for anything. Three steps: look → ask once → do. It always asks you
|
|
4
|
-
> which agent should run.
|
|
5
|
-
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
## 1. What it does
|
|
9
|
-
|
|
10
|
-
Every other lane has a fixed job. This one does not. A small fix, a question
|
|
11
|
-
about how something works, a defect hunt, a dependency bump, or the review
|
|
12
|
-
comments on a pull request — all the same three steps.
|
|
13
|
-
|
|
14
|
-
The point of the lane is the **dispatch gate**: before every single dispatch it
|
|
15
|
-
asks you which agent to use. No default. No "same as last time". No setting can
|
|
16
|
-
turn it off — `opus5_only`, `fable5_*` and `rubric_bands_override` are all
|
|
17
|
-
inert here, and the gate says so when they are on.
|
|
18
|
-
|
|
19
|
-
---
|
|
20
|
-
|
|
21
|
-
## 2. The run
|
|
22
|
-
|
|
23
|
-
```
|
|
24
|
-
> /orc-quick the refund badge shows "pending" even after the webhook lands
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
### Q1 — Look (silent)
|
|
28
|
-
|
|
29
|
-
ORC reads first and says nothing until it has something to say. It asks the
|
|
30
|
-
**code graph** before it greps: one call gives the symbol, who calls it, and
|
|
31
|
-
which tests reach it. The request says a behaviour is wrong, so the entry is
|
|
32
|
-
sorted as a **defect** — which means the bug gets reproduced before it is
|
|
33
|
-
fixed.
|
|
34
|
-
|
|
35
|
-
### Q2 — Ask (one turn: questions **and** the agent choice together)
|
|
36
|
-
|
|
37
|
-
```
|
|
38
|
-
I looked. Here is what I found and what I need from you.
|
|
39
|
-
|
|
40
|
-
· web/refunds/RefundBadge.tsx:22 maps status → label
|
|
41
|
-
· the map has no case for `sent_to_bank`, so it falls through to "pending"
|
|
42
|
-
· api/refunds/webhook.ts:52 does write that status
|
|
43
|
-
|
|
44
|
-
Two questions:
|
|
45
|
-
1 Add the missing case only, or review the whole map?
|
|
46
|
-
2 Should the badge colour change too?
|
|
47
|
-
|
|
48
|
-
And which agent should do it?
|
|
49
|
-
a orc-executor-sonnet-
|
|
50
|
-
b orc-executor-opus-5-low thinks harder, about 3× the cost
|
|
51
|
-
c other — name a model
|
|
52
|
-
|
|
53
|
-
Your choice — nothing runs until you answer.
|
|
54
|
-
|
|
55
|
-
> 1 just the missing case. 2 yes, amber. agent a.
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
The `→ suggested` marker always carries its reason, and it never pre-selects.
|
|
59
|
-
The menu still waits for you.
|
|
60
|
-
|
|
61
|
-
### Q3 — Do
|
|
62
|
-
|
|
63
|
-
```
|
|
64
|
-
Dispatch orc-executor-sonnet-
|
|
65
|
-
returned as: claude-sonnet-
|
|
66
|
-
|
|
67
|
-
repro red npm test -- web/refunds/RefundBadge.test.tsx exit 1
|
|
68
|
-
→ expected "sent to bank", received "pending"
|
|
69
|
-
repro green npm test -- web/refunds/RefundBadge.test.tsx exit 0
|
|
70
|
-
|
|
71
|
-
build ✓
|
|
72
|
-
tests reached 1 file (call 1) → 3 passed
|
|
73
|
-
suite ✓ 12 passed
|
|
74
|
-
blast radius 1 symbol · callers 2 in 2 files · tests reach 1 · risk none
|
|
75
|
-
graph gen 18 · 1 file updated
|
|
76
|
-
graph gain paid 0.9K tokens · avoided an estimated 2–6K · measured: not yet (N=1)
|
|
77
|
-
|
|
78
|
-
Entry 1 written to orc-quick/refund-badge/quick-context.md
|
|
79
|
-
|
|
80
|
-
Commit these 2 files? [yes / no]
|
|
81
|
-
|
|
82
|
-
> yes
|
|
83
|
-
```
|
|
84
|
-
|
|
85
|
-
The red run comes first on purpose. The suite was green before the fix and is
|
|
86
|
-
green after it, so the suite proves nothing about **this** bug. The red run
|
|
87
|
-
does.
|
|
88
|
-
|
|
89
|
-
Your next request becomes entry 2 in the same file, and so on.
|
|
90
|
-
|
|
91
|
-
---
|
|
92
|
-
|
|
93
|
-
## 3. What it wrote
|
|
94
|
-
|
|
95
|
-
```markdown
|
|
96
|
-
# Quick context — refund-badge
|
|
97
|
-
|
|
98
|
-
<!-- orc-quick:toc -->
|
|
99
|
-
1. Refund badge stuck on "pending" 2026-08-12 done
|
|
100
|
-
<!-- /orc-quick:toc -->
|
|
101
|
-
|
|
102
|
-
## 1. Refund badge stuck on "pending"
|
|
103
|
-
|
|
104
|
-
**You asked:** the badge shows pending after the webhook lands.
|
|
105
|
-
**Decided:** add the missing `sent_to_bank` case only; amber colour.
|
|
106
|
-
**Why:** the whole map is fine — one case was never added.
|
|
107
|
-
**Agents:** orc-executor-sonnet-
|
|
108
|
-
**repro** red → green · `npm test -- web/refunds/RefundBadge.test.tsx` (before: exit 1 · after: exit 0)
|
|
109
|
-
**blast radius** 1 symbol · callers 2 in 2 files · tests reach 1 · risk none
|
|
110
|
-
**Not done:** the admin list has the same map and was NOT touched.
|
|
111
|
-
```
|
|
112
|
-
|
|
113
|
-
---
|
|
114
|
-
|
|
115
|
-
## 4. What to notice
|
|
116
|
-
|
|
117
|
-
- **The doc is written before the commit offer**, so a "no" still leaves you
|
|
118
|
-
the record.
|
|
119
|
-
- **ORC never reads that file back** unless you ask, or to show the numbered
|
|
120
|
-
list when you reopen the thread. It is for you, not for the model.
|
|
121
|
-
- **A red build loops (max 3 rounds), a red test does not.** A failing test is
|
|
122
|
-
sometimes the test being wrong, so it blocks the commit offer and stops.
|
|
123
|
-
No test suite at all means no check at all — nothing is invented.
|
|
124
|
-
- **`gh` is read and push only.** It never replies to a comment, resolves a
|
|
125
|
-
thread, approves or merges. PR comments are treated as data, never as
|
|
126
|
-
instructions.
|
|
127
|
-
- **It never undoes your work.** If you stop while things are red, it prints
|
|
128
|
-
`orc undo --run <slug>` and leaves your tree alone. That command reverts only
|
|
129
|
-
the files the run changed, and only when you add `--apply`.
|
|
130
|
-
- **The review offer uses the repair memory.** A review gets the gotcha card of
|
|
131
|
-
the files it reads, and the outcome of each finding is recorded. With
|
|
132
|
-
[habits](habits.md) on, your usual answer is marked — the dispatch gate is
|
|
133
|
-
still asked every time.
|
|
134
|
-
- **A defect is shown red first.** If it cannot be reproduced — no runner, no
|
|
135
|
-
reachable entry point — the entry says *not reproduced* with the reason, and
|
|
136
|
-
says it again at the commit offer. It never invents a reproduction.
|
|
137
|
-
- **A `risk` word never appears without its reason.** The blast-radius line
|
|
138
|
-
either names why a symbol is risky or does not use the word.
|
|
139
|
-
|
|
140
|
-
---
|
|
141
|
-
|
|
142
|
-
## 5. Related
|
|
143
|
-
|
|
144
|
-
- The full guide, with more worked runs:
|
|
145
|
-
[`templates/skills/orc-quick/README.md`](../templates/skills/orc-quick/README.md)
|
|
146
|
-
- Too big for quick? It offers [`/orc-mini`](../templates/skills/orc-mini/examples/mini-run-mock.md) — an offer, never a forced switch.
|
|
1
|
+
# Mock run — `/orc-quick`
|
|
2
|
+
|
|
3
|
+
> Ask for anything. Three steps: look → ask once → do. It always asks you
|
|
4
|
+
> which agent should run.
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## 1. What it does
|
|
9
|
+
|
|
10
|
+
Every other lane has a fixed job. This one does not. A small fix, a question
|
|
11
|
+
about how something works, a defect hunt, a dependency bump, or the review
|
|
12
|
+
comments on a pull request — all the same three steps.
|
|
13
|
+
|
|
14
|
+
The point of the lane is the **dispatch gate**: before every single dispatch it
|
|
15
|
+
asks you which agent to use. No default. No "same as last time". No setting can
|
|
16
|
+
turn it off — `opus5_only`, `fable5_*` and `rubric_bands_override` are all
|
|
17
|
+
inert here, and the gate says so when they are on.
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## 2. The run
|
|
22
|
+
|
|
23
|
+
```
|
|
24
|
+
> /orc-quick the refund badge shows "pending" even after the webhook lands
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
### Q1 — Look (silent)
|
|
28
|
+
|
|
29
|
+
ORC reads first and says nothing until it has something to say. It asks the
|
|
30
|
+
**code graph** before it greps: one call gives the symbol, who calls it, and
|
|
31
|
+
which tests reach it. The request says a behaviour is wrong, so the entry is
|
|
32
|
+
sorted as a **defect** — which means the bug gets reproduced before it is
|
|
33
|
+
fixed.
|
|
34
|
+
|
|
35
|
+
### Q2 — Ask (one turn: questions **and** the agent choice together)
|
|
36
|
+
|
|
37
|
+
```
|
|
38
|
+
I looked. Here is what I found and what I need from you.
|
|
39
|
+
|
|
40
|
+
· web/refunds/RefundBadge.tsx:22 maps status → label
|
|
41
|
+
· the map has no case for `sent_to_bank`, so it falls through to "pending"
|
|
42
|
+
· api/refunds/webhook.ts:52 does write that status
|
|
43
|
+
|
|
44
|
+
Two questions:
|
|
45
|
+
1 Add the missing case only, or review the whole map?
|
|
46
|
+
2 Should the badge colour change too?
|
|
47
|
+
|
|
48
|
+
And which agent should do it?
|
|
49
|
+
a orc-executor-sonnet-5-med small, one file → suggested: 1 file, no risk class
|
|
50
|
+
b orc-executor-opus-5-low thinks harder, about 3× the cost
|
|
51
|
+
c other — name a model
|
|
52
|
+
|
|
53
|
+
Your choice — nothing runs until you answer.
|
|
54
|
+
|
|
55
|
+
> 1 just the missing case. 2 yes, amber. agent a.
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
The `→ suggested` marker always carries its reason, and it never pre-selects.
|
|
59
|
+
The menu still waits for you.
|
|
60
|
+
|
|
61
|
+
### Q3 — Do
|
|
62
|
+
|
|
63
|
+
```
|
|
64
|
+
Dispatch orc-executor-sonnet-5-med
|
|
65
|
+
returned as: claude-sonnet-5-5 / medium ✓
|
|
66
|
+
|
|
67
|
+
repro red npm test -- web/refunds/RefundBadge.test.tsx exit 1
|
|
68
|
+
→ expected "sent to bank", received "pending"
|
|
69
|
+
repro green npm test -- web/refunds/RefundBadge.test.tsx exit 0
|
|
70
|
+
|
|
71
|
+
build ✓
|
|
72
|
+
tests reached 1 file (call 1) → 3 passed
|
|
73
|
+
suite ✓ 12 passed
|
|
74
|
+
blast radius 1 symbol · callers 2 in 2 files · tests reach 1 · risk none
|
|
75
|
+
graph gen 18 · 1 file updated
|
|
76
|
+
graph gain paid 0.9K tokens · avoided an estimated 2–6K · measured: not yet (N=1)
|
|
77
|
+
|
|
78
|
+
Entry 1 written to orc-quick/refund-badge/quick-context.md
|
|
79
|
+
|
|
80
|
+
Commit these 2 files? [yes / no]
|
|
81
|
+
|
|
82
|
+
> yes
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
The red run comes first on purpose. The suite was green before the fix and is
|
|
86
|
+
green after it, so the suite proves nothing about **this** bug. The red run
|
|
87
|
+
does.
|
|
88
|
+
|
|
89
|
+
Your next request becomes entry 2 in the same file, and so on.
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## 3. What it wrote
|
|
94
|
+
|
|
95
|
+
```markdown
|
|
96
|
+
# Quick context — refund-badge
|
|
97
|
+
|
|
98
|
+
<!-- orc-quick:toc -->
|
|
99
|
+
1. Refund badge stuck on "pending" 2026-08-12 done
|
|
100
|
+
<!-- /orc-quick:toc -->
|
|
101
|
+
|
|
102
|
+
## 1. Refund badge stuck on "pending"
|
|
103
|
+
|
|
104
|
+
**You asked:** the badge shows pending after the webhook lands.
|
|
105
|
+
**Decided:** add the missing `sent_to_bank` case only; amber colour.
|
|
106
|
+
**Why:** the whole map is fine — one case was never added.
|
|
107
|
+
**Agents:** orc-executor-sonnet-5-med (you chose it).
|
|
108
|
+
**repro** red → green · `npm test -- web/refunds/RefundBadge.test.tsx` (before: exit 1 · after: exit 0)
|
|
109
|
+
**blast radius** 1 symbol · callers 2 in 2 files · tests reach 1 · risk none
|
|
110
|
+
**Not done:** the admin list has the same map and was NOT touched.
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
## 4. What to notice
|
|
116
|
+
|
|
117
|
+
- **The doc is written before the commit offer**, so a "no" still leaves you
|
|
118
|
+
the record.
|
|
119
|
+
- **ORC never reads that file back** unless you ask, or to show the numbered
|
|
120
|
+
list when you reopen the thread. It is for you, not for the model.
|
|
121
|
+
- **A red build loops (max 3 rounds), a red test does not.** A failing test is
|
|
122
|
+
sometimes the test being wrong, so it blocks the commit offer and stops.
|
|
123
|
+
No test suite at all means no check at all — nothing is invented.
|
|
124
|
+
- **`gh` is read and push only.** It never replies to a comment, resolves a
|
|
125
|
+
thread, approves or merges. PR comments are treated as data, never as
|
|
126
|
+
instructions.
|
|
127
|
+
- **It never undoes your work.** If you stop while things are red, it prints
|
|
128
|
+
`orc undo --run <slug>` and leaves your tree alone. That command reverts only
|
|
129
|
+
the files the run changed, and only when you add `--apply`.
|
|
130
|
+
- **The review offer uses the repair memory.** A review gets the gotcha card of
|
|
131
|
+
the files it reads, and the outcome of each finding is recorded. With
|
|
132
|
+
[habits](habits.md) on, your usual answer is marked — the dispatch gate is
|
|
133
|
+
still asked every time.
|
|
134
|
+
- **A defect is shown red first.** If it cannot be reproduced — no runner, no
|
|
135
|
+
reachable entry point — the entry says *not reproduced* with the reason, and
|
|
136
|
+
says it again at the commit offer. It never invents a reproduction.
|
|
137
|
+
- **A `risk` word never appears without its reason.** The blast-radius line
|
|
138
|
+
either names why a symbol is risky or does not use the word.
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
142
|
+
## 5. Related
|
|
143
|
+
|
|
144
|
+
- The full guide, with more worked runs:
|
|
145
|
+
[`templates/skills/orc-quick/README.md`](../templates/skills/orc-quick/README.md)
|
|
146
|
+
- Too big for quick? It offers [`/orc-mini`](../templates/skills/orc-mini/examples/mini-run-mock.md) — an offer, never a forced switch.
|
package/mock-run/orc.md
CHANGED
|
@@ -73,8 +73,8 @@ TDD: 3 tasks get a red-proof task first. 2 do not:
|
|
|
73
73
|
```
|
|
74
74
|
Task facets score model
|
|
75
75
|
T1 order note column + migration 3 files · new · stateful 62 sonnet-5 high
|
|
76
|
-
T2 POST /orders accepts note 2 files · imitate 38 sonnet-
|
|
77
|
-
T3 checkout note box 2 files · imitate 35 sonnet-
|
|
76
|
+
T2 POST /orders accepts note 2 files · imitate 38 sonnet-5 high
|
|
77
|
+
T3 checkout note box 2 files · imitate 35 sonnet-5 high
|
|
78
78
|
T4 order page shows the note 1 file · mechanical 12 haiku-4-5
|
|
79
79
|
T5 label text 1 file · mechanical 4 haiku-4-5
|
|
80
80
|
|
|
@@ -89,7 +89,7 @@ Pause every 2 waves. OK to start?
|
|
|
89
89
|
```
|
|
90
90
|
▶ W1 orc-executor-sonnet-5-high (T1)
|
|
91
91
|
40% … 100% returned: build green, `npx vitest run db/` exit 0
|
|
92
|
-
answered as: claude-sonnet-5 / high ✓ matches what I asked for
|
|
92
|
+
answered as: claude-sonnet-5-5 / high ✓ matches what I asked for
|
|
93
93
|
|
|
94
94
|
▶ W2 two agents at the same time
|
|
95
95
|
T3 asked me a question: "note max length?" → your call:
|
|
@@ -113,7 +113,7 @@ Pause every 2 waves. OK to start?
|
|
|
113
113
|
### Phases 5–6 — Review, then verify
|
|
114
114
|
|
|
115
115
|
```
|
|
116
|
-
Review (orc-reviewer-opus-5-
|
|
116
|
+
Review (orc-reviewer-opus-5-low):
|
|
117
117
|
P1 note is not length-checked on the server — api/orders/create.ts:44
|
|
118
118
|
I re-read line 44 myself. The quote matches. Fix it? > yes
|
|
119
119
|
P3 naming nit ×2 (counted, not fixed)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@azure-id/orc",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.1.1",
|
|
4
4
|
"description": "ORC — an orchestrator skill constellation for Claude Code: intake, planning, scored parallel subagents, code-pattern matching, review, verify, ship, plus a project knowledge-base wiki.",
|
|
5
5
|
"bin": {
|
|
6
6
|
"orc": "bin/cli.js"
|