From 124845002bf69adb80d5c680167bbc60a30bb7d7 Mon Sep 17 00:00:00 2001 From: YeonGyu-Kim Date: Fri, 1 May 2026 17:57:49 +0900 Subject: [PATCH] fix(keyword-detector): pin hyperplan roster hint Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus --- src/hooks/keyword-detector/hyperplan.test.ts | 9 ++++++++- src/hooks/keyword-detector/hyperplan/default.ts | 2 +- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/hooks/keyword-detector/hyperplan.test.ts b/src/hooks/keyword-detector/hyperplan.test.ts index a83b8f169..8565bccdb 100644 --- a/src/hooks/keyword-detector/hyperplan.test.ts +++ b/src/hooks/keyword-detector/hyperplan.test.ts @@ -30,7 +30,7 @@ describe("keyword-detector hyperplan keyword", () => { }, }, }, - } as unknown as PluginInput + } as PluginInput } test("should inject hyperplan message when user types 'hyperplan'", async () => { @@ -52,6 +52,13 @@ describe("keyword-detector hyperplan keyword", () => { expect(textPart!.text).toContain("") expect(textPart!.text).toContain('skill(name="hyperplan")') expect(textPart!.text).toContain("HYPERPLAN MODE ENABLED") + expect(textPart!.text).toContain("unspecified-low") + expect(textPart!.text).toContain("unspecified-high") + expect(textPart!.text).toContain("artistry") + expect(textPart!.text).toContain("ultrabrain") + expect(textPart!.text).toContain("deep") + expect(textPart!.text).toContain("only if") + expect(textPart!.text).toContain("enabled") expect(textPart!.text).toContain("refactor the auth module") expect(textPart!.text).toContain("---") }) diff --git a/src/hooks/keyword-detector/hyperplan/default.ts b/src/hooks/keyword-detector/hyperplan/default.ts index 4ad9de978..1a38b75b3 100644 --- a/src/hooks/keyword-detector/hyperplan/default.ts +++ b/src/hooks/keyword-detector/hyperplan/default.ts @@ -25,7 +25,7 @@ skill(name="hyperplan") After loading, follow the skill's full workflow EXACTLY: 1. Acknowledge and capture the planning request -2. Spawn the 5-member adversarial team via \`team_create\` +2. Spawn the adversarial team via \`team_create\` with category members \`unspecified-low\`, \`unspecified-high\`, \`ultrabrain\`, and \`artistry\`; include \`deep\` only if the category is enabled 3. Round 1 — Independent analysis (each member produces findings) 4. Round 2 — Cross-attack (each member ruthlessly attacks the other 4's findings) 5. Round 3 — Defend, refine, or concede