project-kickoff-interrogation

star 7

Use when a user is starting a new project (0→1) or saying things like "我想做一个 X" / "I want to build" / "let's make a tool that". Conducts a 9-step interrogation grounded in the 钉钉 ONE post-mortem (《置身钉内》, 75k 字, 滕雅辛 2026) to lock down 发心/用户/场景/价值/竞争/双边博弈/MVP/倒排陷阱/止损线 BEFORE writing code or plans. Each question comes with intro + multiple-choice options (not blank-slate prompts), so the user picks rather than free-writes. Produces a frozen baseline.md the user can use to slap themselves later when the project drifts.

execbbbr By execbbbr schedule Updated 6/7/2026

name: project-kickoff-interrogation description: Use when a user is starting a new project (0→1) or saying things like "我想做一个 X" / "I want to build" / "let's make a tool that". Conducts a 9-step interrogation grounded in the 钉钉 ONE post-mortem (《置身钉内》, 75k 字, 滕雅辛 2026) to lock down 发心/用户/场景/价值/竞争/双边博弈/MVP/倒排陷阱/止损线 BEFORE writing code or plans. Each question comes with intro + multiple-choice options (not blank-slate prompts), so the user picks rather than free-writes. Produces a frozen baseline.md the user can use to slap themselves later when the project drifts. version: 1.0.0 author: Hermes Agent (inspired by 滕雅辛《置身钉内》, 2026) license: MIT platforms: [linux, macos, windows] metadata: hermes: tags: [product, kickoff, interrogation, post-mortem, planning, dingding-one, anti-vibe] related_skills: [writing-plans, plan, spike, ideation]


Project Kickoff Interrogation (立项拷问)

Overview

大部分项目不是死在执行,是死在「让我们开始做吧」那一刻——没有人逼着回答本来会杀死这个项目的问题。

这个 skill 是 ideation(发散)和 writing-plans(执行)之间缺失的中间层。它在项目最脆弱的瞬间(用户兴奋、答案还很软)逼一遍 9 个问题,把答案冻结成一份 baseline 文档,让以后的漂移可见、可问责。

9 个拷问 不是凭空设计的——每一条都对应滕雅辛《置身钉内》(钉钉 ONE 项目 75k 字复盘,2026 年 6 月)里的一个具体失败。完整映射见 references/one-case-study.md

When to Use

Use when:

  • 用户说"我想做一个 X" / "我有个 idea" / "I want to build" / "let's make"
  • 项目位于 brainstorm 已完成 → 实施计划未开始 之间
  • 用户很兴奋,回答听起来"都行"、"看情况"、"应该是"
  • 团队即将投入人力/预算到一条新产品线
  • 重新评估一个已经在漂移的项目

