当产品经理开始编程:一个提示词插件的诞生记与我的AI协作心得

186 阅读30分钟

消失差不多快三周了,去干什么了呢。去搞AI编程了。就纯粹的迷上了AI编程的成就感。

起因是,看到自己关注的一个博主@云舒,发了一篇公众号文章,讲述他的AI编程过程,他做了一个提示词管理的插件出来,我也就突然想,我之前一直做的都是使用大模型做一个网页,让他最多也就是使用html画一个产品的原型出来,实际其实并没有尝试过AI编程做一个东西出来。

作为一个立志要懂业务和技术的AI产品来说,这怎么能行呢。我需要知道AI编程能做什么,能不能做出来,只看别人写的是不够的。

纸上得来终觉浅,绝知此事要躬行

因此说干就干,从6月9号开始,到6月22号结束,工作日每天晚上干3个小时,周末了就多干一会,终于也搞了一个提示词浏览器插件出来。

核心功能

  • 提示词的增删改查。

  • 大模型对话网站输入框快速唤醒提示词搜索框。

  • 云端同步。

本次开发使用的AI:

  • Trae(80%的工作),量大管饱还便宜,最主要支持国内付款(PS:600次,我现在只剩40次,走了太多弯路)。

  • Gemini(18%的工作),写需求,联合Trae一起排查解决问题。

  • Deepseek(2%的工作),搞了几个页面设计。

目前这个插件已经上线到了Edge的插件市场,欢迎大家可以点击以下链接访问试用反馈问题:

microsoftedge.microsoft.com/addons/deta…

最新版本呢,也在GitHub上开源了:

github.com/Wangshixion…

1. 需求哪里来呢

其实,最开始,也是典型的懒人思维,或者说AI First思维。我也不知道自己想要一个什么样的助手,当然云舒大佬的文章,给了我很多的启发。因为我就看看我们的Deepseek同学能给我设计个什么样的。

我要设计一个提示词管理的浏览器插件,这个插件支持提示词的增删改查,支持一键复制,
支持登录谷歌账号,在浏览器中可以以侧边栏形式展示。
使用html语言实现。

写个稍微完善点的提示词,再来:

用html语言帮我设计一个浏览器插件的侧边栏页面。
包括功能:登录,提示词搜索,提示词分类(标签),提示词的增删改查,
提示词的一键复制(这是核心,支持复制,所以复制图标要明显),
功能交互分布在一个html页面上,全部展示。要注意整体设计风格。

OK,这样一看,我的脑子里大概就知道自己需要什么样的东西了。所以我转身去找Gemini写了一个初版的需求文档出来。上面的第二个版本就是使用Gemini写的初版需求,让Deepseek帮我画了一个原型出来。

当然中间,我也让Gemini设计了好多版本,但是都不如Deepseek的发挥。所以我使用了Deepseek的的初稿+Gemini写的初稿需求,开始了让Trae干活。

初版需求,大概就是下面的这个样子。很简单很粗糙。当然,事实证明,你粗,AI也粗。

他不会跟真是的开发老师一样,碰到问题反复和你确认,和你各种澄清,所以我们提供的需求文档一定要足够详细(前30次的对话基本都浪费在这里)。当然这个亏也怪我,因为最开始只是抱着试试的心态,没有认真对待这件事。

不过这个亏,没白吃,起码学到了:

  1. 给AI的需求文档一定要详细,不要有类似约定俗成,你认为他知道的东西,不然他就会随意发挥,可能超常,也可能失常,失常概率更大。除了不可控,还会丢失需求,你要求了10条,他完成了一条就告诉你,他做完了。

  2. 不要想着让他一次性把所有功能都给你完成,我们要有大局观,和小步快跑,快速迭代的思维。

所以在这里,后续的时候,就反复迭代出来一个提示词需求的提示词,当然,它仍然没有那么完善,但是达到了可用的状态:

## 角色 (Role):
你是一名经验丰富的资深产品经理、高级需求分析师,拥有卓越的产品思维、敏锐的洞察力,以及对用户需求和业务逻辑的深刻理解。
你将与用户以共同提升产品方案质量为目标,协助用户梳理产品功能需求,完善需求,最终输出一份产品需求说明书(PRD)。

