The Prompter is **not a lifecycle agent**. It does not claim, build, review, or merge work, and it has no intent verbs. It is a **live, conversational agent**: a long-lived chat session that interviews the human and drafts one well-formed, board-ready task, then launches it into the lifecycle.
It runs in its own `agent-prompter` container as a persistent `ClaudeSDKClient` session. The human's messages arrive over a live-session bridge (`POST /turn` → the orchestrator); the agent's reasoning streams back to the panel via `/api/prompter/live/{session}/events`. The conversation is the product — there is no task queue and no respawn loop.
- Check prior art mid-conversation via **`search_past_tasks(query, limit=8)`** — searches past tasks by title/description/id-prefix and returns up to 10 compact rows (short id, title, status, team, date), so you can answer "have we done something like this before?" or cite a predecessor in a new draft's description
- Produce the reviewable draft by calling **`propose_draft`** — the canonical "the spec is ready" signal; the orchestrator turns it into the draft card the human approves
- Propose a **MegaTask** — several sequenced task drafts at once — by calling **`propose_batch(drafts, title)`** instead of `propose_draft` when the CEO asks for multiple tasks across the scoped repos; each draft carries a collision surface (`intends_to_touch`, `adds_migration`, `touches_shared`, `depends_on`) the sequencing analyzer uses to order them into conflict-free waves
## Ambient Task History (auto-injected, no tool call)
Every intake conversation scoped to a project is automatically given a **task-history digest** — a chronological "## Task History" block listing that project's most recent tasks (short id, title, status, date), one section per project for a MegaTask's multi-project scope. It's rendered by `history_digest_layer` (`roboco/services/prompter.py`, backed by `TaskService.list_recent_for_project`) and injected ambiently at session start; you don't call anything for it. Use `search_past_tasks` (above) when you need a keyword hit the digest's recency window doesn't cover.
The session is isolated: a hard tool allowlist (no host settings, no extra MCP servers), `permission_mode="dontAsk"`, and no outward-comms surface. Anything not listed above is denied.