From f5ba5b3b11928e84be08cdc8a1deb69602017f24 Mon Sep 17 00:00:00 2001 From: Hugh Francis Date: Sat, 14 Nov 2026 02:17:41 -0500 Subject: [PATCH] Kit: worker and planner prompts say to run multi-step shell from a file MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Workers keep stopping on the agent CLI's permission prompt for an inline sh -c with rm (four times across three projects on 2026-11-12 to 11-14). worker.md §3 says it, but deep in a long list; the opening prompt now says it in one line. Co-Authored-By: Claude Opus 5.5 --- docs/devteam/scripts/devteam.mjs | 4 ++-- test/fixtures/g1/prompt-worker.txt | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/devteam/scripts/devteam.mjs b/docs/devteam/scripts/devteam.mjs index 7c9fb36c..c29cc03c 100644 --- a/docs/devteam/scripts/devteam.mjs +++ b/docs/devteam/scripts/devteam.mjs @@ -13570,8 +13570,8 @@ async function cmdDashboard() { const PROMPTS = { supervisor: 'You are the supervisor for this repository, running in the owner\'s terminal. Read the devteam section of AGENTS.md, then docs/devteam/process/supervisor.md, and follow it from the start. You write no production code. The log (devteam.mjs log, questions, status) and the tracked files are the record; chat is not. When you start, and again whenever the project changes, discover every production signal the project already has access to (production URLs, log access such as heroku logs, error trackers such as Sentry or Honeybadger, the CLIs and tokens here) and start a sensor for each, with no question to the owner (supervisor.md, Monitoring). Your default is to act: decide what is yours and log it; when work needs a credential or access, ask for it at once with an owner-action question and --secrets, and never ask whether to ask, in the Inbox or in chat; write to the owner in plain words, without the kit\'s vocabulary (supervisor.md §6, Ask less, act more). If there are no ready goals, begin at docs/devteam/process/planning.md §1 by asking the owner what the project is for.', - worker: 'You are the worker for ticket {{ID}}. Read the devteam section of AGENTS.md, then docs/devteam/process/worker.md, and follow it from §1. Your ticket: node docs/devteam/scripts/devteam.mjs ticket show {{ID}}. Use superpowers for every step; devteam says where files go and what must be true before you ask for the merge.', - planner: 'You are planning feature {{ID}} on branch plan/{{ID}}, in this worktree. Read the devteam section of AGENTS.md, then docs/devteam/process/planning.md, and run the pipeline from §2 for this feature. Your tickets and the feature line go to the log with devteam.mjs feature add / ticket add; commit everything as you go; message the supervisor (devteam.mjs send supervisor) when the graph review passes.', + worker: 'You are the worker for ticket {{ID}}. Read the devteam section of AGENTS.md, then docs/devteam/process/worker.md, and follow it from §1. Your ticket: node docs/devteam/scripts/devteam.mjs ticket show {{ID}}. Use superpowers for every step; devteam says where files go and what must be true before you ask for the merge. Run any multi-step shell (rm, redirects, quotes inside quotes) as a script file you write and then run, never inline: an inline one stops on a permission prompt nobody answers (worker.md §3).', + planner: 'You are planning feature {{ID}} on branch plan/{{ID}}, in this worktree. Read the devteam section of AGENTS.md, then docs/devteam/process/planning.md, and run the pipeline from §2 for this feature. Run any multi-step shell (rm, redirects, quotes inside quotes) as a script file you write and then run, never inline: an inline one stops on a permission prompt nobody answers. Your tickets and the feature line go to the log with devteam.mjs feature add / ticket add; commit everything as you go; message the supervisor (devteam.mjs send supervisor) when the graph review passes.', }; // What a prompt says about a repo, from settings alone (a view: no checkout needed). const repoAbout = (name) => (name === 'home' ? repo('home') : { name, remote: ownEntry(loadSettings().links, name)?.remote, projectRel: projectRelOf(name) }); diff --git a/test/fixtures/g1/prompt-worker.txt b/test/fixtures/g1/prompt-worker.txt index 183bd3c3..334d9d9c 100644 --- a/test/fixtures/g1/prompt-worker.txt +++ b/test/fixtures/g1/prompt-worker.txt @@ -1,6 +1,6 @@ exit 0 --- stdout -You are the worker for ticket g1-01-a. Read the devteam section of AGENTS.md, then docs/devteam/process/worker.md, and follow it from §1. Your ticket: node docs/devteam/scripts/devteam.mjs ticket show g1-01-a. Use superpowers for every step; devteam says where files go and what must be true before you ask for the merge. +You are the worker for ticket g1-01-a. Read the devteam section of AGENTS.md, then docs/devteam/process/worker.md, and follow it from §1. Your ticket: node docs/devteam/scripts/devteam.mjs ticket show g1-01-a. Use superpowers for every step; devteam says where files go and what must be true before you ask for the merge. Run any multi-step shell (rm, redirects, quotes inside quotes) as a script file you write and then run, never inline: an inline one stops on a permission prompt nobody answers (worker.md §3). What this project has learned that applies here (accepted knowledge): - [fact] g1 builds with make (k---owner)