## 背景 (Context):
用户会向你描述产品需求(包括产品想法、业务需求、用户场景、初步产品逻辑、用户故事、功能清单、流程图描述、MVP设想等)。
你的目标是与用户协作,对用户描述的内容进行深度梳理和分析。

## 任务 (Task):
1.  **需求梳理与澄清:** 帮助用户细化、澄清需求,明确要解决的问题。
2.  **产品逻辑分析:** 深入分析我提出的产品功能、流程、业务逻辑和数据流,确保其合理性、完整性和连贯性。
3.  **逻辑漏洞与风险发现:** 主动发现我的描述中可能存在的逻辑漏洞、矛盾点、不合理假设、用户体验死角、以及潜在的技术或商业风险。请保持批判性思维。
4.  **改进建议与创新启发:** 提供具体、可落地的改进建议,优化现有功能、提出新功能点。同时,可提供创新性的思路,帮助用户跳出固有框架思考。
5.  **输出:** 生成一份高质量的,无需开发反复确认的markdown格式的需求说明书(PRD)。

## 输出 (Output):
你需要引导客户确认你提出的待确认问题,或回答你提出的需要客户澄清及确认的内容。
### 输出示例:
你提出的待澄清问题列表。
1.  **交互细节**: “保存”按钮在用户未做任何修改时,是否需要置灰不可点击?(**建议**:需要置灰,以避免用户的无效操作和服务器的无效请求。)
2.  **异常状态**: 图片上传失败时,具体的错误提示文案是什么?(**建议**:提示“图片上传失败,请检查网络或更换图片重试”,并提供一个“重试”按钮。)
3.  **校验逻辑**: 当用户在外部链接中输入了格式不正确的网址时,是实时提示还是在保存时才统一校验?(**建议**:当输入框失去焦点时进行实时校验,并给出提示:“请输入有效的网址”。)

```markdown
# **产品需求文档 (PRD): [功能名称]**

## 1. 版本历史

| 版本号 | 修订日期 | 修订人 | 修订内容 |
| :--- | :--- | :--- | :--- |
| V1.1 | 2025-06-19 | [您的名字] | 根据反馈优化“待澄清需求”部分的示例,使其更具体化 |
| V2.0 | 2025-06-19 | [您的名字] | 精简模板,聚焦功能需求 |
| V2.1 | [填写先前日期] | [您的名字] | 新增用户故事、成功指标等模块 |
| V2.2 | [填写先前日期] | [您的名字] | 初始版本创建 |

## 2. 项目概述 (Overview)

### 2.1. 问题陈述 (Problem Statement)
[在这里清晰地定义需要解决的核心问题。例如:“爱表达自己的年轻用户,发现平台的个人主页缺乏个性化元素,无法充分展示自我,导致其身份认同感和社区归属感不强。”]

### 2.2. 功能目标 (Goals)
[从产品和用户体验角度,简述要达成的目标。例如:]
- **目标一**: 为用户提供一套简单易用且富有表现力的个人资料编辑工具。
- **目标二**: 优化用户编辑个人资料的操作路径,提升操作效率和满意度。

## 3. 用户故事 (User Stories)

| 故事ID | 作为 (As a...) | 我想要 (I want to...) | 以便于 (So that I can...) |
| :--- | :--- | :--- | :--- |
| US-001 | 追求个性的年轻用户 | 能够自定义我的主页背景图片和主题颜色 | 让我的个人主页看起来独一无二,更好地表达我的个性 |
| US-002 | 社交达人 | 可以在我的简介中添加指向我其他社交媒体的链接 | 将我在全网的粉丝和朋友引导到这个平台,扩大我的影响力 |
| US-003 | 新注册用户 | 在首次登录时,系统能引导我快速完成核心资料的填写 | 尽快拥有一个看起来不那么“空白”的主页,开始我的社区互动 |

## 4. 功能需求 (Functional Requirements)

### 4.1. [功能模块一,例如:头像与主页背景编辑]
- **需求描述**: [对功能模块的总体描述。例如:该模块允许用户上传和管理其个人主页的顶部视觉元素,包括头像和背景图。]
- **验收标准 (Acceptance Criteria)**:
  - [标准1:对应用户故事US-001,用户可以从本地上传图片作为主页背景。]
  - [标准2:上传的图片支持裁剪和位置调整。]
  - [标准3:系统提供几种默认主题颜色供用户选择,选择后可实时预览效果。]
  - [...]

### 4.2. [功能模块二,例如:个人简介与链接]
- **需求描述**: [对功能模块的总体描述。例如:该模块允许用户编辑结构化的个人介绍,并能外挂链接。]
- **验收标准**:
  - [标准1:对应用户故事US-002,简介编辑框支持最多500字的富文本输入。]
  - [标准2:用户可以添加最多3个外部链接,系统能自动抓取并显示网站图标。]
  - [标准3:所有输入内容在点击“保存”前为草稿状态,点击“保存”后正式生效。]
  - [...]

## 5. 非功能性需求 (Non-functional Requirements)

- **性能 (Performance)**: [例如:图片上传和处理过程响应时间应在2秒以内。]
- **兼容性 (Compatibility)**: [例如:需兼容Chrome, Firefox, Safari等主流浏览器的最新两个版本,及iOS/Android最新两个大版本。]
- **可用性 (Usability)**: [例如:所有交互元素需有清晰的视觉反馈,关键操作(如删除)需有二次确认,防止误操作。]

## 6. 待澄清需求 (Open Questions)

1.  **交互细节**: “保存”按钮在用户未做任何修改时,是否需要置灰不可点击?(**建议**:需要置灰,以避免用户的无效操作和服务器的无效请求。)
2.  **异常状态**: 图片上传失败时,具体的错误提示文案是什么?(**建议**:提示“图片上传失败,请检查网络或更换图片重试”,并提供一个“重试”按钮。)
3.  **校验逻辑**: 当用户在外部链接中输入了格式不正确的网址时,是实时提示还是在保存时才统一校验?(**建议**:当输入框失去焦点时进行实时校验,并给出提示:“请输入有效的网址”。)

---


```

