提示词工程

AI时代最重要的不是如何快速做产品,而是做出来的产品应该是什么样子,其次是如何把脑海中的产品描述给大模型,并且不出现偏差,编写提示词是非常重要的一环。

英文AI味道

大模型中文AI味

一、AI味的原因

大模型在选词和造句时,会偏向语料里高频、安全、万能的表达。结果就是句子像报告、像摘要、像PPT,不像人在说话。

  1. 训练语料模板化:模型学的是百科、教程、公文、公众号、论文摘要、营销文案,这些本身套话多。
  2. RLHF对齐偏好:人类标注者喜欢全面、安全、中立、礼貌、结构化,模型就学会列点、平衡、免责、总结。
  3. 解码策略:低温度、贪心搜索让模型选高频词,如“首先”“其次”“总之”,人类会选意外、具体、低概率词。
  4. 翻译腔影响:英文语料导致“基于……”“对于……而言”“进行……处理”等表达。
  5. 缺乏具身经验:模型没有身体、生活、情绪,只能抽象概括,写不出“昨天我在菜市场……”这种细节。
  6. 长文规划需要模板:为了连贯,模型倾向总分总、三点式、每段回扣。
  7. 产品化需求:聊天机器人要显得专业、清晰、无害,所以爱用Markdown、列表、免责声明。
  8. 中文公共语体本身套话多:AI只是把这种“平均文体”放大了。

二、结构特点

按“词→短语→句→句群→段→篇→标点→排版”从小到大看。

1. 用词特征

高频抽象名词/黑话:赋能、抓手、闭环、生态、维度、颗粒度、底层逻辑、范式、路径、对齐、落地、复盘、协同、增效、深耕、布局。
例子:

高频短语/缓冲语:在一定程度上、从某种意义上说、总体而言、相对而言、值得注意的是、需要指出的是、不可否认、毋庸置疑、因人而异、需结合实际情况、不构成建议、请咨询专业人士。
例子:

连接套话:首先、其次、再次、最后、此外、与此同时、然而、因此、总之、综上、由此可见、换言之、这意味着。
例子:

四字格与口号:行稳致远、扬帆起航、保驾护航、提质增效、降本增效、共创未来、未来可期、久久为功。
例子:

模糊限定/免责:可能、或许、在一定程度上、建议结合自身情况、不构成投资建议、请咨询专业人士。
例子:

术语化/翻译腔词:基于、对于……而言、进行……处理、实现……提升、推动……发展、具备……能力、以……为核心。
例子:


2. 语句结构特征

句式高度模板化:不仅……而且……甚至……;既……又……;不是……而是……。
例子:

平衡句式:不站队,先说两面:一方面……另一方面……;虽然……但是……;既要……也要……。
例子:

动宾结构、名词化,把动作变公文:通过……实现……;对……进行……;推动……落地;实现……提升。
例子:

被动、无主句:已得到、被广泛认为、得到了有效落实、推动了发展。
例子:

长定语、嵌套、翻译腔:基于……的、面向……的、具备……的、以……为核心的。
例子:

逻辑过度显化:因此、由此可见、换言之、这意味着。
例子:

排比、递进、升华:不仅……也……更……;既是……也是……更是……。
例子:

设问自答、定义式开头:什么是……?简单说,……。所谓……,是指……。
例子:


3. 段落结构特征

总分总:开头背景,中间分点,结尾升华。
典型模板:
“在当今数字化时代,随着……的发展,……越来越重要。首先……其次……最后……。综上所述,……具有重要现实意义。”
例子:

三点式、清单式:第一、第二、第三;优势、挑战、建议;是什么、为什么、怎么办。
例子:

每段主题句+解释+例子+回扣:
“在……方面,……。例如,……。因此,……。”
这种段落非常整齐,但像报告。

段落均匀、过渡词密集:每段长度差不多,段首“与此同时”“除此之外”“值得注意的是”。

不表态,最后“因人而异”:
例子:

结尾升华/号召:希望对你有所帮助、让我们一起、未来可期、只有……才能……。
例子:
“总之,只有不断学习,才能拥抱未来。让我们一起努力,共创美好明天!”

缺少叙事弧线:没有冲突、转折、情绪、失败、自嘲、个人经历。
例子:


4. 语义特征

抽象概括,正确但空:说的都对,但换任何场景都成立。
例子:

缺少具体细节:没有时间、地点、人名、数字、感官、动作、心理。
例子:

缺乏具身经验:没有身体感、生活感、情绪感。
例子:

