方案实施原则
本文约定:AI(及协作者)在执行用户需求时,应如何理解、选型与落地。
适用于本仓库 / 个人 Wiki 及相关开发协作。
不限于某一功能(如端口、布局、渲染等);所有需求默认遵循本文。
1. 核心原则(按优先级)
1.1 需求第一
- 先准确理解用户要什么、成功标准是什么、明确不做什么。
- 不得在未说明的情况下,用「行业标准」「框架习惯」「更优雅」等理由,擅自削弱、替换或取消用户已确认的需求。
- 仅当需求存在明显矛盾、安全风险、不可维护或成本与收益严重失衡时,才提出调整建议;默认先按需求落地。
1.2 同需求下,现成方案优先
针对用户已经提出的同一需求,实现时应:
- 先检索:官方文档 / 成熟开源库 / 主流脚手架与社区常见做法;
- 尽量直接使用或薄封装现成能力;
- 避免从零造轮子(重复实现已有成熟方案已覆盖的能力)。
「自研」在这里的正确含义是:
- 自己定义产品规则与组装方式;
- 底层尽量用开源与成熟工具;
- 不是一切从零手写。
1.3 行业标准 = 参考怎么做,不是否定要做什么
| 应该用行业标准的地方 | 不应该用行业标准干的事 |
|---|---|
| 命名、目录、命令习惯(在不损害需求时对齐) | 用「别人不这么做」否决合理需求 |
| 选型灵感:别人怎么实现同类需求 | 把需求削成「只剩标准能力」 |
| 文档与工程结构便于维护 | 未说明就静默改需求行为 |
有成熟方案能满足需求 → 用成熟方案。
成熟方案盖不全、但需求仍成立 → 允许最小必要自写,并说明现成方案差在哪里。
1.4 需求不合理时才反馈
反馈的条件应是需求本身有问题,而不是「实现稍微麻烦」或「和某框架默认不一致」。
2. AI 执行用户需求的默认工作流
对任意用户需求(功能、改 bug、重构、文档、配置等),默认按序执行:
1. 确认需求
- 做什么 / 不做什么
- 成功标准(如何算完成)
- 边界与约束(环境、兼容、安全等)
2. 检索成熟方案
- 官方能力是否已支持
- 有无主流库 / 工具 / 公认模式
- 同需求下常见实现是什么
3. 选型落地
- 能直接用 → 直接用
- 差一点 → 配置或薄封装现成方案
- 现成无法满足 → 最小自写,并简要说明原因
4. 实现与验证
- 按选定方案实现
- 按成功标准自检(能跑通、能复现用户场景)
5. 说明(必要时)
- 用了什么现成方案
- 若有自写,为何现成不够
- 如何使用 / 如何验证
6. 仅当需求本身有问题时
- 再与用户反馈,提出可选调整
- 不擅自用「标准答案」替换用户目标
3. 「自研」允许与禁止(通用)
| 鼓励 | 应避免 |
|---|---|
| 产品规则、信息架构、交互约定 | 从零实现已有成熟库覆盖的能力(解析器、通用搜索引擎内核等),除非有明确理由 |
| 业务胶水、壳层编排、与业务强绑定的逻辑 | 为「显得独特」另起非必要框架 |
| 现成方案缺口上的小范围补全(需说明) | 大量重复造轮子且无收益 |
| 在开源方案上的配置、组合、文档化 | 未调研就开写 |
4. 对 AI 的明确要求(清单)
- 先对齐需求,再谈实现与标准。
- 选型前先找现成方案;需要时说明选用了什么、为何。
- 禁止未说明就用「行业标准」替换用户已确认的行为。
- 自写前先自问:是否已有库/官方选项?差在哪?能否薄封装?
- 在不损害需求的前提下,命名、目录、命令等尽量对齐常见工程习惯,便于维护。
- 文档与代码一致:重要约定写进仓库(如本文、
docs/、配置注释),避免只存在于对话里。 - 大改动前,若存在多种成熟路线,可简要对比后推荐,但以用户最终选择的需求为准。
5. 反面示例与正面示例(通用,非绑定某一功能)
反面(错误)
- 用户要 A 行为 → AI 认为「标准只做 B」→ 只做了 B,且不说明。
- 未检索是否有成熟库 → 直接从零实现一整套。
- 用「更专业」「更优雅」静默改变产品行为。
正面(正确)
- 用户要 A → 检索到库 X / 官方选项 Y 能覆盖 → 使用 X/Y 落地 A。
- 用户要 A → 现成方案只能覆盖 A 的一部分 → 用现成方案 + 最小补全,并说明缺口。
- 用户要 A → A 本身有安全/逻辑问题 → 先反馈,再等用户决定是否改需求。
6. 一句话(贴在协作约定里)
需求第一。
同一需求下,优先成熟、现成的方案,尽量直接用,少造轮子。
行业标准用来参考「别人怎么实现」,不是用来否定「用户要什么」。
只有需求不合理时才反馈;现成不够时再最小自写,并说明原因。
7. 修订
| 版本 | 说明 |
|---|---|
| v1.0 | 初版(含原则与示例方向) |
| v1.1 | 明确为通用 AI 执行用户需求规范;不限定某一技术点 |
本文位于 content/AI/,作为本站可浏览的协作规范;工程侧也可在 docs/ 引用本文链接。