master planner: add 'Team' mode + size bands per mode
Modes now: specialists (2–3 domain experts, deep prompts) · team (4–8 balanced roles, coordinator + complements) · swarm (10+ workers, self- verifying loop) · scheduled (ephemeral, cron/one-shot) · triggered (ephemeral, webhook). Backend planner_system_for() gains a TEAM_NOTE using PLANNER_SYSTEM; specialists / scheduled / triggered notes are rewritten to bake in the size + ephemeral guidance. Swarm's system prompt now targets task_count>=10 explicitly. Frontend MODES / INTRO copy match. Chat-preserving switchMode from the prior commit handles the new mode transparently — no state-plumbing changes needed.
This commit is contained in:
@@ -11,18 +11,20 @@ import { Activity, CalendarClock, Send, Sparkles, Users, Webhook } from "lucide-
|
||||
|
||||
const mono = "'JetBrains Mono', ui-monospace, monospace";
|
||||
|
||||
type Mode = "specialists" | "swarm" | "scheduled" | "triggered";
|
||||
type Mode = "specialists" | "team" | "swarm" | "scheduled" | "triggered";
|
||||
const MODES: { key: Mode; label: string; hint: string }[] = [
|
||||
{ key: "specialists", label: "Specialists", hint: "domain experts" },
|
||||
{ key: "swarm", label: "Swarm", hint: "self-verifying loop" },
|
||||
{ key: "scheduled", label: "Scheduled", hint: "date / time" },
|
||||
{ key: "triggered", label: "Triggered", hint: "webhook" },
|
||||
{ key: "specialists", label: "Specialists", hint: "2–3 domain experts" },
|
||||
{ key: "team", label: "Team", hint: "4–8 agents, balanced" },
|
||||
{ key: "swarm", label: "Swarm", hint: "10+ workers, self-verifying" },
|
||||
{ key: "scheduled", label: "Scheduled", hint: "ephemeral · date/time" },
|
||||
{ key: "triggered", label: "Triggered", hint: "ephemeral · webhook" },
|
||||
];
|
||||
const INTRO: Record<Mode, string> = {
|
||||
specialists: "Describe what you need — e.g. “a team of specialists for a React Native app: a Rust backend expert, a RN UI dev, and a release engineer.”",
|
||||
swarm: "Describe a job to verify-loop — e.g. “analyze 100 EV companies; every figure needs a resolvable source URL.” I'll turn it into a checklist the verifier enforces.",
|
||||
scheduled: "Describe a team and when it should run — e.g. “a market-news digest team, every weekday at 7am.”",
|
||||
triggered: "Describe a team to fire from a webhook — e.g. “when a support ticket arrives, triage and draft a reply.”",
|
||||
specialists: "Describe what you need — e.g. “a group of 2–3 specialists for a React Native app: a Rust backend expert, a RN UI dev, and a release engineer.” I'll write high-quality prompts for each.",
|
||||
team: "Describe the goal — e.g. “build me a 4–6 person growth team: a coordinator, a researcher, a writer, an analyst, and a critic.” I'll pick roles that actually get exercised each iteration.",
|
||||
swarm: "Describe a job to verify-loop across 10+ workers — e.g. “analyze 100 EV companies; every figure needs a resolvable source URL.” I'll turn it into a checklist the verifier enforces.",
|
||||
scheduled: "Describe a team and when it should run — e.g. “a market-news digest team, every weekday at 7am.” The team is spun up at fire time and torn down after.",
|
||||
triggered: "Describe a team to fire from a webhook — e.g. “when a support ticket arrives, triage and draft a reply.” The team is ephemeral — created on webhook receipt, destroyed after.",
|
||||
};
|
||||
|
||||
type Member = { name: string; role: string; model: string; rationale?: string };
|
||||
|
||||
Reference in New Issue
Block a user