Skip to content

Latest commit

 

History

History
80 lines (58 loc) · 4.8 KB

token-forge-quality.md

File metadata and controls

80 lines (58 loc) · 4.8 KB

Token Forge 任务质量评分与可解释排序

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 进一步提示预算过度集中,而不是重复代替合同验证。

依赖安全排序

排序使用经过验证的无环依赖图:

  1. 只从依赖已经排入结果的“当前可执行任务”中选择;
  2. 当前可执行任务按质量分从高到低排列;
  3. 同分时保留原始任务顺序;
  4. 每加入一项后重新计算可执行集合,直到任务全部排入结果。

每个位置都保留一个稳定排序原因:

规则 含义
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 允许用户本地修改和锁定任务;每次应用后都会重新验证、评分并重建导出。