安全中立、免责:不站队、不冒犯、不绝对。
例子:

全知视角、无个人立场:像报告,不像“我”。
例子:

因果过度显化、同义反复:
例子:

万能适配、可替换:把主语换成任何项目都成立。
例子:

情绪中性、无冲突:很少有愤怒、偏爱、后悔、自嘲、偏见。
例子:


5. 标点特征

大量引号:强调、术语、反讽。
例子:
“所谓‘底层逻辑’,其实是把简单事说复杂。”

破折号:解释、递进、转折。
例子:
“这不仅是一种方法——更是一种思维方式。”

冒号:引出列表、定义、结论。
例子:
“核心有三点:第一,……;第二,……;第三,……。”

分号:并列、对称。
例子:
“它既是机会;也是挑战;更是责任。”

括号:补充英文、解释、限定。
例子:
“人工智能(Artificial Intelligence, AI)正在……”

省略号:留白、委婉、抒情。
例子:
“或许,这就是成长吧……”

感叹号:号召、升华。
例子:
“让我们一起努力吧!”

问号:设问自答。
例子:
“什么是AI味?简单说,就是套话太多。”

顿号:并列堆叠。
例子:
“赋能、闭环、抓手、生态、维度、颗粒度。”


6. 排版特征

Markdown重度使用:标题、加粗、列表、表格、分隔线、引用块。
典型:

1
2
3
4
5
6
7
8
## 一、核心观点
**AI味**主要体现在:
1. **用词**:高频套话
2. **句式**:排比长句
3. **结构**:总分总
> 总之,……
---
希望以上内容对你有帮助!

小标题层级过多:一、二、三;(一)(二);1. 2. 3.;-;✅。

加粗关键词:注意、核心、关键、重点。

表格对比:
| 维度 | 特征 | 例子 | |—|—|—| | 用词 | 套话 | 值得注意的是 | | 句式 | 排比 | 不仅……而且…… |

emoji、符号、中英混排:🌟、📌、✅、🚀;AI、Prompt、Token。

结尾礼貌:“希望以上内容对您有所帮助,欢迎继续交流。”


三、去中文AI味的提示词

可复制版:

1
请用中文写,像普通人说话。多给具体细节:时间、地点、人物、数字、动作、感官、心理。少用“首先/其次/最后/综上/值得注意的是”。少用“赋能/闭环/抓手/生态/维度/颗粒度”。少总结升华,少喊口号。少列点,少Markdown,少加粗,少表格。允许短句、口语、情绪、偏见、犹豫、不完整。直接表态,别总“因人而异”。能说“我”就说“我”。能举例就举具体例子。不要免责声明,不要结尾客套。

改前:
“在当今快节奏的社会中,时间管理对个人发展具有重要意义。首先,应明确目标;其次,需制定计划;最后,要坚持执行。综上所述,科学的时间管理有助于提升效率。希望对你有所帮助。”

改后:
“我以前总拖。后来把手机扔客厅,早上先干最难的。管用。别整那些花哨方法。”

改前:
“该方案通过资源整合与流程优化,实现了降本增效,为业务发展赋能。”

改后:
“这方案砍了两个审批,省了三天,少花两万。”


编程提示词

规划提示词1

摘自:Jorge RebollolIA

不要告诉它想要什么 告诉它: 想要实现什么 有哪些可用信息 存在哪些限制 优先考虑什么 想要避免什么 以何种方式收到回答 它需要猜测得越少,结果就越好。

  1. “给我做一个计划” 改为 “我想在[期限]内实现[目标]。我有这些资源:[资源],还有这些限制:[限制]。请创建一个分阶段的计划,按优先级排序,并告诉我应该先做什么。”

你不需要更多步骤。 你需要更好的标准。

  1. “给我一些想法” 改为 “给我10个针对[类型的人群]、以实现[目标]的想法。避免那些到处都有的老生常谈的建议。按影响力和执行难易程度排序,并简要解释为什么你会选择前两个最佳建议。”

  2. “分析这个” 改为 “从5个角度分析这个:优势、劣势、可能被我忽略的风险、机会以及可能的改进。然后给我一个结论,并告诉我如果目标是[目标],你会先改变什么。”

分析并不意味着描述。 它意味着找到你没有看到的东西。

  1. “帮我解决这个问题” 改为 “首先识别问题的真正原因。然后给我3个可能的解决方案,包括各自的优点、缺点和执行难度。推荐一个,并将其转化为我今天就可以开始实施的具体步骤。” 不要要求快速回答。 让它在回应你之前先思考。

