Skip to content

scd-discovery 访谈机制改为前沿轮次制,压缩访谈来回次数 #106

Closed

Description

@mindcarver

背景

当前 scd-discovery 采用“一次互动只请求一个决策”的访谈节奏。实测问题:决策数等于交互来回数,典型新产品 Discovery 有 30–50 个决策,需要 40–60 次来回;每次来回都是一次模型推理加一次用户上下文切换,长会话还会滑入上下文劣化区。

参考 mattpocock/skills 的 grilling 原语(v1.2.0 起改为轮次制):把决策树访谈组织为轮次,每轮一次性抛出整个前沿(前置决策已全部落定、彼此互不依赖的未决决策集合),用户按编号作答整轮,答案重算前沿进入下一轮。同轮内禁止互相依赖的问题,因此批量提问不会互相作废;13 个决策约 3 轮走完,来回次数降为约十分之一。

本变更按用户决策只面向强模型环境,不设针对弱模型的轮容量上限。

变更内容

  1. skills/scd-discovery/SKILL.md:“沿决策树访谈”改为“沿决策树按轮访谈”:每轮抛出整个前沿;每题固定格式(编号、标题、为何现在重要、实质差异备选项、单独一行推荐答案);用户按编号作答整轮;“每解决三到五个重要决策收敛一次”改为每轮结束收敛一次;未答题目进入临时假设。
  2. skills/scd-discovery/references/interviewing.md:“组织一次决策”改为“组织一轮”;“按依赖顺序推进”改为前沿定义与同轮依赖互斥规则,明确临时假设视为临时落定、解锁下游进入前沿;“决策没有得到回答时”改为按轮处理(同轮其余问题照常作答,整轮无实质回答才呈现阻塞);“定期收敛”改为“每轮收敛”。
  3. 保留不变:临时假设机制语义、最终契约统一确认累计假设、确认语义(沉默、切换话题、部分同意都不构成确认)、备选项纪律、readiness 对抗式审查、“先问上游问题,再问其后果”的依赖纪律。
  4. tests/discovery-contract.test.mjs:更新访谈节奏断言以匹配轮次制,新增前沿、按编号作答、每轮收敛、临时假设解锁下游的正向断言。

验收条件

  • A1:SKILL.md 声明每轮一次性抛出整个前沿(互不依赖的未决决策集合)且用户按编号作答;不再出现“一次只询问一个决策”。
  • A2:interviewing.md 给出前沿定义(前置已落定+彼此互不依赖)、同轮依赖禁止规则、临时假设视为临时落定并解锁下游问题。
  • A3:interviewing.md 的未回答处理按轮:同轮其余问题照常作答、临时假设继续解锁;整轮无任何实质回答才呈现阻塞;不再出现“仍然每次只请求一个决策”。
  • A4:收敛机制为每轮一次;不再出现“每解决三到五个重要决策”。
  • A5:保留项不变:SKILL.md 仍含“必须明确确认”;readiness-review.md 仍含“静默对抗式审查”与“A1:”;interviewing.md 仍含“先问上游问题,再问其后果”。
  • A6:node --test tests/discovery-contract.test.mjs 通过,且仓库全量测试无回归。

实施任务

  • 修改 skills/scd-discovery/SKILL.md 访谈章节
  • 修改 skills/scd-discovery/references/interviewing.md 对应四节
  • 更新 tests/discovery-contract.test.mjs 断言
  • 运行聚焦测试与全量测试
  • PR、独立验收、合并、安装刷新、关闭 Issue

