跳到正文
文档目录核心概念

核心概念

RepoCare 的每个页面都遵循同一套原则:结论要能追溯到固定版本的证据,机器只给建议,对外动作由人确认。理解下面几个概念,就能读懂所有页面上的状态和提示。

阅读约 3 分钟8 个小节

固定快照

一次体检、一次 PR 审查或一次隔离执行开始时,RepoCare 会把对应的 Git 提交(SHA)记录下来,之后所有的文件读取和引用都基于这个版本。

  • 体检锁定所选分支当时的最新提交。
  • PR 审查同时锁定 head(待合并的改动)和 base(合并目标)两个提交。
  • 复现与验证在 Docker 中检出同一个提交执行,并在每次尝试前重置工作目录。

这样做的好处是结论可以复查:几天后再看报告,引用的文件内容和当时完全一致。代价是结论会过时——仓库有了新提交、Issue 原文被编辑、PR 推送了新代码,或项目规则改了版本,旧结论就只能作为历史参考。页面会明确标出“原文已更新”“版本已过期”“需重新审查”,此时请按新版本重新分析。

证据、建议与确认

RepoCare 把信息分成三层,界面上会分别标注:

层次含义界面上的样子
原始事实从 GitHub 或仓库直接读取的内容:Issue 正文、Diff、文件、CI 检查结果“原文”“Diff 原文”“可见检查”
机器建议规则或模型基于事实得出的判断:分类、优先级、审查发现、改进草稿“AI 建议”“规则估计”“待人工核对”,常用虚线样式
维护者确认你保存的最终判断和发布决定“维护者确认”“已确认”,常用实线样式

AI 结论在得到你的确认前不会改变项目状态。确认操作也不会覆盖原始的 AI 分析,两者会同时保留,方便事后回看。

已知、未知与“没有”

RepoCare 区分“确认没有”和“不知道”:

  • CI 状态未读取或未返回,显示为 未知,不会当作通过。
  • 评论数未知时,不按零计算;优先级未判断时,不按低优先级处理。
  • 文件清单被截断时,没读到的文件“不能判定没有问题”。
  • 体检中的 无法判断 表示证据不足,需要人工查看。

看到“未知”时,正确的做法是补充证据(刷新、读取文件与检查、补充信息),而不是把它当作好消息或坏消息。

任务与后台服务

耗时的工作以任务形式交给后台服务处理,离开页面不会中断:

后台服务负责
体检 Worker项目体检
维护 Agent WorkerPR 分块审查、维护调查等模型任务
复现 WorkerDocker 隔离执行:Bug 复现、贡献路径验证、对照验证

任务有排队、运行中、完成、失败、已取消等状态。“完成”只表示任务结束,仍需查看覆盖范围和证据。服务离线时,新任务会排队等待,页面会提示“执行服务暂未在线”。部署方式见部署与运维。

草稿与交付

所有对外内容都先成为草稿:

草稿类型来源交付到 GitHub 后
文档改进体检报告中的待完善项在独立分支上创建 Draft PR
Issue 回复Issue 分诊结果作为 Issue 评论发布
PR 评论你筛选后的 PR 审查发现作为 COMMENT 类型的审阅发布

草稿可以编辑、比较差异、恢复历史版本、下载。发布需要 GitHub 写入权限和逐次确认;发布结果无法自动确认时,状态会停在“待核对”,而不会自动重试,以免重复发布。详见草稿与交付。

隔离执行

需要运行仓库代码时(复现 Bug、验证贡献路径、对比补丁),RepoCare 不在网页服务进程里执行,而是交给复现 Worker 在 Docker 容器中运行:

  • 每次执行前先由你审阅计划中的命令、依赖和预期结果,确认后才会排队。
  • 容器使用只读根文件系统、不授予额外 capabilities,并限制 CPU、内存和进程数。
  • 验证阶段始终断网;只有管理员允许、且你审阅过的依赖准备阶段可以联网。
  • 每个日志和制品都记录 SHA-256,下载时重新校验。

详见部署与运维 · 启用隔离执行。

模型与费用

模型只在你主动发起时调用:开始 AI 分诊、开始 AI 审查、生成草稿、内容研判、维护调查、连接测试。浏览页面、读取文件与检查、保存设置都不调用模型。调用会产生服务商费用,用量以服务商返回为准;服务商没有返回费用时,不能视为免费。

项目与身份

工作区数据按“账户 + 当前项目”保存。匿名会话、邮箱账户和 GitHub 账户是不同的身份,数据不会自动合并;切换身份后看不到之前的记录,通常是进入了另一个身份的工作区。外观等偏好只保存在当前浏览器。