Skip to content

Latest commit

 

History

History
149 lines (112 loc) · 7.59 KB

CONTEXT.md

File metadata and controls

149 lines (112 loc) · 7.59 KB

zcode-executor

Claude 当工头,把想清楚的开发任务派给本机 ZCode 执行,用客观证据验收。 这份文件只定词,不定实现;实现决定在 decisions.md 和 SPEC.md。

Language

派活

会话(session): ZCode 那边的一条对话,由它的 sess_ id 标识。本项目在登记簿里给它一个本地派单 id(x_ 开头),命令行只用本地 id; zcode 的 sess_ 在第一回合后才存在。 Avoid: run、任务实例、job

本地派单 id(local id): 登记簿给每条会话的键,x_ 加 8 位十六进制。所有命令的 <id> 都是它;zcode 的 sess_ 只在 list 和 --json 里并排显示,对账用。 Avoid: run id、任务 id

任务单(task file): Claude 写给执行端的契约文件,写清目标、改哪些文件、验收标准、禁区。 Avoid: 提示词、prompt、消息

任务单快照(task snapshot): 任务单在投递入队那一刻的内容,存在数据目录里(runs/<id>/tasks/)。模型审批的意图只读它,不读执行副本里那份执行端改得动的原文件。 Avoid: 任务单备份、缓存(「会话快照」是 watch 推送的会话状态,另一回事)

投递(send): 往一条会话发一条消息,触发一个回合。消息只是门铃,内容在任务单里。 Avoid: 提交、prompt

回合(turn): 执行端从收到一条投递到停下来的一整段工作。 Avoid: 轮次、prompt、run

验收(acceptance): Claude 看 git diff 和测试结果判断任务是否完成。执行端的自述不算证据。 Avoid: 确认、review

闲时投递(off-peak send): 回合要等服务器放出闲时算力才开跑的一次投递,用 Coding Plan 订阅的免费闲时额度,不占套餐额度。 会话、回合、验收的含义照旧,只是开跑时间由服务器决定。 Avoid: 闲时任务(只指 ZCode App 里的同名功能)、闲时会话(会话没有类型,闲时是投递的属性)、离峰任务、off-peak task

号(ticket): 闲时投递在服务器排队用的凭证,一次投递可能先后用到几个号。取号即进队;号就绪后要在几分钟内开跑,开跑后有最长运行时间; 用完要结算。 Avoid: 票、排队项、队列项

start plan 投递(start-plan send): 这一回合的模型请求改走 Start Plan 订阅额度的一次投递,照普通投递立刻开跑,无号、不等待、不结算。 会话、回合、验收的含义照旧。 Avoid: start-plan 任务、Start Plan 会话(会话没有类型,start plan 是投递的属性)

执行副本(worktree): 执行端干活用的 git worktree,和主检出隔离。由 Claude 建,本项目只记录。

审批

审批请求(permission request): 执行端做某个操作前发来的「可不可以」。 Avoid: 权限弹窗、permission prompt

提问(question): 执行端反过来问的问题,要一个答案而不是允许或拒绝。 Avoid: 用户输入、user input

闸门(gate): 处理审批请求的整段流程:红线 → 模型审批 → 挂起。 Avoid: 审批器、过滤器

红线(hard rule): 谁也推不翻的规则,命中就直接转人工,不进模型审批。 Avoid: 黑名单、硬规则

管控面(control plane): 本工具数据目录里执行端不该碰的部分:挂起与应答、登记簿、配置、事件、任务单快照——也就是数据目录去掉默认执行副本根 worktrees/ 和本会话的执行副本。 执行端的操作指向它,或调用本工具的 CLI,就命中自保那条红线。 Avoid: 状态目录、内部目录

模型审批(model review): 由模型逐层判断审批请求是放行还是转人工。可有前筛、快筛和慢判;最终只产出放行或转人工,从不拒绝。 Avoid: 裁决、judge、自动审批

前筛(pre-screen): 原快筛之前可选的 Jev 判断。证据充分且通过时提前放行,其余继续原快筛,不替代它。 Avoid: 替代快筛、shadow

本地跳过(local skip): 发送前已知判断所需证据不足或无法可靠脱敏,因此不请求 Jev,继续原快筛;不是模型判定有风险。 Avoid: flag、模型拒绝

快筛(fast screen): 原 ZCode 模型审批的第一段,判断能否直接放行;结果未通过或无法解析就交给慢判,调用失败则转人工。 Avoid: Jev 前筛、shadow、预审

慢判(slow review): ZCode 快筛结果未通过或无法解析后的复核;可放行或转人工,从不直接拒绝。 Avoid: 二审、终审

挂起(pending): 审批请求或提问在等人回应,回合停在那里不动。对外表现为 blocked。 Avoid: 阻塞、等待审批、卡住

回执(receipt): 应答被 runner 消费之后写进 events.jsonl 的那条 executor.approve / deny / answer 事件。 approve / deny / answer 的 --json 里的 eventType 就是它,找不到为 null。 Avoid: ack、确认消息

模型

模型等级(model tier): 按能力和成本把 ZCode 模型分成的档。派活、ZCode 快筛与慢判按等级选,不按具体模型名;Jev 使用固定版本,不属于这个等级表。 Avoid: 模型名、型号

思考等级(thought level): 执行端一次回合里推理的深浅,建会话时定。 Avoid: effort、reasoning、思考档位

个人 provider 文件(personal provider config file): 我们写给 app-server 子进程的一份只含一个 provider 的 JSON,内容从选中的 provider 换算而来 (来源是 ~/.zcode/v2/config.json,或账号型 provider 从凭据文件解出的平台 key,D19),路径经环境变量 ZCODE_PERSONAL_PROVIDER_CONFIG_FILE 传给子进程(decisions D14)。 Avoid: provider 表、registry

内置 provider 文件(builtin provider config file): ZCode App 自带的 zcode-builtin.json,路径经环境变量 ZCODE_BUILTIN_PROVIDER_CONFIG_FILE 告诉子进程; 本项目只负责算出并传入这个路径,不生成也不改它的内容。

账号型 provider(account provider): 内置 provider 文件里 account: 前缀的 coding plan 条目(个人版 / 团队版)。用户在 App 里用账号(OAuth)登录后, key 不写进 config.json,而在凭据文件里由 App 替用户领取;本项目解出后当普通平台 key 走 D14 的个人文件路径 (decisions D19)。 Avoid: OAuth provider、zhipu-account

凭据文件(credentials file): ~/.zcode/v2/credentials.json,ZCode App 存登录凭据的平面 JSON,值多为 enc:v1: 加密(AES-256-GCM)。 本项目只读、只解四个键(active provider、user_info、两把 coding plan api-key),闲时投递另解 zcodejwttoken(D20),其余键一律不读不解。 Avoid: 密钥库、keychain

观察

观察面板(watch pane): Claude Code 里实时显示本项目各条会话进展的面板:执行端的回复、正在用的工具、挂起内容、闲时排队进度。 用 /zcode 打开,Claude 投递时也会自动打开。只用来看,不在上面应答挂起,挂起仍由 Claude 转交给人。 Avoid: 监控面板、dashboard、仪表盘

所属仓库(repo): 会话的执行副本对应的主仓库根目录,用 git 的共同数据目录判定,不按目录名猜。执行副本被删、查不到时为空。 和登记簿里的 repoRoot 不同:repoRoot 是 new 时记下的原仓库,只在 cwd 是 worktree 时才有;所属仓库在 cwd 就是主仓库时也有值(就是它自己)。 Avoid: 项目名、工作区