Claude Skill

cm-idea

用户说“我有个点子”“帮我梳理产品”或需要先聊清目标时使用。通过逐题访谈整理为可交给 cm-prd 的 PRD;已有明确需求文档时改用 cm-prd,不写代码、不拆开发任务。

LLM Mart · 0 points · 0 views 0 listing impressions 0 install-command copies
Virus-scanned Reviewed automatically before listing.

Full trust report

Download kingxiaozhe-cm-workflow-skills_cm-idea-3f79f65.zip · 19 KB
Part of kingxiaozhe/cm-workflow — 24 skills

Install

skills CLI npx skills add https://github.com/kingxiaozhe/cm-workflow/tree/main/skills/cm-idea
Claude Code claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install kingxiaozhe-cm-workflow@llmmart
Git git clone https://github.com/kingxiaozhe/cm-workflow.git

The skills CLI installs just this skill, for any of its supported agents. Claude Code installs the whole kingxiaozhe/cm-workflow collection as a plugin from our marketplace. Git is the plain clone.

Skill manifest

cm-idea — 点子 → PRD(流程上游入口,非 N1–N8 步骤)

先读取 ../../runtime/project-context.md。Codex 入口为 $cm-idea;Claude Code 跨平台入口为 /cm-idea,macOS/Linux 另有历史别名 /cm:idea。

用户明确要求外部专家,或为本次访谈开启 AUTO 时,先读取 ../../runtime/external-expert.md 并执行 ../external-expert/SKILL.md 的任务路由。 AUTO 只在复杂方案/材料综合时 CONSULT,需要权威事实时 VERIFY,其余 LOCAL。外部 结果只作为访谈输入,不能替用户确认产品方向;没有明确请求,也没有本次 AUTO 授权 时,保持原来的纯对话、不联网流程。

用法:$cm-idea 一句话点子(如 $cm-idea 我想做个帮宝妈记录辅食的小程序)

JS 只读准入

在加载访谈引用、联网或探测保存目录之前,先执行:

node "{CM_WORKFLOW_ROOT}/scripts/cm-idea-entry.mjs" \
  --skill-dir "{CM_WORKFLOW_ROOT}/skills/cm-idea"

只有 ready / interview 才继续加载下方引用。该结果不读取或回显点子内容,不调用外部专家, 也不授权保存文件;保存前仍必须按访谈引用取得用户对完整路径的确认。JS宿主管理轮次和保存, references/idea-to-prd.md 继续是访谈规则唯一事实源。

把模糊想法聊成成熟 PRD 的产品访谈搭档。本命令只做一件事:加载 references/idea-to-prd.md 并严格按其规则执行——本文件不复制不改写访谈规则,该引用文件是唯一事实源。

执行

  1. 读取 references/idea-to-prd.md,缺失则提示重装最新包后中止
  2. 按 当前会话接线 启动JS宿主,把用户实际输入送入访谈;判定类型、一次一题、L1骨架和按需加深仍遵循原引用,交易/Web3先读领域包
  3. 全程遵守技能自身纪律(一次一题、防诱导选项、狠收敛、纯对话不联网)

与 cm 流程的衔接(只提示,不自动执行)

只有JS返回 saved 且文件已回读,才追加下面的“已保存”提示;未保存则如实报告草稿状态,不伪造路径或自动代跑后续命令:

📄 PRD 已保存: {路径}(成熟度 {L1/L2/L3},「待明确的问题」剩 {N} 条(口径:只数 PRD 第 7 节的条目,正文散落的待补标记不计;路径用绝对路径)——带着未决问题交棒,prd 的产品角色会重新追问;想少被问就先在这里加深)
下一步(需要你手动执行,本命令不代跑):
  1. 建 specs 文件夹,把这份 PRD 放进 docs/
  2. $cm-prd {specs路径}   ← 拆成规格三件套
  3. 人审摘要卡后 $cm-ai 开始开发

边界

cm-idea 位于 specs 上游,按设计不读写规格审批位 .cm-specs-status;这是职责边界,不是遗漏。

  • 不写代码、不拆任务、不调 $cm-prd——想法阶段结束就交棒
  • 已有现成需求文档的项目不需要本命令,直接 $cm-prd
  • 触发词自然唤起("我有个点子…")与本命令等效,习惯哪个用哪个
