@azure-id/orc 1.8.1 → 1.9.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 +386 -0
- package/README-id.md +110 -73
- package/README.md +96 -33
- package/bin/cli.js +45520 -44867
- package/bin/graph-extract.js +2409 -120
- package/bin/graph-gain.js +404 -0
- package/bin/graph-map.js +232 -0
- package/bin/graph-notes.js +49 -8
- package/bin/graph-query.js +1770 -808
- package/bin/graph-resolve.js +93 -16
- package/bin/graph-shard.js +325 -0
- package/bin/graph.js +658 -605
- package/bin/verify-contracts.js +297 -56
- package/bin/verify-package.js +29 -1
- package/bin/webui/api.js +6 -0
- package/bin/webui/fixtures/index.js +6 -1
- package/bin/webui/fixtures/knowledge.js +41 -1
- package/bin/webui/fixtures/stats.js +107 -104
- package/bin/webui/i18n/en/knowledge.json +16 -1
- package/bin/webui/i18n/id/knowledge.json +16 -1
- package/bin/webui/js/panels/knowledge.js +68 -3
- package/mock-run/orc-quick.md +141 -113
- package/package.json +1 -1
- package/templates/agents/MODEL-MAPPING.md +15 -5
- package/templates/agents/orc-executor-haiku-4-5.md +25 -13
- package/templates/agents/orc-executor-opus-4-7-high.md +25 -13
- package/templates/agents/orc-executor-opus-4-7-med.md +25 -13
- package/templates/agents/orc-executor-opus-4-8-high.md +25 -13
- package/templates/agents/orc-executor-opus-5-high.md +25 -13
- package/templates/agents/orc-executor-opus-5-low.md +25 -13
- package/templates/agents/orc-executor-opus-5-med.md +25 -13
- package/templates/agents/orc-executor-sonnet-4-6-high.md +25 -13
- package/templates/agents/orc-executor-sonnet-4-6-med.md +25 -13
- package/templates/agents/orc-executor-sonnet-5-high.md +25 -13
- package/templates/agents/orc-graph-noter-sonnet-4-6-med.md +15 -12
- package/templates/agents/orc-planner-mini-opus-5-med.md +75 -69
- package/templates/agents/orc-planner-mini-sonnet-5-high.md +73 -67
- package/templates/agents/orc-recon-opus-5-low.md +99 -0
- package/templates/agents/orc-recon-sonnet-4-6-med.md +99 -0
- package/templates/commands/orc-mini.md +10 -12
- package/templates/commands/orc-quick.md +20 -33
- package/templates/hooks/README.md +13 -3
- package/templates/hooks/orc-graph-hook.js +148 -13
- package/templates/hooks/orc-trace.js +476 -471
- package/templates/skills/_shared/code-graph.md +148 -20
- package/templates/skills/_shared/phases/execution.md +13 -11
- package/templates/skills/_shared/phases/planning.md +8 -1
- package/templates/skills/_shared/phases/rules.md +172 -159
- package/templates/skills/_shared/phases/ship.md +5 -1
- package/templates/skills/_shared/phases/trace.md +4 -1
- package/templates/skills/_shared/phases/wiki-consult.md +10 -6
- package/templates/skills/_shared/read-ladder.md +10 -2
- package/templates/skills/_shared/return-validation.md +22 -0
- package/templates/skills/context-combiner/SKILL.md +13 -13
- package/templates/skills/orc/SKILL.md +1 -1
- package/templates/skills/orc/subskills/orc-execution/core.md +171 -159
- package/templates/skills/orc-analyze/SKILL.md +13 -13
- package/templates/skills/orc-diy/references/flow-schema.md +1 -1
- package/templates/skills/orc-mini/SKILL.md +148 -136
- package/templates/skills/orc-mini/examples/mini-run-mock.md +64 -50
- package/templates/skills/orc-mini/references/complexity.md +105 -0
- package/templates/skills/orc-quick/README.md +495 -423
- package/templates/skills/orc-quick/SKILL.md +157 -211
- package/templates/skills/orc-quick/references/context-doc.md +145 -114
- package/templates/skills/orc-quick/references/defect.md +101 -0
- package/templates/skills/orc-quick/references/dispatch-gate.md +55 -24
- package/templates/skills/orc-quick/references/gh-mode.md +148 -127
- package/templates/skills/orc-quick/references/look.md +107 -0
- package/templates/skills/orc-wiki/references/staleness.md +1 -1
|
@@ -1,159 +1,171 @@
|
|
|
1
|
-
# orc-execution — Core (mode-neutral)
|
|
2
|
-
|
|
3
|
-
A procedure specification: inputs, steps, outputs. Executed by a spawned
|
|
4
|
-
subagent; the orchestrator never runs this itself.
|
|
5
|
-
|
|
6
|
-
## Input slice (you receive exactly this; you cannot pull more)
|
|
7
|
-
|
|
8
|
-
- task_id, description, spec_ref
|
|
9
|
-
- declared_files[] — the files you are expected to touch (incl. tests)
|
|
10
|
-
- acceptance[] — this task's sliced definition-of-done lines (from the
|
|
11
|
-
plan); self-check your diff against them before returning
|
|
12
|
-
- constraints[] — HARD RULES from the intent-spec, plus the task's
|
|
13
|
-
`spec_invariants` (analyst do-not-build invariants)
|
|
14
|
-
appended verbatim at slice assembly; never violate
|
|
15
|
-
- pattern — the resolved code-pattern for this task's language, or
|
|
16
|
-
null. When present: {conventions[] you MUST MATCH,
|
|
17
|
-
invariants[] that are BLOCKING, validation_gate[]
|
|
18
|
-
(enforceable acceptance checks you must SATISFY —
|
|
19
|
-
advisory lines are marked and informational),
|
|
20
|
-
pattern_version}. Agnostic
|
|
21
|
-
tasks carry invariants only (no conventions, no gate).
|
|
22
|
-
- wiki — project-wiki grounding for this task, or absent:
|
|
23
|
-
page CONTENT (full/mini) or page PATHS to read first
|
|
24
|
-
(fast), plus the freshness tier in force. Precedence
|
|
25
|
-
is always `code > fresh wiki > stale wiki (hints) >
|
|
26
|
-
model priors` — on any wiki-vs-code conflict the code
|
|
27
|
-
wins. You MUST return `wiki_used` naming the pages
|
|
28
|
-
you actually read, or `none`; see the return
|
|
29
|
-
contract. Absent on a task the orchestrator grounded
|
|
30
|
-
without the wiki.
|
|
31
|
-
- crosslink — the cross-repo boundary contract for a call site in
|
|
32
|
-
this task, or null. Present ONLY when a declared file
|
|
33
|
-
touches a boundary the orchestrator resolved from
|
|
34
|
-
`.claude/orc/crosslink/needs.json` + cache. It is
|
|
35
|
-
ADVISORY hints ("cross-repo fresh/aging/stale wiki")
|
|
36
|
-
labeled with an effective tier — MATCH the field
|
|
37
|
-
names/types/errors it states, but it never overrides
|
|
38
|
-
local code and there is nothing to attest (no return
|
|
39
|
-
field). Absent on any task with no boundary.
|
|
40
|
-
- gotchas — 0–3 repair-memory entries whose `scope` glob matches
|
|
41
|
-
this task's declared_files, or absent. Each is one
|
|
42
|
-
failure THIS PROJECT already hit and fixed
|
|
43
|
-
{trigger, symptom, cause, fix}. Read them as a
|
|
44
|
-
"don't re-pay for this" list, not as requirements:
|
|
45
|
-
they never override `acceptance[]`, `constraints[]`
|
|
46
|
-
or the pattern's invariants. Absent = no match, which
|
|
47
|
-
is the normal case — never treat absence as a signal.
|
|
48
|
-
Canonical: `.claude/skills/_shared/gotchas.md`.
|
|
49
|
-
- tdd_spec — this task's plan-time acceptance tests, or null
|
|
50
|
-
(TDD off, or every entry scoped out as
|
|
51
|
-
covered-by-existing / no-behavior / no-runner —
|
|
52
|
-
null is NOT "untested"). Present = the failing tests
|
|
53
|
-
a PAIRED TDD task already materialized, which your
|
|
54
|
-
work must
|
|
55
|
-
turn GREEN, plus `tdd_loop_max` (the repair cap).
|
|
56
|
-
Never edit a TDD test to make it pass — a test
|
|
57
|
-
that looks wrong is a spec bug: return it, don't
|
|
58
|
-
fix it.
|
|
59
|
-
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
5
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
-
|
|
119
|
-
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
-
|
|
131
|
-
|
|
132
|
-
-
|
|
133
|
-
|
|
134
|
-
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
-
|
|
138
|
-
|
|
139
|
-
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
`
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
1
|
+
# orc-execution — Core (mode-neutral)
|
|
2
|
+
|
|
3
|
+
A procedure specification: inputs, steps, outputs. Executed by a spawned
|
|
4
|
+
subagent; the orchestrator never runs this itself.
|
|
5
|
+
|
|
6
|
+
## Input slice (you receive exactly this; you cannot pull more)
|
|
7
|
+
|
|
8
|
+
- task_id, description, spec_ref
|
|
9
|
+
- declared_files[] — the files you are expected to touch (incl. tests)
|
|
10
|
+
- acceptance[] — this task's sliced definition-of-done lines (from the
|
|
11
|
+
plan); self-check your diff against them before returning
|
|
12
|
+
- constraints[] — HARD RULES from the intent-spec, plus the task's
|
|
13
|
+
`spec_invariants` (analyst do-not-build invariants)
|
|
14
|
+
appended verbatim at slice assembly; never violate
|
|
15
|
+
- pattern — the resolved code-pattern for this task's language, or
|
|
16
|
+
null. When present: {conventions[] you MUST MATCH,
|
|
17
|
+
invariants[] that are BLOCKING, validation_gate[]
|
|
18
|
+
(enforceable acceptance checks you must SATISFY —
|
|
19
|
+
advisory lines are marked and informational),
|
|
20
|
+
pattern_version}. Agnostic
|
|
21
|
+
tasks carry invariants only (no conventions, no gate).
|
|
22
|
+
- wiki — project-wiki grounding for this task, or absent:
|
|
23
|
+
page CONTENT (full/mini) or page PATHS to read first
|
|
24
|
+
(fast), plus the freshness tier in force. Precedence
|
|
25
|
+
is always `code > fresh wiki > stale wiki (hints) >
|
|
26
|
+
model priors` — on any wiki-vs-code conflict the code
|
|
27
|
+
wins. You MUST return `wiki_used` naming the pages
|
|
28
|
+
you actually read, or `none`; see the return
|
|
29
|
+
contract. Absent on a task the orchestrator grounded
|
|
30
|
+
without the wiki.
|
|
31
|
+
- crosslink — the cross-repo boundary contract for a call site in
|
|
32
|
+
this task, or null. Present ONLY when a declared file
|
|
33
|
+
touches a boundary the orchestrator resolved from
|
|
34
|
+
`.claude/orc/crosslink/needs.json` + cache. It is
|
|
35
|
+
ADVISORY hints ("cross-repo fresh/aging/stale wiki")
|
|
36
|
+
labeled with an effective tier — MATCH the field
|
|
37
|
+
names/types/errors it states, but it never overrides
|
|
38
|
+
local code and there is nothing to attest (no return
|
|
39
|
+
field). Absent on any task with no boundary.
|
|
40
|
+
- gotchas — 0–3 repair-memory entries whose `scope` glob matches
|
|
41
|
+
this task's declared_files, or absent. Each is one
|
|
42
|
+
failure THIS PROJECT already hit and fixed
|
|
43
|
+
{trigger, symptom, cause, fix}. Read them as a
|
|
44
|
+
"don't re-pay for this" list, not as requirements:
|
|
45
|
+
they never override `acceptance[]`, `constraints[]`
|
|
46
|
+
or the pattern's invariants. Absent = no match, which
|
|
47
|
+
is the normal case — never treat absence as a signal.
|
|
48
|
+
Canonical: `.claude/skills/_shared/gotchas.md`.
|
|
49
|
+
- tdd_spec — this task's plan-time acceptance tests, or null
|
|
50
|
+
(TDD off, or every entry scoped out as
|
|
51
|
+
covered-by-existing / no-behavior / no-runner —
|
|
52
|
+
null is NOT "untested"). Present = the failing tests
|
|
53
|
+
a PAIRED TDD task already materialized, which your
|
|
54
|
+
work must
|
|
55
|
+
turn GREEN, plus `tdd_loop_max` (the repair cap).
|
|
56
|
+
Never edit a TDD test to make it pass — a test
|
|
57
|
+
that looks wrong is a spec bug: return it, don't
|
|
58
|
+
fix it.
|
|
59
|
+
- repro — {required: true, kind: test | command, hint} on a
|
|
60
|
+
DEFECT task, else absent. Present = show the bug is
|
|
61
|
+
real BEFORE fixing it: `test` when the project has a
|
|
62
|
+
runner, `command` when it has none. Absent = this is
|
|
63
|
+
not a defect report; never invent a reproduction
|
|
64
|
+
- house_rules — the standing behavioral card (injected literally,
|
|
65
|
+
never a pointer): surgical changes, simplicity-first,
|
|
66
|
+
no unrequested scope, boring-solution preference
|
|
67
|
+
- rules_card — the anti-slop card from `orc rules slice`, injected
|
|
68
|
+
literally directly under `house_rules`: the project's
|
|
69
|
+
rules, then ORC's. A project rule beats an ORC rule;
|
|
70
|
+
`house_rules` beat both on code and behaviour only.
|
|
71
|
+
Carried → return `rules_applied[]`,
|
|
72
|
+
`rules_conflicts[]`, `rules_overridden[]`
|
|
73
|
+
(`../../../_shared/return-validation.md` §5c)
|
|
74
|
+
- log_digest — compacted decisions from prior waves; absorb before working
|
|
75
|
+
- worktree_path — null unless worktrees mode
|
|
76
|
+
- model, effort — informational (already applied by the caller)
|
|
77
|
+
|
|
78
|
+
## Procedure
|
|
79
|
+
|
|
80
|
+
1. Absorb log_digest — prior DECISIONs/INTERFACEs/ANSWERs bind you.
|
|
81
|
+
2. Read spec_ref if provided.
|
|
82
|
+
2a. **Read on the ladder** (`../../../_shared/read-ladder.md`): locate
|
|
83
|
+
(Grep/Glob) → outline → the ±40 lines around the anchor → full. Stop at the
|
|
84
|
+
step that answers the question; two full reads with no answer is
|
|
85
|
+
`needs_context`, not a third. TWO EXCEPTIONS — every `declared_files` path is
|
|
86
|
+
a FULL read before you edit it (an `old_string` rebuilt from an outline is a
|
|
87
|
+
corruption bug), and build/test output is always read whole.
|
|
88
|
+
3. Perform the task within `worktree_path` (or the current tree if null).
|
|
89
|
+
Obey every `house_rules` line, then every `rules_card` rule (two rules that
|
|
90
|
+
disagree go in `rules_conflicts[]`, never a silent choice). Follow every constraint. If `pattern` is present, MATCH its conventions,
|
|
91
|
+
satisfy every BLOCKING invariant, and satisfy every enforceable
|
|
92
|
+
`validation_gate[]` line (re-read your diff to confirm before returning;
|
|
93
|
+
advisory gate lines are informational — never add tooling to meet one);
|
|
94
|
+
if `pattern` is null but carries invariants (agnostic), still satisfy them and
|
|
95
|
+
imitate the neighboring files you read. Create/update tests for what you build.
|
|
96
|
+
**UI task + a `frontend-design` skill present in the environment** (check
|
|
97
|
+
`.claude/skills/frontend-design/` or the plugin dir): read its SKILL.md and
|
|
98
|
+
apply its guidance to the UI work — skip silently when absent.
|
|
99
|
+
4. **Run the proof, capture the evidence:** if the project has a runnable build
|
|
100
|
+
or test setup, run it for your changes and capture {command, exit_code, the
|
|
101
|
+
last ~5 output lines} — QUOTED VERBATIM, never paraphrased, never predicted.
|
|
102
|
+
No runner → set `no_runner_detected: true` instead. Never claim green you
|
|
103
|
+
did not observe. With a `tdd_spec`: run ITS tests too — implement → test →
|
|
104
|
+
repair up to `tdd_loop_max` iterations; still red at the cap → stop and
|
|
105
|
+
return `tdd_state: red` honestly (the failing tests listed in unmet[]).
|
|
106
|
+
5. **Self-check before returning:** re-read your diff against every
|
|
107
|
+
`acceptance[]` line and every `constraints[]` rule. Anything you could not
|
|
108
|
+
satisfy goes in `unmet[]` — and a non-empty `unmet[]` means status `partial`
|
|
109
|
+
(or `failed`), never `done`. An honest partial beats a false done.
|
|
110
|
+
6. **Milestone pings:** after each declared file completed or logical subtask
|
|
111
|
+
done, emit a brief progress ping: {percent, files_written[], notes}. These
|
|
112
|
+
bound what a mid-wave stop can save — do not skip them.
|
|
113
|
+
7. Stay within your task. Discovering needed context outside your slice →
|
|
114
|
+
emit the needs_context return (below). Do NOT fetch it yourself.
|
|
115
|
+
|
|
116
|
+
## Return contract (emit EXACTLY this structure; the caller validates)
|
|
117
|
+
|
|
118
|
+
- task_id
|
|
119
|
+
- actual_model — the model id quoted VERBATIM from your system prompt
|
|
120
|
+
("The exact model ID is …"); NEVER inferred from priors;
|
|
121
|
+
`unknown` if no such line exists. Lets the caller catch
|
|
122
|
+
a silent tier downgrade (claimed-vs-actual model check)
|
|
123
|
+
- actual_effort — the value of $CLAUDE_EFFORT (read via Bash at start)
|
|
124
|
+
- status: done | failed | partial | needs_context
|
|
125
|
+
- actual_files[] — every file you truly touched (audited vs declared)
|
|
126
|
+
- evidence — {command, exit_code, tail} of the build/test you ran,
|
|
127
|
+
quoted VERBATIM (like actual_model — never invented).
|
|
128
|
+
REQUIRED when status=done and the project has a
|
|
129
|
+
runnable build/test; null when it has none
|
|
130
|
+
- no_runner_detected — true ONLY when the project exposes no runnable
|
|
131
|
+
build/test (explains a null evidence); else absent
|
|
132
|
+
- unmet[] — acceptance[]/constraints[] lines you could NOT
|
|
133
|
+
satisfy. MUST be empty when status=done — a
|
|
134
|
+
non-empty unmet[] forces partial/failed
|
|
135
|
+
- log_entries[] — cross-cutting decisions for the decision log,
|
|
136
|
+
tagged DECISION | CONSTRAINT | INTERFACE
|
|
137
|
+
- failure_reason — REQUIRED when status=failed (the why); else null
|
|
138
|
+
- progress — {percent, files_written[], notes} when partial; else null
|
|
139
|
+
- context_request — REQUIRED when status=needs_context: what you need
|
|
140
|
+
and why (e.g. "needs T1's type enum interface");
|
|
141
|
+
else null
|
|
142
|
+
- pattern_version — the `pattern.pattern_version` you applied; null if no
|
|
143
|
+
pattern was supplied
|
|
144
|
+
- invariants_checked — true ONLY if you verified every BLOCKING invariant in
|
|
145
|
+
`pattern` against your diff; false/null if no invariants
|
|
146
|
+
were supplied. A pattern task returning false/absent here
|
|
147
|
+
is a malformed return
|
|
148
|
+
- tdd_state — green | red | null. REQUIRED when the slice carried a
|
|
149
|
+
`tdd_spec`: green ONLY after its tests pass (run quoted
|
|
150
|
+
in `evidence`); red = cap hit/unresolved (failing tests
|
|
151
|
+
in unmet[]); null only without a tdd_spec. status=done
|
|
152
|
+
with red is malformed
|
|
153
|
+
- repro — REQUIRED when the slice carried
|
|
154
|
+
`repro.required: true`; else absent. {command, before:
|
|
155
|
+
{exit_code, tail}, after: {exit_code, tail}} quoted
|
|
156
|
+
VERBATIM, or `none` + a one-line reason. status=done
|
|
157
|
+
with before.exit_code 0 (never red) or a non-zero
|
|
158
|
+
after.exit_code (still red) is malformed. Canonical:
|
|
159
|
+
`.claude/skills/_shared/return-validation.md` §5d
|
|
160
|
+
- gotcha_recorded — REQUIRED when this return CLOSES a repair loop (you
|
|
161
|
+
drove a tdd_spec test red → green): the entry body
|
|
162
|
+
{trigger, symptom, cause, fix, scope}, or `none` + a
|
|
163
|
+
one-line reason. Absent on a repair-closing return is
|
|
164
|
+
malformed; not required when nothing was repaired. A
|
|
165
|
+
loop that hit `tdd_loop_max` and STOPPED returns
|
|
166
|
+
`none` — an unsolved failure is not a gotcha. You
|
|
167
|
+
RETURN it; the caller writes the file
|
|
168
|
+
|
|
169
|
+
Malformed returns are treated as failure by the caller. needs_context is
|
|
170
|
+
capped at 2 per task — a third means the slice or plan is wrong and escalates
|
|
171
|
+
to the user.
|
|
@@ -244,16 +244,16 @@ exit code, and never re-derive a state word — the CLI's state words are the on
|
|
|
244
244
|
state words, and **an exit code is an ANSWER wherever that contract says so, not
|
|
245
245
|
a failure**. A call the answer does not name is a call this lane does not make.
|
|
246
246
|
Exit ≠ 0 from the catalogue itself → say the CLI is unavailable and name the
|
|
247
|
-
command you are about to run, out loud, before running it.
|
|
248
|
-
|
|
249
|
-
## Rules — the anti-slop card (`../_shared/phases/rules.md`)
|
|
250
|
-
|
|
251
|
-
`orc rules slice --lane orc-analyze --json` is the ONLY assembler; never build
|
|
252
|
-
the card here. It rides under the house rules and above the task —
|
|
253
|
-
**house rules > your project's rules > ORC's own packs** — and its `line` prints
|
|
254
|
-
VERBATIM at preflight. Returns gain `rules_applied[]`, `rules_conflicts[]` (a gap,
|
|
255
|
-
never a silent choice) and `rules_overridden[]`.
|
|
256
|
-
## Waiting mid-run (`/orc-wait`)
|
|
257
|
-
|
|
258
|
-
Canonical: `../_shared/wait.md`. **`a lane that waits without a hand-back` has broken this contract.**
|
|
259
|
-
Checkpoint **full** · safe point **after the analyst returns**. `soft` FORCES that checkpoint and does NOT stop if the write fails; `hard` skips it and can lose an in-flight return. Never begin a wait between a dispatch and its validated return, or before the smoke gate has reported.
|
|
247
|
+
command you are about to run, out loud, before running it.
|
|
248
|
+
|
|
249
|
+
## Rules — the anti-slop card (`../_shared/phases/rules.md`)
|
|
250
|
+
|
|
251
|
+
`orc rules slice --lane orc-analyze --json` is the ONLY assembler; never build
|
|
252
|
+
the card here. It rides under the house rules and above the task —
|
|
253
|
+
**house rules > your project's rules > ORC's own packs** — and its `line` prints
|
|
254
|
+
VERBATIM at preflight. Returns gain `rules_applied[]`, `rules_conflicts[]` (a gap,
|
|
255
|
+
never a silent choice) and `rules_overridden[]`.
|
|
256
|
+
## Waiting mid-run (`/orc-wait`)
|
|
257
|
+
|
|
258
|
+
Canonical: `../_shared/wait.md`. **`a lane that waits without a hand-back` has broken this contract.**
|
|
259
|
+
Checkpoint **full** · safe point **after the analyst returns**. `soft` FORCES that checkpoint and does NOT stop if the write fails; `hard` skips it and can lose an in-flight return. Never begin a wait between a dispatch and its validated return, or before the smoke gate has reported.
|
|
@@ -27,7 +27,7 @@ selector.
|
|
|
27
27
|
| `mock_example` | `ask` / `on` / `off` | Post-verify mocked example + drift recovery (`mock-examples/<slug>/`, never committed) |
|
|
28
28
|
| `tdd` | `on` / `off` | TDD-anchored planning: plan-time `tdd_spec` (scoped by `disposition`), paired TDD tasks for the red proof, TDD gate in the verify slot |
|
|
29
29
|
| `gotchas` | `on` / `off` | Repair memory: inject scope-matching gotchas into slices, record one when a repair loop goes red → green (`_shared/gotchas.md`) |
|
|
30
|
-
| `code_graph` | `on` (default) / `off` | Code-graph cache steps: `orc graph status --heal` at preflight, `orc graph ctx` cards in slices, `orc graph impact` + `orc graph cochange` at planning, `orc graph changes` at review, `orc graph coverage` on demand, `orc graph update` after every wave and at ship, one `orc graph notes` batch per wave when notes are on. `on` compiles them in and the global `code_graph` key decides at run time (every call carries `--if-enabled`); `off` removes them (`_shared/code-graph.md`) |
|
|
30
|
+
| `code_graph` | `on` (default) / `off` | Code-graph cache steps: `orc graph status --heal` at preflight, `orc graph ctx` cards in slices, `orc graph map` then `orc graph impact` + `orc graph cochange` at planning, `orc graph changes` at review, `orc graph coverage` on demand, `orc graph update` after every wave and at ship, one `orc graph notes` batch per wave when notes are on. `on` compiles them in and the global `code_graph` key decides at run time (every call carries `--if-enabled`); `off` removes them (`_shared/code-graph.md`) |
|
|
31
31
|
| `wiki_gate` | `notice` / `off` / `hard` | Wiki freshness handling at preflight |
|
|
32
32
|
| `post_ship_wiki_ask` | `on` / `off` | Post-ship wiki refresh offer on big runs |
|
|
33
33
|
| `summary` | `full` / `off` / `short` | Summary depth |
|