From 49af2129ae35d5d2b3839a17f31b2341ea647286 Mon Sep 17 00:00:00 2001 From: hzhang Date: Sun, 12 Apr 2026 14:05:56 +0100 Subject: [PATCH] --append --- plugin/core/claude/sdk-adapter.ts | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/plugin/core/claude/sdk-adapter.ts b/plugin/core/claude/sdk-adapter.ts index a547916..7ded254 100644 --- a/plugin/core/claude/sdk-adapter.ts +++ b/plugin/core/claude/sdk-adapter.ts @@ -17,7 +17,8 @@ export type OpenAITool = { export type ClaudeDispatchOptions = { prompt: string; - /** System prompt passed via --system-prompt on every invocation (stateless, not stored in session) */ + /** Appended to Claude Code's built-in system prompt via --append-system-prompt on every invocation. + * Stateless: not persisted in session file, fully replaces any prior appended content on resume. */ systemPrompt?: string; workspace: string; agentId?: string; @@ -115,11 +116,12 @@ export async function* dispatchToClaude( "--dangerously-skip-permissions", ]; - // --system-prompt is stateless (not persisted in session file) and fully - // replaces any prior system prompt on each invocation, including resumes. - // We pass it every turn so skills/persona stay current. + // --append-system-prompt appends to Claude Code's built-in system prompt rather + // than replacing it, preserving the full agent SDK instructions (tool use behavior, + // memory management, etc.). The appended bootstrap (persona + skills) is stateless: + // not persisted in the session file, takes effect every invocation including resumes. if (systemPrompt) { - args.push("--system-prompt", systemPrompt); + args.push("--append-system-prompt", systemPrompt); } if (resumeSessionId) {