docs(orchestration): stop the kernel from looping on an informational nextAction

For a healthy in-progress worker the projection returns nextAction
{kind:'inspect', argv:['orchestration','worker-show','--dispatch',<same id>]}
with attention.requiresAction false, and the kernel told the coordinator to
follow the literal argv. Raises the kernel line budget 200 -> 202: the
paragraph had zero slack and no existing guidance was worth cutting.
This commit is contained in:
Jinwoo-H
2026-09-04 15:30:09 -04:00
parent a4f416f5b4
commit 8e28b7de61
3 changed files with 10 additions and 4 deletions
@@ -77,7 +77,8 @@ describe('orchestration kernel', () => {
'## Conditional references'
]
expect(kernel.split('\n').length).toBeLessThanOrEqual(200)
// Why: 202 is the budget after the anti-loop nextAction rule; the kernel is always in context.
expect(kernel.split('\n').length).toBeLessThanOrEqual(202)
for (let index = 1; index < headings.length; index += 1) {
expect(kernel.indexOf(headings[index])).toBeGreaterThan(kernel.indexOf(headings[index - 1]))
}
@@ -161,6 +162,9 @@ describe('orchestration kernel', () => {
expect(kernel).toContain(
'`projection.attention` categories, `projection.attention.requiresAction`, and literal `projection.nextAction` argv'
)
expect(kernel).toContain(
'An `inspect` `nextAction` on a `live` row with `attention.requiresAction` false is informational, not a command to re-run: keep waiting with `check --wait`'
)
expect(kernel).toContain('choose `worker-stop` or `worker-abandon`')
})
+3 -1
View File
@@ -137,7 +137,9 @@ editor from timeout, idle state, heartbeat, relay loss, or missing client alone.
After three consecutive empty waits, stop waiting blindly and enumerate with
`ORCA orchestration worker-list --json`, acting on each row's
`projection.attention` categories, `projection.attention.requiresAction`, and
literal `projection.nextAction` argv. Leave the wait only on positive proof the
literal `projection.nextAction` argv. An `inspect` `nextAction` on a `live` row
with `attention.requiresAction` false is informational, not a command to re-run:
keep waiting with `check --wait`. Leave the wait only on positive proof the
agent stopped: `exited` liveness, the worker's own observation of process exit,
or a transcript whose final agent turn sent no `worker_done`. Then load
`references/recovery-and-cleanup.md` and choose `worker-stop` or
File diff suppressed because one or more lines are too long