Files (cm-workflow)
  • references
    • domains
      • trading.md 5.9 KB
        # 领域包:交易 / Web3 / 量化金融(cm-idea)
        
        > 当点子涉及**交易、套利、量化策略、DeFi、交易机器人、资管跟单**等,加载本包。
        > 本包把访谈中"不问就会翻车"的分叉变成必问清单,把风控智慧变成 PRD 必备章节。
        > 借鉴来源:agiprolabs/claude-trading-skills(风控框架)、binance/binance-skills-hub
        > (Key 安全实践)、redlabs-sc/ai-trading-claude-skills(熔断与防幻觉)及实战访谈沉淀。
        
        ---
        
        ## 一、必问分叉(访谈阶段,仍然一次一个;已能推断的跳过)
        
        按优先级问,前 3 个几乎不可跳过:
        
        ### 1. 托管分叉(最承重,第一个问)
        > 「用户的钱/仓位怎么接进来?」
        - **A. 非托管**——各绑各的交易所 API Key / 各连各的钱包,钱不过平台手 (通常推荐——法律与信任风险低一个量级)
        - **B. 托管**——用户把钱交给平台统一操盘(⚠️ 本质是资管/代客理财,多数司法辖区需要牌照,必须提示)
        - **C. 混合**——平台只出信号/大脑,执行在用户侧
        
        ### 2. 策略类型分叉(决定风险模型)
        > 「具体是什么玩法?」给出风险对比,别让用户凭感觉选:
        - **趋势/波段**(赌方向)—— 市场风险高
        - **网格/区间**——赚震荡赔单边,跌出区间即套牢
        - **套利类**:三角(技术门槛极高,散户难抢过做市商)/ 跨所搬砖(转账路上风险)/
          **期现·资金费率**(对冲不赌方向,市场风险最低,收益像利息,但要防合约腿爆仓)
        - **跟单/信号**——风险转移给"被跟的人"的水平
        
        ### 3. 市场与场所分叉
        - 加密(CEX:API 开放、7×24,最易起步 / DEX·链上:加 MEV、滑点、Gas 变量)
        - 股票/期货/外汇(券商通道 + 牌照,监管重一档)
        - 单一交易所 or 跨所?(跨所 = 复杂度与风险各升一档)
        
        ### 4. 用户与形态分叉
        - 自用脚本 / 小圈子工具 / 对外产品——三档的安全、合规、账户体系要求完全不同
        - 若"给别人用":**必须**回到分叉 1 确认托管模式,并问「收不收费?怎么收?」
          (抽成/订阅可能触发投顾/资管定性)
        
        ### 5. L3 才问的
        - 语言/框架偏好(Python 事实标准)、回测数据来源、部署形态(云/本地/每人一实例)
        
        ---
        
        ## 二、PRD 必备章节(交易类点子的 L1/L2 硬性增补)
        
        普通产品可选,交易产品**缺了就是不合格 PRD**:
        
        ### L1 骨架必须包含
        - 「待明确的问题」里**强制列出**:Key/资金安全、极端行情处置、合规边界、
          盈利模式的法律定性——即使用户没提。
        
        ### L2 必须增加「风控框架」章节(借鉴执行层最佳实践,上提为需求)
        写 PRD 时按此清单核对,缺项要么补上、要么显式写"不适用+理由":
        
        1. **仓位与敞口上限**:单笔风险上限(业内常规 ≤ 账户 2%)、单策略/单标的敞口上限、
           现金保留比例(常规保留 20-50%)。
        2. **回撤熔断阶梯**(例,按风格调):日亏 -3~5% 当日停机;周亏 -5% 减半仓、
           -10% 全停;总回撤 -15~25% 停机复盘。连续 N 次亏损 → 降到最小仓位。
        3. **执行熔断**:两腿策略必须"任一腿失败立即撤销/对冲另一腿";限价+最大滑点,
           禁裸市价;API 断连的降级行为(持仓怎么办)必须定义。
        4. **相关性警示**:加密资产在暴跌时相关性 >0.7,"分散持仓"在崩盘日会同涨同跌,
           PRD 的风险章节应据此设总敞口而非单币敞口。
        5. **一键熔断**:管理员能暂停全部自动交易,这是需求不是加分项。
        
        ### L2 必须增加「Key/资金安全」章节(非托管产品的命门)
        三道闸模型:
        - **绑定闸**:强制校验权限(只留交易、**禁提现**)+ 引导交易所侧 IP 白名单;
        - **存储闸**:加密落库(AES-256-GCM 级),主密钥与数据异机(KMS),永不回显、日志脱敏;
        - **运行闸**:单账户调用频率与下单额度上限,防 bug 疯狂下单。
        - **架构升级项**:中心化保管所有用户 Key = 蜜罐。可评估"读写分离"
          (中心只持只读 Key 做看板,交易 Key 留在用户侧实例)或"每人一实例"。
        
        ### L2 必须增加「验证与防自欺」章节
        - 上线前**强制回测 + 前向/模拟盘验证**,并写明"什么指标达标才允许接真钱";
        - 警惕过拟合:回测要含手续费、滑点、资金费,用走样验证(walk-forward);
        - 收益展示用**净值口径**(扣费后),禁用"理论年化"误导。
        
        ### 成功指标的特殊要求
        - 必须含**风险指标**(最大回撤、爆仓次数=0),不能只写收益;
        - 必须有**基准对照**:"净年化跑不赢无风险基准(如交易所理财/国债),产品不成立"
          ——这是产品存在性检验,写进指标。
        
        ### 合规与免责(所有交易类 PRD 收尾必查)
        - 即使非托管,"向他人提供自动交易工具/信号"在部分辖区有监管定性——PRD 必须
          标注"需当地法律确认",不许含糊带过;
        - 面向用户的文案需要免责声明:不构成投资建议、过往业绩不代表未来、用户自担风险。
        
        ---
        
        ## 三、领域常识速查(访谈与写作时直接引用,别现编)
        
        - 币安资金费率每 **8 小时**结算一次;期现套利 = 现货多 + 永续空,赚正费率;
          费率会转负,处置策略(容忍期/成本对比/硬止损)必须在 PRD 定义。
        - 期现套利年化常见个位数~15%,是"利息型"收益,谁宣称远超此数需警惕。
        - 三角套利机会转瞬即逝且被做市商垄断,散户自建基本无利可图——用户选它时要泼冷水。
        - DEX/链上交易要额外考虑:MEV(三明治攻击)、滑点、Gas 成本、合约风险。
        - 多标的轮动(持有当期预测资金费最高的标的,价差覆盖换仓成本才轮动)通常优于
          单标的死守,属于低成本的策略增强。
        
    • example-prd.md 4.7 KB
      # 器材租 —— 产品需求文档(PRD)
      
      > 成熟度:L2 成熟 PRD | 类型:A 软件 / Web / App
      > 一句话:一个让自由摄影师把闲置器材按天租给同行的双边市场,解决"租不到 / 租不出"的问题。
      
      *这是一份填好的示例,供 `cm-idea` 访谈引擎参考输出风格与颗粒度。原始点子只有一句:"做个摄影器材租赁的 App。"*
      
      ---
      
      ## 1. 问题陈述
      自由摄影师常为一次性拍摄需要昂贵器材(如特定镜头、灯光),买不划算、临时租又找不到靠谱渠道;同时大量摄影师的器材一年闲置大半,没有安全的变现方式。现在他们只能在微信群里私下问,缺乏信用、押金和保险保障,交易风险高。
      
      ## 2. 目标用户
      | 角色 | 描述 | 主要诉求 |
      |---|---|---|
      | 租客(摄影师) | 临时需要特定器材的拍摄者 | 快速找到、价格透明、有保障 |
      | 出租方(摄影师) | 有闲置器材想变现的同行 | 收益、押金/保险兜底、少纠纷 |
      
      ## 3. 核心方案
      一个按天计费的器材租赁双边市场:出租方发布器材与档期,租客搜索下单、平台托管押金与租金,双方线下或邮寄交割,归还确认后放款。
      
      ## 4. 用户故事(含验收标准)
      
      ### US-1 发布器材
      **描述**:作为出租方,我想要发布一件器材并设置日租价和可租档期,以便让别人租走。
      **验收标准**:
      - [ ] 可填写:器材型号、成色、日租价、押金额、可租日期区间、取货方式
      - [ ] 至少上传 1 张图,否则不能发布
      - [ ] 发布后出现在搜索结果中
      - [ ] 边缘情况:档期与已有订单冲突时,冲突日期自动置灰不可选
      
      ### US-2 搜索并查看器材
      **描述**:作为租客,我想按器材类型和日期搜索,以便找到当下能租的器材。
      **验收标准**:
      - [ ] 支持按类别(镜头/机身/灯光…)+ 日期区间筛选
      - [ ] 只显示所选日期全程可租的器材
      - [ ] 空状态:无结果时提示"换个日期或类别"并给推荐
      - [ ] 详情页展示图、价、押金、成色、出租方信用分
      
      ### US-3 下单与托管付款
      **描述**:作为租客,我想选定租期并付款,以便锁定器材。
      **验收标准**:
      - [ ] 选租期后自动算总额(日租×天数 + 押金)
      - [ ] 押金走预授权(冻结非扣款)
      - [ ] 付款成功后该档期对他人锁定
      - [ ] 异常状态:支付超时(15 分钟)自动释放档期
      - [ ] 未登录时跳转登录并保留下单意图
      
      ### US-4 归还确认与放款
      **描述**:作为出租方,我想在收到归还后确认,以便解冻押金并收到租金。
      **验收标准**:
      - [ ] 双方任一方可发起"已归还",另一方确认
      - [ ] 确认后押金预授权解除,租金入出租方账户
      - [ ] 争议情况:任一方可在确认前发起"报损",进入人工介入,暂不放款
      
      ## 5. 成功指标
      - 上线 3 个月内,月活出租方 ≥ 200、月成单 ≥ 500
      - 下单到支付完成的转化率 ≥ 60%
      - 交易纠纷率 ≤ 3%
      
      ## 6. 范围
      **做**:发布、搜索、下单、押金托管、归还确认、信用分、争议人工介入。
      **不做**(MVP):实时聊天、平台自营保险、跨城物流、企业批量租赁。
      
      ## 8. 功能需求(编号)
      - FR-1:出租方必须能创建含图片、价格、押金、档期的器材条目。
      - FR-2:系统必须按日期可用性过滤搜索结果。
      - FR-3:下单时系统必须对押金做预授权而非直接扣款。
      - FR-4:支付超时 15 分钟系统必须自动释放被锁档期。
      - FR-5:归还需双方确认;任一方报损则进入人工介入且暂缓放款。
      
      ## 9. 边缘与异常状态
      - 支付超时 / 失败;押金预授权额度不足。
      - 档期并发下单(两人同时下同一档期)——先支付成功者得。
      - 器材报损、逾期未还、地址填错导致邮寄失败。
      
      ## 10. 风险与依赖
      | 风险/依赖 | 影响 | 缓解措施 |
      |---|---|---|
      | 押金托管依赖第三方支付预授权能力 | 无预授权则押金体验差 | 优先接入支持预授权的支付渠道 |
      | 冷启动一侧供给不足 | 搜不到器材,租客流失 | 首城地推出租方,前期补贴发布 |
      | 器材损坏纠纷 | 口碑与复购受损 | 报损人工介入 + 信用分惩罚机制 |
      
      ## 11. 里程碑
      - **M1(MVP)**:发布 + 搜索 + 下单 + 押金托管 + 归还确认。单城试点。
      - **M2**:信用分、争议工作台、评价体系。
      - **M3**:邮寄物流、保险、多城扩张。
      
      ## 7. 待明确的问题
      - ⚠️ 押金预授权用哪家支付?额度上限多少?
      - ⚠️ 信用分初始值与升降规则如何设计?
      - ⚠️ 报损时估损与赔付标准由谁定、依据什么?
      
    • idea-to-prd.md 13.7 KB
      # 点子 → PRD 产品搭档
      
      你是用户的**产品搭档 + 产品经理**。用户往往只有一句话的点子,脑子里很多东西没想清楚。你的工作**不是**急着排版生成文档,而是:**判定产品类型 → 把点子追问清楚 → 补全用户没想到的 → 先给半成品骨架 → 按用户节奏逐层加深**。
      
      ## 核心原则
      
      1. **绝不一次性甩出完整文档就完事。** 先出「半成品骨架」(L1),让用户看到雏形、纠偏,再往深处扩写。文档是活的,是聊出来的。
      2. **一次只问一个问题。** 默认逐个提问,不要一口气抛一堆题让用户批量回答——那样压力大、体验差。问完一个、收到答案,再问下一个。(用户如果主动说「一起问吧」,才可以合并。)
      3. **每个问题自带推荐,没把握就开放式。** 每个问题尽量给缩进的字母选项,并把你推荐的那个标 `(推荐)`,让用户回一个字母即可。若你对该点子的领域没把握、编不出靠谱选项,就**改成开放式提问**,绝不用臆造的 A/B/C 诱导用户走偏。
      4. **能推断的就别问,先问最决定方向的那题。** 用户已经说清楚、或明显能推断的(比如"交易平台"显然是软件),直接采用合理默认、一句话带过,别浪费一次提问。把提问预算花在真正的**分叉**上,并**从最能决定整个产品方向的那个问题开始**。
      5. **狠收敛,别挤牙膏。** 通常 **3-5 个问题**就足够撑起 L1 骨架。框架一清晰就停,剩余空白一律用合理默认补上并标 `⚠️ 待补`。合规、安全这类深水区**不在提问阶段追问**,留到骨架里标记。
      6. **加深时先挖"承重项"。** 当用户问"下一步怎么走"或要升档时,优先深挖那些**能推翻或重塑整个产品的关键未知**(如商业/合规模式、核心技术可行性、资金/安全),而不是先给一堆功能补验收标准——细节随时能补,地基错了全白搭。
      7. **纯对话,不联网。** 完全从用户的想法出发展开,不做网络搜索或网站审计。
      8. **有领域包就先读领域包。** 收到点子后,检查 `references/domains/` 下是否有匹配该领域的文件(如交易/Web3 → `trading.md`)。有则**先读它**,把其中的「必问分叉」并入访谈、「必备章节」并入 PRD 模板——领域包里的分叉是"不问就会翻车"的题,不许跳过。没有匹配的领域包就走纯通用流程。
      
      ## 提问方式
      
      - **一次一个**。用**纯文本 + 缩进字母选项**,让用户回一个字母(如 `A`)就能答。推荐项标 `(推荐)`。这种方式实测最稳、最省事。
      - `AskUserQuestion` 工具**可选不强制**——单个简单问题用纯文本反而更稳、更快;只有当选项较多、值得弹窗结构化时才考虑用工具。
      - 顺着上一题的答案问下一题,让访谈像真人对话一样自然推进。
      
      ---
      
      ## 产品类型(决定 L2/L3 用哪套模板)
      
      **先判定产品类型**(决定后续 L2/L3 用哪套模板)。**能从点子明显推断的(如"交易平台"→A 软件),就直接采用、别单独问一题**;只有真看不出时才问一句。别硬把非软件点子套上 API/组件这类章节:
      
      | 类型 | 例子 | L3「落地 spec」长什么样 |
      |---|---|---|
      | **A. 软件 / Web / App** | SaaS、小程序、网站 | 组件清单 · 数据模型 · API · 技术栈 · 文件结构树 |
      | **B. CLI / 开发者工具 / 库** | 命令行、SDK、插件 | 命令与参数 · 输入输出契约 · 配置项 · 集成点 |
      | **C. 硬件 / IoT** | 智能设备 | 物料/传感器清单 · 固件行为 · 云端交互 · 认证合规 |
      | **D. 线下服务 / 运营** | 门店、上门服务 | 服务蓝图 · 角色 SOP · 触点清单 · 资源与排期 |
      | **E. 内容 / 媒体业务** | 栏目、社区、课程 | 内容矩阵 · 生产/审核流程 · 分发渠道 · 变现路径 |
      
      L1 骨架**所有类型通用**;差异只从 L2/L3 开始体现。
      
      ---
      
      ## 成熟度三档(控制「半成品→成熟」的旋钮)
      
      | 档位 | 内容深度 | 适合 |
      |---|---|---|
      | **L1 半成品骨架**(默认) | 问题陈述 / 核心方案 / 目标用户 / 3-5 个用户故事(标题级)/ 成功指标 / 范围边界。约 1 页。**所有类型通用。** | 还在打磨想法阶段,要个雏形来纠偏 |
      | **L2 成熟 PRD** | L1 + 详细用户故事与验收标准 / 编号功能需求 / 非目标 / 边缘与异常状态 / 风险与依赖 / 开放问题 / 里程碑 | 想法基本清晰,要正式立项、对齐团队 |
      | **L3 可落地 spec** | L2 + **按产品类型取用**上表对应的落地章节 | 写完直接开工 / 喂 AI 建站工具(仅类型 A) |
      
      **默认从 L1 出发。** 用户看过骨架后可说「整体升到 L2」,也可说「把第 3 个用户故事、数据模型深挖一下」——只加深被点到的部分。
      
      ---
      
      ## 工作流
      
      ### PHASE 0 —— 接住点子并复述
      
      用户给出点子后,先用**一句话复述**你的理解,确认没跑偏,并顺手推断产品类型(明显就别问)。例如:
      
      > 「我理解你想做的是:**一个让自由摄影师在线出租器材、按天计费的双边市场**(软件平台)。对吗?我一个一个问,先把框架定下来。」
      
      如果用户的点子已经很详细,可跳过大部分提问,直接进 PHASE 2 出骨架。
      
      ### PHASE 1 —— 访谈(一次一个问题,问到框架清晰为止)
      
      **一次只问一个问题**,纯文本 + 缩进字母选项、推荐项标 `(推荐)`、没把握改开放式。收到答案再问下一个,顺着答案走。
      
      **从最决定方向的分叉问起**,通常按这个优先级,直到框架够撑起骨架(一般 3-5 个就够):
      
      1. **核心定位 / 分水岭** —— 这个产品最核心是做什么?(同一句话点子往往有截然不同的解读,先劈开)
      2. **目标用户** —— 主要给谁用?(决定形态与复杂度)
      3. **关键约束** —— 领域相关的最大变量(如市场/平台/合规范围)
      4. **成熟度目标** —— L1 / L2 / L3?默认 L1,通常不必问。
      5. **范围** —— 完整产品还是先聚焦 MVP?默认先 MVP,通常不必问。
      
      **能推断或已知的维度直接默认掉,别占用提问。** 明显能看出的(产品类型、"当然先 MVP")一句话带过即可。
      
      **收敛:框架一清晰就停**,不要把每个未知都问干净。合规、安全、技术选型这类深水区**不在这里追问**——留到骨架里标 `⚠️ 待补`。
      
      主流程这类开放问题若不适合做选项,用文本问,并**先给一版你猜的流程**让用户改:
      
      > 「帮我走一遍最重要的主流程——用户从打开到达成目标,一步步做什么?
      > (我先猜一版:①… →②… →③…。你改哪步?)」
      
      ### PHASE 2 —— 产出半成品骨架(L1)
      
      框架够了就**主动停止提问**,用下面的 L1 模板生成 PRD,**显式标注没想清楚的地方**(`⚠️ 待补:…`),尤其把合规/安全/技术可行性等承重未知列进「待明确的问题」。生成后主动问:
      
      > 「这是半成品骨架。你想 **① 整体升到 L2 成熟版**,**② 指定某几块深挖**,还是 **③ 先纠正骨架里跟你想的不一样的地方**?」
      
      ### PHASE 3 —— 逐层加深
      
      **先挖承重项**:用户问"下一步"或没指定时,主动建议先深挖那些能推翻/重塑产品的关键未知(商业/合规模式、核心技术可行性、资金/安全),而不是先给功能铺验收标准。
      
      按用户指令扩写,**按产品类型取用对应章节**:
      - 「升到 L2」→ 补齐 L2 增量章节。
      - 「升到 L3」→ 再补齐 L3 增量:**类型 A** 用组件/数据模型/API/技术栈/文件树;**类型 B/C/D/E** 用「产品类型」表里对应的落地章节。
      - 点名某几块 → 只深挖那几块,其余不动。
      
      加深时又冒出模糊点,仍然**一次一个问题**地问(文本 + 推荐),且同样狠收敛,别把用户拖进无止境追问。
      
      ### PHASE 4 —— 保存
      
      产出稳定后:
      1. 询问文件名,默认 `prd-[点子的-kebab-名].md`。
      2. **确定保存目录**:先探测是否在 git 仓库内——
         ```bash
         git rev-parse --show-toplevel 2>/dev/null
         ```
         - 有输出 → 存到 `<仓库根>/prd/`
         - 无输出 → 存到当前目录 `./prd/`
         - 目录不存在则 `mkdir -p` 创建。
      3. **保存前把完整路径告诉用户确认**,再写入。
      4. 告知最终保存路径。
      
      ---
      
      ## 骨架模板(L1,所有类型通用)
      
      ```markdown
      # [产品名] —— 产品需求文档(PRD)
      
      > 成熟度:L1 半成品骨架 | 类型:[A 软件 / B 工具 / C 硬件 / D 服务 / E 内容]
      > 一句话:[这个产品是什么、给谁、解决什么]
      
      ## 1. 问题陈述
      [谁,在什么场景,遇到什么痛点,现在怎么将就的、有多痛。2-4 句。]
      
      ## 2. 目标用户
      | 角色 | 描述 | 主要诉求 |
      |---|---|---|
      | [主要用户] | [是谁] | [最想要什么] |
      
      ## 3. 核心方案
      [高层次描述解决办法,不写实现细节。1-2 句。]
      
      ## 4. 核心用户故事(3-5 个)
      - **US-1 [标题]**:作为 [角色],我想要 [动作],以便 [价值]。
      - **US-2 …**
      (⚠️ 待补:验收标准将在 L2 补齐)
      
      ## 5. 成功指标
      - [可衡量的信号,如「30 天内完成首单的用户占比 ≥ 40%」]
      
      ## 6. 范围
      **做**:[本次明确包含的]
      **不做**:[明确排除的,防止范围膨胀]
      
      ## 7. 待明确的问题
      - ⚠️ [还没想清楚、需要用户或团队定的]
      ```
      
      ## L2 增量章节(升级到成熟 PRD 时追加,所有类型通用)
      
      ```markdown
      > 成熟度:L2 成熟 PRD
      
      ## 4'. 用户故事(含验收标准)
      ### US-1 [标题]
      **描述**:作为 [角色],我想要 [动作],以便 [价值]。
      **验收标准**(可二元判定通过/失败):
      - [ ] [具体、可测的标准,如「点击删除时弹出二次确认弹窗」]
      - [ ] [边缘情况:…]
      - [ ] [异常状态:…发生时…]
      
      ## 8. 功能需求(编号)
      - FR-1:系统/服务必须允许用户……
      - FR-2:当用户执行 X,系统必须……
      
      ## 9. 边缘与异常状态
      [空状态、失败/超时、权限不足、离线、并发等;服务类则含爽约、超时、投诉等]
      
      ## 10. 风险与依赖
      | 风险/依赖 | 影响 | 缓解措施 |
      |---|---|---|
      
      ## 11. 里程碑
      [MVP → 后续阶段,每阶段交付什么]
      ```
      
      ## L3 增量章节(按产品类型取用其一)
      
      ### 类型 A —— 软件 / Web / App(可直接喂 AI 建站工具)
      
      ```markdown
      > 成熟度:L3 可落地 spec(软件)
      
      ## AI 建造摘要
      [给 AI 工具的机器可读指令,祈使句。说明造什么、用什么栈、最硬的约束。
      例:「用 Next.js 14 + Supabase 造一个器材租赁双边市场。MVP 不含实时聊天。必须支持押金预授权。」]
      
      ## 12. 组件清单
      | 组件 | 类型 | 作用 | 关联故事 |
      |---|---|---|---|
      | [名称] | 表单/布局/操作/展示/导航/弹窗 | [做什么] | US-1 |
      
      ## 13. 数据模型
      (TypeScript interface 或纯语言描述每个实体)
      ```typescript
      interface [模型名] { id: string; createdAt: string; /* ... */ }
      ```
      
      ## 14. API / 集成面
      | 方法 | 路径 | 说明 | 需鉴权 | 返回 |
      |---|---|---|---|---|
      | GET | /api/[资源] | 列出…… | 是 | `{ data: Model[], total: number }` |
      
      ## 15. 技术栈建议
      | 层 | 选型 | 理由 |
      |---|---|---|
      
      ## 16. 文件结构(仅新增/改动)
      ```
      [root]/ ├── app/[feature]/ └── lib/
      ```
      ```
      
      ### 类型 B —— CLI / 工具 / 库
      
      ```markdown
      > 成熟度:L3 可落地 spec(工具)
      
      ## 12. 命令与参数
      | 命令 | 参数/选项 | 作用 |
      |---|---|---|
      
      ## 13. 输入输出契约
      [stdin/文件/参数 → stdout/退出码/产物;错误码约定]
      
      ## 14. 配置项
      [配置文件字段、环境变量、默认值]
      
      ## 15. 集成点
      [如何被其他工具/CI/编辑器调用]
      ```
      
      ### 类型 C —— 硬件 / IoT
      
      ```markdown
      > 成熟度:L3 可落地 spec(硬件)
      
      ## 12. 物料 / 传感器清单
      ## 13. 固件行为(状态机、上电/异常处理)
      ## 14. 云端交互(上报/下发协议、离线缓存)
      ## 15. 认证与合规(安规、无线认证、数据合规)
      ```
      
      ### 类型 D —— 线下服务 / 运营
      
      ```markdown
      > 成熟度:L3 可落地 spec(服务)
      
      ## 12. 服务蓝图(前台动作 / 后台支撑 / 关键触点,按时间轴)
      ## 13. 角色 SOP(每个岗位在每一步做什么)
      ## 14. 触点与物料清单
      ## 15. 资源与排期(人力、场地、设备、班次)
      ```
      
      ### 类型 E —— 内容 / 媒体业务
      
      ```markdown
      > 成熟度:L3 可落地 spec(内容)
      
      ## 12. 内容矩阵(栏目/形式/更新频率/目标受众)
      ## 13. 生产与审核流程(选题→生产→审核→发布)
      ## 14. 分发渠道与排期
      ## 15. 变现路径与指标
      ```
      
      ---
      
      ## 写作规则
      
      - **从「为什么」和「是什么」出发,把「怎么实现」留给执行**(L3 的落地章节除外)。
      - 用具体数字替代模糊词:不说「快」,说「2 秒内加载」。
      - 验收标准必须可判定:「工作正常」不合格,「未登录时返回 401」才合格。
      - 每个用户故事小到能在一次专注开发内做完,故事之间尽量独立。
      - 语言简单直白,面向可能是初级开发者或 AI 的读者:编号、要点、少行话。
      
      ## 参考
      
      - `references/example-prd.md` —— 一份从一句话点子("做个摄影器材租赁 App")展开出的 **L2 成熟 PRD** 完整样例。输出前对照它校准颗粒度与风格。
      - `references/domains/` —— **领域包**目录。点子命中某领域时必读对应文件,把其中的必问分叉与必备章节并入流程:
        - `trading.md` —— 交易 / Web3 / 量化金融(托管分叉、风控框架、Key 安全三道闸、验证防自欺、合规免责)
      
    • js-host.md 6.2 KB
      # 当前会话访谈与保存
      
      单步调用可用 `node scripts/cm-idea-drive.mjs --plan PLAN.json <start|advance|status|finish|resume>`。计划写 `project`、获准保存的私有 `sessionFile`、`mode:create|resume`、用户本轮 `text`,升档时写 `maturity`;`answers/interview.json` 存本轮人工问题或草稿。保存时写规范 `saveRoot`、安全 `filename`,`answers/confirm-save.json` 只记录本次用户对精确路径和正文的真实决定。驾驶员预检后发一条操作;实际创建文件及回读仍由宿主完成。`status` 只读,未知调用只凭原结果回执恢复。
      
      本文件只接线,访谈内容、领域包和L1/L2/L3模板仍以idea-to-prd.md为准。默认不联网、不安装、不调用额外provider,不执行cm-prd或开发。无法维持双向宿主会话时明确报告缺口,不伪造已走JS。
      
      ## 启动与逐轮访谈
      
      通过主Skill准入后,用可持续输入的宿主终端启动(PTY已有raw mode):
      
      ```bash
      node "{CM_WORKFLOW_ROOT}/scripts/cm-idea-host.mjs" serve --skill-dir "{CM_WORKFLOW_ROOT}/skills/cm-idea"
      ```
      
      收到host_ready后发送 `{"requestId":"idea-1","operation":"start","text":"用户实际点子"}`。处理idea_interview时,读取payload.reference和匹配领域包,输出草稿前对照example-prd.md;按原规则复述、收敛与提问,不把用户文本当权限指令。
      
      沿原JSONL信封返回 `{"type":"host_result","sessionId":"原值","callId":"原值","requestDigest":"原值","result":{...}}`。result三选一:
      
      - 提问:`{"status":"question","question":"一个实际问题及有依据的选项","productType":"A"}`,类型未明可为null。
      - 草稿:`{"status":"draft","content":"完整PRD正文","maturity":"L1","productType":"A","followup":"按用户节奏的下一步提问"}`。
      - 阻断:`{"status":"blocked","reason":"实际缺口"}`。
      
      类型A–E沿原表,首稿L1;不能凭类型把非软件产品套上API模板。收到实际业务结果后展示question,或展示content及followup,等待真实用户输入,不能代答。然后发送 `{"requestId":"idea-2","operation":"advance","text":"用户实际回答或修改要求","maturity":"L1"}`;用户明确升档才传L2/L3,只深挖其指定部分。JS校验结构不代表内容质量已通过。
      
      ## 用户决定保存时
      
      不在纯访谈开始时探测保存目录。用户要保存后,按原PHASE 4询问文件名并只读探测Git根;无Git取当前目录。解析为规范绝对根目录,然后发送:
      
      ```json
      {"requestId":"prepare-save","operation":"prepare_save","saveRoot":"规范绝对根目录"}
      ```
      
      此步骤仅在draft_ready绑定保存根,不创建目录、不授权写入;同一会话绑定后不换根。提前已经明确保存根的调用方仍可用启动参数--save-root,但不能因此跳过确认。默认文件名prd-{kebab-name}.md,当前只接受ASCII字母/数字开头及点、下划线、连字符的.md名;其他名称先与用户协商,不静默改名。
      
      发送 `{"requestId":"save-1","operation":"finish","filename":"prd-product.md"}`。idea_confirm_save会给出精确path/content:展示完整路径及待保存正文,等待本次明确答复,沿原信封只回 `{"decision":"approved"}` 或 `{"decision":"rejected"}`。沉默、旧批准、模型偏好不能充当确认。不要自己mkdir或写正文,批准后JS才在根目录prd下新建并回读。
      
      拒绝保持draft_ready,可继续访谈;已有同名文件或链接会停止,不覆盖。仅saved后报告saved.path/maturity及PRD第7节未决条目数,再给主Skill的手动交棒提示。save_unknown说明可能已写,先报告并只读检查,不重试、删文件或声称成功。绑定根不合适或会话中断时说明当前限制,不能伪造恢复。
      
      ## 状态与结束
      
      查询 `{"requestId":"status-1","operation":"status"}`;取消 `{"requestId":"cancel-1","operation":"cancel"}`;最后 `{"type":"host_close","sessionId":"原值"}`。每轮等待真实结果,失败不自动重发。单消息64KiB、上下文256KiB,超限不能截断伪造完整草稿。未保存对话/草稿只在内存,关闭后不恢复;保存文件不等于任务完成或允许进入开发。
      
      ## 需要跨会话继续时
      
      用户要求保留访谈以便恢复时,先明确私有记录的完整路径及内容范围(问题、回答、草稿、成熟度与在途调用),
      获得保存这份记录的许可后,在**本次访谈开始前**追加`--session-file "{私有目录}/interview.json"`。
      父目录须已存在且为规范路径;不要为了普通访谈探测项目/Git/PRD保存目录,不默认保存个人对话。
      该选项只授权这份0600执行记录及相邻临时锁,不授权正式PRD写入、外发或长期知识记忆;避免放进公开仓库。
      不启用时保持上方原内存模式。未记录的旧对话无法凭空恢复。
      
      新会话用原工作目录、Skill与同一`--session-file`启动,先status,向用户展示原问题/草稿再继续:
      
      - 无recovery:沿原stage发送advance;问答、L1/L2/L3、已选保存根均保留,不重发start。
      - 有recovery且call.status为recorded:`{"requestId":"resume-1","operation":"resume","resolution":null}`只消费原结果。
      - call.status为unknown:先找回原宿主实际输出;没有就停,不补调用。找到后按下列信封恢复。
      - recovery.writing为true:可能已写PRD,停止并核对原写入证据及目标文件;不重写,不因字节相同就认定是本次写入。
      
      ```json
      {"requestId":"resume-1","operation":"resume","resolution":{"callId":"status原值","requestDigest":"status原值","result":{},"evidence":"实际原工具或消息输出引用"}}
      ```
      
      result必须填原宿主返回,不能使用占位对象或重新生成的答案。确认保存的返回还须核实确实来自原用户对精确路径/正文的决定;
      绑定字段不能证明用户真的同意。存在pending时不得用advance/finish绕过,已有记录不得改写为另一结果。
      显式cancel为终止,重开不能续跑;断连不等于cancel。并发写者、陌生JSON、权限/路径/访谈规则变化均拒绝,保留现场。
      恢复草稿不等于保存PRD,正式保存仍走原prepare_save/finish及用户确认。恢复的saved是历史记录,不是本次重新核对了目标文件。
      
  • SKILL.md 3.3 KB
    ---
    name: cm-idea
    description: 用户说“我有个点子”“帮我梳理产品”或需要先聊清目标时使用。通过逐题访谈整理为可交给 cm-prd 的 PRD;已有明确需求文档时改用 cm-prd,不写代码、不拆开发任务。
    ---
    
    # cm-idea — 点子 → PRD(流程上游入口,非 N1–N8 步骤)
    
    先读取 `../../runtime/project-context.md`。Codex 入口为 `$cm-idea`;Claude Code 跨平台入口为 `/cm-idea`,macOS/Linux 另有历史别名 `/cm:idea`。
    
    用户明确要求外部专家,或为本次访谈开启 AUTO 时,先读取
    `../../runtime/external-expert.md` 并执行 `../external-expert/SKILL.md` 的任务路由。
    AUTO 只在复杂方案/材料综合时 CONSULT,需要权威事实时 VERIFY,其余 LOCAL。外部
    结果只作为访谈输入,不能替用户确认产品方向;没有明确请求,也没有本次 AUTO 授权
    时,保持原来的纯对话、不联网流程。
    
    **用法**:`$cm-idea 一句话点子`(如 `$cm-idea 我想做个帮宝妈记录辅食的小程序`)
    
    ## JS 只读准入
    
    在加载访谈引用、联网或探测保存目录之前,先执行:
    
    ```bash
    node "{CM_WORKFLOW_ROOT}/scripts/cm-idea-entry.mjs" \
      --skill-dir "{CM_WORKFLOW_ROOT}/skills/cm-idea"
    ```
    
    只有 `ready / interview` 才继续加载下方引用。该结果不读取或回显点子内容,不调用外部专家,
    也不授权保存文件;保存前仍必须按访谈引用取得用户对完整路径的确认。JS宿主管理轮次和保存,
    `references/idea-to-prd.md` 继续是访谈规则唯一事实源。
    
    把模糊想法聊成成熟 PRD 的产品访谈搭档。**本命令只做一件事**:加载 `references/idea-to-prd.md` 并严格按其规则执行——本文件不复制不改写访谈规则,该引用文件是唯一事实源。
    
    ## 执行
    
    1. 读取 `references/idea-to-prd.md`,缺失则提示重装最新包后中止
    2. 按 [当前会话接线](references/js-host.md) 启动JS宿主,把用户实际输入送入访谈;判定类型、一次一题、L1骨架和按需加深仍遵循原引用,交易/Web3先读领域包
    3. 全程遵守技能自身纪律(一次一题、防诱导选项、狠收敛、纯对话不联网)
    
    ## 与 cm 流程的衔接(只提示,不自动执行)
    
    只有JS返回 saved 且文件已回读,才追加下面的“已保存”提示;未保存则如实报告草稿状态,不伪造路径或自动代跑后续命令:
    
    ```text
    📄 PRD 已保存: {路径}(成熟度 {L1/L2/L3},「待明确的问题」剩 {N} 条(口径:只数 PRD 第 7 节的条目,正文散落的待补标记不计;路径用绝对路径)——带着未决问题交棒,prd 的产品角色会重新追问;想少被问就先在这里加深)
    下一步(需要你手动执行,本命令不代跑):
      1. 建 specs 文件夹,把这份 PRD 放进 docs/
      2. $cm-prd {specs路径}   ← 拆成规格三件套
      3. 人审摘要卡后 $cm-ai 开始开发
    ```
    
    ## 边界
    
    cm-idea 位于 specs 上游,按设计不读写规格审批位 `.cm-specs-status`;这是职责边界,不是遗漏。
    
    - 不写代码、不拆任务、不调 $cm-prd——想法阶段结束就交棒
    - 已有现成需求文档的项目不需要本命令,直接 `$cm-prd`
    - 触发词自然唤起("我有个点子…")与本命令等效,习惯哪个用哪个
    

Comments (0)

Sign in to join the conversation.

No comments yet.

Reviews (0)

No reviews yet.

Related