From 8f48277e6c4d820656be666e114c06205ebb0990 Mon Sep 17 00:00:00 2001 From: YeonGyu-Kim Date: Fri, 1 May 2026 17:57:49 +0900 Subject: [PATCH] fix(builtin-commands): pin hyperplan roster contract Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus --- .../builtin-commands/commands.test.ts | 23 +++++++++++++++++++ .../builtin-commands/templates/hyperplan.ts | 4 +++- 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/src/features/builtin-commands/commands.test.ts b/src/features/builtin-commands/commands.test.ts index d3c7575a7..f54aa9f83 100644 --- a/src/features/builtin-commands/commands.test.ts +++ b/src/features/builtin-commands/commands.test.ts @@ -3,6 +3,7 @@ import { afterEach, beforeEach, describe, test, expect } from "bun:test" import { loadBuiltinCommands } from "./commands" import { HANDOFF_TEMPLATE } from "./templates/handoff" +import { HYPERPLAN_TEMPLATE } from "./templates/hyperplan" import { REFACTOR_TEMPLATE, REFACTOR_TEAM_MODE_ADDENDUM } from "./templates/refactor" import { REMOVE_AI_SLOPS_TEMPLATE, REMOVE_AI_SLOPS_TEAM_MODE_ADDENDUM } from "./templates/remove-ai-slops" import type { BuiltinCommandName } from "./types" @@ -104,6 +105,28 @@ describe("loadBuiltinCommands", () => { }) }) +describe("HYPERPLAN_TEMPLATE", () => { + test("should hard-code the adversarial team categories for slash command execution", () => { + //#given - the slash command template owns /hyperplan execution context + + //#when / #then + expect(HYPERPLAN_TEMPLATE).toContain("unspecified-low") + expect(HYPERPLAN_TEMPLATE).toContain("unspecified-high") + expect(HYPERPLAN_TEMPLATE).toContain("artistry") + expect(HYPERPLAN_TEMPLATE).toContain("ultrabrain") + }) + + test("should make deep conditional instead of requiring it unconditionally", () => { + //#given - deep may be disabled by user category config + + //#when / #then + expect(HYPERPLAN_TEMPLATE).toContain("deep") + expect(HYPERPLAN_TEMPLATE).toContain("only if") + expect(HYPERPLAN_TEMPLATE).toContain("enabled") + expect(HYPERPLAN_TEMPLATE).toContain("retry") + }) +}) + describe("loadBuiltinCommands - remove-ai-slops", () => { test("should include remove-ai-slops command in loaded commands", () => { //#given diff --git a/src/features/builtin-commands/templates/hyperplan.ts b/src/features/builtin-commands/templates/hyperplan.ts index bf88bcc4e..c447c21cb 100644 --- a/src/features/builtin-commands/templates/hyperplan.ts +++ b/src/features/builtin-commands/templates/hyperplan.ts @@ -6,7 +6,9 @@ LOAD THE HYPERPLAN SKILL IMMEDIATELY: skill(name="hyperplan") \`\`\` -After loading the skill, follow its 7-phase workflow EXACTLY using this user request: +After loading the skill, follow its 7-phase workflow EXACTLY using this user request. + +Roster contract: call \`team_create\` with category members \`unspecified-low\`, \`unspecified-high\`, \`ultrabrain\`, and \`artistry\`. Include \`deep\` only if the category is enabled; if \`deep\` is disabled or unavailable, retry without only that member and state the degraded roster. $ARGUMENTS