From 5a9de1bc4c29c05aac3fe475fa83a5eacc01ab4d Mon Sep 17 00:00:00 2001 From: Codeman maintainer Date: Sun, 8 Nov 2026 08:24:14 +0100 Subject: [PATCH] fix(skill): name sendmark's workers by class, not a partial mode list sendmark's comment and verbs.md 5.5 listed six external modes by name, and test/agent-skill-mode-lists.test.ts refuses any partial list of them (the one a ninth CLI would silently miss). Both now say what the class is: a hook-less claude, a worker on the local model, and every external agent mode but deepseek. Co-Authored-By: Claude Opus 5.5 --- plugins/codeman/skills/codeman/SKILL.md | 4 ++-- plugins/codeman/skills/codeman/preamble.sh | 4 ++-- plugins/codeman/skills/codeman/reference/verbs.md | 2 +- skills/codeman/SKILL.md | 4 ++-- skills/codeman/preamble.sh | 4 ++-- skills/codeman/reference/verbs.md | 2 +- 6 files changed, 10 insertions(+), 10 deletions(-) diff --git a/plugins/codeman/skills/codeman/SKILL.md b/plugins/codeman/skills/codeman/SKILL.md index 8e16527f..014be53a 100644 --- a/plugins/codeman/skills/codeman/SKILL.md +++ b/plugins/codeman/skills/codeman/SKILL.md @@ -557,8 +557,8 @@ sendwait() { printf '%s\n' "$r" } # sendmark [timeoutSec] -> one JSON line, for an AGENT worker with no -# end-of-turn signal: a `local` worker whose agent is not claude, and opencode, gemini, pi, -# grok, omp, copilot or a hook-less claude (a shell worker takes §5.5's echo form instead): +# end-of-turn signal: a `local` worker whose agent is not claude, a hook-less claude, and +# every external agent mode but deepseek (a shell worker takes §5.5's echo form instead): # {"token":…,"delivered":true,"matched":true,"answerFile":"","answer":"",…} # rc 0: the marker printed and the answer file was read. 2: no marker within the timeout # (default 600 s; the worker may still be working, so nothing is deleted). 3: the worker's diff --git a/plugins/codeman/skills/codeman/preamble.sh b/plugins/codeman/skills/codeman/preamble.sh index c71a1606..7901e617 100644 --- a/plugins/codeman/skills/codeman/preamble.sh +++ b/plugins/codeman/skills/codeman/preamble.sh @@ -419,8 +419,8 @@ sendwait() { printf '%s\n' "$r" } # sendmark [timeoutSec] -> one JSON line, for an AGENT worker with no -# end-of-turn signal: a `local` worker whose agent is not claude, and opencode, gemini, pi, -# grok, omp, copilot or a hook-less claude (a shell worker takes §5.5's echo form instead): +# end-of-turn signal: a `local` worker whose agent is not claude, a hook-less claude, and +# every external agent mode but deepseek (a shell worker takes §5.5's echo form instead): # {"token":…,"delivered":true,"matched":true,"answerFile":"","answer":"",…} # rc 0: the marker printed and the answer file was read. 2: no marker within the timeout # (default 600 s; the worker may still be working, so nothing is deleted). 3: the worker's diff --git a/plugins/codeman/skills/codeman/reference/verbs.md b/plugins/codeman/skills/codeman/reference/verbs.md index 3a18a70d..07f442c0 100644 --- a/plugins/codeman/skills/codeman/reference/verbs.md +++ b/plugins/codeman/skills/codeman/reference/verbs.md @@ -485,7 +485,7 @@ snippet carries the exit code back to you. For a **claude** worker with no hooks, ask for the marker in halves in the prompt itself ("print the word WORKDONE immediately followed by `_`") for the same reason, and match the joined token. For any **agent** worker without `stop` (a hook-less -claude, opencode, gemini, pi, grok, omp, copilot, a worker on the local model), the +claude, a worker on the local model, every external agent mode but deepseek), the preamble's `sendmark ""` is exactly that in one call, and also asks for the answer in a file it reads back: [§5.16](#516-a-worker-on-the-local-model). ⚠️ Against a TUI, match a single space-free token: a full-screen TUI positions text with cursor movements rather than literal spaces, so diff --git a/skills/codeman/SKILL.md b/skills/codeman/SKILL.md index 8e16527f..014be53a 100644 --- a/skills/codeman/SKILL.md +++ b/skills/codeman/SKILL.md @@ -557,8 +557,8 @@ sendwait() { printf '%s\n' "$r" } # sendmark [timeoutSec] -> one JSON line, for an AGENT worker with no -# end-of-turn signal: a `local` worker whose agent is not claude, and opencode, gemini, pi, -# grok, omp, copilot or a hook-less claude (a shell worker takes §5.5's echo form instead): +# end-of-turn signal: a `local` worker whose agent is not claude, a hook-less claude, and +# every external agent mode but deepseek (a shell worker takes §5.5's echo form instead): # {"token":…,"delivered":true,"matched":true,"answerFile":"","answer":"",…} # rc 0: the marker printed and the answer file was read. 2: no marker within the timeout # (default 600 s; the worker may still be working, so nothing is deleted). 3: the worker's diff --git a/skills/codeman/preamble.sh b/skills/codeman/preamble.sh index c71a1606..7901e617 100644 --- a/skills/codeman/preamble.sh +++ b/skills/codeman/preamble.sh @@ -419,8 +419,8 @@ sendwait() { printf '%s\n' "$r" } # sendmark [timeoutSec] -> one JSON line, for an AGENT worker with no -# end-of-turn signal: a `local` worker whose agent is not claude, and opencode, gemini, pi, -# grok, omp, copilot or a hook-less claude (a shell worker takes §5.5's echo form instead): +# end-of-turn signal: a `local` worker whose agent is not claude, a hook-less claude, and +# every external agent mode but deepseek (a shell worker takes §5.5's echo form instead): # {"token":…,"delivered":true,"matched":true,"answerFile":"","answer":"",…} # rc 0: the marker printed and the answer file was read. 2: no marker within the timeout # (default 600 s; the worker may still be working, so nothing is deleted). 3: the worker's diff --git a/skills/codeman/reference/verbs.md b/skills/codeman/reference/verbs.md index 3a18a70d..07f442c0 100644 --- a/skills/codeman/reference/verbs.md +++ b/skills/codeman/reference/verbs.md @@ -485,7 +485,7 @@ snippet carries the exit code back to you. For a **claude** worker with no hooks, ask for the marker in halves in the prompt itself ("print the word WORKDONE immediately followed by `_`") for the same reason, and match the joined token. For any **agent** worker without `stop` (a hook-less -claude, opencode, gemini, pi, grok, omp, copilot, a worker on the local model), the +claude, a worker on the local model, every external agent mode but deepseek), the preamble's `sendmark ""` is exactly that in one call, and also asks for the answer in a file it reads back: [§5.16](#516-a-worker-on-the-local-model). ⚠️ Against a TUI, match a single space-free token: a full-screen TUI positions text with cursor movements rather than literal spaces, so