P1-009 在 Token Forge v1 计划通过 Schema、依赖图、Token 总额和工时上限后,执行一层 完全确定性的质量分析。它不调用 AI、不读取新的仓库内容,也不把模型自评当作质量证据。
质量结果是页面内部的 1.0 视图模型,不改变公开 Plan v1 Schema。原计划任务只会被依赖
安全地重排,字段和值不会被质量层改写。重排后的计划再次通过 Plan v1 验证,再用于页面、
Markdown、GitHub Issue 草稿和 Coding Agent 执行包。
每个任务总分 100 分。80 分及以上标记为“可执行”;低于 80 分,或同时独占超过 70% Token 与工时的任务标记为“需人工修改”。计划中只要存在一项需修改任务,整体状态就是 “需人工检查”;任务不会被静默删除。
| 规则 | 分值 | 确定性判断 |
|---|---|---|
QF-Q01 |
20 | 标题是否同时包含明确交付动作和可识别产物,且没有空泛限定词 |
QF-Q02 |
15 | 包含范围是否至少两项,非目标是否指向具体产物或系统边界 |
QF-Q03 |
15 | 是否至少有两条验收标准,避免只描述单一成功路径 |
QF-Q04 |
20 | 每条验收是否同时包含可观察结果与测试、命令、状态或明确产物证据 |
QF-Q05 |
15 | Agent Prompt 是否同时包含实施动作和可重复验证步骤 |
QF-Q06 |
15 | 多任务计划中,单项是否独占超过输入 Token 或可投入工时的 70% |
规则采用固定词表和结构计数,不声称理解自然语言的全部语义。部分满足会取得规则定义的固定
部分分;页面展开项会显示规则编号、通过或需改、所得分和稳定解释。Plan v1 已经阻断超总预算
任务,QF-Q06 进一步提示预算过度集中,而不是重复代替合同验证。
排序使用经过验证的无环依赖图:
- 只从依赖已经排入结果的“当前可执行任务”中选择;
- 当前可执行任务按质量分从高到低排列;
- 同分时保留原始任务顺序;
- 每加入一项后重新计算可执行集合,直到任务全部排入结果。
每个位置都保留一个稳定排序原因:
| 规则 | 含义 |
|---|---|
QF-O01 |
前置任务已经排在此前,当前任务才进入可执行位置 |
QF-O02 |
同时可执行的任务中,规则质量分更高者优先 |
QF-O03 |
同时可执行的任务同分,保留原始稳定顺序 |
QF-O04 |
用户已确认当前依赖安全的手动顺序,质量分不覆盖 |
因此高分任务不会越过自己的依赖。页面顺序与三种导出顺序使用同一份重排后计划,不会出现 “页面推荐顺序”和“交给 Agent 的顺序”不一致。
P1-010 本地编辑模式保留用户确认的顺序,并先检查每个依赖是否已经位于使用者之前;无效
顺序失败关闭。用户显式选择“按质量重新排序”时,才重新运行 QF-O01 至 QF-O03。
存在锁定任务时禁用自动排序,避免质量分静默移动已确认的位置。
仓库状态只生成稳定的证据说明,不改变质量分:
QF-E01:未请求仓库摘要,评分只判断计划结构和预算;QF-E02:受限摘要可用,但不能被当作完整代码审计;QF-E03:摘要不可用或已降级,不能声称任务完全匹配现有实现。
质量结果不复制目标、仓库 URL、文件路径、正文或模型输出原文。它只包含任务 ID、分数、 规则编号、固定解释、位置和仓库证据类别。
无效 Schema、重复任务 ID、未知依赖、自引用、依赖环、超 Token 或超工时会在评分前由 Plan v1 失败关闭。质量层不会为无效计划生成一个看似可信的分数。
合成测试覆盖现有模板、空泛任务、部分满足、预算集中、依赖排序、同分稳定顺序、手动顺序、
无效依赖和敏感上下文不进入解释。完整质量门继续使用根目录 npm run validate。
- 无网络、无存储、无日志、无新增依赖;
- 不增加 Provider 调用或 Token 成本;
- 固定中英文词表可能低估表达方式特殊但实际可执行的任务,也可能高估使用了验证词却语义 不充分的任务;
- 分数是编辑提示,不是代码正确性、商业价值或仓库适配度证明;
- P1-010 允许用户本地修改和锁定任务;每次应用后都会重新验证、评分并重建导出。