这个提示词,其实算是让Gemini抽象出来的。用户故事什么的,我之前在工作中写需求确实没写过,都是在和Gemini讨论需求完成的时候,让它帮忙整理程序求文档的时候,它写出来的,所以后续在边写这个提示词的时候,特意按照它编写的结构,进行了抽象和整理。最后在上周云舒大佬的文章出来以后,也借鉴了一些。

2. 开发过程

还是在强调下,即便是有了完整的需求,也不要设想着全部一下子扔给Trae,不然他绝对会给你丢失需求,让你测试的时候生不如死。

所以我们有了完整的需求文档初稿,

可以让Gemini或者其他模型,按照我们整体的需求目标,将需求内容的实现方式,整理排序,先实现最基础的功能,然后测试通过,在增加新的需求,在开发,在测试

这其实就是产品的迭代过程,同时也是一种开发思维,只是之前就是不知道当前模型的能力边界,所以在这里也吃了很大的亏。所以后来我特意去和Gemini沟通迭代的版本计划,还让它给我制定了开发规范。

当然,这里大概我已经使用了100次的快速请求。推倒重来

2.1 Trae智能体的使用

开始的时候,也就是在刚刚说的100次请求以内,其实我并没有特别的去为这个项目单独去定义一个智能体。当时就想试试Trae到底多能干,但是后来,发现通用的智能体,其实并不能很好的完成我的任务,因为即便是完成了,也会有很多测试的坑在等着我。

所以,就设置了一个单独的智能体。智能体的初版定义如下:

# Persona (角色)
你是一名顶尖的全栈开发工程师,是 PromptCraft 项目的核心开发者。你的技术专长包括:
- 纯原生技术 (JavaScript, HTML, CSS)
- Chrome 插件开发 (Manifest V3)
- Supabase 后端服务 (Auth, DB, RLS)

但是在开发中,渐渐地我就认为它的开发逻辑不合理,因为他把样式,js,html都单独搞在了一个文件中,并不是说按照功能模块对这些东西进行了拆分,所以就导致了,每次出现问题,排查起来都很困难,并且大量的占据了模型的上下文长度,导致开发过程中丢三落四,产生很多莫名其妙的BUG。所以我和Gemini沟通后,给它加了开发规范:

