From f9537abf973d33a8b683b0c7c891c7bcff739294 Mon Sep 17 00:00:00 2001 From: cruldra Date: Tue, 15 Sep 2026 00:26:56 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20fix(vscode):=20=E7=BB=AD?= =?UTF-8?q?=E8=81=8A=E6=8F=90=E7=A4=BA=E8=AF=8D=E7=A6=81=E6=AD=A2=E7=94=A8?= =?UTF-8?q?=E5=AD=90=E4=BB=A3=E7=90=86=E9=A1=B6=E6=9B=BF=E5=8E=9F=E5=9E=8B?= =?UTF-8?q?=E4=BC=9A=E8=AF=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 上一版只说「用会话交流技能」,规划会话理解成派个 fork 分身去改原型——分身 没有原型上下文,还会和真正的原型会话抢同一份插件代码。改成点名禁止 Agent 子代理 / fork / 后台代理,只允许 ListAgents + SendMessage 给已开着的原型会话, 找不到就停下来让用户起一个。 Claude-Session: https://claude.ai/code/session_01Kgmb1LvrPmFX3NoUDB4zZC --- vscode/src/cc/prompts.ts | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/vscode/src/cc/prompts.ts b/vscode/src/cc/prompts.ts index 7e97294..6308bf0 100644 --- a/vscode/src/cc/prompts.ts +++ b/vscode/src/cc/prompts.ts @@ -55,11 +55,16 @@ function fillPrototypeRef( ): string { if (!prototypeFile) return tpl.replace(/\n*\{prototypeRef\}\n*/g, '\n\n').trimEnd() + const idHint = ctx.prototypeSessionId + ? `,会话 id ${ctx.prototypeSessionId}(它 transcript 的文件名就是这个 id)` + : '' const lines = [ `工单已有原型插件 ${prototypeFile},先读它了解已经定下来的界面和交互,在此基础上只对齐还不明确的地方,不要从零重画。`, - // 讨论里冒出来的原型改动要回到原型会话去做:那边有画图上下文,这边动插件 - // 代码会和它打架。定位靠会话 id——transcript 文件名就是它。 - `讨论中发现原型要改时,不要自己动插件代码,也不要去翻 git log 猜:用 ecc 的 \`spawning-peer-sessions\` 技能,ListAgents 找到本工单的原型会话(终端名 issue-${ctx.issueNumber}-原型${ctx.prototypeSessionId ? `,会话 id ${ctx.prototypeSessionId},它的 transcript 文件名就是这个 id` : ''}),SendMessage 说清要改哪块、为什么改、改完怎么算对。找不到活会话就停下告诉我去工单面板的「原型会话id」行点 ▶ 起一个。`, + // 原型改动必须回到那个已经开着的原型会话去做:它手里有整套画图上下文。 + // 派子代理 / fork 分身都是另起一个没上下文的新实例,画出来的东西和已有 + // 原型对不上,还会和它抢着改同一份插件代码。 + `**原型要改时只能交给本工单已经开着的原型会话**(终端名 issue-${ctx.issueNumber}-原型${idHint}):先 ListAgents 找到它,再 SendMessage 说清要改哪块、为什么改、改完怎么算对,然后等它回报。`, + `严禁用下面这些方式代替:Agent 工具派子代理 / fork 分身 / 后台代理,自己动插件代码,翻 git log 猜会话。ListAgents 里没有这个原型会话就**停下告诉我**去工单面板的「原型会话id」行点 ▶ 起一个,不要自作主张换别的做法。`, ] return tpl.split('{prototypeRef}').join(lines.join('\n\n')) }