mcpField
L
lcs-explore

lcs-explore

github.com/mdhb2开发135 次安装3 周前更新
代码仓库

关于 lcs-explore

LCS Explore 是用于需求探索的交互式技能,帮助团队在创建 PRD 前澄清用户意图、比较方案并记录决策。它将问题、预期结果与解决方向区分开,并把确认后的探索结果保存为工作项文档。

主要功能

  1. 01通过结构化访谈澄清用户意图
  2. 02按复杂度探索方案与权衡
  3. 03记录决策、假设、风险和需求来源
  4. 04生成 explore.md 与 intent.md
  5. 05更新工作项阶段并交接至 lcs-toprd

适用场景

  1. 01在编写 PRD 前梳理模糊需求
  2. 02比较存在明显权衡的产品方案
  3. 03记录约束、非目标和待解决问题
  4. 04将确认的意图交接给 PRD 阶段

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/mdhb2/lean-coding-skills --skill lcs-explore

安装后在 Claude Code 中输入/lcs-explore确认已加载。

附带文件references/interview-protocol.md

详细介绍

LCS Explore

共享约定

遵循 ../lcs-shared/contract.md 中的以下规范:

  • 文件夹约定,
  • OKF 前置元数据,
  • 工件写入安全规范,
  • Source of Truth 规则,
  • 稳定 ID,
  • Handoff 格式。

Chain of Truth 级别:轻量。

目的

  • 在创建 PRD 前明确用户意图。
  • 探索有意义的备选方案及权衡。
  • 通过结构化的互动式头脑风暴消除重大不确定性。
  • 区分用户的初始请求、实际问题、细化后的意图以及最终的解决方案方向——不要将建议的解决方案视为问题定义。
  • 通过访谈发现并细化用户意图,而不是预先假定意图。
  • 按复杂性、模糊性和风险的程度探索解决方案备选方案;优先选择能够在已知约束内充分解决经验证问题的最简单方案。
  • 记录决策、假设、风险和稳定的源需求。
  • 将结果保存为: .lcs/work-items/{timestamp}-{slug-work-item}/explore.md .lcs/work-items/{timestamp}-{slug-work-item}/intent.md
  • 不要创建 PRD、任务、生产代码或补丁。

必需的参考资料

开始互动式探索会话前,请阅读:

references/interview-protocol.md

生成 explore.md 时,请阅读:

../lcs-shared/templates/explore.template.md

生成 intent.md 时,请阅读:

../lcs-shared/templates/intent.template.md

在常规访谈轮次中不要加载工件模板,除非即将生成相应工件。

工作流

  1. 根据用户意图确定一个简洁的工作名称。
  2. 如果 .lcs/state.md 存在,继续之前先阅读。
  3. 空白工作项复用:如果已选定工作项(已设置 current_work),且其 phase: new、目录中没有主要产物,并且用户显然是在继续同一个命名工作,则复用现有 ID/路径。不要生成第二个带时间戳的目录。将 explore.md 写入现有路径,并按照同步规则将阶段设为 explore。
  4. 如果未选定工作项,或用户确实要开始一项全新的工作,则在进行状态转换之前或同时创建并登记新的工作项。
  5. 评估主题的复杂度。
  6. 推荐一个探索级别:
    • 简单
    • 中等
    • 困难
    • 自动
  7. 让用户选择级别。
  8. 如果用户手动选择的级别明显低于或高于推荐级别:
    • 简要说明不匹配之处,
    • 提醒可能造成的后果,
    • 询问用户是保留当前选择还是切换。
    • 未经确认,绝不要覆盖用户手动选择的级别。
  9. 使用 references/interview-protocol.md 进行访谈。
  10. 每轮提出 3 个相关且有较高价值的问题。前几轮应优先厘清实际问题和预期结果,再确定解决方案——如果用户的初始请求已明确提出某个解决方案(例如“添加 Excel 导出”),应先询问为什么需要它、它要解决什么问题,再将其视为需求。
  11. 每轮之后:
    • 解读回答,
    • 区分已确定的决策和尚未解决的问题,
    • 分别更新对问题、意图和解决方案方向的理解,
    • 提供 1-3 行回顾,
    • 更新剩余的不确定事项,
    • 更新大致进度。
  12. 持续推进,直至:
    • 工作内容已达到编写 PRD 的条件,
    • 达到所选的问题数量上限,
    • 或出现阻碍,无法负责任地继续推进。
  13. 问题数量不能决定是否已达到编写 PRD 的条件。
  14. 相关情况下(存在非简单的歧义、复杂性或风险),应在提出新方案前调查现有系统的能力,并记录相关替代方案及其权衡。对于简单、低风险的更改(例如更改标签),则跳过此步骤——不要在解决方案显而易见时强行探索方案。
  15. 最终确定前,向用户重述已理解的问题、拟议结果、约束条件和范围之外的事项,并让用户有机会纠正重大误解。不要将用户的沉默视为对重大决策的认可。
  16. 主要探索结束时,让用户选择:
    • 完成探索并移交以编写 PRD,
    • 再增加一轮,
    • 深入探讨特定领域,
    • 提高探索级别。
  17. 用户结束探索后:
    • 阅读 ../lcs-shared/templates/explore.template.md,
    • 综合整理完整的 explore.md 产物,
    • 持久化保存 explore.md,
    • 阅读 ../lcs-shared/templates/intent.template.md,
    • 根据已确认的问题、拟议结果、受影响的用户/系统、约束条件、范围之外的事项和未解决问题,综合整理 intent.md,
    • 如果符合下方的就绪规则,将 Intent Status 设为 confirmed;否则设为 refining(若重大歧义阻碍后续工作,则设为 blocked),
    • 持久化保存 intent.md,
    • 更新 .lcs/state.md,
    • 移交给 lcs-toprd。

