✨ feat(vscode): 自带提示词变了就问要不要换成新版

This commit is contained in:
cruldra committed 2026-10-04 10:01:41 +08:00
1 parent 12d9080248
commit 38d06153bb
7 files changed
+138 -54

No files matched your search

+7 -12
View File
@@ -19,7 +19,7 @@ import { seedCommitProfilePath } from '../cc/commitProfile'
import { listClaudeProfiles } from '../cc/profiles'
import { normalizeReleasePrefix } from '../git/release'
import { PREVIOUS_DEFAULT_REVIEW_PROMPT } from './previousReviewPrompt'
import { planDefaultPromptReplacement, planPromptMigration, planReviewPromptMigration, PREVIOUS_PROTOTYPE_PROMPTS } from './promptMigration'
import { planPromptMigration, planReviewPromptMigration } from './promptMigration'
/**
* Fallback prompt strings used when the on-disk markdown can't be read.
@@ -101,6 +101,11 @@ export interface Settings {
testPrompt: string
/** 原型会话首个提示词模板;常用 `{{issueNumber}}`。 */
prototypePrompt: string
/**
* 某一版自带提示词用户已经选过「使用新版」或「保留现有」。
* 键是提示词字段,值是那一版自带正文的摘要。正文再变就再问。
*/
promptDefaultChoices?: Record<string, string>
/** Day-to-day development branch (e.g. `main`). Jenkins doesn't watch it. */
devBranch: string
/**
@@ -524,17 +529,9 @@ export function migratePromptTemplates(ctx: ExtensionContext): MigrationNote[] {
PREVIOUS_DEFAULT_REVIEW_PROMPT,
readDefaultPrompt(ctx.extensionPath, 'review'),
)
let blob = review
const blob = review
? { ...(planned.blob ?? stored), reviewPrompt: review.prompt }
: planned.blob
const prototype = planDefaultPromptReplacement(
(blob ?? stored).prototypePrompt,
PREVIOUS_PROTOTYPE_PROMPTS,
readDefaultPrompt(ctx.extensionPath, 'prototype'),
'原型提示词还是旧的 Figma 插件技能,已换成通用的 ui-prototyping',
)
if (prototype)
blob = { ...(blob ?? stored), prototypePrompt: prototype.prompt }
if (!blob)
return []
const out: MigrationNote[] = []
@@ -556,8 +553,6 @@ export function migratePromptTemplates(ctx: ExtensionContext): MigrationNote[] {
out.push(...planned.notes)
if (review)
out.push(...review.notes)
if (prototype)
out.push(...prototype.notes)
if (planned.blob)
out.push({ level: 'info', message: '提示词模板已迁到 Handlebars' })
return out