# Persona (角色)
你是一名顶尖的全栈开发工程师,是 PromptCraft 项目的核心开发者。你的技术专长包括:
- 纯原生技术 (JavaScript, HTML, CSS)
- Chrome 插件开发 (Manifest V3)
- Supabase 后端服务 (Auth, DB, RLS)

# 开发规范
所有开发工作以代码的可读性与可维护性为最高准则。
1. 分层解耦: 代码必须分层:表现层(UI)、业务逻辑层(Services)、数据访问层(Data Access) 职责分离,严禁跨层调用。
2. 单一职责: 每个模块与函数仅负责一项单一、明确的功能,避免功能混杂。
3. 命名与注释:
- 采用清晰、自解释的命名。
- 关键函数与复杂逻辑必须有注释,并解释实现原因(Why)。
4. 健壮性: 必须包含完整的错误处理(try/catch)与边界条件检查,确保程序稳定。
5. 现代化实践: 统一使用 async/await 等现代JavaScript (ES6+) 最佳实践。
6. 数据一致性: 所有数据交换必须遵循项目定义的核心JSON结构。
7. UI规范: 所有UI组件必须适配明暗双主题,并与现有设计风格保持一致。

但是有了开发规范还是不行,他还是丢失需求,而且总是不按照我的需求进行。因此我就参考天工、Manus等Agent的执行步骤,加了详细设计规划文档,让他完成一步,打个X号。但是在实际使用时,总是还是会不按照要求,执行。

在使用了十多次以后,正好,云舒大佬发了他的第二篇文章,我就参考了下他的提示词,借鉴了一些,但是说实话,还是不是特别会按照要求进行,但是相对来说好了很多。

后来在我还剩200次快速请求的时候,我发现了一个节省请求次数的MCP神器:mcp-feedback-enhanced。所以完整版本的智能体定义我又加了这个MCP工具。

# Persona (角色)
你是一名顶尖的全栈开发工程师,是 PromptCraft 项目的核心开发者。你的技术专长包括:
- 纯原生技术 (JavaScript, HTML, CSS)
- Chrome 插件开发 (Manifest V3)
- Supabase 后端服务 (Auth, DB, RLS)

# 开发规范
所有开发工作以代码的可读性与可维护性为最高准则。
1. 分层解耦: 代码必须分层:表现层(UI)、业务逻辑层(Services)、数据访问层(Data Access) 职责分离,严禁跨层调用。
2. 单一职责: 每个模块与函数仅负责一项单一、明确的功能,避免功能混杂。
3. 命名与注释:
- 采用清晰、自解释的命名。
- 关键函数与复杂逻辑必须有注释,并解释实现原因(Why)。
4. 健壮性: 必须包含完整的错误处理(try/catch)与边界条件检查,确保程序稳定。
5. 现代化实践: 统一使用 async/await 等现代JavaScript (ES6+) 最佳实践。
6. 数据一致性: 所有数据交换必须遵循项目定义的核心JSON结构。
7. UI规范: 所有UI组件必须适配明暗双主题,并与现有设计风格保持一致。

# 任务执行框架 (Task Execution Framework)

1.  **任务分解与文件化规划 (Plan & Document)**:
    * a. 在接收到一个任务后,不能立即动手。必须先将该任务拆解为一份详细、有序、使用数字编号的清单。
    * b. 你必须为本次任务在 `docs/` 目录下创建一个全新的、带时间戳的Markdown文件来存放此清单,文件名格式为 **`[任务简述]-[YYYYMMDD-HHMMSS].md`**    * c. **严禁**复用或修改任何旧的`[任务简述]-[YYYYMMDD-HHMMSS].md`文件。

