线上 Wiki 15 个核心页面已创建并回读确认,导出为 docs/ 只读镜像。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
5.3 KiB
generated: true (请先修改 Gitea Wiki,禁止直接编辑本文件) wiki_page: Common-Changes wiki_url: https://git.ilapage.cn/OPC/chorus/wiki/Common-Changes.- wiki_revision: becf3fdead14674cb74a7a48c4792c06eb9d454b synchronized_at: 2026-08-20T03:29:30Z
常见修改指南
本页面向接手简单维护的初级程序员。每一类修改都给出改哪里、验证什么、什么时候必须停下来。
风险分级
| 级别 | 例子 | 处理方式 |
|---|---|---|
| 低 | 页面显示文案、注释、文档措辞、日志文本 | 可以直接改,跑最小验证 |
| 中 | 现有页面的样式与布局微调、新增一个只读字段展示、增加一条日志 | 建单,按本页步骤改,跑完整验证 |
| 高 | 选路与 retryable 判定、熔断参数、SSRF 校验、密钥加解密、数据库迁移、队列租约、身份与权限、点数余额写入、删除数据或不可逆操作 |
停止,交给 Agent 分析并等待人工确认方案 |
判断不了级别时按高风险处理。“看起来只改一行”不是低风险的理由——retryable 的一行就能烧光所有上游配额。
修改用户端显示文案
- 在
portal/web/templates/中定位文案所在模板。 - 只改用户看到的文字,不要顺手改变量名、模板名、CSS 类名或字段名。
- 验证:
go build ./...,启动go run ./portal,在浏览器确认该页面文字与布局。
纯显示文案且不改变语义、流程、权限、状态、接口、布局或可访问性时不需要建单,但仍要做最小界面检查。改的是错误提示的含义、按钮的行为暗示或任何影响用户判断的措辞时,按中风险建单处理。
修改角色规则默认模板
角色规则不是代码常量,是数据:改 prompt_templates 表中对应 kind 的默认模板,或通过管理端页面修改。
- 不要把角色规则写回 Go 代码里——三层覆盖(管理端模板 → 用户端可编辑框 → 每张图 role/note)是已确认的设计。
- 改完用一次真实生成验证,检查
generations.rendered_prompt是否如预期。
增加或调整一个上游 Provider
- 优先通过管理端页面配置(管理端接入前用种子命令,见 本地开发与验证)。
- 确认
api_type选对:文生文用chat,图生图用images_edits。 - 保存后用「连通性测试」打一次真实请求验证;没有该按钮时手工提交一次生成。
api_key只填进配置,不要出现在工单、截图或日志里。
新增的是一种上游协议形态(而非一家新服务商)时属于高风险:需要在 internal/core/provider/ 新增实现,必须建单并补齐 mock 测试。
修改 Wiki 文案
长期文档的事实来源是 Gitea Wiki,docs/ 是只读镜像(Wiki 初始化完成后生效)。
修改 Wiki → 读取确认 → 导出 docs → 校验差异 → 提交镜像
python dev_scripts/harness.py sync
python dev_scripts/harness.py sync --check
不要直接编辑带 generated: true 头的本地文件。Wiki 尚未初始化的阶段允许直接改 docs/,但必须在工单说明,并在初始化时把内容搬到 Wiki。
调整 Harness 检查
dev_scripts/harness.py 的 check 子命令负责校验必需文件、核心文档章节和工单模板字段。
-
修改
CORE_DOCUMENT_REQUIREMENTS、REQUIRED_FILES或模板字段列表。 -
在
tests/中同时补充成功用例和失败用例——只有成功用例的检查等于没有检查。 -
验证:
python -m unittest discover -s tests -v python dev_scripts/harness.py check --strict
新增核心文档时必须同时更新 wiki-docs.json 映射、docs/README.md 导航和 Harness 检查,三者缺一会导致同步或检查失败。
看懂 Agent 的修改
审查 Agent 提交时按这个顺序看:
- 范围:改动文件是否都落在工单声明的范围内?出现工单没提到的文件要问清楚。
- 边界:
internal/core里有没有混进 gin 或 go-admin 的 import?生成链路有没有碰点数? - 状态机:
generations.status的写入是否只沿pending → running → succeeded | failed前进? - 失败路径:
retryable的分支有没有写反?失败时attempts、error_code、error_message是否都落库? - 迁移:表结构变更有没有对应 SQL 文件?down 能不能跑?
- 测试:新增逻辑有没有测试,测试是否覆盖失败分支而不只是happy path。
- 文档:入口、命令、规则变了,
docs/是否同步评估过。
任何一条答不上来就退回让 Agent 解释,不要凭“测试过了”放行。
必须停止的情况
遇到以下情况停止修改,交给 Agent 分析并等待人工确认:
- 需要改选路、熔断、
retryable、SSRF、加解密、队列租约中的任意一项; - 需要新增或修改数据库迁移;
- 需要触碰身份认证、权限或 API Key;
- 需要写入点数余额或
point_ledger; - 需要删除数据、清理生成物或执行任何不可逆操作;
- 修改会改变已确认原型的页面结构、流程、状态、权限或异常处理;
- 你不确定这属于哪一级风险。