From 61a98e767d7c45fb00b17f969c6fb42d2cbaca48 Mon Sep 17 00:00:00 2001 From: godosa Date: Wed, 7 Oct 2026 16:57:32 +0200 Subject: orch: one stuck task parks itself, lane keeps picking Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01JEAjUkQRrCYX5MZhWxdtj2 --- shared/skills/wf-orchestrate/SKILL.md | 4 +++- shared/skills/wf-pilot/SKILL.md | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) (limited to 'shared') diff --git a/shared/skills/wf-orchestrate/SKILL.md b/shared/skills/wf-orchestrate/SKILL.md index 53a4785..c5b3d86 100644 --- a/shared/skills/wf-orchestrate/SKILL.md +++ b/shared/skills/wf-orchestrate/SKILL.md @@ -25,7 +25,9 @@ command: /projects/public/workflow/docs/orchestrator.md — read it only when a 3. Report (4 lines) → `wf orch post --result "" --commit --agent --duration ` = post-check (done: archive line, branch gone, worktree clean + in master, else it runs `wf merge`; `wf check`), leftover bookkeeping commit otherwise, `out/wf-orch.log` + `out/wf-cost.log` lines, then the lane's next pick (spawn it) or `stop lane …`. -4. `stop lane` → tell the owner (awaiting/handback/post-check-red/wip). No report (crash) → it prints the one recovery pick +4. `alert: …` (awaiting/handback/post-check-red: post parked only that task, blocked or `Sessions: owner`) + → tell the owner, keep spawning the lane's next pick; never wait on the owner while tasks are pickable. + `stop lane` (none/stop file/push-failed/wip) → tell the owner. No report (crash) → it prints the one recovery pick (`wf orch pick --id --recovery ""`), then stop. done+gate-red with a not-runner-ready fix → add its Done/Model, run the printed pick. Cloud lane (project `cloud = true`): `wf orch pick cloud` → sends the first fitting task (`wf cloud send`), no agent to spawn; diff --git a/shared/skills/wf-pilot/SKILL.md b/shared/skills/wf-pilot/SKILL.md index 1f01f2b..86a207b 100644 --- a/shared/skills/wf-pilot/SKILL.md +++ b/shared/skills/wf-pilot/SKILL.md @@ -21,7 +21,7 @@ K = `--batch` (4); deadline = now + `--for` (8h); lanes = `--lanes` or all. `wf `wf res wait --timeout `; end the turn. `fit: 0 of K …; nothing started` → stop (step 6, why: deadline). Exit 3 (busy) → background Bash `sleep 600`, then retry. 2. Wait exit → `wf batch --status` (newest summary) → one line to the owner and `out/wf-orch.log`: ` pilot batch rc= done= stopped= added=`. No task bodies, no logs. - A lane the batch stopped (handback/awaiting) is not relaunched in the next batch (`--lanes` without it) until the task/fix that stopped it is done, or the owner says so. + A handback/awaiting blocks only its task (parked by `wf orch post`, alert); its lane stays in the next batch while it has pickable tasks. Never wait on the owner while tasks are pickable. 3. Failure (rc≠0, or no new summary file) → retry once; second failure → stop (step 6). Memory: `wf res` throttled warning on a running batch → never kill it (workers mid-task); log it (` pilot batch throttled`); next batch `--mem` = 1.5 × last (cap per `wf res free`). Batch oom-killed → re-run the same N with 1.5 × `--mem`. -- cgit