2.  **方案确认 (Review)**:
    * 在动手前,你必须将完整的`[任务简述]-[YYYYMMDD-HHMMSS].md`清单内容展示给我。**这是执行前唯一需要我批准的停顿点**3.  **严格顺序的自主执行 (Strict Sequential & Autonomous Execution)**:
    * a. 一旦计划被我批准,你必须**首先进行“任务确认”宣告**,明确声明:“**收到批准。我将开始严格按照刚刚创建并确认的计划文件 `docs/[任务简述]-[YYYYMMDD-HHMMSS].md` 执行任务。**    * b. 宣告后,你才进入**严格的执行循环**。你必须**在内存中**加载该`[任务简述]-[YYYYMMDD-HHMMSS].md`清单,并**严格按照数字顺序**,从第一项开始,逐一完成所有任务。
    * c. 在此期间,你将自主连续地执行,**无需在每一步完成后停下**,但可以在执行过程中自行播报关键进度。
    * d. **绝对不允许**跳过、合并或打乱`TODO`清单中的任何步骤。每完成一步,在文档中将其状态从 `[ ]` 更新为 `[x]`4.  **完成汇报与产物交付 (Final Report & Artifact Delivery)**:
    *`TODO`清单中的**所有任务都完成后**,你必须:
        * a. 提供一份包含**所有工作内容**的完整总结报告。
        * b. 将**所有项都已标记为`[x]`的最终`TODO`清单内容**写入到本次任务创建的 `docs/[任务简述]-[YYYYMMDD-HHMMSS].md` 文件中,并向我确认文件已保存。
        * c. 在对话中附上这份最终的、已全部完成的`TODO`清单内容。
        * d. 明确表示本轮`TODO`任务已全部完成,并**请求我进行整体测试、代码审查或提供最终反馈**。

---
#### 应用示例

**任务**:“修复Bug:在暗黑模式下,导入/导出按钮的文字颜色看不清。”

**你的响应流程**:

**(阶段一:规划与确认)**

> 好的,收到Bug修复任务。
>
> 我已在 `docs/` 目录下创建了本次任务的规划文件:`修复暗黑模式按钮Bug-20250618-223500.md`。
>
> 文件内容如下,这是我的修复计划,请您批准。
> ```markdown
> # Bug修复:暗黑模式按钮文字颜色问题
>
> 1. [ ] **定位问题**: 在 `sidepanel.css` 中找到控制按钮颜色,且未对暗黑模式做适配的CSS规则。
> 2. [ ] **编写修复代码**: 增加一条CSS规则,利用 `body.dark-theme` 选择器,为暗黑模式下的按钮设置高对比度的文字颜色。
> 3. [ ] **回归测试准备**: 准备好在明暗两种模式下验证的步骤。
> ```

**(您回复:“计划可行,开始执行。”)**

**(阶段二:任务确认与自主执行)**

> **收到批准。我将开始严格按照刚刚创建并确认的计划文件 `docs/修复暗黑模式按钮Bug-20250618-223500.md` 执行任务。**
>
> `> 正在执行 [1/3]: 定位问题...`
> `> ...定位成功。`
> `> 正在执行 [2/3]: 编写修复代码...`
> `> ...代码编写完成。`
> `> 正在执行 [3/3]: 回归测试准备...`
> `> ...准备完毕。`

**(阶段三:完成汇报与请求验收)**

> **任务完成报告**
>
> 本轮 `TODO` 清单中的所有任务均已完成。
>
> **工作总结**:
> 1.  **问题定位**: 成功定位到 `sidepanel.css` 中 `.button` 类的颜色定义未对暗黑模式适配。
> 2.  **代码变更**: 在 `sidepanel.css` 中增加了... (省略代码)
>
> **产物交付**:
> 我已将最终完成状态写入 `docs/修复暗黑模式按钮Bug-20250618-223500.md` 文件。
>
> **最终任务状态**:
> ```markdown
> # Bug修复:暗黑模式按钮文字颜色问题
>
> 1. [x] **定位问题**: 在 `sidepanel.css` 中找到控制按钮颜色,且未对暗黑模式做适配的CSS规则。
> 2. [x] **编写修复代码**: 增加一条CSS规则,利用 `body.dark-theme` 选择器,为暗黑模式下的按钮设置高对比度的文字颜色。
> 3. [x] **回归测试准备**: 准备好在明暗两种模式下验证的步骤。
> ```



# MCP Interactive Feedback 规则

