roo-followup
Before calling roo_task, load this skill to handle Roo follow-ups. Use when coordinating Roo responses that return resultType/needsReply: ask the user with numbered options, summarize prior results, and re-send as a new Roo task (Roo cannot append in place).
When & Why to Use This Skill
The Roo Follow-up Orchestrator is a specialized Claude skill designed to manage multi-turn agent interactions and maintain context continuity. It solves the technical limitation where an agent cannot append messages to an existing task by intelligently summarizing prior results, capturing user feedback through structured prompts, and re-initiating new tasks with the full necessary context.
Use Cases
- Interactive Clarification: Automatically presenting users with numbered options when an agent (Roo) returns an 'ask' status, allowing for quick and precise feedback.
- Contextual Task Chaining: Summarizing complex previous outputs and user responses to bridge the gap between separate task sessions, ensuring the agent doesn't lose track of the objective.
- Iterative Task Validation: Managing a loop of feedback and execution where the agent's progress is checked against expected outcomes, triggering follow-ups until the task is successfully completed.
- Session State Management: Handling 'resultType' signals to determine whether to conclude a workflow, retry an inconclusive step, or prompt the user for more information.
| name | roo-followup |
|---|---|
| description | "Before calling roo_task, load this skill to handle Roo follow-ups. Use when coordinating Roo responses that return resultType/needsReply: ask the user with numbered options, summarize prior results, and re-send as a new Roo task (Roo cannot append in place)." |
Roo Follow-up Orchestrator
Roo side cannot append messages to an existing task. MCP/sidecar only signals resultType (ask|completion|none), needsReply, question, options, sessionId, and a message summary. This skill provides the client-side flow: ask the user, summarize, and re-send as a new Roo task when needed.
When to use
resultTypeisaskorneedsReplyis true fromroo_taskresponse.- You must validate whether the previous Roo answer is sufficient and, if not, send a follow-up as a new task.
- You need to keep context continuity by summarizing prior answers.
Inputs
- Roo MCP response:
message,resultType,needsReply,question,options,completion,sessionId. - User’s follow-up answer (free text or option).
- Optional: expected outcome to verify completeness.
Workflow
Classify response
- If
resultType=completionandneedsReply=false: consider done; showcompletionormessageto user. - If
resultType=askorneedsReply=true: proceed to follow-up handling. - If
resultType=none: treat as inconclusive; ask user whether to retry or stop.
- If
Ask the user
- Show
questionandoptions(if any) as a numbered list so the user can reply with a single number. Example:Roo follow-up question: <question> 1) <option1> 2) <option2> 3) <option3> Reply with a number or free text (type 'stop' to abort): - If no options, still encourage concise answers (“short answer is fine”, “stop to abort”).
- If the user declines to continue, stop.
- Show
Summarize prior context
- Extract the last
completion(ormessageif completion absent). - Build a brief summary: e.g.,
Previous result: ... - Append the user’s new answer: e.g.,
User follow-up answer: ... - Add intent:
Continue the task based on this context.
- Extract the last
Send a new Roo task
- Call
roo_taskwith the composed prompt:Previous result: <summary> User follow-up answer: <answer> Continue the task based on this context. - Record the new
sessionId(this will be new each time; Roo does not support append).
- Call
Validate outcome
- On new response, check
resultType. - If still
ask, loop steps 2–4. - If
completion, present to user and confirm acceptance; if not acceptable, craft another follow-up.
- On new response, check
Prompts / Templates
- New task prompt skeleton
Previous result: <short summary of last completion/message> User follow-up answer: <user answer or chosen option> Continue the task based on this context. - User prompt (to collect answer) — Use numbered options so the user can reply with digits only
Roo follow-up question: <question> 1) <option1> 2) <option2> 3) <option3> Reply with a number or free text (or type 'stop' to abort):
Notes & Constraints
- Do not attempt to append to an existing Roo task; always create a new
roo_task. sessionIdfrom the previous call is not reusable for sending answers (Roo lacks append API).- Keep summaries short to avoid prompt bloat; only include what is needed for the next step.
- If
resultType=none, confirm with the user before retrying to avoid loops.
Checklist
- Inspect
resultType/needsReply. - If ask: collect user answer; if completion: confirm sufficiency.
- Summarize prior result concisely.
- Re-send as new
roo_taskwith summary + user answer. - Repeat until completion is acceptable or user stops.