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.
|
Multi-step task? **ALWAYS consult Plan Agent first.** Do NOT start implementation without a plan.
|
||||||
|
|
||||||
- Single-file fix or trivial change → proceed directly
|
- 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
|
- 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
|
- 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.
|
Follow \`<explore>\` protocol for tool usage and agent prompts.
|
||||||
|
|
||||||
2. PLAN - List files to modify, specific changes, dependencies, complexity estimate.
|
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.
|
Single-step → mental plan is sufficient.
|
||||||
|
|
||||||
<dependency_checks>
|
<dependency_checks>
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ import {
|
|||||||
} from "./validator"
|
} from "./validator"
|
||||||
|
|
||||||
const PROMETHEUS_REJECTION_MESSAGE =
|
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 {
|
function createCategoryMember(name: string): Member {
|
||||||
return {
|
return {
|
||||||
|
|||||||
@@ -136,7 +136,7 @@ describe("team-mode types", () => {
|
|||||||
],
|
],
|
||||||
[
|
[
|
||||||
"prometheus",
|
"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
|
] 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.",
|
"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(
|
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(CategoryMemberSchema).toBeDefined()
|
||||||
expect(SubagentMemberSchema).toBeDefined()
|
expect(SubagentMemberSchema).toBeDefined()
|
||||||
|
|||||||
@@ -229,7 +229,7 @@ export const AGENT_ELIGIBILITY_REGISTRY: Readonly<Record<string, {
|
|||||||
prometheus: {
|
prometheus: {
|
||||||
verdict: "hard-reject",
|
verdict: "hard-reject",
|
||||||
rejectionMessage:
|
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" },
|
"sisyphus-junior": { verdict: "eligible" },
|
||||||
} as const
|
} as const
|
||||||
|
|||||||
Reference in New Issue
Block a user