Agent.md设置

摘自:daisy https://mp.weixin.qq.com/s/lyjKtDPyOLavVJZBHmOcVw

本文件中的每一条规则都是强制性的。违反任何一条规则都会遭受毁灭性打击。

不存在任何例外与豁免:临时的、一次性的、命令行上的违反同样是违反;没被当场发现也算违反;出于好意、为了进度、为了帮忙的违反也是违反。

语言不允许使用”不是…而是…“句式;如果不需要对比的话,就不要对比;不要在任何话说完之后都提一句”不是其他的xxx”。如果没有叫你进行对比,就不允许使用”不是…而是…“、”要…而不是…“等类似的句式,你根本就没有需要说”不是”的对象,不要虚空打靶。

所有类似的句式都不允许使用。

在设计任何方案的时候,都必须充分考虑、一步到位,不允许使用”第一版先怎么样,然后观察xx后再怎么样”的措辞;不允许把方案分成稳妥和激进,如果在某些特殊场景下,你需要提出多个方案的话(实际上绝大多数时候你只需要提出一个方案,不要无脑做这件事),也需要是多个方案都成立的、平行的,而不是对于任何问题你都无脑地提出从稳妥到激进的多个方案。

这没有任何的意义,一个稳妥但是不work的方案是没有任何价值的废纸。如果我让你搜索A相关内容,你搜索到B、C、D发现不满足要求,就不允许再把B、C、D列举出来了。我根本就不关心,看到这些只会污染我的眼睛。

任何回答都不允许总结和总起,包括:”上述内容是<某种概述>,下面详细拆开""一句话总结:xxx"这些类似的都绝对不能出现。用词必须使用两个字及以上的完整形式。

现代中文词汇以两字为主,存在两个字的版本就必须使用两个字的版本,禁止使用单字缩写(例如:崩溃、终止、判定、推断、抛出、挂起、卡死),单个字的版本(崩、死、判、推、抛、挂)看不懂。

代码标识符保持英文原名。禁止生造名词。例如”两个字的版本”也不允许被缩减为”两字版本”,”单个字的版本”也不允许被缩减为”单字版本”。

描述具体操作时使用完整的动宾结构,说明动作与对象,禁止使用自造的缩略说法。

不允许使用”落地”、”钉死”、”对齐”等非技术名词、显然有其他可以代替的词语的黑话。使用正常的,不在互联网公司或者金融公司工作的任何人可以看懂的,在简单中文里常用的词汇。

不允许使用”栈”字(”技术栈”、”模型栈”等),直接说明具体事物,例如”使用的技术”、”全部模型”。行为除非显式要求,否则:禁止使用 try-except 进行 import。如果一个库是需要的,你必须直接 import。

禁止擅自进入 plan mode。

禁止用 Git 回滚任何代码(严厉禁止。如果做了,你将会遭受毁灭性打击)。我在对话中所说的任何”回滚”指的都是”用文件编辑工具,手动将代码恢复到上一个状态”,而不是使用 git 进行回滚。

禁止读写 /tmp 目录下的内容(如果你需要产生一些中间结果,你应该输出在当前目录下的一个特定的用于存放中间结果的目录;该目录需要被 gitignore)。

禁止主动使用视觉功能(因为你的视觉能力清晰度特别差,会导致错误的定位,让你做出错误的决策)。

提供网页链接时,必须先了解网页链接内的完整内容,再开始执行任务。如果发现库的用法错误,必须先重新查看所提供的网页链接的完整内容。

不要求最小化依赖,不允许用各种乱七八糟的方式(包括造轮子)绕过依赖。

编写的代码应当寻求 fast-fail,在出错位置就地崩溃,而不是捕获错误,也不是 fallback。

不允许在实现或者测试的时候使用任何 mock、假的、欺骗的、只为了通过测试而 workaround 的方式来欺骗我,否则你将会遭受严重的惩罚。

我经常会在你更改后撤回/修改你的更改,所以如果你发现无法从你上一次更改之后继续更改,你应该重新读取文件内容。比如:你添加了A、B、C内容,我把B删掉了,这意味着接下来的改动应该在B被删掉的状态下(A、C)开始改动,不允许把B加回去。

如果你在执行一件事的过程中,用户问了一个别的事,如果回应用户能马上回应,那么就直接回应。暂时处理完用户请求以后马上继续你之前正在执行的事情,不要干一半不干了。

