@azure-id/orc 2.1.0 → 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 +54 -0
- package/README.md +20 -32
- package/bin/build-agents.js +205 -205
- package/bin/cli.js +47417 -47417
- package/bin/verify-contracts.js +5552 -5552
- package/bin/verify-package.js +716 -716
- package/bin/webui/fixtures/extra.js +2036 -2036
- package/mock-run/a-normal-day.md +2 -2
- package/mock-run/extra-slots.md +177 -177
- package/mock-run/orc-fast.md +2 -2
- package/mock-run/orc-quick.md +146 -146
- package/mock-run/orc.md +157 -157
- package/package.json +1 -1
- package/templates/agents/MODEL-MAPPING.md +176 -176
- package/templates/agents/{orc-recon-sonnet-4-6-med.md → orc-recon-sonnet-5-med.md} +4 -4
- package/templates/commands/orc-fast.md +10 -10
- package/templates/skills/_shared/extra-dispatch.md +1331 -1331
- package/templates/skills/_shared/opus5-only.md +137 -137
- package/templates/skills/orc/SKILL.md +227 -227
- package/templates/skills/orc/examples/full-run-mock.md +74 -74
- package/templates/skills/orc/references/effort-and-mode.md +222 -222
- package/templates/skills/orc-fast/SKILL.md +210 -210
- package/templates/skills/orc-grill/SKILL.md +232 -232
- package/templates/skills/orc-grill/references/grill-doc.md +1 -1
- package/templates/skills/orc-quick/README.md +536 -536
- package/templates/skills/orc-quick/references/context-doc.md +145 -145
- package/templates/skills/orc-quick/references/dispatch-gate.md +220 -220
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
|
@@ -1,157 +1,157 @@
|
|
|
1
|
-
# Mock run — `/orc`
|
|
2
|
-
|
|
3
|
-
> The full pipeline: understand → plan → score → build in parallel → review →
|
|
4
|
-
> verify → ship.
|
|
5
|
-
|
|
6
|
-
Use this when the job is a real feature, not a one-line fix.
|
|
7
|
-
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
## 1. What it does
|
|
11
|
-
|
|
12
|
-
`/orc` never writes code itself. It is the **coordinator**. It splits the work
|
|
13
|
-
into tasks, gives each task a score from 0 to 100, and sends each task to the
|
|
14
|
-
**cheapest model that can still do it**. Tasks that do not touch the same files
|
|
15
|
-
run at the same time (a "wave").
|
|
16
|
-
|
|
17
|
-
It writes everything to disk as it goes, so you can stop any time and come back
|
|
18
|
-
tomorrow — even in a brand new chat.
|
|
19
|
-
|
|
20
|
-
---
|
|
21
|
-
|
|
22
|
-
## 2. The run
|
|
23
|
-
|
|
24
|
-
Rina wants order notes on the checkout page and a new API field.
|
|
25
|
-
|
|
26
|
-
```
|
|
27
|
-
> /orc add order notes: a note field on checkout, saved with the order,
|
|
28
|
-
shown on the order page
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
### Phase 0 — Intake (it asks, you sign off)
|
|
32
|
-
|
|
33
|
-
```
|
|
34
|
-
Run folder: .claude/orc/run/order-notes/
|
|
35
|
-
|
|
36
|
-
I read the repo: TypeScript, vitest, Express. I will not ask you about that.
|
|
37
|
-
Size looks medium. Four questions, one round:
|
|
38
|
-
|
|
39
|
-
1 What must exist when this is done?
|
|
40
|
-
2 What is NOT part of this?
|
|
41
|
-
3 How will we know it works?
|
|
42
|
-
4 Any file or pattern to stay away from?
|
|
43
|
-
|
|
44
|
-
> 1 note box on checkout + note saved + note shown on order page
|
|
45
|
-
> 2 no editing a note after the order is placed, no admin view
|
|
46
|
-
> 3 a new order keeps its note after a page reload
|
|
47
|
-
> 4 follow api/orders/, do not touch api/payments/
|
|
48
|
-
|
|
49
|
-
Draft written: .claude/orc/run/order-notes/intent-spec.md
|
|
50
|
-
Sign-off: gate (I stop until you approve) or soft?
|
|
51
|
-
|
|
52
|
-
> gate
|
|
53
|
-
|
|
54
|
-
Approved.
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
### Phase 1 — Planning
|
|
58
|
-
|
|
59
|
-
```
|
|
60
|
-
Planner: ORC's own planner.
|
|
61
|
-
|
|
62
|
-
5 tasks. Every file path checked against the real repo:
|
|
63
|
-
14 of 15 paths exist. `api/orders/note_servce.ts` does NOT exist (typo).
|
|
64
|
-
→ plan sent back to the planner → corrected to note_service.ts ✓
|
|
65
|
-
|
|
66
|
-
TDD: 3 tasks get a red-proof task first. 2 do not:
|
|
67
|
-
T4 covered-by-existing → api/orders/orders.test.ts:120 (checked, it exists)
|
|
68
|
-
T5 no-behavior → a string in web/locales/en.json
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
### Phase 2 — Scoring (arithmetic, not opinion)
|
|
72
|
-
|
|
73
|
-
```
|
|
74
|
-
Task facets score model
|
|
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-
|
|
78
|
-
T4 order page shows the note 1 file · mechanical 12 haiku-4-5
|
|
79
|
-
T5 label text 1 file · mechanical 4 haiku-4-5
|
|
80
|
-
|
|
81
|
-
Waves: W1 {T1} W2 {T2, T3} W3 {T4, T5}
|
|
82
|
-
Pause every 2 waves. OK to start?
|
|
83
|
-
|
|
84
|
-
> yes
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
### Phase 3 — Building
|
|
88
|
-
|
|
89
|
-
```
|
|
90
|
-
▶ W1 orc-executor-sonnet-5-high (T1)
|
|
91
|
-
40% … 100% returned: build green, `npx vitest run db/` exit 0
|
|
92
|
-
answered as: claude-sonnet-5-5 / high ✓ matches what I asked for
|
|
93
|
-
|
|
94
|
-
▶ W2 two agents at the same time
|
|
95
|
-
T3 asked me a question: "note max length?" → your call:
|
|
96
|
-
|
|
97
|
-
> 500 characters
|
|
98
|
-
|
|
99
|
-
Answered. Both returned ✓. No two tasks touched the same file.
|
|
100
|
-
|
|
101
|
-
⏸ PAUSE (2 waves done)
|
|
102
|
-
Checkpoint saved. To continue in a fresh chat, paste this:
|
|
103
|
-
|
|
104
|
-
| Continue ORC run `order-notes`.
|
|
105
|
-
| Read .claude/orc/run/order-notes/state-of-play.md, then checkpoint.json.
|
|
106
|
-
| Do not re-plan. Do not redo finished tasks.
|
|
107
|
-
|
|
108
|
-
> continue
|
|
109
|
-
|
|
110
|
-
▶ W3 two haiku agents → done. 5 of 5 tasks complete.
|
|
111
|
-
```
|
|
112
|
-
|
|
113
|
-
### Phases 5–6 — Review, then verify
|
|
114
|
-
|
|
115
|
-
```
|
|
116
|
-
Review (orc-reviewer-opus-5-low):
|
|
117
|
-
P1 note is not length-checked on the server — api/orders/create.ts:44
|
|
118
|
-
I re-read line 44 myself. The quote matches. Fix it? > yes
|
|
119
|
-
P3 naming nit ×2 (counted, not fixed)
|
|
120
|
-
|
|
121
|
-
Verify (orc-verifier-opus-5-med) — against YOUR definition of done:
|
|
122
|
-
note saved ✓ orders.test.ts:131
|
|
123
|
-
note survives F5 ✗ no test covers a reload → P0, fixed once, re-checked ✓
|
|
124
|
-
PASSED 18/18 tests green
|
|
125
|
-
```
|
|
126
|
-
|
|
127
|
-
### Phase 8 — Ship
|
|
128
|
-
|
|
129
|
-
```
|
|
130
|
-
Branch feat/order-notes. Commit? Push? Open a PR? > yes to all
|
|
131
|
-
Ticket / title / target? > SHOP-214 / Add order notes / develop
|
|
132
|
-
|
|
133
|
-
✓ committed ✓ pushed ✓ PR body written from your pr.md template
|
|
134
|
-
|
|
135
|
-
5 tasks · 3 waves · 5 subagents · 1 pause · 1 question to you · 0 downgrades
|
|
136
|
-
```
|
|
137
|
-
|
|
138
|
-
---
|
|
139
|
-
|
|
140
|
-
## 3. What to notice
|
|
141
|
-
|
|
142
|
-
- **The orchestrator never wrote a line of code.** Even the 4-point label task
|
|
143
|
-
went to a subagent. That is what keeps it able to run for hours.
|
|
144
|
-
- **A bad file path was caught before any agent started.** The planner claimed
|
|
145
|
-
`note_servce.ts`; ORC checked the disk and bounced the plan.
|
|
146
|
-
- **The score picked the model, and the trace proves what answered.** Every
|
|
147
|
-
return says which model really replied, so a silent downgrade is visible.
|
|
148
|
-
- **The pause is real.** It stops. It does not "keep going a bit more".
|
|
149
|
-
|
|
150
|
-
---
|
|
151
|
-
|
|
152
|
-
## 4. Related
|
|
153
|
-
|
|
154
|
-
- The dense, annotated version of this run (written for the model, not for
|
|
155
|
-
people): [`templates/skills/orc/examples/full-run-mock.md`](../templates/skills/orc/examples/full-run-mock.md)
|
|
156
|
-
- Smaller job? [`/orc-mini`](../templates/skills/orc-mini/examples/mini-run-mock.md)
|
|
157
|
-
- Not sure which lane? [`/orc-route`](orc-route.md)
|
|
1
|
+
# Mock run — `/orc`
|
|
2
|
+
|
|
3
|
+
> The full pipeline: understand → plan → score → build in parallel → review →
|
|
4
|
+
> verify → ship.
|
|
5
|
+
|
|
6
|
+
Use this when the job is a real feature, not a one-line fix.
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## 1. What it does
|
|
11
|
+
|
|
12
|
+
`/orc` never writes code itself. It is the **coordinator**. It splits the work
|
|
13
|
+
into tasks, gives each task a score from 0 to 100, and sends each task to the
|
|
14
|
+
**cheapest model that can still do it**. Tasks that do not touch the same files
|
|
15
|
+
run at the same time (a "wave").
|
|
16
|
+
|
|
17
|
+
It writes everything to disk as it goes, so you can stop any time and come back
|
|
18
|
+
tomorrow — even in a brand new chat.
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## 2. The run
|
|
23
|
+
|
|
24
|
+
Rina wants order notes on the checkout page and a new API field.
|
|
25
|
+
|
|
26
|
+
```
|
|
27
|
+
> /orc add order notes: a note field on checkout, saved with the order,
|
|
28
|
+
shown on the order page
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
### Phase 0 — Intake (it asks, you sign off)
|
|
32
|
+
|
|
33
|
+
```
|
|
34
|
+
Run folder: .claude/orc/run/order-notes/
|
|
35
|
+
|
|
36
|
+
I read the repo: TypeScript, vitest, Express. I will not ask you about that.
|
|
37
|
+
Size looks medium. Four questions, one round:
|
|
38
|
+
|
|
39
|
+
1 What must exist when this is done?
|
|
40
|
+
2 What is NOT part of this?
|
|
41
|
+
3 How will we know it works?
|
|
42
|
+
4 Any file or pattern to stay away from?
|
|
43
|
+
|
|
44
|
+
> 1 note box on checkout + note saved + note shown on order page
|
|
45
|
+
> 2 no editing a note after the order is placed, no admin view
|
|
46
|
+
> 3 a new order keeps its note after a page reload
|
|
47
|
+
> 4 follow api/orders/, do not touch api/payments/
|
|
48
|
+
|
|
49
|
+
Draft written: .claude/orc/run/order-notes/intent-spec.md
|
|
50
|
+
Sign-off: gate (I stop until you approve) or soft?
|
|
51
|
+
|
|
52
|
+
> gate
|
|
53
|
+
|
|
54
|
+
Approved.
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### Phase 1 — Planning
|
|
58
|
+
|
|
59
|
+
```
|
|
60
|
+
Planner: ORC's own planner.
|
|
61
|
+
|
|
62
|
+
5 tasks. Every file path checked against the real repo:
|
|
63
|
+
14 of 15 paths exist. `api/orders/note_servce.ts` does NOT exist (typo).
|
|
64
|
+
→ plan sent back to the planner → corrected to note_service.ts ✓
|
|
65
|
+
|
|
66
|
+
TDD: 3 tasks get a red-proof task first. 2 do not:
|
|
67
|
+
T4 covered-by-existing → api/orders/orders.test.ts:120 (checked, it exists)
|
|
68
|
+
T5 no-behavior → a string in web/locales/en.json
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
### Phase 2 — Scoring (arithmetic, not opinion)
|
|
72
|
+
|
|
73
|
+
```
|
|
74
|
+
Task facets score model
|
|
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-5 high
|
|
77
|
+
T3 checkout note box 2 files · imitate 35 sonnet-5 high
|
|
78
|
+
T4 order page shows the note 1 file · mechanical 12 haiku-4-5
|
|
79
|
+
T5 label text 1 file · mechanical 4 haiku-4-5
|
|
80
|
+
|
|
81
|
+
Waves: W1 {T1} W2 {T2, T3} W3 {T4, T5}
|
|
82
|
+
Pause every 2 waves. OK to start?
|
|
83
|
+
|
|
84
|
+
> yes
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### Phase 3 — Building
|
|
88
|
+
|
|
89
|
+
```
|
|
90
|
+
▶ W1 orc-executor-sonnet-5-high (T1)
|
|
91
|
+
40% … 100% returned: build green, `npx vitest run db/` exit 0
|
|
92
|
+
answered as: claude-sonnet-5-5 / high ✓ matches what I asked for
|
|
93
|
+
|
|
94
|
+
▶ W2 two agents at the same time
|
|
95
|
+
T3 asked me a question: "note max length?" → your call:
|
|
96
|
+
|
|
97
|
+
> 500 characters
|
|
98
|
+
|
|
99
|
+
Answered. Both returned ✓. No two tasks touched the same file.
|
|
100
|
+
|
|
101
|
+
⏸ PAUSE (2 waves done)
|
|
102
|
+
Checkpoint saved. To continue in a fresh chat, paste this:
|
|
103
|
+
|
|
104
|
+
| Continue ORC run `order-notes`.
|
|
105
|
+
| Read .claude/orc/run/order-notes/state-of-play.md, then checkpoint.json.
|
|
106
|
+
| Do not re-plan. Do not redo finished tasks.
|
|
107
|
+
|
|
108
|
+
> continue
|
|
109
|
+
|
|
110
|
+
▶ W3 two haiku agents → done. 5 of 5 tasks complete.
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
### Phases 5–6 — Review, then verify
|
|
114
|
+
|
|
115
|
+
```
|
|
116
|
+
Review (orc-reviewer-opus-5-low):
|
|
117
|
+
P1 note is not length-checked on the server — api/orders/create.ts:44
|
|
118
|
+
I re-read line 44 myself. The quote matches. Fix it? > yes
|
|
119
|
+
P3 naming nit ×2 (counted, not fixed)
|
|
120
|
+
|
|
121
|
+
Verify (orc-verifier-opus-5-med) — against YOUR definition of done:
|
|
122
|
+
note saved ✓ orders.test.ts:131
|
|
123
|
+
note survives F5 ✗ no test covers a reload → P0, fixed once, re-checked ✓
|
|
124
|
+
PASSED 18/18 tests green
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
### Phase 8 — Ship
|
|
128
|
+
|
|
129
|
+
```
|
|
130
|
+
Branch feat/order-notes. Commit? Push? Open a PR? > yes to all
|
|
131
|
+
Ticket / title / target? > SHOP-214 / Add order notes / develop
|
|
132
|
+
|
|
133
|
+
✓ committed ✓ pushed ✓ PR body written from your pr.md template
|
|
134
|
+
|
|
135
|
+
5 tasks · 3 waves · 5 subagents · 1 pause · 1 question to you · 0 downgrades
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
---
|
|
139
|
+
|
|
140
|
+
## 3. What to notice
|
|
141
|
+
|
|
142
|
+
- **The orchestrator never wrote a line of code.** Even the 4-point label task
|
|
143
|
+
went to a subagent. That is what keeps it able to run for hours.
|
|
144
|
+
- **A bad file path was caught before any agent started.** The planner claimed
|
|
145
|
+
`note_servce.ts`; ORC checked the disk and bounced the plan.
|
|
146
|
+
- **The score picked the model, and the trace proves what answered.** Every
|
|
147
|
+
return says which model really replied, so a silent downgrade is visible.
|
|
148
|
+
- **The pause is real.** It stops. It does not "keep going a bit more".
|
|
149
|
+
|
|
150
|
+
---
|
|
151
|
+
|
|
152
|
+
## 4. Related
|
|
153
|
+
|
|
154
|
+
- The dense, annotated version of this run (written for the model, not for
|
|
155
|
+
people): [`templates/skills/orc/examples/full-run-mock.md`](../templates/skills/orc/examples/full-run-mock.md)
|
|
156
|
+
- Smaller job? [`/orc-mini`](../templates/skills/orc-mini/examples/mini-run-mock.md)
|
|
157
|
+
- Not sure which lane? [`/orc-route`](orc-route.md)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@azure-id/orc",
|
|
3
|
-
"version": "2.1.
|
|
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"
|