docs: hand off deterministic daily operations SOP

This commit is contained in:
Codex committed 2026-10-21 16:51:21 +09:00
1 parent 2aafb6f92f
commit 35b9a62ed4
3 files changed
+69

No files matched your search

+32
View File
@@ -0,0 +1,32 @@
# 日常操作 SOP:交付 01
2026-10-21。源码提交 `2aafb6f92f483de24cf6e17277a2f5385c7c9fc5`,基线 `dac4af53e098ea452cb8421962b49b7c9f66df91`。
## 新对话入口
新对话已打开本仓库并加载 AGENTS.md 时,只说“拉取代码”“运行 dev”“运行最新 dev”“停止 dev”“重启 dev”“构建”“打包”或“查看状态”,由模型映射固定入口 `node scripts/ops.mjs <action> --json`。
若新对话没有项目上下文,先提供一次项目根目录并要求读取 AGENTS.md。仓库规则不会自动进入所有纯聊天,也不会替用户切换模型或改变额度。完整映射见 [日常操作 SOP](日常操作SOP.md)。
## 实现
- 固定白名单动作、参数检查、JSON schema/status/code/exitCode、绑定目录及 Git 身份,不让模型拼任意命令。
- pull 仅干净 master + 正确 gitea 远端 + 本次 fetch + 快进到精确 SHA;本地领先/分叉/脏修改均停止,不 reset/stash/强推。
- dev 当前代码与 dev-latest 明确区分。已有可验证实例复用;restart/stop 只操作 PID、创建时间、完整命令行匹配的目标进程树。未知实例拒绝接管或批量杀进程。
- dev 验证所有者、端口、实际仓库源码 HTTP 响应、对应 renderer 和可响应窗口,并要求带本次 UUID/PID/时间的新鲜实际 DOM 心跳。开发态 opt-in 主进程只观察自己窗口的可见 App shell;无网络/CDP/新 IPC 入口,打包应用不启用。不是全业务功能验收。
- build/package 检查本次新鲜精确类型产物及源码内容指纹;package 限 Windows x64、仅生成未签名本地产物、不发布/上传。超时可能存在后代进程时保留锁并阻止重叠重试。
- 错误结构化报告;不自动改代码、升级依赖、修复未知环境或变更安全策略。缺依赖/PowerShell 策略限制/认证等必须明确处理,不能伪装成功。
## 验证
- 28 项离线/夹具测试通过:参数注入、目录/分支/远端、临时本地 bare 仓库快进与失败、脏修改保护、锁、超时、输出脱敏/边界、构建产物、新旧源码、进程归属/PID 重用、HTTP 错配、旧/错心跳、DOM 谓词、主窗口生命周期及写入失效竞态。
- 主线程实际调用 `node scripts/ops.mjs build --json --timeout-ms 120000` 成功,得到 BUILT 和 main/preload/renderer 三类新鲜产物哈希。执行时源码为上述提交的工作树内容,因此报告保留当时 dirty=true,不改写成提交后重跑。
- 前一次实构建恰遇新增测试文件,入口返回 SOURCE_CHANGED,未误报成功;源码停止变化后重跑才通过。
- TypeScript 检查、独立复审、git diff --check 通过。
- 证据:[测试](evidence/daily-ops-01/tests.txt)、[实构建结果](evidence/daily-ops-01/build.json)。
## 未验证与验收
尚未在 Windows 实机运行 dev/start/stop/restart/installer。需验证 PowerShell 查询权限与脚本执行策略、detached 主机是否被执行器 job 清理、真实窗口/端口关联、中文空格路径、已有实例、错误版本、启动失败和超时。脚本不会更改执行策略来绕过阻塞。Linux 的 native dev/package 返回 UNSUPPORTED,不算通过。
模型必须依据动作结果与证据汇报:status 的 PASS 只表示状态读取完成,不表示其嵌套 dev 一定已启动。工具返回执行 session 时只能续读同一 session,不能重复启动。SOP 旨在减少常规操作的推理与失误,不保证任意模型或机器永不出错。