Files

92 lines
3.5 KiB
Markdown
Raw Permalink 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.
# 开发工作流
## 目标
用最少但完整的步骤完成需求,同时确保实现、测试和文档一致。流程服务于开发,不增加与风险无关的门禁。
## 标准流程
### 1. 理解需求
明确以下内容:
- 目标结果和使用场景;
- 输入、输出和验收方式;
- 修改范围与明确不做的内容;
- 是否会改变现有协议、数据库或运行行为。
范围清楚、实现方式唯一且容易回退的小改动,可以检查现状后直接实施。存在关键事实缺失、多个重要方案或兼容性取舍时,先和用户确认。
### 2. 检查现状
先读与需求直接相关的代码、配置、测试和文档,不根据文件名或旧说明猜测实现。检查工作区状态,保留无关改动。
建议入口:
- 项目规则:`AGENTS.md`
- 代码定位:[架构与代码地图](02-architecture-and-code-map.md)
- 协议与动作:`docs/agent/`
- 构建版本:`android/*.gradle.kts` 和 Gradle Wrapper 配置
### 3. 分析方案
根据改动范围说明必要的设计事实:
- 模块边界和数据流;
- 协议、接口或持久化变化;
- 异常和超时行为;
- 兼容性影响;
- 自动测试与真机验证范围。
简单改动不要求编写单独方案文档;在任务沟通中说明即可。
### 4. 实施改动
- 按已确认方案做最小且完整的实现;
- 优先扩展已有抽象,不复制相同逻辑;
- 不混入与当前需求无关的重构;
- 变更协议、数据库或长期规则时,同步更新相关文档和测试;
- 当前没有 Android 实现需求时,只改文档,不以占位代码宣称能力可用。
### 5. 执行验证
验证应覆盖受影响范围:
- 文档改动:检查链接、路径、命令和实现状态;
- 模型、协议、同步或执行器:运行相关单元测试,交付前运行完整 `test`;
- Manifest、资源、依赖或 Android 应用代码:运行 `assembleDebug`;
- SQLite 结构:补充读写或升级测试;
- 无障碍行为:除自动测试和构建外,列出需要真机验证的页面与动作。
测试必须真实执行。未运行、无法运行或需要外部环境的项目要明确说明。
### 6. 交付
向用户简要说明:
- 实现结果和主要改动文件;
- 实际执行的验证及结果;
- 未完成、未验证或仍待确认的事项。
只有用户要求时才创建 Git 提交。提交前检查差异,确保不包含无关文件;不自动推送、发布 APK 或创建标签。
## 改动与文档的对应关系
| 改动 | 同步检查 |
|---|---|
| 项目标识、版本或依赖 | `README.md`、`AGENTS.md`、项目概况、构建文件 |
| 任务 JSON 或校验规则 | `docs/agent/protocol.md`、解析测试 |
| 选择器 | `docs/agent/selector.md`、解析和执行测试 |
| 动作 | 模型、解析器、执行器、动作页、动作索引和测试 |
| 任务同步规则 | 业务规则、调度代码、同步测试 |
| SQLite 表结构 | 业务规则、持久化代码、升级或读写测试 |
| 构建或运行方式 | README、本地开发文档、AGENTS(若为长期规则) |
## 需求变化
需求或已确认方案发生变化时,先重新确认受影响范围,再继续实现。已经完成且仍有效的工作保留,不为追求形式完整而重做。
## 发现范围外问题
记录并在交付时提示,但不自动混入本次修改。只有它会阻止当前需求、破坏数据或使验证失真时,才需要立即处理或请求用户决策。