From 9296a9c3bde3b25bcb67207ffc7431eda1bb8272 Mon Sep 17 00:00:00 2001 From: Corey Dean Date: Fri, 12 Jun 2026 08:47:19 -0500 Subject: [PATCH] fix(prompts): compose the prompter role layer for the intake agent (#116) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The intake (prompter) agent was spawned with its role prompt missing, so it only saw the gateway verbs layer (whose sole verb is `i_am_idle`) plus the base rules. It concluded it had no way to act and refused to draft tasks — the live intake chat produced empty turns and never called `propose_draft`. Root cause: `prompter` was absent from `_ROLE_LAYER_MAP`, so `compose_prompt` silently skipped `agents/prompts/roles/prompter.md` — the interviewer prompt that defines the intake mission and the `propose_draft` tool. The tool was wired into the SDK the whole time; the agent was just never told it existed. Fix: map `prompter` to `prompter.md` so the role layer is composed in, the same as every other role. --- roboco/agents/factories/_base.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/roboco/agents/factories/_base.py b/roboco/agents/factories/_base.py index 6fd194f4..683e9c55 100644 --- a/roboco/agents/factories/_base.py +++ b/roboco/agents/factories/_base.py @@ -61,6 +61,10 @@ _ROLE_LAYER_MAP: dict[str, str] = { "product_owner": "board.md", "head_marketing": "board.md", "auditor": "board.md", + # Intake interviewer — the live-session role prompt that wires up the + # propose_draft mission. Without this the prompter only sees the + # gateway verbs layer (i_am_idle) and refuses to draft. + "prompter": "prompter.md", } _TEAM_LAYER_MAP: dict[str, str] = {