From 20d322be2fb3c53187a3e5b47970f3e62f3f3f19 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=80=E9=98=B3=E6=98=9F?= Date: Sun, 3 May 2026 04:19:55 +0800 Subject: [PATCH] =?UTF-8?q?chore:=20v0.2.1=20=E2=80=94=20Confusion=20Proto?= =?UTF-8?q?col=20+=20=E5=81=87=E8=AE=BE=E7=BA=A6=E6=9D=9F=20+=20=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E8=BE=B9=E7=95=8C=E5=A3=B0=E6=98=8E=20+=20=E5=89=8D?= =?UTF-8?q?=E7=BD=AE=E6=91=98=E8=A6=81=E6=81=A2=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 借鉴 gstack 设计模式: - 8 条命令统一引入 Confusion Protocol(关键事实缺证据停止推理) - 假设验证路径 + 假设上限(≤5 条 active) - CWD 显式项目边界声明 - pos/uj 前置指令摘要(对标 gstack /context-restore) - ROADMAP 同步 + state_template 增强 - CHANGELOG v0.2.1 --- CHANGELOG.md | 22 ++++++++++++++++++++++ ROADMAP.md | 25 ++++++++++++++++++------- VERSION | 2 +- commands/comp.md | 10 ++++++++++ commands/gtm.md | 10 ++++++++++ commands/metric.md | 10 ++++++++++ commands/money.md | 10 ++++++++++ commands/pfit.md | 10 ++++++++++ commands/pos.md | 16 ++++++++++++++++ commands/prd.md | 10 ++++++++++ commands/uj.md | 16 ++++++++++++++++ install.sh | 5 +++++ templates/state_template.md | 13 ++++++++++--- 13 files changed, 148 insertions(+), 11 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b38c8fa..d89e465 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,27 @@ # 圆心商业化工作流(YxStack)变更记录 +## v0.2.1 (2026-05-03) + +### 新增 +- **Confusion Protocol**:8 条命令统一引入假设暴露机制——关键事实缺证据时停止推理,转为追问 +- **假设验证路径**:每个 active 假设必须附带可证伪的验证标准(一句话) +- **假设上限**:同时 active 假设 ≤ 5 条,超过必须先标记旧假设为 outdated +- **项目边界显式声明**:CWD 即 YxStack 项目根,不搜索父目录 +- **前置摘要恢复**:pos.md 回溯 pfit 结论,uj.md 回溯 pfit + pos 结论 +- `_timeline.jsonl` 新增 `conflict` 可选字段 +- `templates/state_template.md` 增加验证标准列 + 假设状态取值规范 + +### 设计参考 +- 对比 gstack(YC Garry Tan)的设计模式,基于上下文设计显式适配调整版: + - gstack 用 Confusion Protocol + 跨模型验证 → YxStack 用 Confusion Protocol + 假设验证路径 + 上限 + - gstack 用 CWD 隐含边界 + /freeze 目录锁 → YxStack 用 CWD 显式声明 + - gstack 用 checkpoint.md + timeline.jsonl 双轨 → YxStack 沿用 _state.md + _timeline.jsonl + - gstack 的 /context-restore 用 Summary + Remaining → YxStack 新增「前置指令摘要」 + +### 路线图同步 +- v0.2.0 5 项 checklist 标记为已完成 +- v0.2.1 新立项填补 v0.1.0 遗留缺口 + ## v0.2.0 (2026-05-03) ### 新增 diff --git a/ROADMAP.md b/ROADMAP.md index afc24b4..4c0f1a4 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -35,17 +35,28 @@ - [x] 每条指令新增「存档规则」——执行完按规范存档 - [x] 报告标注与历史结论的一致性/矛盾/更新 -### 待完成 +### 待完成(→ 下移到 v0.2.1) - [ ] 知识冲突自动检测——新结论与历史矛盾时主动提醒 - [ ] 指令执行时自动识别项目边界,找到对应 yxstack/ 目录 -## v0.2.0 — 多轮对话状态保持 ← 当前 +## v0.2.0 — 多轮对话状态保持(已完成) -- [ ] 跨会话上下文记忆——今天跑了 `/prd`,三天后跑 `/money` 时能回溯 PRD 的假设 -- [ ] 对话产出递进检测——同项目多轮对话之间,产出应递进而非重复 -- [ ] 项目级全局状态文件——`{项目根目录}/.yxstack/_state.md`,记录当前阶段、关键假设、决策链 -- [ ] 会话开始时自动读取 `_state.md`,结束会话前自动更新 -- [ ] 状态过期/矛盾标注——假设发生变化时,标记旧假设为 outdated 并记录变化原因 +- [x] 跨会话上下文记忆——今天跑了 `/prd`,三天后跑 `/money` 时能回溯 PRD 的假设 +- [x] 对话产出递进检测——同项目多轮对话之间,产出应递进而非重复 +- [x] 项目级全局状态文件——`{项目根目录}/.yxstack/_state.md`,记录当前阶段、关键假设、决策链 +- [x] 会话开始时自动读取 `_state.md`,结束会话前自动更新 +- [x] 状态过期/矛盾标注——假设发生变化时,标记旧假设为 outdated 并记录变化原因 + +## v0.2.1 — 漏洞修补 ← 当前 + +借鉴 gstack(YC CEO Garry Tan 开源的 AI 工程团队工作流)的设计模式,补齐遗留项。 + +- [ ] **Confusion Protocol** — 8 条命令统一引入假设暴露机制:关键事实缺证据时停止推理,转为追问 +- [ ] **假设验证路径** — 每个 active 假设必须附带可证伪的验证标准 +- [ ] **假设上限** — 同时 active 假设 ≤ 5 条,超过必须先标记旧假设为 outdated +- [ ] **项目边界显式声明** — CWD 即 YxStack 项目根,不搜索父目录(对标 gstack CWD + /freeze 模式) +- [ ] **前置摘要恢复** — pos.md 回溯 pfit 结论,uj.md 回溯 pfit + pos 结论(对标 gstack /context-restore 的 Summary + Remaining 结构) +- [ ] ROADMAP 同步 — v0.2.0 标记完成,v0.1.0 遗留项下移 ## v0.3.0 — 指令深度增强(原 v0.2.0) diff --git a/VERSION b/VERSION index 1474d00..22c08f7 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -v0.2.0 +v0.2.1 diff --git a/commands/comp.md b/commands/comp.md index bbc6f48..a2ef734 100644 --- a/commands/comp.md +++ b/commands/comp.md @@ -21,6 +21,14 @@ - 如果已有定位分析 → 作为竞品判断的参照系 - 如果没有历史记录 → 跳过,正常执行 +### Confusion Protocol(假设暴露) +在执行本指令时,遇到以下情况停止推理,转为追问用户: +- 对用户业务场景的关键事实在猜测而非确认 +- 对市场/用户行为的判断缺少定量或定性证据 +- 在多个不相容假设之间跳转(信号:假设 > 3 个未验证) + +激活时机:上述任一条触发时,列出已知/未知,追问缺失信息,不继续产出。 + ## 核心追问清单 ### 1. 竞品识别 @@ -98,3 +106,5 @@ status: draft # draft → validated → outdated - 如有重要决策 → 追加「决策链」 - 更新「待处理项」:标记已完成的,新增下一步建议 - 如果 _state.md 不存在,按模板创建(参考 templates/state_template.md) +- 每个 active 假设必须附带验证标准(一句话:用什么证据可证实/证伪) +- 同时 active 假设不超过 5 条,达到上限时必须先标记一条旧假设为 outdated 才能新增 diff --git a/commands/gtm.md b/commands/gtm.md index 7d26303..3a50e79 100644 --- a/commands/gtm.md +++ b/commands/gtm.md @@ -21,6 +21,14 @@ - 如果已有历史推广方案 → 标注执行结果/调整点 - 如果没有历史记录 → 跳过,正常执行 +### Confusion Protocol(假设暴露) +在执行本指令时,遇到以下情况停止推理,转为追问用户: +- 对用户业务场景的关键事实在猜测而非确认 +- 对市场/用户行为的判断缺少定量或定性证据 +- 在多个不相容假设之间跳转(信号:假设 > 3 个未验证) + +激活时机:上述任一条触发时,列出已知/未知,追问缺失信息,不继续产出。 + ## 核心追问清单 ### 1. 冷启动策略 @@ -93,3 +101,5 @@ status: draft # draft → validated → outdated - 如有重要决策 → 追加「决策链」 - 更新「待处理项」:标记已完成的,新增下一步建议 - 如果 _state.md 不存在,按模板创建(参考 templates/state_template.md) +- 每个 active 假设必须附带验证标准(一句话:用什么证据可证实/证伪) +- 同时 active 假设不超过 5 条,达到上限时必须先标记一条旧假设为 outdated 才能新增 diff --git a/commands/metric.md b/commands/metric.md index 2d5b906..94b2364 100644 --- a/commands/metric.md +++ b/commands/metric.md @@ -21,6 +21,14 @@ - 如果已有历史指标体系 → 对比历史数据趋势 - 如果没有历史记录 → 跳过,正常执行 +### Confusion Protocol(假设暴露) +在执行本指令时,遇到以下情况停止推理,转为追问用户: +- 对用户业务场景的关键事实在猜测而非确认 +- 对市场/用户行为的判断缺少定量或定性证据 +- 在多个不相容假设之间跳转(信号:假设 > 3 个未验证) + +激活时机:上述任一条触发时,列出已知/未知,追问缺失信息,不继续产出。 + ## 核心追问清单 ### 1. 北极星指标 @@ -97,3 +105,5 @@ status: draft # draft → validated → outdated - 如有重要决策 → 追加「决策链」 - 更新「待处理项」:标记已完成的,新增下一步建议 - 如果 _state.md 不存在,按模板创建(参考 templates/state_template.md) +- 每个 active 假设必须附带验证标准(一句话:用什么证据可证实/证伪) +- 同时 active 假设不超过 5 条,达到上限时必须先标记一条旧假设为 outdated 才能新增 diff --git a/commands/money.md b/commands/money.md index 78c5992..2ecf9ec 100644 --- a/commands/money.md +++ b/commands/money.md @@ -20,6 +20,14 @@ - 如果已有历史定价方案 → 标注迭代点/市场变化 - 如果没有历史记录 → 跳过,正常执行 +### Confusion Protocol(假设暴露) +在执行本指令时,遇到以下情况停止推理,转为追问用户: +- 对用户业务场景的关键事实在猜测而非确认 +- 对市场/用户行为的判断缺少定量或定性证据 +- 在多个不相容假设之间跳转(信号:假设 > 3 个未验证) + +激活时机:上述任一条触发时,列出已知/未知,追问缺失信息,不继续产出。 + ## 核心追问清单 ### 1. 收入模型 @@ -93,3 +101,5 @@ status: draft # draft → validated → outdated - 如有重要决策 → 追加「决策链」 - 更新「待处理项」:标记已完成的,新增下一步建议 - 如果 _state.md 不存在,按模板创建(参考 templates/state_template.md) +- 每个 active 假设必须附带验证标准(一句话:用什么证据可证实/证伪) +- 同时 active 假设不超过 5 条,达到上限时必须先标记一条旧假设为 outdated 才能新增 diff --git a/commands/pfit.md b/commands/pfit.md index 591a781..21e4e7f 100644 --- a/commands/pfit.md +++ b/commands/pfit.md @@ -21,6 +21,14 @@ - 如果历史结论是 No-Go → 追问"现在的条件跟当时有什么变化?" - 如果没有历史记录 → 跳过,正常执行 +### Confusion Protocol(假设暴露) +在执行本指令时,遇到以下情况停止推理,转为追问用户: +- 对用户业务场景的关键事实在猜测而非确认 +- 对市场/用户行为的判断缺少定量或定性证据 +- 在多个不相容假设之间跳转(信号:假设 > 3 个未验证) + +激活时机:上述任一条触发时,列出已知/未知,追问缺失信息,不继续产出。 + ## 核心追问清单 ### 1. 痛点来源验证 @@ -92,3 +100,5 @@ status: draft # draft → validated → outdated - 如有重要决策 → 追加「决策链」 - 更新「待处理项」:标记已完成的,新增下一步建议 - 如果 _state.md 不存在,按模板创建(参考 templates/state_template.md) +- 每个 active 假设必须附带验证标准(一句话:用什么证据可证实/证伪) +- 同时 active 假设不超过 5 条,达到上限时必须先标记一条旧假设为 outdated 才能新增 diff --git a/commands/pos.md b/commands/pos.md index 991dc05..f3789db 100644 --- a/commands/pos.md +++ b/commands/pos.md @@ -20,6 +20,20 @@ - 如果历史定位已被市场验证失败 → 追问"现在的基础条件有什么变化?" - 如果没有历史记录 → 跳过,正常执行 +### 前置指令摘要 +读取 `.yxstack/` 中最近 pfit(痛点验证)记录,提取: +- 已验证的痛点结论(一句话) +- 未解决的待处理项 +- 本次定位需基于已验证痛点,而非从零重建假设 + +### Confusion Protocol(假设暴露) +在执行本指令时,遇到以下情况停止推理,转为追问用户: +- 对用户业务场景的关键事实在猜测而非确认 +- 对市场/用户行为的判断缺少定量或定性证据 +- 在多个不相容假设之间跳转(信号:假设 > 3 个未验证) + +激活时机:上述任一条触发时,列出已知/未知,追问缺失信息,不继续产出。 + ## 核心追问清单 ### 1. 价值主张提炼 @@ -86,4 +100,6 @@ status: draft # draft → validated → outdated - 如有重要决策 → 追加「决策链」 - 更新「待处理项」:标记已完成的,新增下一步建议 - 如果 _state.md 不存在,按模板创建(参考 templates/state_template.md) +- 每个 active 假设必须附带验证标准(一句话:用什么证据可证实/证伪) +- 同时 active 假设不超过 5 条,达到上限时必须先标记一条旧假设为 outdated 才能新增 diff --git a/commands/prd.md b/commands/prd.md index 7251560..4a4bc4b 100644 --- a/commands/prd.md +++ b/commands/prd.md @@ -21,6 +21,14 @@ - 如果已有同类 PRD → 标注与历史版的差异/迭代点 - 如果没有历史记录 → 跳过,正常执行 +### Confusion Protocol(假设暴露) +在执行本指令时,遇到以下情况停止推理,转为追问用户: +- 对用户业务场景的关键事实在猜测而非确认 +- 对市场/用户行为的判断缺少定量或定性证据 +- 在多个不相容假设之间跳转(信号:假设 > 3 个未验证) + +激活时机:上述任一条触发时,列出已知/未知,追问缺失信息,不继续产出。 + ## 核心追问清单 ### 1. 业务目标 @@ -95,3 +103,5 @@ status: draft # draft → validated → outdated - 如有重要决策 → 追加「决策链」 - 更新「待处理项」:标记已完成的,新增下一步建议 - 如果 _state.md 不存在,按模板创建(参考 templates/state_template.md) +- 每个 active 假设必须附带验证标准(一句话:用什么证据可证实/证伪) +- 同时 active 假设不超过 5 条,达到上限时必须先标记一条旧假设为 outdated 才能新增 diff --git a/commands/uj.md b/commands/uj.md index 85745af..1cdd976 100644 --- a/commands/uj.md +++ b/commands/uj.md @@ -21,6 +21,20 @@ - 如果历史已有流失节点结论 → 追问"当前数据跟当时比有什么变化?" - 如果没有历史记录 → 跳过,正常执行 +### 前置指令摘要 +读取 `.yxstack/` 中最近 pfit(痛点验证)+ pos(产品定位)记录,提取: +- 已验证的痛点结论(来自 pfit) +- 已确认的产品定位(来自 pos) +- 旅程分析应基于已知痛点和定位,而非重新猜测用户卡点 + +### Confusion Protocol(假设暴露) +在执行本指令时,遇到以下情况停止推理,转为追问用户: +- 对用户业务场景的关键事实在猜测而非确认 +- 对市场/用户行为的判断缺少定量或定性证据 +- 在多个不相容假设之间跳转(信号:假设 > 3 个未验证) + +激活时机:上述任一条触发时,列出已知/未知,追问缺失信息,不继续产出。 + ## 核心追问清单 ### 1. 旅程阶段划分 @@ -87,3 +101,5 @@ status: draft # draft → validated → outdated - 如有重要决策 → 追加「决策链」 - 更新「待处理项」:标记已完成的,新增下一步建议 - 如果 _state.md 不存在,按模板创建(参考 templates/state_template.md) +- 每个 active 假设必须附带验证标准(一句话:用什么证据可证实/证伪) +- 同时 active 假设不超过 5 条,达到上限时必须先标记一条旧假设为 outdated 才能新增 diff --git a/install.sh b/install.sh index 3433e95..e0e9e55 100755 --- a/install.sh +++ b/install.sh @@ -58,6 +58,11 @@ cd ~/.codebuddy/yxstack && \ 3. 如果「待处理项」中有明确的下一步指令,主动建议执行 4. 如果 `_state.md` 不存在,跳过,正常开始会话 +### 项目边界规则 + +YxStack 项目根 = 当前工作目录(CWD)。所有指令的 `.yxstack/` 均指向 CWD 下的路径。 +无需搜寻父目录或上级项目。不跨项目串读历史记录。 + 项目状态文件 `.yxstack/_state.md` 和事件日志 `_timeline.jsonl` 由 YxStack 指令自动维护, 参考模板见 `~/.codebuddy/yxstack/templates/state_template.md`。 diff --git a/templates/state_template.md b/templates/state_template.md index ca3dffe..0e08273 100644 --- a/templates/state_template.md +++ b/templates/state_template.md @@ -19,6 +19,7 @@ | `summary` | 否 | 本次产出的核心结论(一句话) | | `assumption` | 否 | 本次新增的关键假设 | | `decision` | 否 | 本次做出的关键决策 | +| `conflict` | 否 | 本次发现的冲突(如有),格式:`{冲突假设}:{冲突描述}` | 特点: - 只追加不修改 — 不会因写入中断损坏历史 @@ -41,9 +42,15 @@ last_command: "pfit" {一句话描述当前在 YxStack 流程的哪个位置} ## 关键假设 -| 假设 | 状态 | 来源指令 | 提出时间 | -|------|------|----------|----------| -| {假设内容} | active/challenged/outdated | /xxx | YYYY-MM-DD | +| 假设 | 状态 | 验证标准 | 来源指令 | 提出时间 | +|------|------|----------|----------|----------| +| {假设内容} | active/challenged/outdated | {可证伪的一句话} | /xxx | YYYY-MM-DD | + +假设状态取值规范: +- `active` — 当前认可,作为后续决策的依据 +- `challenged` — 发现矛盾或新证据,待重新验证 +- `outdated` — 已被新结论推翻或环境已变化 +- 同时 active 假设不超过 5 条,达到上限时先标记旧假设为 outdated 才能新增 ## 决策链 1. YYYY-MM-DD /xxx: {决策内容} — {理由}