From f9468e92ef9eb11be574f724c74d794f207e6b99 Mon Sep 17 00:00:00 2001 From: Sawyer Date: Fri, 4 Sep 2026 14:12:19 -0700 Subject: [PATCH] Restore the refactor skill 1:1 with GaaS Replace Corbits ask_operator phrasing with Guy's GaaS body. Slash /refactor remains. ask_operator mapping stays on native-integration. Ignore GaaS refactor SKILL.md in prettier so list alignment stays 1:1. --- .prettierignore | 1 + CHANGELOG.md | 3 ++- .../corbits-skills/skills/native-integration/SKILL.md | 2 ++ plugins/corbits-skills/skills/refactor/SKILL.md | 7 ++----- tests/unit/corbits-skills-catalog.test.ts | 11 +++++++++++ 5 files changed, 18 insertions(+), 6 deletions(-) diff --git a/.prettierignore b/.prettierignore index 2611a004e..a412eef9e 100644 --- a/.prettierignore +++ b/.prettierignore @@ -5,6 +5,7 @@ scratch/ node_modules/ CHANGELOG.md plugins/corbits-skills/skills/opsh/SKILL.md +plugins/corbits-skills/skills/refactor/SKILL.md tmp/ .claude/ diff --git a/CHANGELOG.md b/CHANGELOG.md index f836216d3..b7c223609 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -22,7 +22,8 @@ parallel copies under `docs/` or `scripts/notes/`. At cut time: rename - Drop unused `@opentui/keymap`, `@opentui/solid`, and `solid-js`. The interactive TUI is imperative `@opentui/core` only. - Restore the opsh skill 1:1 with GaaS. Tool/shell mapping stays on native-integration. user-invocable: false stays so it remains use_skill-only. - Restore the pull-request-review skill 1:1 with GaaS. ask_operator, /review mapping, and GitHub posting stay on native-integration. Slash /pull-request-review remains. -- Ignore GaaS opsh SKILL.md in prettier so table alignment stays 1:1. +- Restore the refactor skill 1:1 with GaaS. ask_operator mapping stays on native-integration. Slash /refactor remains. +- Ignore GaaS opsh and refactor SKILL.md in prettier so table/list alignment stays 1:1. - Restore the git-rebase skill body 1:1 with GaaS. Intern execution recipe stays on native-integration. user-invocable: false stays so it remains use_skill-only. - Restore the linear-issue-workflow skill body 1:1 with GaaS. Claim-first, In Review, and git-worktrees extras stay on native-integration. user-invocable: false stays so it remains use_skill-only. - Restore the interview skill body 1:1 with GaaS (AskUserQuestion). Operator-ask mapping stays on native-integration. Slash /interview remains. diff --git a/plugins/corbits-skills/skills/native-integration/SKILL.md b/plugins/corbits-skills/skills/native-integration/SKILL.md index 59cf99af8..08d95830a 100644 --- a/plugins/corbits-skills/skills/native-integration/SKILL.md +++ b/plugins/corbits-skills/skills/native-integration/SKILL.md @@ -41,6 +41,8 @@ When a GaaS skill names a Claude/GaaS tool, use the Corbits equivalent. Do not c Slash names that differ from GaaS skill ids: `/review` is GaaS `code-review`; `/create-issue` is GaaS `linear-create`. Keep those Corbits names. +GaaS refactor says "ask clarifying questions" / "ask the user". Corbits extras: `ask_operator` (tool mapping above). Do not fork the GaaS refactor body. + When GaaS implement says you are orchestrated by karen, that is the Corbits primary (Skywalker). Route those disposition decisions through the primary, not a worker. ## Linear claim-first diff --git a/plugins/corbits-skills/skills/refactor/SKILL.md b/plugins/corbits-skills/skills/refactor/SKILL.md index f99871227..16caa2a52 100644 --- a/plugins/corbits-skills/skills/refactor/SKILL.md +++ b/plugins/corbits-skills/skills/refactor/SKILL.md @@ -18,8 +18,7 @@ Before doing anything else, load the `philosophy` skill. The principles in that The user has specified a directory to analyze: `$ARGUMENTS` -If the directory is broad, `ask_operator` before exploring: - +If the directory is broad, ask clarifying questions: - Is there a specific concern or area they want to focus on? - What prompted the desire to refactor? - Are there known pain points? @@ -27,7 +26,6 @@ If the directory is broad, `ask_operator` before exploring: ### Step 2: Examine the Code Explore the specified directory to understand: - - What the code does (purpose and behavior) - Key components and their responsibilities - How data flows through the system @@ -57,7 +55,7 @@ Document structure: After documenting the current state: -1. Present your observations and `ask_operator` about priorities +1. Present your observations and ask the user about their priorities 2. Propose specific improvements with rationale grounded in philosophy principles (pragmatic, simple over easy, etc.) 3. Let the user accept, reject, or modify proposals 4. Ask follow-up questions to refine the approach @@ -81,7 +79,6 @@ A single markdown file in the user's current working directory containing both t ## Guiding Principles From the philosophy skill: - - **Pragmatic over idealistic** - Don't propose changes for theoretical purity - **Simple is usually harder than easy** - Favor designs that are genuinely simple, not just quick - **Do no harm** - Consider risks to stability and correctness diff --git a/tests/unit/corbits-skills-catalog.test.ts b/tests/unit/corbits-skills-catalog.test.ts index 9063710ec..dde864d55 100644 --- a/tests/unit/corbits-skills-catalog.test.ts +++ b/tests/unit/corbits-skills-catalog.test.ts @@ -239,6 +239,16 @@ test("review skill is a code-review playbook, not a director router", async () = expect(skill).not.toContain('task(agent="greybeard")'); }); +test("refactor skill is 1:1 with GaaS refactor", async () => { + const skill = await Bun.file(join(pluginRoot, "skills/refactor/SKILL.md")).text(); + expect(skill).toContain("ask clarifying questions:"); + expect(skill).toContain("ask the user about their priorities"); + expect(skill).toContain("load the `philosophy` skill"); + expect(skill).not.toContain("ask_operator"); + expect(skill).not.toContain(USER_INVOCABLE_FALSE); + expect(skill).not.toContain("## Acknowledgment"); +}); + test("pull-request-review is 1:1 with GaaS pull-request-review", async () => { const skill = await Bun.file(join(pluginRoot, "skills/pull-request-review/SKILL.md")).text(); expect(skill).toContain("git worktree add"); @@ -398,6 +408,7 @@ test("native-integration maps GaaS tool names and parks Corbits extras", async ( expect(skill).toContain("Do not fork the GaaS git-rebase body"); expect(skill).toContain("Do not fork the GaaS opsh body"); expect(skill).toContain("Do not fork the GaaS pull-request-review body"); + expect(skill).toContain("Do not fork the GaaS refactor body"); expect(skill).toContain("prove"); });