Activity

  1. mindcarver commented on Oct 8, 2026

    @mindcarver
    OwnerAuthor

    实施账目更新

    需要确认:否(默认免确认)

    实施任务

    • 修改 skills/scd-discovery/SKILL.md 访谈章节(“沿决策树访谈”→“沿决策树按轮访谈”)
    • 修改 references/interviewing.md:组织一轮(含固定题式与同轮互斥)、前沿定义与临时假设解锁、按轮未回答处理、每轮收敛
    • 更新 tests/discovery-contract.test.mjs 断言(新增前沿/互不依赖/按编号作答/临时假设临时落定/每轮收敛正向断言与旧措辞反向断言)
    • 同步 tests/readme-diagrams.test.mjs:72 阶段追溯断言至新标题“沿决策树按轮访谈”(同轮次内完成的范围内发现,属本 Issue 拥有差异)
    • 运行聚焦测试与全量测试

    验证证据(提交 563d378)

    • A1:node --test tests/discovery-contract.test.mjs → 4/4 通过;SKILL.md 含“每轮一次性抛出整个前沿”“互不依赖”“按编号作答”,全文无“一次只询问一个决策”。PASS
    • A2/A3/A4:interviewing.md 含“前沿是前置决策已全部落定、彼此互不依赖的未决决策集合”“临时假设视为临时落定”“## 每轮收敛”,全文无“每次只请求一个决策”“每解决三到五个”。契约测试断言逐一命中。PASS
    • A5:保留项断言通过:SKILL.md 含“必须明确确认”;readiness-review.md 含“静默对抗式审查”与“A1:”;interviewing.md 含“先问上游问题,再问其后果”。PASS
    • A6:聚焦 13/13 通过(discovery + architecture 契约 + readme-diagrams 追溯);全量 node --test tests/*.test.mjs = 337 通过 / 17 失败,与干净 main 基线(337/17,Windows 环境预置失败清单逐一比对)完全一致,本变更零新增失败。PASS(本地环境维度)
    • CI(ubuntu)结果待 PR 检查后回填。

    交付状态

    • 差异仅含 Issue 拥有的 4 个文件;无页面差异(纯 skill 文本与测试),页面验收门不适用。
    • 独立验收:待 PR 创建后委派。
  2. mindcarver commented on Oct 8, 2026

    @mindcarver
    OwnerAuthor

    完成审计(最终)

    独立验收结论:PASS(全新上下文验收子代理,基于直接证据)

    • A1–A5:逐项 grep/读文件命中(SKILL.md:62 前沿+互不依赖+按编号作答;interviewing.md:17/24/46 前沿定义、同轮互斥、临时假设临时落定;:83-90 按轮未回答处理;:92 每轮收敛;保留项“必须明确确认”“静默对抗式审查”“A1:”“先问上游问题,再问其后果”均在位;旧措辞负向断言全部 NOT FOUND)。
    • A6:聚焦 tests/discovery-contract.test.mjs 4/4 通过;readme-diagrams + architecture-contract 12/11/1,唯一失败 README flow diagrams are reproducible 在干净 main(78f41cd)临时 worktree 复跑结果完全相同,证明为 Windows 环境预置失败、与本变更无关;CI(ubuntu)全绿(19s)。
    • 语义一致性:SKILL.md 与 interviewing.md 轮次机制描述逐点对齐,无残留矛盾表述。
    • 页面验收门:纯 skill 文本与测试变更,不适用。

    三本账

    1. 验收闭合: A1–A6 全部 PASS,各有直接观察证据(见上与实施评论)。
    2. 实施账目闭合: 5 项实施任务全部 DONE;范围内发现(readme-diagrams 追溯断言同步)已随同提交并在账目中记录。
    3. 交付状态闭合: Issue 专属差异恰为 4 个文件,无无关文件;必需检查(CI)完成;无未解决评审意见。任务自有资源清理见下。

    交付记录

    非阻塞观察(移交后续,不阻止关闭)

    • references/artifacts.md 连续性状态描述仍用“只保留一个下一决策”单决策词汇,属 Issue 范围外既有文案,可在后续维护中统一为轮次措辞。
  3. mindcarver commented on Oct 8, 2026

    @mindcarver
    OwnerAuthor

    合并与清理证据(回填)

    • PR scd-discovery 访谈机制改为前沿轮次制 #107 已合并:merge commit 71d808382f3f9eb5e1f3601d397fb333f1999504(未使用自动关闭语法)。
    • 本地 main 已同步至 71d8083,grep 确认合并版本包含“每轮一次性抛出整个前沿”。
    • 任务资源清理:本地分支 feat/106-discovery-frontier-rounds 已删、远端分支已删、无任务 worktree、无连续性状态(.scd/tasks/current.md 不存在)。清理账本闭合。

    安装状态账本(合并后检查)

    平台 状态 证据
    Codex PASS(源链接,自动最新) 12/12 junction 链接解析到 D:\mindcarver\thinloop\skills;scd-discovery/SKILL.md 直接命中新表述;codex-cli 0.147.0
    OpenCode PASS(源链接) 12/12 链接解析、版本 0.17.1
    DeepSeek Harness PASS(源链接;hooks 按 README 属 MANUAL) 12/12 链接解析、版本 0.17.1
    Claude Code PASS(已刷新) 原生命令 claude plugin marketplace update thinloop + claude plugin update thinloop@thinloop --scope user:0.16.0 → 0.17.1;缓存 ~/.claude/plugins/cache/thinloop/thinloop/0.17.1 中 SKILL.md 与测试均含本次变更
    ZCode UNVERIFIED 已安装 0.16.0 缓存相对 main(0.17.1+本次内容)已漂移;refresh-install.mjs --platform zcode 需 zcode app-server CLI,本机仅有桌面应用(D:\zcode\ZCode.exe),无 CLI 可调;按约定不代装/不升级宿主
    Pi / CodeWhale / Reasonix 预置 FAIL(非本次交付引入) 三个平台在本机从未安装(skills 目录不存在);按约定不隐式安装
    WorkBuddy SKIP verification.mode: skip

    关闭条件说明

    三本账与合并版本均闭合;唯一未闭合项为 ZCode 插件缓存刷新(需宿主内操作:在 ZCode 插件页或 /plugin 更新 thinloop 至 0.17.1)。该项保持 UNVERIFIED 上报,不视为 PASS;待刷新后关闭本 Issue。

  4. mindcarver commented on Oct 8, 2026

    @mindcarver
    OwnerAuthor

    ZCode 刷新完成,安装账本闭合

    上一个评论中唯一的 UNVERIFIED 项已解决。ZCode 桌面安装虽无 PATH 上的 zcode CLI,但其内置 CLI 入口存在:node D:/zcode/resources/glm/zcode.cjs(--version → 0.16.9,支持 app-server 与 plugins 子命令)。通过临时驱动脚本以该入口注入 runCommand/request,完整复用仓库 scripts/refresh-install.mjs 导出的 refreshInstallation(含 marketplace directory 守卫:确认指向 D:\mindcarver\thinloop 后才执行原生 plugins/marketplace/update + plugins/update RPC)。输出 REFRESH_OK。

    验证证据:

    • 注册表 ~/.zcode/cli/plugins/installed_plugins.json:thinloop@thinloop → version: 0.17.1,installPath 指向 cache\thinloop\thinloop\0.17.1,updatedAt: 2026-10-08T08:27:23Z;
    • 缓存内容:cache\thinloop\thinloop\0.17.1\skills\scd-discovery\SKILL.md 含"每轮一次性抛出整个前沿"(本次合并变更);旧版本目录 0.15.0/0.16.0 按既有行为保留;
    • 原生 CLI 视角:zcode.cjs plugins list --json → thinloop@thinloop version 0.17.1、enabled、skillCount 12、两个 hooks 均 runnable(PreCompact 不支持警告为该运行时既有行为,非本次引入);
    • 会话语义:运行中的应用重启后加载 0.17.1(与 Claude Code 的 restart-to-apply 一致)。

    最终关闭判定

    三本账闭合(验收 A1–A6 全 PASS、实施任务全 DONE、交付状态含清理账本闭合);合并版本 71d8083 在 main;全部已安装平台的 payload 均已刷新并验证(Codex/OpenCode/DSH 源链接自动最新、Claude Code 0.16.0→0.17.1 已实证、ZCode 0.16.0→0.17.1 已实证)。Pi/CodeWhale/Reasonix 为本机从未安装的预置状态,不属本 Issue 范围。关闭条件满足。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions