Merge pull request #4190 from herjarsa/feat/default-mode

feat(default-mode): auto-activate ultrawork and ralph loop without commands
This commit is contained in:
YeonGyu-Kim
2026-05-21 12:58:04 +09:00
committed by GitHub
10 changed files with 109 additions and 20 deletions
+1
View File
@@ -13,6 +13,7 @@ export type {
SisyphusAgentConfig,
ExperimentalConfig,
DynamicContextPruningConfig,
DefaultModeConfig,
RalphLoopConfig,
TmuxConfig,
TmuxLayout,
+1
View File
@@ -7,6 +7,7 @@ export * from "./schema/categories"
export * from "./schema/claude-code"
export * from "./schema/comment-checker"
export * from "./schema/commands"
export * from "./schema/default-mode"
export * from "./schema/dynamic-context-pruning"
export * from "./schema/experimental"
export * from "./schema/fallback-models"
+18
View File
@@ -0,0 +1,18 @@
import { z } from "zod"
export const DefaultModeConfigSchema = z.object({
/**
* Automatically inject ultrawork mode prompt on main session start
* without requiring "ultrawork"/"ulw" keyword in the message.
* The ultrawork mode system prompt is injected once per session.
*/
ultrawork: z.boolean().default(false),
/**
* Automatically start ralph loop on main session start
* without requiring /ralph-loop or /ulw-loop commands.
* When ultrawork is also enabled, the loop starts in ultrawork mode.
*/
ralph_loop: z.boolean().default(false),
})
export type DefaultModeConfig = z.infer<typeof DefaultModeConfigSchema>
@@ -10,6 +10,7 @@ import { CategoriesConfigSchema } from "./categories"
import { ClaudeCodeConfigSchema } from "./claude-code"
import { CommentCheckerConfigSchema } from "./comment-checker"
import { BuiltinCommandNameSchema } from "./commands"
import { DefaultModeConfigSchema } from "./default-mode"
import { ExperimentalConfigSchema } from "./experimental"
import { GitMasterConfigSchema } from "./git-master"
import { KeywordDetectorConfigSchema } from "./keyword-detector"
@@ -81,6 +82,8 @@ export const OhMyOpenCodeConfigSchema = z.object({
tmux: TmuxConfigSchema.optional(),
sisyphus: SisyphusConfigSchema.optional(),
start_work: StartWorkConfigSchema.optional(),
/** Default mode auto-activation settings (ultrawork, ralph loop) */
default_mode: DefaultModeConfigSchema.optional(),
/** Migration history to prevent re-applying migrations (e.g., model version upgrades) */
_migrations: z.array(z.string()).optional(),
})