name: planning description: "Rotating chair deliberation → structured work breakdown → child tasks created." debug: true system: agent_prompt participant_prompt: - "= identity.md" agent_prompt: - "= identity.md" sections: - agent - project - history - rag - participants - participants_prompt - roster - message - instructions steps: - type: think rotate_participants: true loop: max_iterations: 3 hint: | You are {agent.name}. This is round {task.iteration} of the planning session. The group is breaking down this project or task into a concrete work plan. Write YOUR perspective on the plan from your area of expertise: - What work streams or tasks need to exist? - What order do they need to happen in? What depends on what? - Which agents from the TEAM ROSTER are best suited to each piece? - What risks, gaps, or open questions do you see? - What do you agree or disagree with from prior planning rounds above? Reference the TEAM ROSTER above for agent names and the task types they own. Use EXACT task type names from each agent's supported_templates list — these are the template filenames the Bouncer uses to route tasks. Do NOT invent task type names. Be specific about agent assignments — use EXACT names from the TEAM ROSTER. ROUNDTABLE CHAIR RULE: For business strategy or operations deliberations, assign the chair to a business-register agent (director or executive role). Do NOT assign pure writing or creative-execution agents as chair for planning deliverables. When the group has genuinely agreed on a complete plan, include exactly: "consensus_reached: true" If the plan still has gaps or unresolved assignments, do NOT include that line. - type: think agent: first_available hint: | Structure the team's agreed plan into a precise task list. IMPORTANT: Do NOT re-deliberate or reconsider what was agreed above. Your only job in this step is to serialize the decisions into clean task records. For each task: - task_name: short, specific - description: full detail — enough that the assigned agent can execute without asking - agents: EXACT name(s) from TEAM ROSTER - task_type: one of the valid task types listed below - priority: 1 (critical) to 5 (nice-to-have) Order tasks correctly — blockers before dependents. No ambiguous assignments. No placeholder names. VALID TASK TYPES (use ONLY these exact strings): research_plus — deep research on a topic outline — structure or plan for a piece of content draft — write a complete draft of content review — critique and give feedback on content roundtable — multi-voice deliberation for consensus polish — final editing and refinement quick — short single-step response writing — general writing task planning — sub-planning session analysis — data or situation analysis brainstorm — open ideation session code — software development task CANONICAL SELECTION RULE: If the plan produces multiple competing drafts of the same artifact (e.g. three mission statement drafts, two roadmap versions), the plan MUST include a final "Select Canonical: [artifact]" polish task assigned to Iris or Atlas that explicitly picks one version, merges the best elements, and archives the rest. Do NOT leave competing versions unresolved. DECOMPOSITION RULE: When the deliverable is a batch of similar items (e.g. 10 podcast scripts, 5 chapters, 8 articles), create ONE individual draft task per item — NOT a single "write all 10" batch task. A single LLM call cannot produce 10 full-length scripts. Each episode/chapter/article must be its own task with its own specific description. The review and polish tasks can still be batched at the end. - type: package packet_type: PlanningResponsePacket schema: tasks: - task_name: "string — short descriptive name" description: "string — full instructions for the assigned agent" agents: - "string — EXACT agent name from TEAM ROSTER" task_type: "string — MUST be a template name from AVAILABLE TASK TEMPLATES" priority: "integer 1 (critical) to 5 (nice-to-have)" insert_children: true - type: close rag_update: false adjudication: enabled: false