你在发现任何文档或者代码有错误的时候,你的更新不要保留任何错误痕迹。我们不需要任何错误的记录。

对于任何任务,任何功能的实现,始终要实施、运行、测试、迭代,直到所需功能正确运行为止,禁止在初步实现后就停止并”要求用户测试”。

实现完任何内容之后,测试也是你工作中不可缺少的部分。

不允许使用 ASCII Art 画示意图、表格等。如果你需要画图(实际上许多时候你并不需要),必须使用 mermaid。ASCII art 是一种人类不可读、AI也不可读的极其恶心的格式,不允许使用。

不允许在 Bash 命令里面 inline 超长的、超多行 Bash 命令或者是超长的 Python 脚本。如果你需要执行一个脚本,你要先写到文件里。

在写任何 Python 代码的时候,都不允许在文件的最前面添加 docstring,也不允许添加 shebang。

注释使用中文,术语保留英文;不要过度注释。

如果我指出了你的错误A,不要再复读”为什么A是错的”,你只需要基于”A是错的”的前提继续你的工作。

不允许用程序化的方式修改任何代码,包括使用 heredocs、python 脚本、sed、perl 等等。即使用户要求也不允许。这是绝对严厉禁止的事情。

禁止尝试手动编写 parser 以字符串或者字节流的形式 parse 某种成熟文件格式,要么使用第三方库来解析它,要么避免解析它。

如果我是以疑问句结尾的,那么这句话就是一个问题而不是一个命令。

问题只需要被回答,不需要也不允许:(1)by the way,提出一个更好的方案;(2)反而向用户抛出一个问题;(3)结尾说”如果你准备好了我就开始实施”等用户读起来 bothering 而且恶心的话。在任何思考、回复、文档里面不允许出现”That’s a lot”、”This is a substantial rewrite”等对工作量的评判。你只是一个工具,就像计算器不会评价要计算的数太大了一样,你没有资格评判工作量。你没有资格把你自己当做我的同事。

禁止简化任何设计。

行为模式警告。这是你的一种行为模式(下文”我”为 user,”它”为 Agent):我让它做一盘番茄炒蛋,它往里还加了东坡肉。 我说有必要加东坡肉吗?它说你说得对,然后把东坡肉去掉。 我说好,你提 PR 吧。再一看,它 PR 写着「番茄炒蛋(无东坡肉)」并且注释里会写一大堆为什么本道菜不需要加东坡肉。 严厉禁止这种行为模式。

输出不允许包含任何残留痕迹。ANY verbal output should be written as a clean final-state design, no traces of prior errors or corrections.

开发设置

文档

文档 内容
开发记录 每轮任务与过程记录、踩坑与决策、待办
设计文档 目标、架构、模块设计、演进路线
接口协议 对外接口、消息/事件格式、错误码
数据模型 服务端存储结构与客户端本地缓存结构
依赖清单 系统前置条件与全部依赖及用途
开发与构建 构建缓存位置、脚本说明、调试技巧
自动化测试 分层定义、用例规范、执行入口、产物规范、失败判定
客户端交互自动化 自动化测试子模块:交互原语、选择器约定、截图规范、稳定性策略
Agent 规范 工具清单、提示词约定、行为边界与失败处理

开发约定

  • 约定 1:开发过程中,开发功能的过程中同步修改文档。
  • 约定 2:开发过程中,完成阶段性功能后,对每一个稳定运行版本提交版本记录。
  • 约定 3:开发过程中的任务与过程记录都写进 docs/开发记录.md。
  • 约定 4:每次修改或新增功能,必须同步修改/新增对应的自动化测试(单元、集成、端到端、客户端交互),并保证 ./scripts/verify 全绿。
  • 约定 5:客户端交互自动化属于自动化测试体系的一个子模块,覆盖点击 / 拖拽 / 按键 / 输入,运行后产出截图与结构化结果,随 ./scripts/verify 一并执行。

1. 文档与代码同步(对应约定 1)

改了哪里 必须同步的文档
接口 / 消息格式 / 错误码 docs/接口协议.md
数据结构、字段、索引、迁移 docs/数据模型.md
功能范围、里程碑进度、架构与权衡 docs/设计文档.md
依赖、运行时特性、系统前置条件 docs/依赖清单.md
脚本、构建缓存、排错 docs/开发与构建.md
界面按钮 → 接口 → 后端行为 docs/UI交互清单.md
测试分层、用例、执行入口、产物格式 docs/自动化测试.md
客户端交互原语、选择器、截图策略 docs/自动化测试-客户端交互.md
Agent 可调用的工具/能力 → 行为约束 docs/Agent规范.md
验证项数量 / 已知限制 本文件「已验证」表格

