7.3 KiB
7.3 KiB
Agent 开发规则
本仓库采用 DevHarness 工作流:Gitea 工单记录任务过程,Gitea Wiki 是长期开发文档和任务归档的事实来源,Git 保存源码、版本绑定资料和 Wiki 的本地镜像。docs/ 中显式映射的 Markdown 是 Wiki 只读镜像;docs/task/ 只保存用户明确要求导出的任务归档快照。
当前文档规则参考 DevHarness 提交 b1f500128d6eb100985792d4a715db8b6b5ae203,但所有模板内容都必须按 GoAuto 事实改写。开始工作前阅读 docs/00-project-profile.md、docs/03-business-rules-and-glossary.md 和当前工单。不同交付单元规则不同时,在 server/、web/ 或 android/ 下增加更具体的 AGENTS.md。
永久规则
- 不把密码、Token、Cookie、私钥、PDD 账号凭据、个人数据或生产数据写入代码、日志、工单和文档。
- 不执行付款;任何自动支付实现、入口或测试都禁止进入本项目。
- 当前采集 MVP 只实现 PDD 商品、规则、任务、Android 执行和任务详情。采购是独立的后续高风险 MVP,未通过对应原型和工单门禁前不能混入采集代码。
- 不保存原始控件树和设备截图;只保存结构化任务日志、错误码、任务规则快照和采集结果。
- 一台设备同一时刻只执行一个任务;手机离线时当前采集任务失败,默认不重试、不自动换机。
- 找不到控件、验证码、风控、人机验证或登录失效时明确失败,不使用 OCR/VLM,不猜测规格,不点击相近候选。
- SKU 数据不完整仍须提交并允许在任务详情查看,状态记为
completed_partial。 - 规则创建即生效;删除后不能创建新任务,但已有任务继续使用自身规则快照。
- 同一 PDD 商品不能同时存在多个
pending或running采集任务。 - 重置采集任务保留 URL、goods_id、规则和设备快照,事务清空旧结果后重新进入
pending。 - 保留与当前工单无关的工作区改动,不重置、不覆盖、不顺手修改。
- 测试结果必须真实;未执行或无法覆盖的真机、多设备、云环境和高风险行为必须明确记录。
工单门禁
- 新功能、缺陷修复、重构,以及接口、数据库、权限、并发、状态机、安全或用户界面变化必须先有单元工单。
- 只改错别字、注释、文档措辞或不改变含义的纯显示文案时可以免工单;有任何行为、布局、状态或安全含义不确定时不得使用豁免。
- Epic 和 MVP 只维护目标与子工单索引;单元任务是唯一实施单位。
- 工单必须记录原始需求摘要、前置依赖、是否可并行、子项目影响、方案、设计证据、验收、验证、风险和文档影响。
- 实施前检查依赖;真实依赖未满足且不允许并行时保持待实施。
- 用户未明确验收前,工单保持待验收,不关闭。
工单与设计证据双门禁
- 纯显示文案只有在不改变业务含义、流程、权限、状态、接口、数据、安全、支付、金额、单位、程序标识符、布局和可访问性时才免原型,并执行最小界面检查。
- 现有界面的小范围样式或布局调整至少提供标注截图、低保真图或明确复用的现有规范。
- 新组件记录正常、空、加载、失败、禁用和权限边界;按需提供低保真图。
- 新页面、独立用户功能、重大交互或导航变化必须先制作 QuantUX 或其他可审阅原型;用户确认文字需求、原型和覆盖范围后才能编写生产代码。
- 后端、接口、数据和定时任务不强制 UI 原型,但必须先确认架构、API、数据、状态或流程设计。
- 原型记录链接或 Git 路径、App ID/版本、草稿或已确认状态、确认人、确认时间和覆盖范围。草稿不能作为正式实现依据。
- 页面结构、主要流程、状态、权限、异常处理或验收结果变化时,先更新设计证据并重新确认。
需求记录与实施
- 先确认目标、非目标和当前事实,区分代码事实、用户确认规则和假设。
- 创建单元工单时记录来源、提出时间和表达目的所需的少量关键原话或脱敏摘要;不复制完整聊天或 Agent 内部推理。
- 只修改工单声明的交付单元和共享契约;新发现的相邻问题记录或另建工单,不混入当前任务。
- 共享 API 以
docs/08-agent-api-contract.md为唯一事实来源。 - 数据库和接口变化必须同步更新架构、业务规则和 API 文档。
- 每个动作结果必须与
taskId、deviceId和任务内的ruleSnapshot关联。 - Android Agent 必须使用任务租约和本地互斥锁保证串行。
- 服务端必须以最终包名、Activity 和页面证据验证动作,不只相信 Portal 的 success 响应。
- 执行与风险相称的测试,把实现、验证、未验证项和提交哈希回写工单。
自然语言快捷指令
快捷指令只是本工作流的别名,不能绕过方案确认、前置依赖、安全规则、工单范围、必要验证或人工验收:
只分析:只读检查并给出方案;不建单、不修改。建工单:根据已确认方案创建单元工单;建单后停止。执行工单 #N:检查工单和依赖,实施、测试、提交并回写证据;停在待验收。建工单并做:依次建单和执行;停在待验收。继续工单 #N:从首个未完成步骤继续,不重复仍然有效的检查。检查工单 #N:只读核对范围、验收、测试和证据;不自动修复。同步文档:读取 Wiki、导出核心docs/镜像并检查一致性;不修改 Wiki、不导出任务归档、不自动提交。导出任务归档:仅在用户明确提出时增量导出 Wiki 任务归档;导出全部任务归档才执行全量导出。#N 验收通过:仅在用户明确验收后更新任务归档、同步必要镜像、关闭工单并同步父工单。
效率与停止条件
- 优先执行能产生真实反馈的最小命令,采用“执行 → 首个真实错误 → 最小修复 → 继续”的闭环。
- 同一任务和同一环境中已经验证的事实不重复检查;环境、配置、代码或关键前提变化后才重新验证。
- 不主动增加与验收无关的文档、脚本、框架、重构或扩展性设计。
- 涉及凭据、权限、安全、迁移、并发、删除、发布、创建订单或其他不可逆动作时,先完成相应门禁,不通过试错获取风险反馈。
- 完成工单范围、必要测试、文档影响和证据回写后立即停止;未影响当前验收的相邻问题只提示或另建单。
- 长期文档固定顺序为:修改 Wiki → 读取确认 → 导出核心
docs/→ 检查一致性 → 提交镜像。不得直接编辑镜像后反向覆盖 Wiki。
Git 与验收
- 提交只包含当前工单内容,提交信息引用工单号。
- 优先运行项目档案记录的格式、单元、契约和集成测试。
- 涉及创建订单、权限、安全、并发、迁移和删除数据属于高风险,真机或正式实施前必须再次等待人工确认。
- 完成后将实现、验证、遗留问题和提交哈希回写工单,等待用户验收。
- 用户未明确要求时,不导出
docs/task/;任务归档默认只保存在 Wiki。