fix(prompts): point planning guidance at plan subagent
This commit is contained in:
@@ -196,7 +196,7 @@ export function buildNonClaudePlannerSection(model: string): string {
|
||||
Multi-step task? **ALWAYS consult Plan Agent first.** Do NOT start implementation without a plan.
|
||||
|
||||
- Single-file fix or trivial change → proceed directly
|
||||
- Anything else (2+ steps, unclear scope, architecture) → \`task(subagent_type="prometheus", ...)\` FIRST
|
||||
- Anything else (2+ steps, unclear scope, architecture) → \`task(subagent_type="plan", ...)\` FIRST
|
||||
- Use \`task_id\` to resume the same Plan Agent - ask follow-up questions aggressively
|
||||
- If ANY part of the task is ambiguous, ask Plan Agent before guessing
|
||||
|
||||
|
||||
@@ -288,7 +288,7 @@ Every implementation task follows this cycle. No exceptions.
|
||||
Follow \`<explore>\` protocol for tool usage and agent prompts.
|
||||
|
||||
2. PLAN - List files to modify, specific changes, dependencies, complexity estimate.
|
||||
Multi-step (2+) → consult Plan Agent via \`task(subagent_type="prometheus", ...)\`.
|
||||
Multi-step (2+) → consult Plan Agent via \`task(subagent_type="plan", ...)\`.
|
||||
Single-step → mental plan is sufficient.
|
||||
|
||||
<dependency_checks>
|
||||
|
||||
@@ -13,7 +13,7 @@ import {
|
||||
} from "./validator"
|
||||
|
||||
const PROMETHEUS_REJECTION_MESSAGE =
|
||||
"Agent 'prometheus' is plan-mode-only; can only write to .omo/*.md (enforced by prometheusMdOnly hook). Cannot write to team mailbox. Use category: 'plan' instead."
|
||||
"Agent 'prometheus' is plan-mode-only; can only write to .omo/*.md (enforced by prometheusMdOnly hook). Cannot write to team mailbox. Use delegate-task with subagent_type: 'plan' instead."
|
||||
|
||||
function createCategoryMember(name: string): Member {
|
||||
return {
|
||||
|
||||
@@ -136,7 +136,7 @@ describe("team-mode types", () => {
|
||||
],
|
||||
[
|
||||
"prometheus",
|
||||
"Agent 'prometheus' is plan-mode-only; can only write to .omo/*.md (enforced by prometheusMdOnly hook). Cannot write to team mailbox. Use category: 'plan' instead.",
|
||||
"Agent 'prometheus' is plan-mode-only; can only write to .omo/*.md (enforced by prometheusMdOnly hook). Cannot write to team mailbox. Use delegate-task with subagent_type: 'plan' instead.",
|
||||
],
|
||||
] as const
|
||||
|
||||
@@ -286,7 +286,7 @@ describe("team-mode types", () => {
|
||||
"Agent 'momus' is read-only (plan reviewer). Cannot write to mailbox as team member. Use delegate-task for plan review instead.",
|
||||
)
|
||||
expect(AGENT_ELIGIBILITY_REGISTRY.prometheus.rejectionMessage).toBe(
|
||||
"Agent 'prometheus' is plan-mode-only; can only write to .omo/*.md (enforced by prometheusMdOnly hook). Cannot write to team mailbox. Use category: 'plan' instead.",
|
||||
"Agent 'prometheus' is plan-mode-only; can only write to .omo/*.md (enforced by prometheusMdOnly hook). Cannot write to team mailbox. Use delegate-task with subagent_type: 'plan' instead.",
|
||||
)
|
||||
expect(CategoryMemberSchema).toBeDefined()
|
||||
expect(SubagentMemberSchema).toBeDefined()
|
||||
|
||||
@@ -229,7 +229,7 @@ export const AGENT_ELIGIBILITY_REGISTRY: Readonly<Record<string, {
|
||||
prometheus: {
|
||||
verdict: "hard-reject",
|
||||
rejectionMessage:
|
||||
"Agent 'prometheus' is plan-mode-only; can only write to .omo/*.md (enforced by prometheusMdOnly hook). Cannot write to team mailbox. Use category: 'plan' instead.",
|
||||
"Agent 'prometheus' is plan-mode-only; can only write to .omo/*.md (enforced by prometheusMdOnly hook). Cannot write to team mailbox. Use delegate-task with subagent_type: 'plan' instead.",
|
||||
},
|
||||
"sisyphus-junior": { verdict: "eligible" },
|
||||
} as const
|
||||
|
||||
Reference in New Issue
Block a user