diff --git a/src/agents/sisyphus-junior/index.test.ts b/src/agents/sisyphus-junior/index.test.ts index 64cf3de86..d574f57ca 100644 --- a/src/agents/sisyphus-junior/index.test.ts +++ b/src/agents/sisyphus-junior/index.test.ts @@ -200,6 +200,46 @@ describe("createSisyphusJuniorAgentWithOverrides", () => { }) }) + describe("useTaskSystem integration", () => { + test("useTaskSystem=true produces Task_Discipline prompt for Claude", () => { + //#given + const override = { model: "anthropic/claude-sonnet-4-5" } + + //#when + const result = createSisyphusJuniorAgentWithOverrides(override, undefined, true) + + //#then + expect(result.prompt).toContain("TaskCreate") + expect(result.prompt).toContain("TaskUpdate") + expect(result.prompt).not.toContain("todowrite") + }) + + test("useTaskSystem=true produces task_discipline_spec prompt for GPT", () => { + //#given + const override = { model: "openai/gpt-5.2" } + + //#when + const result = createSisyphusJuniorAgentWithOverrides(override, undefined, true) + + //#then + expect(result.prompt).toContain("") + expect(result.prompt).toContain("TaskCreate") + expect(result.prompt).not.toContain("") + }) + + test("useTaskSystem=false (default) produces Todo_Discipline prompt", () => { + //#given + const override = {} + + //#when + const result = createSisyphusJuniorAgentWithOverrides(override) + + //#then + expect(result.prompt).toContain("todowrite") + expect(result.prompt).not.toContain("TaskCreate") + }) + }) + describe("prompt composition", () => { test("base prompt contains discipline constraints", () => { // given diff --git a/src/plugin-handlers/agent-config-handler.ts b/src/plugin-handlers/agent-config-handler.ts index 2c2beee4d..515f32416 100644 --- a/src/plugin-handlers/agent-config-handler.ts +++ b/src/plugin-handlers/agent-config-handler.ts @@ -101,9 +101,11 @@ export async function applyAgentConfig(params: { sisyphus: builtinAgents.sisyphus, }; + const useTaskSystem = params.pluginConfig.experimental?.task_system ?? false; agentConfig["sisyphus-junior"] = createSisyphusJuniorAgentWithOverrides( params.pluginConfig.agents?.["sisyphus-junior"], undefined, + useTaskSystem, ); if (builderEnabled) {