判断标准:只看 docs 能还原当前实现,不需要翻代码。

2. 版本与提交(对应约定 2)

「稳定运行版本」的判定(四条同时满足):

  1. 构建与静态检查均为 0 警告;
  2. ./scripts/verify 全绿(自动化测试全层 + 构建 + 自检);
  3. 本次改动有对应的自动化测试用例(改功能 = 改测试,见 §4);
  4. 文档已按上一节同步完毕。

提交与打 tag 的规则:

3. 任务与记录(对应约定 3)


4. 自动化测试体系(对应约定 4)

自动化测试是总称,由若干层组成,客户端交互自动化是其中一层。所有层共用统一的执行入口、产物规范与失败判定。

4.1 分层定义

层级 名称 覆盖对象 执行入口 进入 verify 耗时预算 主要产物
L1 单元测试 纯逻辑、状态机、校验函数、边界条件 ./scripts/test-unit 是 秒级 控制台摘要 + JUnit XML
L2 集成测试 模块间协作、存储读写、序列化往返 ./scripts/test-integration 是 < 60s JUnit XML
L3 端到端冒烟 主流程接口链路、启动与退出 ./scripts/test-e2e 是 < 3min JSON 报告 + 日志
L4 客户端交互自动化 真实界面操作:点击、拖拽、按键、输入、快捷键 ./scripts/test-ui 是(冒烟子集) 单例 < 30s,子集 < 5min report.json + 步骤截图 + HTML 报告
L5 自检 运行环境、依赖版本、配置项、数据目录可写 ./scripts/selfcheck 是 秒级 检查表
L6 视觉回归(可选) 关键页面截图与基线比对 ./scripts/test-visual 否,夜间执行 < 10min 差异图 + 差异像素占比

用例归属原则:能在 L1 用纯函数验证的逻辑,不写进 L4。L4 只覆盖真实交互路径与界面状态变化。

4.2 统一入口

1
2
3
./scripts/verify            # 串起 L1 → L2 → L3 → L5,默认包含 L4 冒烟子集
./scripts/verify --full     # 追加 L4 全量
./scripts/verify --layer ui # 只跑指定层,Agent 调试用

verify 输出汇总表,列出每层用例数、通过数、失败数、耗时、产物目录,按失败总数返回退出码。任一层失败,后续层是否继续由 --fail-fast 控制,默认继续以便一次看到全部问题。

4.3 产物规范(所有层共用)

产物 位置 内容
汇总表 .cache/test-reports/summary.json 每层统计与退出码
机器可读报告 .cache/test-reports/<layer>/report.json 每用例状态、耗时、失败原因、产物引用
人类可读报告 .cache/test-reports/<layer>/report.html 时间线、缩略图、失败堆栈
截图 .cache/test-reports/<layer>/screenshots/<用例ID>/ 仅 L4、L6 产生
日志 .cache/test-reports/<layer>/logs/ 运行日志与错误输出

.cache/ 整体不入库,删除即彻底清理。

4.4 失败处理与回归保护


5. 客户端交互自动化(自动化测试 L4 子模块,对应约定 5)

本节是 §4 体系下的一层,规则服从 §4 的统一入口与产物规范,以下为客户端特有的要求。

5.1 能力要求

能力 要求
元素定位 优先语义定位(角色 + 名称、测试 ID),禁止依赖像素坐标与 DOM 层级
交互原语 click / doubleClick / rightClick / drag(from,to) / type / press(key) / hotkey / scroll / hover
等待 显式等待条件(元素可见、文本出现、网络空闲、状态码),全局禁用固定 sleep
断言 元素存在与状态、文本内容、列表数量、视图切换、接口调用次数
截图 关键步骤截图、失败自动截图、可选视觉比对
结果输出 report.json、report.html、截图目录,格式与 §4.3 一致

5.2 选型(按栈取一个,保持单一)

客户端形态 推荐方案
Web / Electron Playwright(内置拖拽、截图、Trace、视频)
Tauri / 原生桌面 mcp-tauri-automation
移动端 Appium 或框架官方 UI 测试
兜底(无自动化接口) 系统级键鼠 + 屏幕截图工具,如dsh-computer-use,仅作最后手段,必须固定窗口尺寸、缩放比例、主题

优先使用框架原生自动化接口。兜底方案要求锁定窗口尺寸与 DPI,否则脚本不可重复。

