@azure-id/orc 2.1.1 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +320 -0
- package/README.md +48 -23
- package/bin/build-agents.js +207 -205
- package/bin/cli.js +48188 -47417
- package/bin/fix.js +21 -18
- package/bin/graph-extract.js +314 -6
- package/bin/graph-gain.js +83 -2
- package/bin/graph-map.js +23 -1
- package/bin/graph-notes.js +1 -1
- package/bin/graph-query.js +1362 -37
- package/bin/graph-resolve.js +1 -1
- package/bin/graph-shard.js +29 -6
- package/bin/graph-signals.js +5 -3
- package/bin/graph.js +7 -3
- package/bin/habit.js +1 -1
- package/bin/pricing.json +8 -1
- package/bin/trace-write.js +40 -11
- package/bin/verify-contracts.js +5661 -5552
- package/bin/verify-package.js +716 -716
- package/bin/webui/api.js +8 -0
- package/bin/webui/fixtures/extra.js +2036 -2036
- package/bin/webui/fixtures/flow.js +1 -1
- package/bin/webui/fixtures/index.js +2 -2
- package/bin/webui/fixtures/knowledge.js +8 -1
- package/bin/webui/fixtures/pact.js +112 -111
- package/bin/webui/fixtures/stats.js +2 -2
- package/bin/webui/i18n/en/knowledge.json +2 -0
- package/bin/webui/i18n/id/knowledge.json +2 -0
- package/bin/webui/js/panels/knowledge.js +17 -0
- package/guides/code-graph-benefit.md +116 -0
- package/guides/configuration.md +150 -0
- package/guides/documents.md +262 -0
- package/guides/extra-models.md +448 -0
- package/guides/habits-and-gotchas.md +152 -0
- package/guides/knowledge-reads.md +190 -0
- package/guides/model-selection.md +186 -0
- package/guides/rules.md +305 -0
- package/guides/status-line.md +344 -0
- package/mock-run/orc-cli.md +3 -2
- package/mock-run/orc-doc.md +452 -448
- package/mock-run/orc.md +157 -157
- package/package.json +2 -1
- package/templates/agents/MODEL-MAPPING.md +176 -176
- package/templates/agents/{orc-executor-haiku-4-5.md → orc-executor-haiku-5-high.md} +21 -8
- package/templates/agents/orc-executor-opus-4-7-high.md +17 -5
- package/templates/agents/orc-executor-opus-4-7-med.md +17 -5
- package/templates/agents/orc-executor-opus-4-8-high.md +17 -5
- package/templates/agents/orc-executor-opus-5-high.md +17 -5
- package/templates/agents/orc-executor-opus-5-low.md +17 -5
- package/templates/agents/orc-executor-opus-5-med.md +17 -5
- package/templates/agents/orc-executor-sonnet-4-6-high.md +17 -5
- package/templates/agents/orc-executor-sonnet-5-high.md +17 -5
- package/templates/agents/orc-executor-sonnet-5-low.md +17 -5
- package/templates/agents/orc-executor-sonnet-5-med.md +17 -5
- package/templates/agents/{orc-graph-noter-sonnet-4-6-med.md → orc-graph-noter-haiku-5-high.md} +4 -4
- package/templates/agents/orc-planner-mini-opus-5-med.md +3 -1
- package/templates/agents/orc-planner-mini-sonnet-5-high.md +3 -1
- package/templates/agents/orc-planner-opus-5-med.md +3 -1
- package/templates/agents/{orc-trace-writer-haiku-4-5.md → orc-trace-writer-haiku-5-high.md} +4 -3
- package/templates/commands/orc-doc.md +128 -128
- package/templates/commands/orc-export.md +51 -46
- package/templates/hooks/README.md +8 -3
- package/templates/hooks/orc-effort-guard.js +105 -27
- package/templates/hooks/orc-graph-hook.js +252 -4
- package/templates/hooks/orc-statusline.js +13 -6
- package/templates/hooks/orc-trace.js +1 -1
- package/templates/skills/_shared/README.md +2 -2
- package/templates/skills/_shared/code-graph.md +185 -251
- package/templates/skills/_shared/extra-dispatch.md +1331 -1331
- package/templates/skills/_shared/lane-contract.md +7 -3
- package/templates/skills/_shared/opus5-only.md +137 -137
- package/templates/skills/_shared/phases/execution.md +13 -11
- package/templates/skills/_shared/phases/planning.md +27 -9
- package/templates/skills/_shared/phases/preflight.md +3 -3
- package/templates/skills/_shared/phases/review.md +4 -3
- package/templates/skills/_shared/phases/ship.md +7 -10
- package/templates/skills/_shared/phases/summary.md +2 -3
- package/templates/skills/_shared/phases/trace-verbs.md +21 -16
- package/templates/skills/_shared/phases/trace.md +3 -3
- package/templates/skills/_shared/phases/wiki-consult.md +2 -2
- package/templates/skills/_shared/pr-templates.md +108 -106
- package/templates/skills/_shared/read-ladder.md +8 -2
- package/templates/skills/_shared/return-validation.md +10 -6
- package/templates/skills/_shared/review-slice.md +1 -1
- package/templates/skills/_shared/stack-plan.md +135 -135
- package/templates/skills/_shared/wait.md +14 -2
- package/templates/skills/context-combiner/SKILL.md +2 -2
- package/templates/skills/orc/SKILL.md +227 -227
- package/templates/skills/orc/config.md +2 -2
- package/templates/skills/orc/examples/full-run-mock.md +74 -74
- package/templates/skills/orc/schemas/planning-output.md +3 -0
- package/templates/skills/orc-aftermath/SKILL.md +15 -15
- package/templates/skills/orc-analyze/SKILL.md +2 -2
- package/templates/skills/orc-analyze-mini/SKILL.md +2 -2
- package/templates/skills/orc-boundary/SKILL.md +15 -15
- package/templates/skills/orc-boundary/references/card.md +81 -78
- package/templates/skills/orc-boundary/references/gate.md +113 -113
- package/templates/skills/orc-brainstorm/SKILL.md +15 -15
- package/templates/skills/orc-budget/SKILL.md +15 -15
- package/templates/skills/orc-challenge/README.md +1 -1
- package/templates/skills/orc-challenge/SKILL.md +16 -16
- package/templates/skills/orc-challenge/examples/council-full-roster.md +1 -1
- package/templates/skills/orc-claude/SKILL.md +4 -4
- package/templates/skills/orc-claude/examples/claude-run-mock.md +1 -1
- package/templates/skills/orc-diy/SKILL.md +2 -2
- package/templates/skills/orc-diy/references/blocks/wiki.md +26 -26
- package/templates/skills/orc-diy/references/flow-schema.md +2 -2
- package/templates/skills/orc-doc/README.md +2 -2
- package/templates/skills/orc-doc/SKILL.md +501 -490
- package/templates/skills/orc-doc/examples/orc-doc-prd-run.md +12 -1
- package/templates/skills/orc-doc/references/chunking.md +6 -4
- package/templates/skills/orc-doc/references/gates.md +311 -311
- package/templates/skills/orc-doc/references/resume-protocol.md +229 -228
- package/templates/skills/orc-explain/SKILL.md +88 -88
- package/templates/skills/orc-export/SKILL.md +190 -187
- package/templates/skills/orc-fast/SKILL.md +213 -210
- package/templates/skills/orc-grill/SKILL.md +245 -245
- package/templates/skills/orc-handoff/SKILL.md +11 -11
- package/templates/skills/orc-learn/SKILL.md +13 -13
- package/templates/skills/orc-learn/examples/learn-run-mock.md +2 -2
- package/templates/skills/orc-mini/SKILL.md +12 -12
- package/templates/skills/orc-mini/examples/mini-run-mock.md +4 -5
- package/templates/skills/orc-pact/SKILL.md +15 -15
- package/templates/skills/orc-pact/references/gate.md +70 -70
- package/templates/skills/orc-pattern/SKILL.md +3 -3
- package/templates/skills/orc-poly/SKILL.md +4 -4
- package/templates/skills/orc-poly/examples/poly-run-mock.md +51 -51
- package/templates/skills/orc-pr-driver/SKILL.md +4 -3
- package/templates/skills/orc-pr-driver/references/orc-run-split.md +108 -99
- package/templates/skills/orc-pr-setup/SKILL.md +2 -2
- package/templates/skills/orc-quick/README.md +535 -536
- package/templates/skills/orc-quick/SKILL.md +29 -32
- package/templates/skills/orc-quick/references/context-doc.md +145 -145
- package/templates/skills/orc-quick/references/dispatch-gate.md +220 -220
- package/templates/skills/orc-quick/references/gh-mode.md +2 -1
- package/templates/skills/orc-quick/references/look.md +34 -12
- package/templates/skills/orc-retro/SKILL.md +2 -2
- package/templates/skills/orc-retro/examples/retro-mock.md +2 -2
- package/templates/skills/orc-route/SKILL.md +2 -2
- package/templates/skills/orc-test/SKILL.md +6 -3
- package/templates/skills/orc-verify/SKILL.md +2 -2
- package/templates/skills/orc-wait/SKILL.md +10 -2
- package/templates/skills/orc-wiki/SKILL.md +4 -4
- package/templates/skills/orc-wiki/references/pattern-prewarm.md +19 -19
- package/templates/agents/orc-executor-sonnet-4-6-med.md +0 -155
|
@@ -0,0 +1,344 @@
|
|
|
1
|
+
# Building your own status line
|
|
2
|
+
|
|
3
|
+
> The full reference for `orc ui` ▸ **CLI Hook Interface**, added in v1.3.0.
|
|
4
|
+
> The short version lives in the [README](../README.md#changelog); the
|
|
5
|
+
> user-facing explanation of the *built-in* line is
|
|
6
|
+
> [`templates/hooks/README.md`](../templates/hooks/README.md), which ships into
|
|
7
|
+
> `.claude/hooks/` beside the hook it describes.
|
|
8
|
+
|
|
9
|
+
ORC's status line is two hardcoded lines. This makes it yours: three lines, each
|
|
10
|
+
holding one to five parts you choose, each drawn in a shape you pick and styled
|
|
11
|
+
the way you want.
|
|
12
|
+
|
|
13
|
+
**It is off until you enable it, and while it is off the bar is byte-for-byte
|
|
14
|
+
what it always was.**
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## 1. Start here
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
orc ui
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
Then open **CLI Hook Interface**. Everything below is on that one page.
|
|
25
|
+
|
|
26
|
+
There is a command-line half too — `orc statusline` — but it exists so the panel
|
|
27
|
+
has something to run. Building a three-line layout by typing flags is harder
|
|
28
|
+
than dragging one, and `orc statusline --help` says so on its first line.
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## 2. The board, and the one rule
|
|
33
|
+
|
|
34
|
+
Three lines. Each holds **at most five** parts.
|
|
35
|
+
|
|
36
|
+
> **A line may hold a part only if every line above it holds at least one.**
|
|
37
|
+
|
|
38
|
+
So line 1 must have something before line 2 can, and line 2 before line 3. The
|
|
39
|
+
panel will not let you break this: an illegal line is drawn hatched and disabled
|
|
40
|
+
with the reason on it. You are never allowed to do the wrong thing and then told
|
|
41
|
+
off for it.
|
|
42
|
+
|
|
43
|
+
**A group counts as one.** Wrap two to four parts into one visual object and it
|
|
44
|
+
takes one slot — the limit is about how much a line *says*, and a group says one
|
|
45
|
+
thing. Groups do not nest, and a group never spans two lines.
|
|
46
|
+
|
|
47
|
+
**Three parts do not count at all**: a spacer, a divider and a fill are
|
|
48
|
+
punctuation, not information.
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
## 3. Everything you can put on it
|
|
53
|
+
|
|
54
|
+
128 parts, in eight groups. `orc statusline components` lists them all with what
|
|
55
|
+
each costs to read.
|
|
56
|
+
|
|
57
|
+
| Group | What is in it |
|
|
58
|
+
|---|---|
|
|
59
|
+
| Session and tier | the verdict, the model, the effort, the context window, the project |
|
|
60
|
+
| Quota and spend | both usage windows, session cost in dollars, tokens, burn rate |
|
|
61
|
+
| Run state | the running lane and phase, agents, duration, waves, the animated mark |
|
|
62
|
+
| Cache health | whether the prompt cache is warm, its hit ratio, what a rebuild would cost |
|
|
63
|
+
| Session mode | Claude Code's version, vim mode, thinking, fast mode |
|
|
64
|
+
| Project and VCS | the branch, the repo, the PR, lines added and removed |
|
|
65
|
+
| Knowledge | the wiki's age, whether a code pattern is cached, linked peers |
|
|
66
|
+
| Static | your own text, a clock, a divider, a right-align fill |
|
|
67
|
+
|
|
68
|
+
### What each part costs
|
|
69
|
+
|
|
70
|
+
| Cost | Means |
|
|
71
|
+
|---|---|
|
|
72
|
+
| `free` | it is already in the data Claude Code hands the hook |
|
|
73
|
+
| `scan` | it rides in the one reading ORC already does every five seconds |
|
|
74
|
+
| `new read` | it opens a small file of its own, on its own clock |
|
|
75
|
+
| `refused` | ORC will not do it, and the row says why |
|
|
76
|
+
|
|
77
|
+
**Eight parts are refused**, and the reason is always a measurement. A `git
|
|
78
|
+
status` takes 53 ms; the hook has about 15 ms of room. Three wiki numbers would
|
|
79
|
+
need a git walk *per document*. `orc doctor` is a whole program. Every one of
|
|
80
|
+
those rows still appears in the list, with its reason — because *"we decided
|
|
81
|
+
against this"* and *"we forgot"* must not look the same.
|
|
82
|
+
|
|
83
|
+
**A part that cannot be worked out shows `—`, never `0`.** A zero would say the
|
|
84
|
+
thing was measured and found empty.
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
## 4. Shapes
|
|
89
|
+
|
|
90
|
+
Every part offers the shapes that make sense for it. The panel draws each one
|
|
91
|
+
with **that part's real value**, so you are choosing between pictures rather
|
|
92
|
+
than between words.
|
|
93
|
+
|
|
94
|
+
| Family | Examples |
|
|
95
|
+
|---|---|
|
|
96
|
+
| Text | `47%` · `context 47%` · `CONTEXT: 47%` · `[CONTEXT 47%]` · `⟪CTX⟫47%` |
|
|
97
|
+
| Proportion | `47% [\|\|\|\|\|·····]` · `█████░░░░░` · `████▊ ` · `▮▮▮▮▮▯▯▯▯▯` · `●●●●●○○○○○` · `◕` |
|
|
98
|
+
| State | a different **shape** per state, an icon, or the state word |
|
|
99
|
+
| History | a sparkline, a direction arrow, a change since last time |
|
|
100
|
+
| Motion | the animated mark |
|
|
101
|
+
|
|
102
|
+
A proportion shape is only offered where the value has a real maximum. A bar
|
|
103
|
+
over a number with no ceiling is a lie, and ORC refuses to draw one.
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
## 5. Colour
|
|
108
|
+
|
|
109
|
+
Two colours per part — one for its name, one for its value — plus a background.
|
|
110
|
+
Dim name, bright value is what most bars actually want, and one colour cannot
|
|
111
|
+
say it.
|
|
112
|
+
|
|
113
|
+
- **Named colours come first** (`red`, `bright-cyan`, …) because they follow
|
|
114
|
+
*your* terminal theme, and ORC does not know your background.
|
|
115
|
+
- **Hex** is behind Custom, for exact control.
|
|
116
|
+
- **Colour by value** (a *ramp*) picks the colour from the number: green →
|
|
117
|
+
amber → red for anything where high is bad, and the reverse where high is
|
|
118
|
+
good. You can move the points where it changes.
|
|
119
|
+
|
|
120
|
+
**A colour can say something.** Parts with states — the verdict, the wiki's age,
|
|
121
|
+
the cache — carry meaning in their colour. Setting a fixed colour turns that off,
|
|
122
|
+
and the panel says so at the moment you pick it. A green ⛔ is a status line that
|
|
123
|
+
lies.
|
|
124
|
+
|
|
125
|
+
---
|
|
126
|
+
|
|
127
|
+
## 6. Three things a terminal cannot do
|
|
128
|
+
|
|
129
|
+
Said plainly, because a picker that does nothing is worse than no picker.
|
|
130
|
+
|
|
131
|
+
| You may want | What there is instead |
|
|
132
|
+
|---|---|
|
|
133
|
+
| **A bigger font** | Your terminal owns the font size and no program can change it. **Bold** is the closest thing to bigger and **dim** to smaller. To make a part *visually* bigger, give it more cells: a bar at width 12 is a large object. |
|
|
134
|
+
| **Blinking** | Refused. Half of terminals disable it and no state on a status line deserves it. |
|
|
135
|
+
| **Icon-font symbols** | Not shipped. They need a font ORC cannot check for, and without it they draw as empty boxes. Put one in a `text` part if you have one and want to own that choice. |
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
## 7. When a part is allowed to disappear
|
|
140
|
+
|
|
141
|
+
**By default nothing disappears.** `ucs 0%` and "this build has no ucs part" are
|
|
142
|
+
different facts and must not look the same.
|
|
143
|
+
|
|
144
|
+
You can change that per part, and the conditions are a **checklist** — tick as
|
|
145
|
+
many as you want:
|
|
146
|
+
|
|
147
|
+
`empty` · `zero` · `unknown` · `healthy` · `no run` · `narrow terminal`
|
|
148
|
+
|
|
149
|
+
`healthy` is the one that makes a dense layout liveable: eleven health parts set
|
|
150
|
+
to hide while healthy take up no room at all until one of them has something to
|
|
151
|
+
say. The trade is real, and the panel states it — a part that can vanish has an
|
|
152
|
+
absence that means two things.
|
|
153
|
+
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
## 8. A narrow terminal
|
|
157
|
+
|
|
158
|
+
Each part carries the width range in which it is worth its cells, and a **drop
|
|
159
|
+
order** from 1 to 5. When the line does not fit, `1` goes first.
|
|
160
|
+
|
|
161
|
+
This is better than cutting off the right-hand end, because **you** choose what
|
|
162
|
+
survives rather than losing whatever happened to be last.
|
|
163
|
+
|
|
164
|
+
---
|
|
165
|
+
|
|
166
|
+
## 9. Ready-made layouts
|
|
167
|
+
|
|
168
|
+
| Preset | What it is |
|
|
169
|
+
|---|---|
|
|
170
|
+
| `orc-default` | today's two lines, exactly |
|
|
171
|
+
| `minimal` | one line, four parts, dimmed |
|
|
172
|
+
| `cost-watch` | what this session is spending, in every free unit |
|
|
173
|
+
| `run-watch` | what ORC is doing, promoted to line 1 |
|
|
174
|
+
| `knowledge` | almost always empty — a part appearing IS the signal |
|
|
175
|
+
| `cache-watch` | the prompt-cache block |
|
|
176
|
+
| `mono` | no colour at all: shapes and weight only |
|
|
177
|
+
|
|
178
|
+
**Applying one replaces your whole layout**, so it always asks first and names
|
|
179
|
+
what you lose.
|
|
180
|
+
|
|
181
|
+
`mono` is worth knowing about for two reasons: it is the right layout for a
|
|
182
|
+
screenshot, and multi-line status lines with heavy colour are the configuration
|
|
183
|
+
most likely to render oddly in an unusual terminal. If yours misbehaves, `mono`
|
|
184
|
+
is the answer.
|
|
185
|
+
|
|
186
|
+
---
|
|
187
|
+
|
|
188
|
+
## 10. Why it is fast
|
|
189
|
+
|
|
190
|
+
A composed layout can be **faster** than the built-in one.
|
|
191
|
+
|
|
192
|
+
The hook has about 15 milliseconds. Claude Code redraws the status line every
|
|
193
|
+
300 ms at most and **stops a script that is still running**, and simply starting
|
|
194
|
+
`node` takes about 285 ms of that on Windows.
|
|
195
|
+
|
|
196
|
+
So ORC does the thinking in advance. When you save a layout it is *compiled*
|
|
197
|
+
into a flat list of drawing instructions with every colour already worked out;
|
|
198
|
+
the hook walks that list and decides nothing. It also records which readings
|
|
199
|
+
your layout needs — and reads nothing else.
|
|
200
|
+
|
|
201
|
+
Measured, cold, on the same machine:
|
|
202
|
+
|
|
203
|
+
| | built-in lines | a composed `minimal` |
|
|
204
|
+
|---|---|---|
|
|
205
|
+
| render | 346.7 ms | **298.2 ms** |
|
|
206
|
+
|
|
207
|
+
300 ms is the line at which Claude Code gives up. That is the whole difference.
|
|
208
|
+
|
|
209
|
+
---
|
|
210
|
+
|
|
211
|
+
## 11. If something goes wrong
|
|
212
|
+
|
|
213
|
+
The hook can never refuse, so it falls back — silently, to the built-in lines —
|
|
214
|
+
and writes down why. `orc doctor` turns that into a sentence:
|
|
215
|
+
|
|
216
|
+
| Finding | Means |
|
|
217
|
+
|---|---|
|
|
218
|
+
| `statusline-layout-invalid` | the layout does not pass its own rules |
|
|
219
|
+
| `statusline-layout-unreadable` | the compiled layout is missing or stale |
|
|
220
|
+
| `statusline-layout-orphaned` | your layout names a part this ORC version no longer has |
|
|
221
|
+
|
|
222
|
+
**An orphaned part is reported, never repaired for you.** Which part replaces a
|
|
223
|
+
retired one is your decision, not ORC's.
|
|
224
|
+
|
|
225
|
+
All three appear only while the feature is enabled. A layout you built and never
|
|
226
|
+
enabled is a draft, not a problem.
|
|
227
|
+
|
|
228
|
+
---
|
|
229
|
+
|
|
230
|
+
## 12. The commands, if you want them
|
|
231
|
+
|
|
232
|
+
```
|
|
233
|
+
orc statusline components every part, with its cost and its shapes
|
|
234
|
+
orc statusline show your layout, resolved
|
|
235
|
+
orc statusline preview [--width N] what it will look like, in all four forms
|
|
236
|
+
orc statusline explain <line>:<pos> where every setting on one part came from
|
|
237
|
+
orc statusline validate exit 0 valid, 1 not — and it names each problem
|
|
238
|
+
orc statusline set <line> <pos> <part> [--render …] [--color …] …
|
|
239
|
+
orc statusline move <line>:<pos> <line>:<pos>
|
|
240
|
+
orc statusline remove <line>:<pos>
|
|
241
|
+
orc statusline group <line>:<pos> <line>:<pos> [...] two to four as one object
|
|
242
|
+
orc statusline expand <line>:<pos> back into its parts
|
|
243
|
+
orc statusline clone <line>:<pos>
|
|
244
|
+
orc statusline presets | apply <name> | reset | compile
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
`explain` is the one worth knowing about: after a theme change it tells you
|
|
248
|
+
which of your own settings are still yours.
|
|
249
|
+
|
|
250
|
+
### The refresh timer (moving parts)
|
|
251
|
+
|
|
252
|
+
Claude Code redraws the status line when something happens in the session. While
|
|
253
|
+
the session is idle, nothing redraws it, so a pet or a clock stops. The setting
|
|
254
|
+
`statusLine.refreshInterval` adds a timer that redraws it while idle.
|
|
255
|
+
|
|
256
|
+
```
|
|
257
|
+
orc statusline refresh 3 redraw every 3 seconds
|
|
258
|
+
orc statusline refresh off remove the timer
|
|
259
|
+
orc config set statusline_refresh 3 the same write, from the config editor
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
- The values are `off`, `1`, `2`, `3`, `5` and `10` seconds (`3` is new in v2.1.0).
|
|
263
|
+
- **The floor is 1 second.** Claude Code gives no timer below 1 second (a test
|
|
264
|
+
with 0.25 s gave no redraw). So ORC refuses `0.2`, `0.5` and `0.7`. The message
|
|
265
|
+
names the floor and the nearest value (`1`), and the file stays as it was. In
|
|
266
|
+
`orc ui` ▸ CLI Hook Interface, the 0.2 · 0.5 · 0.7 buttons are disabled and
|
|
267
|
+
their tooltip gives the reason.
|
|
268
|
+
- With a timer, a pet moves one step for each redraw. Without a timer, it moves
|
|
269
|
+
with the clock.
|
|
270
|
+
- `orc doctor` tells you when a value is below the floor, when your layout has a
|
|
271
|
+
moving part and no timer, and when the timer is on the sub-agent board.
|
|
272
|
+
- `statusline_refresh` is not stored in `orc.config.yaml`. It is always read from
|
|
273
|
+
`settings.json`, so the two can never disagree.
|
|
274
|
+
|
|
275
|
+
Turn the whole thing on and off with:
|
|
276
|
+
|
|
277
|
+
```
|
|
278
|
+
orc config set statusline_custom on
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
The switch refuses while the layout does not validate, and names the reason.
|
|
282
|
+
Enabled with nothing saved is not a state.
|
|
283
|
+
|
|
284
|
+
---
|
|
285
|
+
|
|
286
|
+
## 13. The second board — one row per agent (v1.4.0)
|
|
287
|
+
|
|
288
|
+
Claude Code draws a row for every subagent in the agent panel. ORC can draw that
|
|
289
|
+
row too. Open the same panel and switch to **One row per agent**.
|
|
290
|
+
|
|
291
|
+
```
|
|
292
|
+
● orc-executor-opus-5-low O5/low 84K ███▎░░░░ 42% for 17m
|
|
293
|
+
✓ orc-reviewer-opus-5-low O5/med 31K █▌░░░░░░ 16% for 4m
|
|
294
|
+
```
|
|
295
|
+
|
|
296
|
+
Everything above still applies — the same shapes, the same colours, the same
|
|
297
|
+
editor, the same preview. Three things differ:
|
|
298
|
+
|
|
299
|
+
1. **A row is one line.** Claude Code renders one per agent, so there is no
|
|
300
|
+
second or third line and no rule about filling one before another.
|
|
301
|
+
2. **The parts are about ONE AGENT**: its name, what it is running at, its
|
|
302
|
+
status, its own context window, how long it has been going, and how many
|
|
303
|
+
tokens it has used. A part from the status line cannot go here, and the
|
|
304
|
+
panel says so if you try.
|
|
305
|
+
3. **It is a separate switch** — `subagent_line_custom` — so you can have one
|
|
306
|
+
board on and the other off.
|
|
307
|
+
|
|
308
|
+
### The number that was missing
|
|
309
|
+
|
|
310
|
+
ORC has never been able to tell you what a subagent cost. The conversation file
|
|
311
|
+
records no token use for one at all, so `orc usage report` has said `tokens:
|
|
312
|
+
null` and explained why.
|
|
313
|
+
|
|
314
|
+
**The agent panel reports one.** So ORC writes down what it is handed, and
|
|
315
|
+
`orc usage report` shows it.
|
|
316
|
+
|
|
317
|
+
**It is a floor, not a total.** ORC only sees an agent while it is in the panel.
|
|
318
|
+
An agent that starts and finishes between two redraws is never seen, and a
|
|
319
|
+
number read just before an agent ended is short by whatever came after. Every
|
|
320
|
+
one of these numbers says so, and a number ORC did not see reads `not-seen` —
|
|
321
|
+
**never `0`**, which would mean the work was free.
|
|
322
|
+
|
|
323
|
+
**This part runs whether the row is on or off.** It is not part of the display:
|
|
324
|
+
it is a measurement Claude Code hands over either way, and throwing it out
|
|
325
|
+
because a display setting is off would be the wrong trade. `orc init` and
|
|
326
|
+
`orc update` wire it for that reason, and never replace a `subagentStatusLine`
|
|
327
|
+
you already have.
|
|
328
|
+
|
|
329
|
+
### Presets
|
|
330
|
+
|
|
331
|
+
| Preset | What it is |
|
|
332
|
+
|---|---|
|
|
333
|
+
| `agent-default` | what the agent is, what it runs at, and what it has cost |
|
|
334
|
+
| `agent-watch` | status, its own context window, and the clock |
|
|
335
|
+
| `agent-tier` | the model and effort ORC actually got, per agent |
|
|
336
|
+
|
|
337
|
+
```
|
|
338
|
+
orc statusline apply agent-default --board subagent
|
|
339
|
+
orc config set subagent_line_custom on
|
|
340
|
+
```
|
|
341
|
+
|
|
342
|
+
Every command above takes `--board subagent`. Without it you are editing the
|
|
343
|
+
status line, and a preset from the wrong board is refused by name with the flag
|
|
344
|
+
that would have worked.
|
package/mock-run/orc-cli.md
CHANGED
|
@@ -24,6 +24,7 @@ Installed into /home/rina/shopcart/.claude
|
|
|
24
24
|
|
|
25
25
|
Merged into .claude/settings.json (nothing of yours was replaced):
|
|
26
26
|
· PreToolUse effort guard
|
|
27
|
+
· UserPromptExpansion effort gate (typed /orc, /orc-diy)
|
|
27
28
|
· statusline (you had none — if you had, I would print the snippet instead)
|
|
28
29
|
|
|
29
30
|
Next: orc onboarding first-run
|
|
@@ -42,7 +43,7 @@ orc doctor — /home/rina/shopcart/.claude
|
|
|
42
43
|
payload ✓ every shipped file present
|
|
43
44
|
orphans 3 files ORC owns are no longer in the payload
|
|
44
45
|
fix: orc update --prune (it will name all three first)
|
|
45
|
-
settings ✓ guard wired · ✓ statusline wired
|
|
46
|
+
settings ✓ guard wired · ✓ typed /orc gate wired · ✓ statusline wired
|
|
46
47
|
trace ✓ pointer valid
|
|
47
48
|
diy STALE — compiled before the last update
|
|
48
49
|
|
|
@@ -145,7 +146,7 @@ $ orc stats --since 2026-07-01
|
|
|
145
146
|
|
|
146
147
|
```
|
|
147
148
|
Lanes runs Agents dispatches
|
|
148
|
-
orc 12 orc-executor-
|
|
149
|
+
orc 12 orc-executor-haiku-5-high 41
|
|
149
150
|
quick 31 orc-executor-sonnet-5-high 22
|
|
150
151
|
mini 9 orc-planner-opus-5-med 21
|
|
151
152
|
wiki 3 orc-reviewer-opus-5-low 12
|