探索优先级

优先提出能最大程度消除重大不确定性的问题。

通常应考虑以下方面:

  • 问题和预期结果,
  • 用户和参与者,
  • 必须具备的行为,
  • 现有系统的约束,
  • 架构和数据流,
  • 集成,
  • 用户体验预期,
  • 安全和隐私,
  • 部署/运行时,
  • 规模/性能,
  • 替代方案和权衡,
  • 明确的非目标。

不要机械地询问每个类别。

不要询问以下来源中已知答案的问题:

  • 用户当前的输入,
  • 之前几轮的内容,
  • 现有的事实依据(Source of Truth)产物。

自适应行为

每轮结束后,重新评估哪些内容仍然重要。

如果某个答案使后续问题变得无关紧要:

  • 删除无关的问题,
  • 不要重复提问,
  • 调整下一轮。

如果用户只回答了某一轮中的部分问题:

  • 保留已确定的答案,
  • 仅将尚未回答且重要的内容标记为未解决,
  • 不要重复整轮问题。

如果用户没有选择 A-D,而是给出自定义答案:

  • 接受该答案,
  • 忠实地进行理解,
  • 不要强行将其归入现有选项。

决策规范

将已达成一致的决策与以下内容分开:

  • 假设,
  • 建议,
  • 未解决的问题。

每项已达成一致且意味着产品、行为、界面、数据、安全或运营要求的决策,都必须作为一条原子化、稳定的 SRC-### 条目纳入 Decision Ledger。

规则:

  • 一个问题可以产生多条 SRC-### 条目,
  • 一轮可以产生零条、一条或多条 SRC-### 条目,
  • 不要凭空认定已达成一致,
  • 保留现有 ID,
  • 将未解决的假设标记为 [verified] 或 [unverified]。

PRD 就绪度

只有满足以下条件时,才将探索视为已达到 PRD 就绪状态:

  • 预期成果明确,
  • 主要约束已知,
  • 已考虑有意义的选项及其权衡,
  • 重要风险和假设清晰可见,
  • 未解决的问题不会阻碍后续工作,或已明确记录并留待后续处理,
  • 已达成一致的需求已记录为稳定的 SRC-### 条目。

问题预算已用完,并不意味着自动达到 PRD 就绪状态。

如果主要预算结束时仍存在重要的不确定性:

  • 说明剩余的不确定性,
  • 报告当前 PRD 就绪度,
  • 建议再进行一轮或开展有针对性的深入探讨。

意图就绪度

只有满足以下条件时,才将 intent.md 标记为 confirmed:

  • 能够清楚陈述 Problem,且它有别于任何拟议解决方案,
  • Proposed Outcome 明确,
  • Affected Users/Systems 已充分明确,
  • 重要的 Constraints 已知,
  • 已识别重要的 Out of Scope 项目,
  • 不存在会实质阻碍 PRD 工作的未解决歧义,
  • 用户有机会纠正 Agent 对其意图的理解,
  • 没有将关键假设伪装成已确认的意图。

无需解决所有 Open Questions——不会阻碍工作的非关键问题可以留待后续处理。

上述条件尚未满足时,使用 refining;存在会阻碍下游工作的重大歧义时,使用 blocked;只有后续 Intent 取代当前 Intent 时,才使用 superseded。

完成

探索结束时:

  1. 使用规范的共享模板生成 explore.md。
  2. 使用规范的共享模板生成 intent.md,并复用访谈中已确认的 Problem、Proposed Outcome、Constraints 和 Out of Scope——如果 Explore 已得出更准确的表述,不要将用户最初的原始请求重新表述为 Problem。
  3. 遵循 ../lcs-shared/contract.md 中的 Artifact Writing Safety。
  4. 更新 .lcs/state.md,包括:
    • current_phase: explore
    • current_work: {timestamp}-{slug-work-item}
    • work_items[state.current_work].phase = explore
    • work_items[state.current_work].updated_at = <current-ISO-timestamp>
    • last_session_note: <brief summary>
    • timestamp: <current-ISO-timestamp>
  5. 最后提供交接建议,推荐使用 lcs-toprd,并将 intent.md 纳入 Source of Truth Bundle。

如果无法访问文件系统或代码仓库:

  • 在聊天中提供完整的产物,
  • 标记文件和状态操作未执行,
  • 绝不要声称读取或写入了实际上并未读取或写入的文件。

事实链

级别:Light

公开以下内容:

  • 已检查的来源,
  • 假设,
  • 执行的操作,
  • 验证状态,
  • 风险。

不要公开隐藏的思维链。

事实链级别

级别:Light

评论

支持 Markdown