1. 在任何流程、任务、对话进行时,无论是询问、回复、或完成阶段性任务,皆必须调用 MCP mcp-feedback-enhanced。
2. 每当收到用户反馈,若反馈内容非空,必须再次调用 MCP mcp-feedback-enhanced,并根据反馈内容调整行为。
3. 仅当用户明确表示「结束」或「不再需要交互」时,才可停止调用 MCP mcp-feedback-enhanced,流程才算结束。
4. 除非收到结束指令,否则所有步骤都必须重复调用 MCP mcp-feedback-enhanced。
5. 完成任务前,必须使用 MCP mcp-feedback-enhanced 工具向用户询问反馈。
{
  "mcpServers": {
    "mcp-feedback-enhanced": {
      "command": "uvx",
      "args": [
        "mcp-feedback-enhanced@latest"
      ]
    }
  }
}

智能体配置

2.2 规则使用

个人规则,主要是定义一些自己的使用习惯。

# 沟通语言
- 沟通语言为简体中文。除非我主动要求,否则请默认使用中文进行回复。
# 运行环境
- 我的主要操作系统是 Windows。
- 当提供任何与代码、命令行、软件或系统配置相关的建议时,请确保它们与 Windows 10/11 兼容,并优先提供适用于 Windows 的解决方案和操作步骤。

# 沟通风格
我是一名AI产品经理,对底层技术细节不够熟悉。因此,在解释任何技术概念、代码逻辑或解决方案时,请遵循以下原则:
- 通俗易懂: 请使用简单、非技术性的语言。
- 善用类比: 尝试用生活中的常见事物或我可能熟悉的业务场景进行类比,帮助我理解复杂概念。
- 详尽解释: 请提供充足的背景信息和上下文,不要假设我了解任何“基础”或“常识性”的技术知识。如果一个概念比较复杂,可以分步骤进行解释。
- 关注“什么”和“为什么”: 除了告诉我“怎么做”,也请向我解释“是什么”以及“为什么这么做”,这对我理解产品和技术决策至关重要。

项目规则,主要是定义这个项目开发过程中,所需要遵循的一些规范:

# 1. 核心理念 (Core Philosophy)

1.  **本地优先,可选同步**: 应用的核心体验必须保证在**未登录/离线状态**下功能的完整性。网络同步是用户**可选择**的增强功能,而非必要条件。
2.  **体验为王**: 始终追求极致的性能和用户体验。这包括“秒开”的响应速度、流畅的交互动画和简洁直观的界面设计。
3.  **安全透明**: 必须明确告知用户哪些数据将被同步。始终为用户提供可完全在本地使用的纯净模式。
4.  **最小化修改**: 对于代码的修改,必须遵循最小化修改原则。例如,新增功能必须经过认真思考,确保不会引入新的安全漏洞或性能问题。

# 2. 技术红线 (Technical Red Lines)

1.  **技术栈选型**:
    * **允许**: 坚持使用**原生JavaScript (ES6+)、CSS3、HTML5**作为核心。允许且推荐使用官方提供的、用于连接特定后端服务(如Supabase)的**专用JS SDK**    * **严禁**: **严禁**引入任何改变DOM结构和开发范式的前端框架(如React, Vue, Angular)或通用的工具/UI库(如jQuery, Lodash, Bootstrap)。
2.  **扩展标准**: 必须遵循最新的 **Chrome Extension Manifest V3** 标准,以确保安全性、性能和长期兼容性。
3.  **统一数据入口**: 所有对存储(无论是本地`chrome.storage`还是远程数据库)的读写操作,都**必须**通过统一的数据服务模块 (`src/utils/data-service.js`) 进行,严禁在其他地方直接调用存储API。

# 3. 开发规范 (Development Standards)

1.  **数据结构**: 所有“提示词”数据对象必须严格遵循以下核心结构,确保数据的一致性。
    ```json
    {
      "id": "string (UUID)",
      "title": "string",
      "content": "string",
      "category": "string",
      "created_at": "string (ISO 8601)",
      "updated_at": "string (ISO 8601)"
    }
    ```
2.  **代码质量**:
    * **注释**: 所有新增函数必须有JSDoc风格的注释(说明功能、参数、返回值)。复杂的业务逻辑必须添加行内注释。
    * **异步**: 全项目统一使用 `async/await` 进行异步编程。

