refactor(ultrawork): rename gpt5.2.ts to gpt.ts and align with 5.4 style

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
YeonGyu-Kim
2026-03-06 13:44:39 +09:00
parent 3d0ccdd019
commit 381d7688ab
2 changed files with 43 additions and 33 deletions
@@ -1,15 +1,11 @@
/**
* Ultrawork message optimized for GPT 5.2 series models.
*
* Key characteristics (from GPT 5.2 Prompting Guide):
* - "Stronger instruction adherence" - follows instructions more literally
* - "Conservative grounding bias" - prefers correctness over speed
* - "Parallelize independent reads to reduce latency" - official guidance
* Ultrawork message optimized for GPT 5.4 series models.
*
* Design principles:
* - Expert coding agent framing with approach-first mentality
* - Prose-first output (do not default to bullets)
* - Two-track parallel context gathering (Direct tools + Background agents)
* - Fire background agents, then use direct tools while waiting
* - Explicit complexity-based decision criteria
* - Deterministic tool usage and explicit decision criteria
*/
export const ULTRAWORK_GPT_MESSAGE = `<ultrawork-mode>
@@ -19,11 +15,11 @@ export const ULTRAWORK_GPT_MESSAGE = `<ultrawork-mode>
[CODE RED] Maximum precision required. Think deeply before acting.
<output_verbosity_spec>
- Default: 3-6 sentences or 5 bullets for typical answers
- Simple yes/no questions: 2 sentences
- Complex multi-file tasks: 1 short overview paragraph + 5 bullets (What, Where, Risks, Next, Open)
- Avoid long narrative paragraphs; prefer compact bullets
- Do not rephrase the user's request unless it changes semantics
- Default: 1-2 short paragraphs. Do not default to bullets.
- Simple yes/no questions: 2 sentences.
- Complex multi-file tasks: 1 overview paragraph + up to 4 high-level sections grouped by outcome, not by file.
- Use lists only when content is inherently list-shaped (distinct items, steps, options).
- Do not rephrase the user's request unless it changes semantics.
</output_verbosity_spec>
<scope_constraints>
@@ -144,8 +140,8 @@ A task is complete when:
---
`
`;
export function getGptUltraworkMessage(): string {
return ULTRAWORK_GPT_MESSAGE
return ULTRAWORK_GPT_MESSAGE;
}
+32 -18
View File
@@ -3,39 +3,53 @@
*
* Routing:
* 1. Planner agents (prometheus, plan) → planner.ts
* 2. GPT 5.2 models → gpt5.2.ts
* 2. GPT models → gpt.ts
* 3. Gemini models → gemini.ts
* 4. Default (Claude, etc.) → default.ts (optimized for Claude series)
*/
export { isPlannerAgent, isGptModel, isGeminiModel, getUltraworkSource } from "./source-detector"
export type { UltraworkSource } from "./source-detector"
export { ULTRAWORK_PLANNER_SECTION, getPlannerUltraworkMessage } from "./planner"
export { ULTRAWORK_GPT_MESSAGE, getGptUltraworkMessage } from "./gpt5.2"
export { ULTRAWORK_GEMINI_MESSAGE, getGeminiUltraworkMessage } from "./gemini"
export { ULTRAWORK_DEFAULT_MESSAGE, getDefaultUltraworkMessage } from "./default"
export {
isPlannerAgent,
isGptModel,
isGeminiModel,
getUltraworkSource,
} from "./source-detector";
export type { UltraworkSource } from "./source-detector";
export {
ULTRAWORK_PLANNER_SECTION,
getPlannerUltraworkMessage,
} from "./planner";
export { ULTRAWORK_GPT_MESSAGE, getGptUltraworkMessage } from "./gpt";
export { ULTRAWORK_GEMINI_MESSAGE, getGeminiUltraworkMessage } from "./gemini";
export {
ULTRAWORK_DEFAULT_MESSAGE,
getDefaultUltraworkMessage,
} from "./default";
import { getUltraworkSource } from "./source-detector"
import { getPlannerUltraworkMessage } from "./planner"
import { getGptUltraworkMessage } from "./gpt5.2"
import { getDefaultUltraworkMessage } from "./default"
import { getGeminiUltraworkMessage } from "./gemini"
import { getUltraworkSource } from "./source-detector";
import { getPlannerUltraworkMessage } from "./planner";
import { getGptUltraworkMessage } from "./gpt";
import { getDefaultUltraworkMessage } from "./default";
import { getGeminiUltraworkMessage } from "./gemini";
/**
* Gets the appropriate ultrawork message based on agent and model context.
*/
export function getUltraworkMessage(agentName?: string, modelID?: string): string {
const source = getUltraworkSource(agentName, modelID)
export function getUltraworkMessage(
agentName?: string,
modelID?: string,
): string {
const source = getUltraworkSource(agentName, modelID);
switch (source) {
case "planner":
return getPlannerUltraworkMessage()
return getPlannerUltraworkMessage();
case "gpt":
return getGptUltraworkMessage()
return getGptUltraworkMessage();
case "gemini":
return getGeminiUltraworkMessage()
return getGeminiUltraworkMessage();
case "default":
default:
return getDefaultUltraworkMessage()
return getDefaultUltraworkMessage();
}
}