♻️ refactor(vscode): 续聊里的原型段落搬进模板文件

那段正文原先拼在 prompts.ts 里,设置面板看不到也改不了。现在落到
prompts/brainstorm-continue-prototype.md,面板「提示词」组多一项「续聊·原型段落」,
占位符 {prototypeFile} / {issueNumber} / {prototypeSessionId};取值为空的整行会被
删掉,免得留下半句没有值的说明。

同时把措辞收紧:原型改动只能 ListAgents + SendMessage 给已开着的原型会话,
点名禁止派子代理 / fork 分身 / 自己动插件代码。

Claude-Session: https://claude.ai/code/session_01Kgmb1LvrPmFX3NoUDB4zZC
This commit is contained in:
cruldra committed 2026-09-15 00:28:58 +08:00
1 parent f9537abf97
commit 43a0bf6bad
10 files changed
+84 -17

No files matched your search

+1
View File
@@ -543,6 +543,7 @@ export function App() {
initialWebhookSecret={settings?.webhookSecret ?? ''}
initialBrainstormPrompt={settings?.brainstormPrompt ?? ''}
initialBrainstormContinuePrompt={settings?.brainstormContinuePrompt ?? ''}
initialPrototypeRefPrompt={settings?.prototypeRefPrompt ?? ''}
initialImplementPlanPrompt={settings?.implementPlanPrompt ?? ''}
initialAutoReview={settings?.autoReview ?? true}
initialReviewPrompt={settings?.reviewPrompt ?? ''}
@@ -22,6 +22,7 @@ interface SubmitValues {
webhookSecret: string
brainstormPrompt: string
brainstormContinuePrompt: string
prototypeRefPrompt: string
implementPlanPrompt: string
autoReview: boolean
reviewPrompt: string
@@ -78,6 +79,7 @@ export interface SettingsModalProps {
initialWebhookSecret: string
initialBrainstormPrompt: string
initialBrainstormContinuePrompt: string
initialPrototypeRefPrompt: string
initialImplementPlanPrompt: string
initialAutoReview: boolean
initialReviewPrompt: string
@@ -170,6 +172,7 @@ export function SettingsModal({
initialWebhookSecret,
initialBrainstormPrompt,
initialBrainstormContinuePrompt,
initialPrototypeRefPrompt,
initialImplementPlanPrompt,
initialAutoReview,
initialReviewPrompt,
@@ -214,6 +217,7 @@ export function SettingsModal({
const [webhookSecret, setWebhookSecret] = useState(initialWebhookSecret)
const [brainstormPrompt, setBrainstormPrompt] = useState(initialBrainstormPrompt)
const [brainstormContinuePrompt, setBrainstormContinuePrompt] = useState(initialBrainstormContinuePrompt)
const [prototypeRefPrompt, setPrototypeRefPrompt] = useState(initialPrototypeRefPrompt)
const [implementPlanPrompt, setImplementPlanPrompt] = useState(initialImplementPlanPrompt)
const [autoReview, setAutoReview] = useState(initialAutoReview)
const [reviewPrompt, setReviewPrompt] = useState(initialReviewPrompt)
@@ -260,6 +264,7 @@ export function SettingsModal({
setWebhookSecret(initialWebhookSecret)
setBrainstormPrompt(initialBrainstormPrompt)
setBrainstormContinuePrompt(initialBrainstormContinuePrompt)
setPrototypeRefPrompt(initialPrototypeRefPrompt)
setImplementPlanPrompt(initialImplementPlanPrompt)
setAutoReview(initialAutoReview)
setReviewPrompt(initialReviewPrompt)
@@ -354,6 +359,7 @@ export function SettingsModal({
webhookSecret: webhookSecret.trim(),
brainstormPrompt,
brainstormContinuePrompt,
prototypeRefPrompt,
implementPlanPrompt,
autoReview,
reviewPrompt,
@@ -1010,6 +1016,30 @@ export function SettingsModal({
/>
</Field>
<Field
label="续聊·原型段落"
hint={(
<>
工单挂了原型插件时,这段会填进续聊提示词的
<code>{'{prototypeRef}'}</code>
处。可用占位符:
<code>{'{prototypeFile}'}</code>
、
<code>{'{issueNumber}'}</code>
、
<code>{'{prototypeSessionId}'}</code>
(取值为空时,含该占位符的整行会被删掉)
</>
)}
>
<textarea
rows={8}
value={prototypeRefPrompt}
onChange={e => setPrototypeRefPrompt(e.target.value)}
className={`${inputClass} resize-y font-mono`}
/>
</Field>
<Field
label="实施提示词"
hint={(
+4
View File
@@ -40,6 +40,7 @@ export interface SettingsValues {
webhookSecret: string
brainstormPrompt: string
brainstormContinuePrompt: string
prototypeRefPrompt: string
implementPlanPrompt: string
autoReview: boolean
reviewPrompt: string
@@ -82,6 +83,7 @@ export interface SettingsOverlayState {
webhookSecret: string
brainstormPrompt: string
brainstormContinuePrompt: string
prototypeRefPrompt: string
implementPlanPrompt: string
autoReview: boolean
reviewPrompt: string
@@ -433,6 +435,7 @@ export function useIssues(): UseIssuesResult {
webhookSecret: values.webhookSecret,
brainstormPrompt: values.brainstormPrompt,
brainstormContinuePrompt: values.brainstormContinuePrompt,
prototypeRefPrompt: values.prototypeRefPrompt,
implementPlanPrompt: values.implementPlanPrompt,
autoReview: values.autoReview,
reviewPrompt: values.reviewPrompt,
@@ -928,6 +931,7 @@ export function useIssues(): UseIssuesResult {
webhookSecret: msg.webhookSecret,
brainstormPrompt: msg.brainstormPrompt,
brainstormContinuePrompt: msg.brainstormContinuePrompt,
prototypeRefPrompt: msg.prototypeRefPrompt,
implementPlanPrompt: msg.implementPlanPrompt,
autoReview: msg.autoReview,
reviewPrompt: msg.reviewPrompt,
+2
View File
@@ -104,6 +104,7 @@ export type ExtensionToWebview
webhookSecret: string
brainstormPrompt: string
brainstormContinuePrompt: string
prototypeRefPrompt: string
implementPlanPrompt: string
autoReview: boolean
reviewPrompt: string
@@ -189,6 +190,7 @@ export type WebviewToExtension
webhookSecret: string
brainstormPrompt: string
brainstormContinuePrompt: string
prototypeRefPrompt: string
implementPlanPrompt: string
autoReview: boolean
reviewPrompt: string