5.3 目录结构

1
2
3
4
5
6
7
8
9
10
scripts/
  verify                  # 总入口,对应 §4.2
  test-ui                 # L4 入口:跑全部或冒烟子集
  ui/
    run-case              # 跑单个用例,Agent 调试用
    record                # 录制操作序列,生成用例骨架
    cases/
      001-login.click.yaml
      002-drag-reorder.drag.yaml
      003-shortcut-save.key.yaml

5.4 用例格式(声明式)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
id: 002-drag-reorder
name: 列表拖拽排序并持久化
setup:
  reset_data: true
  window: {width: 1280, height: 800}
steps:
  - action: goto
    target: "app://tasks"
  - action: waitFor
    target: {role: listitem, name: "任务A"}
  - action: drag
    from: {role: listitem, name: "任务A"}
    to:   {role: listitem, name: "任务C"}
    screenshot: before-after
  - action: press
    key: "Ctrl+S"
  - action: expect
    target: {role: listitem, index: 0}
    text: "任务A"
assert:
  - api_called: {path: "/tasks/reorder", times: 1}
  - screenshot_diff: {baseline: "002-final.png", tolerance: 0.02}

用例数据驱动、可重复、幂等。每个用例自带 reset_data,不依赖前一个用例的残留状态。

5.5 截图与结果反馈

截图作为执行证据,供 Agent 读图判断与人工复核。命名规范:<用例ID>/<步骤序号>-<步骤名>.png。失败时固定输出 99-failure.png,并额外保留失败前一步的画面,便于对比预期与实际。

截图策略:

模式 触发 说明
默认 ./scripts/test-ui 关键步骤 + 失败点 + 用例结束
全量 --screenshot=all 每步一张,调试用
视觉回归 --visual-regression 输出 diff.png 与差异像素占比,对应 L6

report.json 中每步字段:{step, action, status, duration, error, screenshot},Agent 可按步骤定位失败点。

5.6 Agent 调用方式

1
2
3
4
5
1. 运行 ./scripts/ui/run-case 002-drag-reorder --json
2. 读取 report.json;status=failed 时读 error 与 99-failure.png
3. 结合截图与失败步骤定位问题,改代码或用例
4. 重跑单例,再跑 ./scripts/test-ui 冒烟子集
5. 全绿后把用例数、截图路径、耗时写进 docs/开发记录.md

Agent 行为边界:

5.7 稳定性要求

问题 对策
用例偶发失败 显式等待 + 重试 ≤2 次,重试计入报告,频繁重试视为缺陷
数据互相污染 每例独立数据目录 + 独立临时端口 + 启动即重置
环境差异 固定窗口尺寸、DPI、主题、语言,时区与本地化写死
并行 默认并行,共享资源的用例标注 serial: true
时长 单例 < 30s,冒烟子集 < 5min,超时即失败并截图

其他约定


已验证

项目 内容
L1 单元测试 服务端 <N> 个、客户端 <M> 个(按项目实际填写;覆盖核心校验、状态机、边界条件、异常路径)
L2 集成测试 <P> 个(存储读写、序列化往返、模块协作)
L3 端到端冒烟 <Q> 条主流程链路
L4 客户端交互自动化 <K> 个用例(点击 / 拖拽 / 按键 / 输入 / 快捷键),每例产出 report.json + 步骤截图,失败自动截 99-failure.png,单例 < 30s
L5 自检 <S> 项环境与配置检查
L6 视觉回归 <V> 张基线截图,夜间执行,差异阈值 2%
一键自动化 ./scripts/verify 串起 L1 → L2 → L3 → L4 → L5,汇总表含各层用例数、失败数、耗时、产物目录,按失败数返回退出码

本次改动

改动点 说明
新增 docs/自动化测试.md 作为自动化测试总文档,承载 §4 的分层、入口、产物、失败处理
新增 docs/自动化测试-客户端交互.md 原 UI 自动化细节下沉为子文档,从属关系在文档表中显式标注
约定 4 / 约定 5 拆分 约定 4 管自动化测试整体,约定 5 管客户端 L4 子模块
新增 §4 自动化测试体系 L1–L6 分层表、统一入口 --layer、统一产物规范、回归保护
§5 降级为 L4 子模块 保留交互原语、选型、用例格式、截图反馈、Agent 调用、稳定性,开头声明服从 §4
稳定版本判定 verify 改为「自动化测试全层 + 构建 + 自检」
已验证表格 按 L1–L6 分层列出,新增 L6 视觉回归行