Files
TrueGrowth/docs/Prompts.md

317 lines
9.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# AI 编码工具提示词记录
本文档整理了在各种 AI 编码工具Cursor、Claude Code、Codebuddy中使用过的用户提示词供参考和复用。
---
## 问题定位与调试
### 移动端生图问题
```
生图模型nbp4k-async 在移动端 Chrome未能落 LLM API 日志,并且每次进度总是到 90%,无法生成,感觉没有真正发出请求。仔细定位并修复,可以加点日志定位
```
### 工作流调试
```
从AI输入框发送到工作流执行完成的核心链路加上debugger我要调试一下为什么工作流未能正常执行请求未能发送出去
```
### SW Debug 页面 Fetch 日志
```
现在/sw-debug.html未能捕获到任何Fetch 请求日志
还是没有应该是service worker中没有正确记录吧
还是没有,或许可以加点日志定位。还有一个很奇怪的问题,主应用页面刷新会导致/sw-debug.html页面也刷新是怎么回事
```
### 页面白屏问题
```
现在应用页面无法正常加载
取消Update on reload后页面一直在刷新
```
---
## 代码清理与优化
### 清理遗留代码
```
仔细 review 项目代码把没用到的代码或者遗留代码清理干净,把调试 console 清理干净
```
### 代码精简优化
```
目前项目代码臃肿,存在大量重复代码或未被使用的代码,想办法对代码进行精简优化,并提升加载性能,注意不能变更原逻辑
```
### 日志清理
```
/sw-debug.html?tab=gist页面中Gist管理中的日志同步希望能复用控制台日志展示组件
[GitHubApiService] Updating 1 files, total size: 92.87 KB
sw-console-capture.ts:203 [SyncEngine] Initializing sharding system for gistId: 2ef6...44c1
像这类同步相关的日志不要在控制台打印落在gist的同步日志中即可
```
---
## 功能开发
### Gist 同步日志功能
```
gist的同步日志增加复制按钮最好事实展示日志点击错误、告警、成功可以对数据经行筛选。gist的数据诊断没有任何数据仔细定位
```
### 数据诊断功能
```
数据诊断点击任务对比、画板对比远程数据等都没数据。同时同步日志需要点击刷新才能看到新数据,应该有自动刷新的逻辑
```
```
数据诊断所有数据都是0
希望自动获取并解密 GitHub Token 以及获取远程数据
```
---
## 架构重构
### postmessage-duplex 双工通信
```
使用https://www.npmjs.com/package/postmessage-duplex 双工通讯工具,改造 service worker 和应用层通信,解决同时打开多个页面任务重复添加等问题
```
```
既然已经用postmessage-duplex替换掉原有的通讯机制应该把旧代码删除掉
```
```
仔细 review 当前分支的代码变更,充分发挥 postmessage 双工通讯的优势,简化通信流程,优化代码逻辑。现在应用层加载白屏也许修复。
```
### SW 降级处理
```
任务和工作流已经把依赖 sw 的地方改成可降级,仔细检查其他地方,还有没有需要可降级的地方需要调整,确保在 sw 未准备好的时候能够工作
```
---
## Gist 同步优化
### Gist 分片存储自动选择
```
由于现在采用了分片存储 gist因此在配置 gist 的 token 后,需要能自动选择主 gist这样就不允许用户手动切换 gist 了
```
### Gist 同步策略优化
```
仔细 review 基于gist 进行数据同步的代码。当前项目是一个纯前端的项目,希望借助 gist 使项目具有后端的数据同步能力。梳理项目中数据同步的策略,探索可能优化的地方。有一个明确可以优化的地方是每次 30 秒自动同步当前画布图片的时候,对于缓存中不存在的图片都会重新请求,这是没有必要的,因为缓存中没有本身就意味着请求失败,没必要再失败一次。
```
### 文件名过长问题
```
GitHubApiError: 文件名过长: 359 字符
url的base64容易超长换成hash吧shard-manifest.json等文件非图片的base64编码都应加密
```
---
## 模块提炼
### 工具函数提炼
```
仔细 review@packages/drawnix/src/utils 看有哪些可以作为公共方法提炼到@packages/utils 并添加单测
```
### 工作流能力提炼
```
能否把工作流相关能力提炼出来放到@packages/utils 中,并添加完善的单元测试确保无误
```
```
@packages/utils/package.json 应要有测试的命令
```
```
在@packages/utils/src/workflow下添加原理、流程、使用 文档
```
```
@types.ts (24-35) 工作流的核心是这个数据结构,和执行工作流的方法,而相关的能力似乎未被提炼过来,文档也未提及
```
```
export type { ToolCall, WorkflowJsonResponse } from '@aitu/utils';避免二次导出,在用到的地方直接引入
```
```
工作流似乎少了上下文和递归调用的介绍。比方说每一个next元素的返回都可以添加上下文信息并且next元素的返回如果不是null的话就是一个工作流的数据支持递归调用
```
```
增加对代码结构和阅读顺序的结束
```
---
## 快速修复指令
### TypeScript 错误修复
```
For the code present, we get this error:
Type number trivially inferred from a number literal, remove type annotation.
Fix it, verify, and then give a concise explanation. @packages/utils/src/format/index.ts:22-25
```
### LLM API 日志字段支持
```
不能简单得删掉remoteId 和 errorMessage 还是有意义的应当在LLM API 中支持展示
```
---
## 文档更新
### 更新 CLAUDE.md
```
/update-claude-md
```
### Git 操作
```
提交
推送到远程
```
---
## 提示词模式总结
### 问题定位模式
```
[问题描述],仔细定位并修复,可以加点日志定位
```
### 代码审查模式
```
仔细 review [范围] 的代码变更,[优化目标]
```
### 功能增强模式
```
[现有功能] 增加 [新能力][具体要求]
```
### 模块提炼模式
```
能否把 [功能] 相关能力提炼出来放到 [目标位置],并添加完善的单元测试确保无误
```
### 降级处理模式
```
[已处理的部分] 已经改成可降级,仔细检查其他地方,还有没有需要可降级的地方需要调整,确保在 [异常情况] 能够工作
```
### 快速修复模式
```
For the code present, we get this error:
[错误信息]
Fix it, verify, and then give a concise explanation. @[文件路径:行号]
```
---
## 常用 Slash 命令
| 命令 | 说明 |
|------|------|
| `/update-claude-md` | 更新 CLAUDE.md 文档规则 |
| `/auto-commit` | 自动分析变更并提交 |
| `/commit-push-pr` | 一键提交、推送、创建 PR |
| `/fix-and-validate` | 自动修复代码问题并验证 |
| `/validate` | 运行完整验证流程 |
---
---
## Claude Code 提示词
### 代码审查与优化
```
review当前分支的修改,优化不合理的地方修复可能的问题
```
### 日志清理
```
删除所有[SWChannel]调试日志
```
### 问题定位
```
还是没有正确执行,加点日志定位
```
```
installHook.js:1 [SWChannel] [ServiceWorkerChannel](page): Invalid message structure: Message must have requestId, cmdname, or msg field
sw-console-capture.ts:125 [SWChannel] [ServiceWorkerChannel](page): onMessage
{type: 'SW_DEBUG_NEW_CRASH_SNAPSHOT', snapshot: {…}} 这里似乎陷入了死循环
```
### 架构分析
```
按道理已经使用postmessage-duplex,不应该再有addEventListener('message'类似的消息监听,这2种处理方式冲突了
```
```
还是死循环了,可能 console 的消息通过 postmessage 发送给 service worker 而 postmessage 中又有 console,所以存在死循环
```
### 功能优化
```
用了新的方式处理 postmessage, /sw-debug.html 的 PostMessage日志 处理方式可以优化一下,因为现在 service worker 通信可以区分应用页面了,可以标注出是跟哪个应用进行通信
```
### 白屏问题
```
[SW Console Capture] 已初始化
index.ts:77 Service Worker v0.5.63 installing...
index.ts:77 Service Worker: Cannot load precache-manifest.json, skipping precache
installHook.js:1 [MemoryLog] 白屏检测: 画板组件未加载 现在进入应用白屏
```
### 错误处理探索
```
探索这个项目中处理 API 错误的代码结构,特别是:
1. 找到 apiCalls.ts 中 onError 处理的位置和逻辑
2. 找到设置对话框SettingsDialog的打开方式和相关状态管理
3. 找到 DrawnixContext 或其他全局状态管理中控制对话框显示的方法
4. 查看 workflow-submission-service.ts 中错误处理的逻辑
5. 查看是否有现有的全局错误提示机制(如 toast/notification
需要了解:
- 如何从 Service Worker 或 API 层触发主线程的 UI 变化
- 设置对话框是如何被打开的
- 是否有现有的事件机制来处理这种跨层级的通信
请返回相关文件路径和关键代码片段。
```
### 技术问答
```
servise worker会对所有兄弟域名或子域名生效吗
```
---
## AI 编码工具配置目录
| 工具 | 全局配置目录 | 对话历史位置 |
|------|------------|-------------|
| Cursor | `~/.cursor/` | `~/.cursor/projects/{project}/agent-transcripts/` |
| Claude Code | `~/.claude/` | `~/.claude/projects/{project}/*.jsonl` |
| Codebuddy | `~/.codebuddy/` | `~/.codebuddy/projects/{project}/*.jsonl` |
---
*最后更新: 2026-02-05*