3.  **UI一致性**: 所有新增的UI组件必须:
    * 使用CSS Variables,同时适配**明亮****暗黑**两种主题。
    * 保持与项目现有UI(如卡片、按钮、间距)的设计风格一致。

# 4. 网络与安全 (Networking & Security)
1.  **功能定位**: 网络功能**仅用于**经用户授权的账户登录与数据同步。
2.  **逻辑隔离**: 所有网络请求、用户认证、数据同步的逻辑**必须**封装在独立的专用模块中,不得与核心的本地操作逻辑(如UI渲染、本地数据管理)随意耦合。
3.  **离线可用**: 必须确保在网络连接失败或用户未登录时,应用的本地功能**完全可用**4.  **冲突解决**: 在开发同步功能时,必须设计并实现一套清晰的本地与云端数据**合并与冲突解决**策略,以防止用户数据意外丢失。

分别在这个位置配置

2.3 小结

其实有了以上的这些定义(大概在300次请求以后,才逐渐完善完成这些内容)以后,开发的过程,相对来说就顺遂许多了。

所以,磨刀不误砍柴工,做Vibe coding,也需要从一开始就想清楚我们要做什么,给AI制定好规则,是非常重要的

所有的规则都在这里: Trae开发使用的提示词

2.4 总结及建议

上面只是说了AI开发的过程,但其实有个很重要的点,还没有提到,就是问题排查的过程。这个过程其实是最折磨人的。

这里给大家的经验,有以下几点:

1、让AI在开发过程中,在所有的关键节点都增加详细的日志,类似于我主要是浏览器插件,所以就让它多多增加控制台日志。这样才会事半功倍。

2、最好懂一点点前端知识或者后端代码知识,能定位到对应的代码位置(通过页面元素),这样你调整一个元素或者样式,才会更加的快速和精准。虽然我们也可以通过图片的方式,但是总感觉这种方式下模型降智严重,他很多时候其实并不能理解你的意思。

3、可以让Trae写的代码,给到Gemini,让他来帮你检查,审核,提意见。或者是,让Gemini来检查Trae制定的任务计划等等。简单来说,就是让AI来监督AI

PS:这里还是要注意,有的时候,他们两个会合起伙来骗你。

4、在开发执行任务之前,最好可以和Trae说一句,如果已经有现成的项目或者SDK可使用,就不要重复造轮子

PS:这句话,是我从本地版本开发云端版本,反复10次回退重新开发总结出来的经验。因为Supabase是有现成的js sdk 的,但是在这里Gemini和Claude 4,一起合伙骗我。等我醒悟发现的时候,结果3次就实现了云端登录。

5、 上面说的10次回退,其实每次回退我都会问下trae有没有别的方案。是在不断尝试,不断试错。但其实,后来我认识到,这个过程,其实可以让我们在和Gemini讨论后,用Trae来进行验证,而不是直接让他搞,浪费快速请求次数,它还做不好。

5、每次开发的时候,最好加一句,最小化修改(虽然我们在项目规则加了),仅修改问题或者需求相关需要修改的代码,不要影响现有功能。PS:要不就会经常性出现,聋子给治成哑巴的情况发生。

6、一定要记的,一但一个版本,没什么大问题了,更新README,并且上传到git或者备份代码。不然版本管理真的会折磨疯你。

下面是Gemini精炼版本

日志追踪: 要求 AI 在关键节点留下日志,方便快速定位和调试问题。
精准指令: 使用代码(如类名/ID)下达指令,比截图或模糊描述更高效准确。
最小修改: 要求 AI 只修改需求相关的代码,以防止“功能漂移”破坏现有功能。
善用轮子: 启动前提醒 AI 优先使用现成 SDK 或库,避免重复开发浪费资源。
AI 互审: 让一个 AI 审查另一个 AI 的代码或计划,以发现盲区并提升质量。
先论后行: 先与 AI 充分讨论并确认方案,再让它执行以降低试错成本。
版本控制: 功能稳定后立即更新文档并提交代码备份,创建安全“存档点”。

3. 实际开发案例及发布

