@azure-id/orc 0.56.1 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +219 -0
- package/README-id.md +49 -107
- package/README.md +694 -719
- package/bin/build-agents.js +18 -11
- package/bin/cli.js +33699 -29855
- package/bin/onboarding-content.js +0 -3
- package/bin/test-run.js +491 -0
- package/bin/verify-contracts.js +4330 -3277
- package/bin/verify-package.js +76 -6
- package/bin/webui/api.js +1201 -1163
- package/bin/webui/app.html +210 -198
- package/bin/webui/css/06-responsive.css +120 -108
- package/bin/webui/css/panels/extra.css +29 -0
- package/bin/webui/css/panels/lanes.css +134 -0
- package/bin/webui/css/panels/settings.css +79 -3
- package/bin/webui/css/panels/wait.css +123 -0
- package/bin/webui/fixtures/extra.js +2036 -1934
- package/bin/webui/fixtures/flow.js +2 -2
- package/bin/webui/fixtures/index.js +510 -486
- package/bin/webui/fixtures/lanes.js +218 -0
- package/bin/webui/fixtures/settings.js +261 -34
- package/bin/webui/fixtures/stats.js +3 -3
- package/bin/webui/fixtures/wait.js +97 -0
- package/bin/webui/i18n/TERMS.md +135 -134
- package/bin/webui/i18n/en/extra.json +345 -313
- package/bin/webui/i18n/en/lanes.json +29 -0
- package/bin/webui/i18n/en/nav.json +21 -19
- package/bin/webui/i18n/en/overview.json +2 -0
- package/bin/webui/i18n/en/settings.json +16 -5
- package/bin/webui/i18n/en/wait.json +41 -0
- package/bin/webui/i18n/id/extra.json +345 -313
- package/bin/webui/i18n/id/lanes.json +29 -0
- package/bin/webui/i18n/id/nav.json +21 -19
- package/bin/webui/i18n/id/overview.json +2 -0
- package/bin/webui/i18n/id/settings.json +15 -4
- package/bin/webui/i18n/id/wait.json +41 -0
- package/bin/webui/js/01-i18n.js +151 -149
- package/bin/webui/js/panels/extra.js +3199 -3011
- package/bin/webui/js/panels/lanes.js +259 -0
- package/bin/webui/js/panels/overview.js +10 -0
- package/bin/webui/js/panels/settings.js +149 -3
- package/bin/webui/js/panels/wait.js +253 -0
- package/package.json +39 -39
- package/templates/agents/MODEL-MAPPING.md +23 -35
- package/templates/agents/orc-executor-opus-4-7-high.md +1 -1
- package/templates/agents/orc-executor-opus-4-7-med.md +1 -1
- package/templates/agents/orc-executor-opus-4-8-high.md +1 -1
- package/templates/agents/orc-executor-opus-5-high.md +1 -1
- package/templates/agents/orc-executor-opus-5-low.md +1 -1
- package/templates/agents/orc-executor-opus-5-med.md +1 -1
- package/templates/agents/orc-retro-opus-5-med.md +73 -73
- package/templates/agents/orc-retro-sonnet-5-high.md +72 -72
- package/templates/agents/orc-trace-writer-haiku-4-5.md +107 -107
- package/templates/commands/orc-route.md +1 -1
- package/templates/commands/orc-wait.md +19 -0
- package/templates/commands/orc.md +1 -1
- package/templates/hooks/orc-statusline.js +39 -0
- package/templates/skills/_shared/README.md +7 -3
- package/templates/skills/_shared/config-precedence.md +198 -0
- package/templates/skills/_shared/drift-recovery.md +1 -1
- package/templates/skills/_shared/extra-dispatch.md +159 -7
- package/templates/skills/_shared/interview.md +1 -1
- package/templates/skills/_shared/opus5-only.md +9 -7
- package/templates/skills/_shared/phases/README.md +82 -0
- package/templates/skills/{orc/references → _shared/phases}/analyst-gates.md +15 -3
- package/templates/skills/_shared/phases/execution.md +143 -0
- package/templates/skills/{orc/references → _shared/phases}/house-rules.md +13 -1
- package/templates/skills/{orc/references → _shared/phases}/intake.md +15 -2
- package/templates/skills/_shared/phases/mock-example.md +56 -0
- package/templates/skills/{orc/references → _shared/phases}/plan-handoff.md +16 -3
- package/templates/skills/_shared/phases/planning.md +135 -0
- package/templates/skills/_shared/phases/preflight.md +98 -0
- package/templates/skills/_shared/phases/review.md +53 -0
- package/templates/skills/_shared/phases/scoring.md +65 -0
- package/templates/skills/{orc/references → _shared/phases}/security-checklist.md +12 -1
- package/templates/skills/_shared/phases/security.md +55 -0
- package/templates/skills/_shared/phases/ship.md +88 -0
- package/templates/skills/{orc/references/stop-and-resume.md → _shared/phases/stop-resume.md} +169 -160
- package/templates/skills/_shared/phases/summary.md +48 -0
- package/templates/skills/_shared/phases/testgen.md +51 -0
- package/templates/skills/{orc/references/trace-protocol.md → _shared/phases/trace.md} +49 -6
- package/templates/skills/_shared/phases/verify.md +70 -0
- package/templates/skills/{orc/references → _shared/phases}/wave-grouping.md +14 -2
- package/templates/skills/{orc/references → _shared/phases}/wiki-consult.md +13 -1
- package/templates/skills/_shared/read-ladder.md +48 -0
- package/templates/skills/_shared/wait.md +240 -0
- package/templates/skills/context-combiner/SKILL.md +214 -187
- package/templates/skills/orc/README.md +148 -150
- package/templates/skills/orc/SKILL.md +75 -358
- package/templates/skills/orc/config.md +137 -389
- package/templates/skills/orc/examples/full-run-mock.md +1 -1
- package/templates/skills/orc/references/effort-and-mode.md +16 -18
- package/templates/skills/orc/references/phases/intake.md +47 -0
- package/templates/skills/orc/references/phases/integration.md +19 -0
- package/templates/skills/orc/references/preflight-report.md +4 -4
- package/templates/skills/orc/references/ultra-mode.md +117 -123
- package/templates/skills/orc/schemas/planning-output.md +279 -279
- package/templates/skills/orc/subskills/orc-planner/SKILL.md +260 -264
- package/templates/skills/orc/subskills/orc-pr/stack-gate.md +4 -1
- package/templates/skills/orc-aftermath/SKILL.md +158 -136
- package/templates/skills/orc-analyze/SKILL.md +252 -220
- package/templates/skills/orc-analyze/references/branching.md +51 -51
- package/templates/skills/orc-analyze/references/thin-input.md +1 -1
- package/templates/skills/orc-analyze-mini/SKILL.md +128 -112
- package/templates/skills/orc-boundary/SKILL.md +249 -208
- package/templates/skills/orc-brainstorm/SKILL.md +377 -339
- package/templates/skills/orc-budget/SKILL.md +248 -225
- package/templates/skills/orc-challenge/README.md +1 -1
- package/templates/skills/orc-challenge/SKILL.md +298 -255
- package/templates/skills/orc-challenge/examples/council-full-roster.md +1 -1
- package/templates/skills/orc-claude/SKILL.md +221 -199
- package/templates/skills/orc-diy/README.md +2 -1
- package/templates/skills/orc-diy/SKILL.md +132 -68
- package/templates/skills/orc-diy/references/blocks/analyze.md +1 -1
- package/templates/skills/orc-diy/references/compile.md +21 -7
- package/templates/skills/orc-diy/references/flow-schema.md +2 -2
- package/templates/skills/orc-doc/SKILL.md +49 -7
- package/templates/skills/orc-explain/SKILL.md +24 -0
- package/templates/skills/orc-export/SKILL.md +31 -5
- package/templates/skills/orc-fast/SKILL.md +218 -185
- package/templates/skills/orc-grill/SKILL.md +238 -207
- package/templates/skills/orc-handoff/SKILL.md +223 -204
- package/templates/skills/orc-learn/SKILL.md +181 -156
- package/templates/skills/orc-mini/SKILL.md +47 -24
- package/templates/skills/orc-pact/SKILL.md +255 -218
- package/templates/skills/orc-pattern/SKILL.md +154 -124
- package/templates/skills/orc-poly/SKILL.md +242 -216
- package/templates/skills/orc-poly/references/gather.md +1 -1
- package/templates/skills/orc-pr-driver/SKILL.md +196 -167
- package/templates/skills/orc-pr-driver/references/orc-run-split.md +1 -1
- package/templates/skills/orc-pr-setup/SKILL.md +212 -184
- package/templates/skills/orc-quick/README.md +2 -2
- package/templates/skills/orc-quick/SKILL.md +51 -13
- package/templates/skills/orc-quick/references/dispatch-gate.md +2 -3
- package/templates/skills/orc-retro/SKILL.md +249 -222
- package/templates/skills/orc-retro/examples/retro-mock.md +171 -171
- package/templates/skills/orc-route/SKILL.md +188 -165
- package/templates/skills/orc-verify/SKILL.md +103 -84
- package/templates/skills/orc-wait/SKILL.md +163 -0
- package/templates/skills/orc-wiki/SKILL.md +60 -206
- package/templates/skills/orc-wiki/references/phases/phase-0.md +71 -0
- package/templates/skills/orc-wiki/references/phases/phase-1.md +35 -0
- package/templates/skills/orc-wiki/references/phases/phase-2.md +52 -0
- package/templates/skills/orc-wiki/references/phases/phase-3.md +57 -0
- package/templates/skills/orc-wiki/references/phases/phase-3c.md +36 -0
- package/templates/agents/orc-advisor-fable-5.md +0 -50
- package/templates/agents/orc-analyst-fable-5.md +0 -115
- package/templates/agents/orc-judge-fable-5.md +0 -79
- package/templates/agents/orc-planner-fable-5.md +0 -152
- package/templates/agents/orc-reviewer-fable-5.md +0 -57
- package/templates/skills/_shared/fable5-override.md +0 -56
- package/templates/skills/orc-diy/references/blocks/execution.md +0 -42
- package/templates/skills/orc-diy/references/blocks/mock-example.md +0 -22
- package/templates/skills/orc-diy/references/blocks/planning.md +0 -34
- package/templates/skills/orc-diy/references/blocks/review.md +0 -18
- package/templates/skills/orc-diy/references/blocks/scoring.md +0 -16
- package/templates/skills/orc-diy/references/blocks/security.md +0 -25
- package/templates/skills/orc-diy/references/blocks/ship.md +0 -25
- package/templates/skills/orc-diy/references/blocks/summary.md +0 -18
- package/templates/skills/orc-diy/references/blocks/testgen.md +0 -17
- package/templates/skills/orc-diy/references/blocks/trace.md +0 -28
- package/templates/skills/orc-diy/references/blocks/verify.md +0 -25
|
@@ -1,136 +1,158 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: orc-aftermath
|
|
3
|
-
description: >
|
|
4
|
-
Did the thing we shipped hold up. Use for "/orc-aftermath", "did that change
|
|
5
|
-
stick", "what did we ship last month and how did it go", "which runs came back".
|
|
6
|
-
Read-only and report-only: it grades past runs from the repository's own future —
|
|
7
|
-
files rewritten soon after, a test we added deleted or skipped, the commit
|
|
8
|
-
reverted, a promise that was HOLDING now BROKEN — all from git log, ORC's traces
|
|
9
|
-
and the pact ledger. No vendor, no telemetry, no instrumentation. Churn is a
|
|
10
|
-
SIGNAL, never a verdict: it reports the signal and its strength, never "this
|
|
11
|
-
change was bad", and never a person's name.
|
|
12
|
-
---
|
|
13
|
-
|
|
14
|
-
# ORC-AFTERMATH
|
|
15
|
-
|
|
16
|
-
The lane that **measures** — backwards. The missing half of ORC's flywheel.
|
|
17
|
-
|
|
18
|
-
`/orc-retro` measures the **process**: bands, downgrades, retries, gate bounces,
|
|
19
|
-
narration coverage. It cannot tell you whether any of it was any good. Aftermath
|
|
20
|
-
measures the **result** — and together the score→model table can finally be tuned
|
|
21
|
-
against *what stuck* instead of *what ran smoothly*.
|
|
22
|
-
|
|
23
|
-
## The insight
|
|
24
|
-
|
|
25
|
-
Everyone reaches for production telemetry. For a large class of outcomes **the
|
|
26
|
-
repository's own future is the grading signal**, and it is free:
|
|
27
|
-
|
|
28
|
-
| Signal | What it suggests | Strength |
|
|
29
|
-
|---|---|---|
|
|
30
|
-
| The commit was reverted | obvious | 3 |
|
|
31
|
-
| A test we added no longer exists | our proof was rejected | 3 |
|
|
32
|
-
| A promise anchored in this change is BROKEN | the change leaked | 3 |
|
|
33
|
-
| A test we added now contains a skip | the proof was neutralised | 2 |
|
|
34
|
-
| 3+ shipped files rewritten inside the window | the change likely missed | 2 |
|
|
35
|
-
| 1–2 shipped files rewritten | weak — normal iteration looks like this | 1 |
|
|
36
|
-
|
|
37
|
-
All of it from `git log` + the trace corpus + `.claude/orc/pact/ledger.json`.
|
|
38
|
-
|
|
39
|
-
## The rule that keeps it honest
|
|
40
|
-
|
|
41
|
-
**Churn is a signal, not a verdict.** A file being rewritten is a fact; *why* is not
|
|
42
|
-
knowable from git. Somebody may have fixed a real miss, or extended a good change,
|
|
43
|
-
or reformatted the file. The lane reports **the signal and its strength** and stops
|
|
44
|
-
there.
|
|
45
|
-
|
|
46
|
-
It never writes "this change was bad". It never names a person — `git log` knows who
|
|
47
|
-
committed and this lane never asks. It never edits anything: not the rubric, not
|
|
48
|
-
config, not code, not a run.
|
|
49
|
-
|
|
50
|
-
**A run younger than 7 days is `too recent to grade`.** That is an ANSWER, not a
|
|
51
|
-
gap, and it keeps its slot in the report. So does `history too shallow` when there
|
|
52
|
-
are no runs in the window at all.
|
|
53
|
-
|
|
54
|
-
## Nothing to configure but the window
|
|
55
|
-
|
|
56
|
-
`aftermath_window_days` (default 30) is how far back it grades. That is the only key
|
|
57
|
-
this lane reads besides `log_dir`.
|
|
58
|
-
|
|
59
|
-
---
|
|
60
|
-
|
|
61
|
-
## Phases
|
|
62
|
-
|
|
63
|
-
```
|
|
64
|
-
A0 preflight (silent) log_dir · git work tree · orc pact status --json
|
|
65
|
-
A1 scope a run slug · --since Nd · everything in the window
|
|
66
|
-
A2 grade orc aftermath status --json — the CLI computes; this RENDERS
|
|
67
|
-
A3 report orc-aftermath/<period>/aftermath.md + the /orc-retro block
|
|
68
|
-
A4 close one end-of-run trace packet
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
**A0 opens the run properly.** Write `log_dir/.current` =
|
|
72
|
-
`run-aftermath-<slug>-<DDMMYY>-<HHMMSS>.txt` AND `touch the trace file` of that
|
|
73
|
-
name in the SAME step. Both, or neither. A lane the protocol declares must be a
|
|
74
|
-
lane something OPENS, or every counting tool reports it as a permanent zero.
|
|
75
|
-
|
|
76
|
-
**A2 does no grading of its own.** `orc aftermath status` is the only engine — the
|
|
77
|
-
skill never re-derives a signal, a strength or a grade. Same rule as the wiki tier.
|
|
78
|
-
|
|
79
|
-
## A3 — the report
|
|
80
|
-
|
|
81
|
-
Write `orc-aftermath/<period>/aftermath.md` at the project root, where `<period>` is
|
|
82
|
-
the window (`last-30d`) or the single run slug. Per run: **what it promised**
|
|
83
|
-
(acceptance criteria from the plan, plus any invariants it was told about) versus
|
|
84
|
-
**what the repo now shows**. Shape: `references/report.md`.
|
|
85
|
-
|
|
86
|
-
The report ends with a structured block `/orc-retro` aggregates — that is the whole
|
|
87
|
-
point of writing a file rather than only printing.
|
|
88
|
-
|
|
89
|
-
**Every claim carries its evidence.** A churn row names the files and the commits.
|
|
90
|
-
A revert row quotes the revert's subject line. A broken-promise row names the pact
|
|
91
|
-
id. An unevidenced signal is not reported at all.
|
|
92
|
-
|
|
93
|
-
## Where this shows up in `/orc`
|
|
94
|
-
|
|
95
|
-
**One line at preflight, and only when the area about to be touched has a recent
|
|
96
|
-
churn signal:**
|
|
97
|
-
|
|
98
|
-
```
|
|
99
|
-
after : src/payments — 2 shipped files rewritten within 30 days of run store-credit
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
**Never a line on a clean run.** A preflight that reports "nothing to report" on
|
|
103
|
-
every run is a preflight people learn to skip, and this one has to be readable the
|
|
104
|
-
one time it matters.
|
|
105
|
-
|
|
106
|
-
At ship it feeds `/orc-retro` alongside `orc budget actual`.
|
|
107
|
-
|
|
108
|
-
## Behavior trace (always on)
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
`
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
|
123
|
-
|
|
124
|
-
|
|
|
125
|
-
|
|
|
126
|
-
| A
|
|
127
|
-
| It
|
|
128
|
-
|
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
1
|
+
---
|
|
2
|
+
name: orc-aftermath
|
|
3
|
+
description: >
|
|
4
|
+
Did the thing we shipped hold up. Use for "/orc-aftermath", "did that change
|
|
5
|
+
stick", "what did we ship last month and how did it go", "which runs came back".
|
|
6
|
+
Read-only and report-only: it grades past runs from the repository's own future —
|
|
7
|
+
files rewritten soon after, a test we added deleted or skipped, the commit
|
|
8
|
+
reverted, a promise that was HOLDING now BROKEN — all from git log, ORC's traces
|
|
9
|
+
and the pact ledger. No vendor, no telemetry, no instrumentation. Churn is a
|
|
10
|
+
SIGNAL, never a verdict: it reports the signal and its strength, never "this
|
|
11
|
+
change was bad", and never a person's name.
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# ORC-AFTERMATH
|
|
15
|
+
|
|
16
|
+
The lane that **measures** — backwards. The missing half of ORC's flywheel.
|
|
17
|
+
|
|
18
|
+
`/orc-retro` measures the **process**: bands, downgrades, retries, gate bounces,
|
|
19
|
+
narration coverage. It cannot tell you whether any of it was any good. Aftermath
|
|
20
|
+
measures the **result** — and together the score→model table can finally be tuned
|
|
21
|
+
against *what stuck* instead of *what ran smoothly*.
|
|
22
|
+
|
|
23
|
+
## The insight
|
|
24
|
+
|
|
25
|
+
Everyone reaches for production telemetry. For a large class of outcomes **the
|
|
26
|
+
repository's own future is the grading signal**, and it is free:
|
|
27
|
+
|
|
28
|
+
| Signal | What it suggests | Strength |
|
|
29
|
+
|---|---|---|
|
|
30
|
+
| The commit was reverted | obvious | 3 |
|
|
31
|
+
| A test we added no longer exists | our proof was rejected | 3 |
|
|
32
|
+
| A promise anchored in this change is BROKEN | the change leaked | 3 |
|
|
33
|
+
| A test we added now contains a skip | the proof was neutralised | 2 |
|
|
34
|
+
| 3+ shipped files rewritten inside the window | the change likely missed | 2 |
|
|
35
|
+
| 1–2 shipped files rewritten | weak — normal iteration looks like this | 1 |
|
|
36
|
+
|
|
37
|
+
All of it from `git log` + the trace corpus + `.claude/orc/pact/ledger.json`.
|
|
38
|
+
|
|
39
|
+
## The rule that keeps it honest
|
|
40
|
+
|
|
41
|
+
**Churn is a signal, not a verdict.** A file being rewritten is a fact; *why* is not
|
|
42
|
+
knowable from git. Somebody may have fixed a real miss, or extended a good change,
|
|
43
|
+
or reformatted the file. The lane reports **the signal and its strength** and stops
|
|
44
|
+
there.
|
|
45
|
+
|
|
46
|
+
It never writes "this change was bad". It never names a person — `git log` knows who
|
|
47
|
+
committed and this lane never asks. It never edits anything: not the rubric, not
|
|
48
|
+
config, not code, not a run.
|
|
49
|
+
|
|
50
|
+
**A run younger than 7 days is `too recent to grade`.** That is an ANSWER, not a
|
|
51
|
+
gap, and it keeps its slot in the report. So does `history too shallow` when there
|
|
52
|
+
are no runs in the window at all.
|
|
53
|
+
|
|
54
|
+
## Nothing to configure but the window
|
|
55
|
+
|
|
56
|
+
`aftermath_window_days` (default 30) is how far back it grades. That is the only key
|
|
57
|
+
this lane reads besides `log_dir`.
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## Phases
|
|
62
|
+
|
|
63
|
+
```
|
|
64
|
+
A0 preflight (silent) log_dir · git work tree · orc pact status --json
|
|
65
|
+
A1 scope a run slug · --since Nd · everything in the window
|
|
66
|
+
A2 grade orc aftermath status --json — the CLI computes; this RENDERS
|
|
67
|
+
A3 report orc-aftermath/<period>/aftermath.md + the /orc-retro block
|
|
68
|
+
A4 close one end-of-run trace packet
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
**A0 opens the run properly.** Write `log_dir/.current` =
|
|
72
|
+
`run-aftermath-<slug>-<DDMMYY>-<HHMMSS>.txt` AND `touch the trace file` of that
|
|
73
|
+
name in the SAME step. Both, or neither. A lane the protocol declares must be a
|
|
74
|
+
lane something OPENS, or every counting tool reports it as a permanent zero.
|
|
75
|
+
|
|
76
|
+
**A2 does no grading of its own.** `orc aftermath status` is the only engine — the
|
|
77
|
+
skill never re-derives a signal, a strength or a grade. Same rule as the wiki tier.
|
|
78
|
+
|
|
79
|
+
## A3 — the report
|
|
80
|
+
|
|
81
|
+
Write `orc-aftermath/<period>/aftermath.md` at the project root, where `<period>` is
|
|
82
|
+
the window (`last-30d`) or the single run slug. Per run: **what it promised**
|
|
83
|
+
(acceptance criteria from the plan, plus any invariants it was told about) versus
|
|
84
|
+
**what the repo now shows**. Shape: `references/report.md`.
|
|
85
|
+
|
|
86
|
+
The report ends with a structured block `/orc-retro` aggregates — that is the whole
|
|
87
|
+
point of writing a file rather than only printing.
|
|
88
|
+
|
|
89
|
+
**Every claim carries its evidence.** A churn row names the files and the commits.
|
|
90
|
+
A revert row quotes the revert's subject line. A broken-promise row names the pact
|
|
91
|
+
id. An unevidenced signal is not reported at all.
|
|
92
|
+
|
|
93
|
+
## Where this shows up in `/orc`
|
|
94
|
+
|
|
95
|
+
**One line at preflight, and only when the area about to be touched has a recent
|
|
96
|
+
churn signal:**
|
|
97
|
+
|
|
98
|
+
```
|
|
99
|
+
after : src/payments — 2 shipped files rewritten within 30 days of run store-credit
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
**Never a line on a clean run.** A preflight that reports "nothing to report" on
|
|
103
|
+
every run is a preflight people learn to skip, and this one has to be readable the
|
|
104
|
+
one time it matters.
|
|
105
|
+
|
|
106
|
+
At ship it feeds `/orc-retro` alongside `orc budget actual`.
|
|
107
|
+
|
|
108
|
+
## Behavior trace (always on)
|
|
109
|
+
|
|
110
|
+
`../_shared/phases/trace.md` (`core`, at run start; `orc lane phases` names
|
|
111
|
+
the file and the layers). Lane token `aftermath`, tier **Single-dispatch** —
|
|
112
|
+
exactly ONE end-of-run packet, dispatched solo before `.current` is deleted.
|
|
113
|
+
At run start write `log_dir/.current` = `run-aftermath-<slug>-<DDMMYY>-<HHMMSS>.txt` AND
|
|
114
|
+
`touch the trace file` of that name in the SAME step.
|
|
115
|
+
Nothing else about the protocol is restated here; a phase that ends with
|
|
116
|
+
`zero new trace lines is a protocol violation`.
|
|
117
|
+
|
|
118
|
+
## How this lane fails — and the rule that prevents each
|
|
119
|
+
|
|
120
|
+
| Failure | Prevention |
|
|
121
|
+
|---|---|
|
|
122
|
+
| It reads as blame | Signals with strengths, never a verdict; no names, ever |
|
|
123
|
+
| A normal follow-up commit looks like a failure | 1–2 files is strength 1 and is labelled weak |
|
|
124
|
+
| A fresh run is graded as clean | Under 7 days is `too recent to grade`, and it says so |
|
|
125
|
+
| It edits the rubric it is measuring | Report-only. It writes one markdown file and nothing else |
|
|
126
|
+
| A signal with no evidence | Every row names its files, commits or pact ids |
|
|
127
|
+
| It needs a vendor | git log + traces + the ledger. Nothing else |
|
|
128
|
+
| Noise on every preflight | The preflight line fires ONLY on a real churn signal |
|
|
129
|
+
|
|
130
|
+
## Rules this lane always keeps
|
|
131
|
+
|
|
132
|
+
Report-only · never a verdict · never a person's name · never edit anything · every
|
|
133
|
+
signal carries its evidence · `too recent` is an answer · never compute what the CLI
|
|
134
|
+
computes.
|
|
135
|
+
|
|
136
|
+
## Config
|
|
137
|
+
|
|
138
|
+
Resolve with `orc lane config orc-aftermath --json` and obey `effective`. Never merge
|
|
139
|
+
`.claude/orc.config.yaml` yourself, and never re-derive a precedence. Exit ≠ 0 →
|
|
140
|
+
say so and use `../_shared/config-precedence.md`'s documented defaults, out
|
|
141
|
+
loud. Nothing this lane reads is contested, gated or a stop, so it owes no
|
|
142
|
+
preflight line and has no gate to honour.
|
|
143
|
+
|
|
144
|
+
## Calls
|
|
145
|
+
|
|
146
|
+
**ONE catalogue, and it is not you:** `orc lane calls orc-aftermath --json` names every
|
|
147
|
+
CLI call this lane makes, each with its exit-code contract, its cost, when to run
|
|
148
|
+
it, and what an EMPTY answer means. Never invent a spelling, never re-word an
|
|
149
|
+
exit code, and never re-derive a state word — the CLI's state words are the only
|
|
150
|
+
state words, and **an exit code is an ANSWER wherever that contract says so, not
|
|
151
|
+
a failure**. A call the answer does not name is a call this lane does not make.
|
|
152
|
+
Exit ≠ 0 from the catalogue itself → say the CLI is unavailable and name the
|
|
153
|
+
command you are about to run, out loud, before running it.
|
|
154
|
+
|
|
155
|
+
## Waiting mid-run (`/orc-wait`)
|
|
156
|
+
|
|
157
|
+
Canonical: `../_shared/wait.md`. **`a lane that waits without a hand-back` has broken this contract.**
|
|
158
|
+
Checkpoint **none** · safe point **read-only, seconds long**. Nothing here to checkpoint, so all three modes behave identically — say so rather than asking. Never begin a wait between a dispatch and its validated return, or before the smoke gate has reported.
|