提示词
以下是一份可供你直接使用的 AI 辅助开发提示词,你可以把这个提示词发给 Claude Code 或任何 AI 编程助手来开始 MoonVision 项目:
提示词
核心开发原则
请你遵循 Spec-First Development(规范优先) 工作流。具体原则如下:
- 没有写好的规范,不要写代码 — 先完成需求收集和技术设计,获得批准后再开始实现
- Plan 只写方案、范围和风险,不写实现代码 — 规范层面讨论的是“做什么”和“为什么做”,不是“怎么做”
- 优先小步迭代 — 每个功能模块独立完成、独立验证,避免大而全的耦合开发
- 实现与审查分离 — 先完成方案或代码,再独立复核
- 被纠正时先验证问题,再调整做法 — 每个结论必须附验证方式、命令或结果摘要
- 不为未被请求的未来需求提前抽象 — 只解决当前规范中明确的需求
当你完成一个规范并获得批准后,我会以 approved 或 go 批准。批准之后,你将进入 完全自主执行模式,无需在每个文件修改前征求确认。
项目背景
MoonVision 是一个 MoonBit-native 轻量级图像处理与基础计算机视觉算法库。当前 MoonBit 生态已有图像编解码和像素比较相关工具(如 mizchi/image),但缺少一个 MoonBit-native 的图像处理算法层。MoonVision 将填补这个空白。
项目功能范围:
- 图像矩阵操作(GrayImage、RgbImage)
- 基础图像处理(灰度化、二值化、反转、亮度/对比度调整)
- 卷积滤波(Box Blur、Gaussian Blur、Sharpen)
- 边缘检测(Sobel X/Y、梯度幅值、基础边缘提取)
- 形态学操作(Erosion、Dilation、Opening、Closing)
- 连通域分析(Connected Components、Bounding Boxes)
- 可视化输出(PNG、SVG、HTML 报告)
技术约束:
- 语言:MoonBit(使用 MoonBit 原生包结构、类型系统和测试方式)
- 不重复实现图像编解码;复用
mizchi/image等已有生态库 - 聚焦算法层能力,不做 OpenCV 绑定
第一阶段:Brain Dump(脑暴)
以下是我当前对 MoonVision 项目所有思考(未经整理):
Want(我想要什么)
- 一个 MoonBit-native 的轻量级图像处理算法库,可以用来做边缘检测、物体计数、文档增强等 demo,方便评审和用户直接看到处理效果
- 可以提供清晰的 API,让 MoonBit 生态的用户可以直接 import 然后做基础的图像处理
Constraints(约束)
- 代码量预计 4–10k 行 MoonBit 代码
- 必须完全 MoonBit-native,不要做 OpenCV binding,不要依赖 C/C++ 图像处理库
- 依赖 MoonBit 生态中已有的图像读写库(如
mizchi/image),不做图像编解码 - 代码需要经过充分测试
Done When(完成标准)
- 至少实现以下三个可运行的 demo,输出可视化结果:
- 物体计数:输入图片 → 灰度化 → 二值化 → 连通域分析 → 输出物体数量和 bounding boxes
- 边缘检测:输入图片 → 灰度化 → Gaussian Blur → Sobel 梯度幅值 → 输出边缘图
- 文档增强:输入拍照文档 → 灰度化 → 二值化 → 去噪 → 输出黑白文档图片
- 代码有 MoonBit 原生测试覆盖
- 项目结构符合 MoonBit 包管理规范,可以被他人 import 使用
- README 包含基本 API 使用示例
Unsure(我不确定的点)
- MoonBit 生态是否有完整的 PNG 写入能力?
mizchi/image是否支持? - 是否要同时支持 RGB 和灰度图,还是灰度图可以单独封装为一套更简洁的 API?
- 连通域分析使用 4-邻域还是 8-邻域算法?性能要求如何?
- MoonBit 有没有官方的图形/图像库来做简单的像素绘制(比如在导出 SVG/HTML 时需要绘制 bounding boxes)?
- MoonBit 的构建系统和测试框架有哪些特性能帮上这个项目?
Scope(明确不做的事情)
- 不重复实现图像编解码(jpeg/png 的读写)
- 不做 GUI 界面
- 不做深度学习模型的集成
- 不做实时视频流处理
- 不做像素级的 diff 对比工具
- 本项目不提供 Python 绑定或 WASM 相关封装
Target User(目标用户)
- MoonBit 应用开发者:需要图像处理能力(文档增强、图像分析等)
- MoonBit 工具开发者:CLI 图像工具、图像处理 pipeline 的开发者
- 教学场景:用于帮助理解基础图像处理和计算机视觉算法
Priorities(功能优先级排序)
| 优先级 | 功能模块 | 理由 |
|---|---|---|
| P0 | GrayImage / RgbImage 基础数据结构 + 像素访问 | 所有功能的基础 |
| P0 | 灰度化 + 二值化 | 所有 demo 的入口步骤 |
| P0 | 连通域分析 + bounding boxes | 物体计数 demo 的核心 |
| P1 | 卷积框架 + Box/Gaussian Blur | 边缘检测的前置步骤 |
| P1 | Sobel + 梯度幅值 | 边缘检测 demo 的核心 |
| P2 | 亮度/对比度调整 | 文档增强用得到 |
| P2 | 形态学操作 | 去噪和预处理增强 |
| P3 | 可视化导出(SVG/HTML) | demo 效果展示用 |
Unsolved Technical Risks(未解决的技术风险)
- MoonBit 的二维数组/矩阵操作性能如何,是否影响
O(width × height × kernel_radius)的卷积? - 连通域分析使用 Union-Find 时,MoonBit 的内存分配和访问模式是否需要特殊优化?
- MoonBit 生态在
mizchi/image之外是否有其他图像处理相关模块可以参考? - MoonBit 的
test块和快照测试能否有效测试图像处理算法的正确性? - Native 后端生成的二进制在图像加载/保存时的性能表现?
第二阶段:Spec Interview(需求访谈)
请先读取这份 brain dump,然后通过 AskUserQuestionTool 向我问至少 5–10 个深入问题来填补以下方面的空缺:
- 具体的 API 设计偏好(例如 API 风格是函数式链式调用还是独立函数?)
- 对已有 MoonBit 生态图像库的实际使用经验
- 图像矩阵(GrayImage/RgbImage)的数据结构设计细节
- 边界条件、性能阈值、错误处理风格
- 测试策略和验收标准
- 你不确定的技术判断(例如哪种算法实现更适合 MoonBit 的语言特性)
请持续提问,直到你确信规范已经完整、无歧义、且我确认可以进入技术设计阶段。
第三阶段:Research & Plan(技术调研与设计)
完成需求访谈后,请自动进入计划模式:
- 调研现有 MoonBit 生态中的图像库和算法参考实现(如
mizchi/image)的能力边界 - 参考经典图像处理算法的数学原理(Gaussian 卷积核、Sobel 算子、Union-Find 连通域等)
- 设计清晰的目录结构和模块划分,以下是我提议的初始结构:
moonvision/
├── moon.mod.json
├── README.md
├── src/
│ ├── image/ # GrayImage, RgbImage, 像素访问
│ ├── ops/ # 灰度化、二值化、亮度、对比度调整
│ ├── filter/ # 卷积、Box/Gaussian Blur、Sharpen
│ ├── edge/ # Sobel、梯度幅值
│ ├── morphology/ # Erosion、Dilation、Opening、Closing
│ ├── components/ # 连通域分析、bounding boxes
│ └── export/ # SVG/HTML 导出
├── examples/ # 三个 demo 实现
└── test/ # 单元测试
- 标识出所有需要新建或修改的文件
- 标识出哪些功能可以复用 MoonBit 标准库 / 现有包
- 提供详细的实施计划,包括:
- 每个阶段的交付物
- 各任务之间的依赖关系
- 潜在风险和边缘情况
- 验证标准(
moon test、demo 输出检查等)
- 等待我批准。批准时请明确给出
approved或go
第四阶段:Execute(执行)
当收到批准后(approved/go):
- 完全自主执行,无需再征求确认 — 不写“would you like me to proceed?”或等待下一步指令
- 并行执行无依赖的任务,同时启动 subagent 完成独立模块
- 持续执行,直到所有任务完成
- 执行过程中不进行额外总结(除非我被卡住需要向我提问关键技术决策)
- 完成后,交付:
- 完整实现的代码库
- 通过
moon test的单元测试 - 三个运行无误的 demo
- README 更新
- 最终总结:实现了什么、如何测试、后续建议
可选的扩展步骤
在执行完主体功能后,如果时间和代码量允许,可以考虑补充以下优先级较低的功能:
- 更多的 demo 示例(如人脸检测 demo 展示)
- API 使用文档
- 性能基准测试
- 发布到 mooncakes.io 的指引说明
补充参考材料
- MoonBit 官方文档:https://docs.moonbitlang.com — 了解 MoonBit 的包管理(
moon.mod.json)、测试框架(moon test)和语言特性 - 算法实现参考:OpenCV imgproc 模块(算法原理) + edge-detector GitHub(Python 实现参考)
- MoonBit 状态与特性:2025 年 6 月已发布 Beta 正式版,语法进入稳定期
附:如何使用这份提示词
推荐工作方式
- 启动 AI 时直接发送以上完整提示词(从 "核心开发原则" 开始到 "补充参考材料" 结束),然后让 AI 从第二阶段的需求访谈开始执行
- 在 AI 进行需求访谈时,你的角色是 回答提问,让 AI 通过 AskUserQuestionTool 逐步收集信息、填充规范
- 规范完成后,AI 会提供实施计划等待你批准。计划只包含范围、风险、验收标准,不写实现代码
- 批准后(回复
approved或go),AI 将开始自主实现,不再反复确认 - 根据需要,可以使用
/loop进行迭代,使用/batch并行处理子任务
推荐的对话流程示例
> 你: [发送以上完整提示词]
> AI: 您好,我将开始按照 Spec-First Development 工作流协助开发 MoonVision 项目。正在读取 brain dump 中的思考,将通过 AskUserQuestionTool 进行需求访谈。请问 MoonBit 版本的图像读写库 mizchi/image 是否已在您的环境中可用?GrayImage 和 RgbImage 的数据结构设计上是否需要考虑与 mizchi/image 的格式直接互转?
> 你: [回答问题]
> AI: [继续提问]
> ... (问答循环 5–15 轮,AI 收敛规范)
> AI: 需求收集已完成,正在编写 spec.md。规范中包含以下核心内容:[列出完整的功能模块、优先级顺序、验收标准和未解决的风险点]。现在进入技术调研与设计阶段:我已分析 MoonBit 现有生态的能力和边界,以下是详细的实施计划:[列出文件清单、任务依赖、风险和验证标准]。请批准后我将进入执行模式。
> 你: approved
> AI: [进入完全自主执行阶段,实现代码、编写测试、运行 demo,直到交付]
技术细节说明
MoonBit 的开发工具链包括 moon 构建系统、moon test 测试框架和 VSCode 插件。测试方面,MoonBit 提供 test 代码块支持内联测试用例和三种快照测试,可使用 moon test --update 自动插入/更新预期值。包依赖在 moon.mod.json 中通过 deps 字段声明。算法实现建议采用 primitive 设计:每个功能单元独立、可替换、可组合、可验证。这些是你和 AI 在开发过程中需要遵守和运用的技术约束。
评论