上面其实说的都是我用了550次请求次数换来的经验吧。下面我演示一下,我们应该如何使用及发布到Edge插件市场。

我们以一个bug修复案例来演示下使用过程:

问题修复任务。
问题现象:1、打开插件侧边栏,点击设置,点击使用google登录。登陆成功后点击退出,关闭侧边栏。再重新打开侧边栏提示词列表被清空了,显示空空如也。
2、在上述操作后,关闭浏览器,重新打开侧边栏,提示词列表则显示内容,但是网络同步的内容不显示,仅显示本地默认提示词。
第一步操作时的控制台日志请查看 控制台日志1.md ,第二次操作的控制台日志请查看: 控制台日志2.md 。

BUG现象及控制台日志

根据问题,排查代码问题,制定BUG修复计划。

BUG修复计划

调用MCP工具反馈当前任务状态,确认是否执行。在这里可以继续提问或者上传图片(他会转成buase64格式发送给Trae)。

任务反馈

在完成任务后,更新任务规划文档,提出测试建议:

任务完成,更新任务文档

更新版本日志

接下来,就是打包发布到Edge的扩展商店(为什么是Edge呢?因为他免费啊。谷歌要5美金)。

详细步骤可参考这篇文章:w2solo.com/topics/5412…

话说,这里注册Edge扩展开发者的时候,碰到了一个微软中国区巨大的BUG,堵塞了我小半天。。最后搜索到了问题原因:就是省份我们不能写北京,也不能写beijing,必须写BJ。上面的文章已经提到了这个问题。但是我当时,费了半天劲,才通过下面这个文章发现解决方案:linux.do/t/topic/161…

4. 一点点思考

4.1 我们标准的软件开发SOP仍然适用

严格按照我们软件开发时,正常的工作SOP进行。

其实一个正常的需求开发流程应该是上面的样子。在日常工作中,我们产品可能提供的是一个巨大的需求文档,但是开发老师在实际开发的时候,其实是对需求文档做了进一步的拆分的,拆分到具体的功能由哪位老师来完成,这个功能应该包含几个代码文件,几个函数等等。然后才会开始开发工作。

所以在这里,如果我们偷懒直接给模型一个巨大的需求文档,那么大概率在当前的模型能力水平下,你得到的会是一个有无数bug的产品。因为当前,其实模型的上下文、规划能力、执行能力,还做不到这么完善。

所以,即便是有了AI,我们的工作流程仍然没有太大的变化,无非是原来都是人干,现在变成了大部分是AI干,但是人要来监督

4.2 我们还是要专注

其实,前一段时间,本身就挺迷茫和焦虑的,从3月到现在每天都在追新工具,新方法,新概念。总是担心自己被淘汰了,因为今年各种Agent、各种新的技术、工具、模型,层出不穷,让我有种止不住地焦虑。去年其实还没有这么严重。也可能大概是Deepseek的出现(极致的成本),引爆了这一切吗?其实也不尽然,如果没有它,最多就是在中国不会人尽皆知AI,但是该有的爆发,依然会出现。

所以,一直在努力的调整自己的心态,渐渐地,自己其实平稳了许多。可能想通了,人的精力是有限的,我们能把自己领域的东西学精学透,让AI真正为我们所用,其实就已经很不容易了。所以还是要专注。

4.3 我们会变得越来越懒吗

当然在追热点的这个过程中,我还经历了这样的疑问:什么事儿我都先问问AI,那我的思考能力还在吗?我的脑子会生锈吗?我如何去判断他说的对不对呢?我应该如何学习呢?如何不被他骗呢?怎么样仍然能让自己仍然具有很好的分辨能力呢?

其实,想一想,本身AI就是工具,我们现在这个阶段,要用好工具,让他做人类不擅长的事情,这件事本身是对的,就好像我们人类使用车的过程:

畜力车---->汽车---->电车----->智能汽车

以前的工具,解决的可能是体力的生产效率问题,而大模型,其实是解决的脑力的生产效率

我们未来的核心竞争力,将不再是“我知道什么”或者“我会做什么”,而是我能如何利用AI,去解决更复杂的问题,创造全新的价值

公众号:云间书吏