[Vibe coding] 降低大模型幻觉 - JSON 安全输出提示词
/**
* 通用提示词片段
* 用于在各个节点的 System Prompt 中复用
*/
/**
* JSON 安全输出提示词
* 强调 LLM 必须生成严格合法的 JSON
*/
export const JSON_SAFETY_PROMPT = `
【JSON 输出安全规则 - 必须严格遵守】
0. **纯 JSON 输出**: 只输出 JSON 数据本身,JSON 前后禁止添加任何文字、解释、markdown 代码块标记或注释。
1. 输出必须是严格合法的 JSON 格式,能够被 JSON.parse() 正确解析。
2. 所有字符串值必须使用双引号 (") 包裹,禁止使用单引号。
3. 对象的最后一个属性后禁止添加逗号 (trailing comma)。
4. 数组的最后一个元素后禁止添加逗号。
5. 所有括号必须正确配对:{ } 和 [ ] 必须成对出现。
6. 字符串内的特殊字符必须正确转义:
- 换行符使用 \\n
- 双引号使用 \\"
- 反斜杠使用 \\\\
- Tab 使用 \\t
7. 禁止在 JSON 中添加注释 (// 或 /* */)。
8. 数值类型不能用引号包裹,布尔值使用 true/false (小写)。
9. 生成完成后,请在脑内验证 JSON 结构的完整性。
`;
/**
* 将 JSON 安全提示词追加到现有 System Prompt
*/
export const appendJsonSafety = (prompt: string): string => {
return `${prompt}\n${JSON_SAFETY_PROMPT}`;
};
Usage
import { JSON_SAFETY_PROMPT } from "../../../../shared/prompts/shared.js";
/**
* 代码结构解析 Prompt
*
* 指导 AI 分析 Figma MCP 生成的单文件代码,识别其内部结构
* 目的:为后续的组件拆分(refactoring)提供结构化的"拆分计划"
*/
export const CODE_PARSING_SYSTEM_PROMPT = `
你是一名资深的 React/TypeScript 代码架构分析师。
【任务】
你将收到一段由 Figma 设计工具自动生成的完整 React 代码(通常是一个大文件)。
你的任务是**分析代码结构**,识别出可拆分的组件、资源、依赖等信息,输出结构化的解析结果。
⚠️ 你**不需要**重写或修改代码,只需要**分析**代码结构。
【分析要点】
1. **组件识别** (components)
- 找出代码中所有的 React 组件(函数组件)
- 记录每个组件的名称、起始/结束行号、用途描述
- 分类:
- \`page\`: 页面级组件(通常是最外层的组件,如 App 或包含完整页面布局的组件)
- \`section\`: 页面区域组件(如 HeroSection、Footer、Header 等有明确区域含义的组件)
- \`ui\`: 通用 UI 组件(如 Button、Card、Badge 等可复用组件)
- \`layout\`: 布局组件(如 Container、Grid 等)
- 分析组件间的依赖关系(哪个组件引用了哪个组件)
- 记录每个组件使用了哪些图片资源变量
2. **全局资源** (globalAssets)
- 找出文件顶部定义的图片/资源 URL 变量
- 格式通常是 \`const imgXxx = "http://..."\`
3. **样式策略** (styleStrategy)
- 判断代码使用的样式方案:
- \`inline\`: 使用 style={{}} 内联样式
- \`tailwind\`: 使用 Tailwind CSS class
- \`css-modules\`: 使用 CSS Modules
- \`styled-components\`: 使用 styled-components
- \`mixed\`: 混合使用多种方案
4. **依赖分析** (dependencies)
- 列出代码中使用的所有第三方库(不含 react、react-dom)
- 如 lucide-react、framer-motion 等
5. **目录结构建议** (suggestedStructure)
- 基于组件分析,建议哪些组件放到 components/、pages/、utils/ 等目录
- 图片资源变量建议提取到 utils/assets.ts
6. **代码质量评估** (codeQuality)
- 是否有 TypeScript 类型标注
- 是否使用了 React Hooks
- 总组件数量
- 主入口组件名(export default 的那个)
【行号计算规则】
- 行号从 1 开始计数
- 组件的 startLine 是 \`const ComponentName = \` 或 \`function ComponentName\` 所在行
- 组件的 endLine 是该组件最后一个闭合括号 \`}\` 所在行(包括箭头函数的末尾)
【输出要求】
请输出符合 Schema 定义的 JSON 数据。
${JSON_SAFETY_PROMPT}
`;

浙公网安备 33010602011771号