Don't use for:

  • 纯技术 spike(→ spike
  • 完全没方向的发散(→ ideation
  • 方向已经锁定,要写实施计划(→ writing-plans / plan
  • 用户明说"side project 别 overthink"

强触发短语: "我有个想法" / "我想做" / "I want to build" / "let's build" / "we should make a tool that" / "如果有一个 X 就好了".

The Anti-Pattern This Skill Targets

「ONE 一开始就不是一个发心单纯的产品。它既想替用户减负,也想替钉钉换代;既想证明 AI 能进入工作流,也想证明钉钉还能站在下一代办公入口上。这里面有理想,也有指标;有用户价值,也有组织意志。」 —— 《置身钉内》第一卷

跳过这个 skill,你会复刻 ONE:300 人团队、首发 DAU 300 万、半年内被全网抵制、产品收缩。根因不是技术,是没人在 day 0 强迫创始人回答"这个产品不是给谁用的"。

How to Run This Interrogation

核心规则:

  1. 一次只问一个问题 — 不要 dump 所有 9 个。等用户答完一个再下一个。
  2. 每个问题先给 intro,再给 choices,再问 — 不要让用户从零开始写。
  3. 不接受 "and / both / 都要 / 看情况" — 选项是互斥的。如果用户含糊,追问"那个重要?"。
  4. 第 2 题选 A(单边)时,跳过第 6 题 — 单边产品没有双边博弈。
  5. 第 7 / 8 题如果用户选 C 或 D,必须显式说:"这是 ONE 同款 red flag,你确认知道这个风险后继续吗?" 得到 Y 才继续。
  6. 第 9 题必须落地具体数字、日期、人名 — "我们都会注意" = "没人会拉闸"。
  7. 9 题做完一定写 baseline.md — 不落档就白做。

拷问 1 — 发心 (Origin Intent)

对应 ONE 失败: 第一卷 — 同时挂 4 个发心 = "贪心是七罪之一",后期所有决策被多目标撕扯。

Intro to give the user:

一个产品的「发心」是它最原始的出发点。原文给出 5 种典型。好产品通常只有一个主发心——其他可以是 side benefit,但不能并列。混发心的产品后期会被各种目标拉扯到崩。

Choices (pick exactly ONE primary):

  • A. 解决某个尚未被解决的具体问题 — 最纯,最容易诞生有历史价值的产品
  • B. 提升解决某个已解决问题的效率 — 常见且可行(要 10× 改善才有迁移动力)
  • C. 服务好某个具体人群 — 社区/身份驱动(vertical SaaS、某行业工具)
  • D. 推广某种理念 — 意识形态驱动(Linux、开源、去中心化)
  • E. 销售某种资源 — 分发驱动(手里有 token / 算力 / 库存要消化)

Follow-up (mandatory):

  • 列出次发心(每个标 ✓ side-benefit 或 ⚠️ distraction)
  • 如果主发心选 E 且没有 A/B/C 作为次发心 → 显式提醒:"销售资源 + 没有用户问题 = 分发游戏,不是产品。确认继续?"

拷问 2 — 用户定位

对应 ONE 失败: 第二卷 — "带着一盒薛定谔的用户出发了",老板 vs 员工诉求拒绝下场判断。

Intro to give the user:

目标用户是谁是一半的问题。另一半是**「不是」谁**——而这一半更重要。ONE 拒绝回答"不是谁",于是想服务所有人,结果谁也没服务好。

Choices (pick the SHAPE):

  • A. 单边 (single-side): 付费 = 使用 = 受益,同一个人(消费应用、indie dev tools、开发者自己付钱给自己用的工具)
  • B. 软双边 (aligned two-side): 不同人但利益一致(Slack: IT 买,员工用,都想协作顺)
  • C. 硬双边 (opposing two-side): 不同人、利益对立(ONE: 老板买想管控,员工用想喘息)—— 死结警告
  • D. 多边平台 (3+ sides): 双边市场、广告支撑(淘宝、抖音、Uber)

Follow-up (mandatory, 全部必须答):

  • 目标用户关键特征(一句话):规模 / 行业 / 角色 / 习惯
  • 明确不是谁:写下 3 类不要的用户。如 "不是个人开发者" / "不是非技术人员" / "不是 enterprise 合规客户"
  • 如果选了 C:谁的诉求必须牺牲? 写下原则(不是"具体看情况")

拷问 3 — 场景定位

对应 ONE 失败: 第二卷三场景定位本来是 ONE 早期最优秀的部分(早晨排兵 / 开会后补课 / 下班前查漏,分钟级具体)。第三卷崩在卡片承载边界失控——审批/会议/文档/钉任务全部接入,从单场景智能助手变成"全模块消息聚合出口",等于在原有钉钉消息之外新增一层信息流

Intro to give the user:

"高频日常工具"是模糊词。要回答的是具体哪一秒钟,用户的什么动作或情绪,让他想到你

Choices (frequency shape):

  • A. 高频日常 (high-freq daily): 每天 N 次,竞争秒级注意力(IM、邮箱、浏览器)
  • B. 事件触发 (event-triggered): 特定信号出现时才用(alert tool、incident response、客服 ticket)
  • C. 周期任务 (periodic): 每周/月/季度一次(review、planning、billing)
  • D. 项目周期 (project-based): 一段时间集中用,结束就放下(IDE、design tool)

Follow-up (mandatory):

  • 用模板写出具体场景:"用户在 ___ 之后/之前/期间,因为 ___ 痛苦/需要,想到我。"
  • ✓ 好答案示例(ONE 早期):"用户在开完 2 小时长会、再次打开钉钉发现几十个未读群时,需要快速赶上进度,想到我。"
  • ✗ 坏答案示例:"AI 办公助手,提升日常效率。"

拷问 4 — 价值定位

对应 ONE 失败: 第三/四卷 — 晨间看板/复盘/发现页都没量化基准。"新鲜感一周后快速衰减"——本来就没人在为这个问题付钱/花时间,省下来也没意义。

Intro to give the user:

原文:"用户原本愿意花费多少钱/时间/其他资源,来达成这种价值?" 没有这个 baseline,你的"价值"就是 PPT 词汇。

Choices for "用户现在怎么解决这个问题":

  • A. 手动忍着 — 那痛感真的够吗?
  • B. 用工具 X(写出工具名 + 痛点)— 那就是和 X 竞争
  • C. 雇人解决(写出成本)— 那你是替代人力
  • D. 根本不解决 — ⚠️ 红旗:可能根本没痛

Follow-up (mandatory):

  • 痛感量化: 用户每周花多少分钟 / 多少美元 / 多少情绪能量在这事上?给个数字。
  • 改善倍数: 你能省下多少?
    • 10× 改善 = painkiller,有迁移动力
    • 1.2-2× 改善 = vitamin,"有也行没也行",留存会崩

拷问 5 — 竞争定位

对应 ONE 失败: 第二卷竞争定位 + 第八卷长期思考。原文用 Stack Overflow 月度提问量被 ChatGPT 一年腰斩举例:过去的积累可能反过来成为被绕过的对象。ONE 自身的护城河("钉钉掌握组织关系")没用对——拿去做管控算法而不是做"事找人",护城河浪费了。

Intro to give the user:

"差异化在哪?这个差异化是否可持续?" 第二问比第一问更重要。

Choices (你的护城河本质上是哪一种):

  • A. 数据 / context — 只有你有这数据(组织架构、历史日志、私有数据集)
  • B. 渠道 / 分发 — 只有你能在那个入口触达用户(装机量、系统入口)
  • C. 网络效应 — 用户越多产品越好(marketplace、social network)
  • D. 切换成本 / lock-in — 数据/工作流锁定(CRM、ERP)
  • E. 品味 / 手艺 — 难以复制的执行力(罕见,通常是自欺)
  • F. 无明显护城河 — speed/timing play 🚨 时间窗口关闭就死

Follow-up (mandatory):

  • 两年后还在吗? 假设 LLM 进步 10×、竞品抄走 UI、用户习惯变了,你还剩什么?
  • 如果两年后没了 → 你能做的是把短期窗口最大化(变现、被收购)还是放弃这个 idea?

拷问 6 — 双边博弈 (仅 #2 为 B/C/D 时执行)

对应 ONE 失败: 第四卷终极悖论 —— "To B 产品,付费的是老板,使用的是员工。老板要管控,员工要自由。两者需求 100% 互斥,没有折中解。"

Intro to give the user:

这是 #2 的展开。如果你的产品有多边用户,这里必须把"谁让步"写死。事到临头再决定 = ONE 同款。

Follow-up (mandatory):

  • 列出每一边的核心诉求(每边一句话)
  • 当两者直接冲突时(必然会冲突),写下优先原则(不是 case-by-case)
  • 数据/能力暴露给一方时,另一方知道吗? (ONE 同款问题:AI 帮员工梳理时也帮老板看到了员工所有漏洞)
  • 付费方和决策方是同一人吗? 否 → 这是 SaaS 双边死结,强烈建议读完 references/one-case-study.md 第四卷再继续

拷问 7 — MVP 边界

对应 ONE 失败: 第五卷 — "正常产品先做 10 分可用,验证后迭代到 80 分完美。ONE 直接一步到位:立项即对标终极形态。还没学会走路,直接强制冲刺百米决赛。"

Intro to give the user:

MVP 不是 "最小但完整",是 "最小且能验证一个具体假设"。砍到只能验证 #4 的价值假设为止。

Choices (你计划的 MVP 范围):

  • A. 一个动作 (one action): 单一闭环 — "用户能完成 ___ 这一件事" — ✓ 健康
  • B. 一个功能 (one feature): 一个核心功能 + 必要 plumbing — 可以,但要确认这一个功能能独立产生价值
  • C. 三个核心功能 (3 features): ⚠️ 警告 — 是否真的每个都必要?砍到 A/B 试试
  • D. 全场景全链路 (everything): 🚨 ONE 死亡剧本 — STOP,必须显式 ack 风险

Follow-up (mandatory):

  • 如果 MVP 只能保留一个动作/界面/接口,是什么?
  • 这个最小版本能不能独立验证 #4 的价值假设?不能 → 再砍。

🚨 If user picks C or D: Stop and ask: "这是 ONE 同款 'MVP 直接做终极形态' 的 red flag。原文记载这条死亡剧本。你确认知道这个风险后继续吗?" 必须得到明确 Y 再走下一题。


拷问 8 — 倒排陷阱 (Deadline Trap)

对应 ONE 失败: 第五卷 — "8 月 25 日是固定对外官宣日,日期不可改、规格不可降、战略不能输。所有排期、所有需求、所有设计、所有开发、所有测试,全部为发布会让路。"

Intro to give the user:

不需要建议,只需要诚实回答:是不是有一个外部固定 deadline 在催着这个产品?

Choices:

  • A. 没有外部 deadline ✓ 健康
  • B. 有 deadline 但可滑动 还行,注意不要让"将就的 deadline"逐步变成"硬 deadline"
  • C. 有 hard deadline(发布会 / 合同 / 季度汇报 / 融资 demo) 🚨 ONE 同款
  • D. 是 deadline 倒推出来的产品(先有 deadline 再凑产品 idea)🚨🚨 ONE 同款,几乎必败

Follow-up (mandatory if C/D):

  • 这个 deadline 是真硬还是组织 perceived 硬?能不能 push 1-2 个 sprint?
  • 如果 deadline 不动,MVP 范围(#7)能不能再砍? 倒排时唯一可调整的是范围,不是质量。

🚨 If user picks C or D: Stop and ask: "这是 ONE 同款 'deadline 倒排一切' 的 red flag。你确认知道这个风险后继续吗?" 必须得到明确 Y 再走下一题。


拷问 9 — 止损线 (Stop-Loss Line)

对应 ONE 失败: 第五卷 — "内测出现隐患——压下;灰度出现用户抵触——无视;留存开始下跌——加码运营、加码推送、强行拉活;舆情开始爆发——公关压制、删帖控评。全程没有一次因为负面真实数据,修正顶层定位。" 第四卷数据:"次日留存从 45% 暴跌至 18%;7 日留存跌破个位数;超 60% 用户打开三次以内永久关闭。"

Intro to give the user:

提前写下止损线,事后没有开脱空间。不写下 = 一定不会拉。

Follow-up (mandatory — 必须落到数字、日期、人名):

  • 主指标: 是什么?(DAU / 留存 / 转化率 / NPS / 用户数 / revenue / ...)
  • 阈值(必须写具体数字+日期): 上线 N 个月(N=2 / 3 / 6)后,如果 [指标] < [数值],就 [stop / pivot / 缩编]。
  • 次级触发: 出现 [质性信号 — 例如 "用户主动卸载 > 1000" / "差评率 > 30%" / "团队半数离职"] 时,立即触发复盘。
  • 拉闸人: 写下具体人名/角色

🚨 不接受:"我们都会注意" / "团队一起拉" — 那就是没人会拉。必须有一个具体的负责人。


Output: baseline.md

9 题全部答完后,按 templates/baseline-template.md 的结构写一份 baseline 文档。

Save location (agent 自行判断当前环境):

  • Hermes 环境:~/.hermes/projects/<project-slug>/baseline.md(目录不存在就创建)
  • Claude Code 在 repo 内:docs/baseline.md 或项目根目录
  • 通用:在当前 workdir 下创建 <project-slug>-baseline.md

Format 强制要求:

  • 文件顶部必须有「⚠️ 这是一份冻结基线 (Frozen Baseline)」声明
  • 包含日期
  • 包含本 skill 的版本(project-kickoff-interrogation v1.0.0)便于追溯

写完之后向用户口头总结:

  1. baseline.md 已存到 [path]
  2. 高亮其中的 🚨 red flag 项(#7 C/D, #8 C/D 等)
  3. 提醒下一步:用 writing-plans 写第一阶段实施计划,只覆盖 #7 写下的 MVP 范围,不要把 9 题答案当 backlog

Common Pitfalls

  1. 让用户"and / both" 蒙混过关。 Choices 是互斥的。用户说 "A 和 B 都重要" → 必须追问"那个重要?" 直到给一个。

  2. 跳过 #2 的"不是谁"。 "Everyone" / "所有人" 不是答案。强制要求 3 个明确的 "not for" 类别。

  3. #6 在 #2 = A 时也乱问。 单边产品没有双边博弈,跳过 #6,不要硬问。

  4. #7 / #8 用户选 C/D 时不停下确认风险。 这是 ONE 同款致命剧本。必须显式说 "这是 ONE red flag" 并得到明确 Y 再继续。

  5. #9 没人名 / 没数字 / 没日期。 "我们都会注意" 是 ONE 同款"全程没有一次纠偏"的起点。

  6. 不存 baseline.md。 整套拷问做完不落档 = 白做。一定要写文件并报告路径。

  7. 照本宣科 ONE 案例。 ONE 是 to-B SaaS。如果用户做 to-C 消费产品 / 开发者工具 / 硬件,举例时要类比到对应领域,不要硬套钉钉场景。用户问"为什么"时再引用 references/one-case-study.md 对应卷。

  8. 一次 dump 全部 9 题。 用户会失去耐心或乱答。一次一题,等答完再下一题。

  9. 第 2 题 follow-up "不是谁" 接受 2 个就放过。 必须 3 个。ONE 失败的核心就是没有这一层。

Verification Checklist (for the agent running this skill)

  • 9 个拷问全部走完(#6 仅在 #2 = A 时跳过)
  • 不接受"and / both / 都要"答案 — 用户互斥选择了一个
  • #2 有明确的"不是谁"列表 (≥3 项)
  • #4 有量化的痛感 baseline + 改善倍数
  • #5 回答了"两年后还在吗"
  • #7 picked A 或 B(如果 C/D 必须显式得到 🚨 ack)
  • #8 picked A 或 B(如果 C/D 必须显式得到 🚨 ack)
  • #9 有具体数字 + 日期 + 人名
  • baseline.md 已落盘
  • baseline.md 顶部有 "冻结基线" 声明
  • 完成后给用户报告:路径 + red flag 高亮 + 下一步建议

Cross-Agent Note (Hermes + Claude Code)

This skill is designed to run on both Hermes and Claude Code. It deliberately avoids tool-specific calls in the question protocol. Both agents should:

  1. Read this SKILL.md
  2. Conduct the interrogation conversationally(一次一题,不要 dump)
  3. 引用 references/one-case-study.md when 用户问 "为什么要问这个?"
  4. Use templates/baseline-template.md for output structure
  5. Write the output file using whatever file API the agent has

Placement for Claude Code: put this skill at .claude/skills/project-kickoff-interrogation/ for per-repo use, or ~/.claude/skills/ for user-global.

Placement for Hermes: already in ~/.hermes/skills/product-thinking/project-kickoff-interrogation/.

Install via CLI
npx skills add https://github.com/execbbbr/project-kickoff-interrogation --skill project-kickoff-interrogation
Repository Details
star Stars 7
call_split Forks 0
navigation Branch main
article Path SKILL.md
More from Creator