# Hackathon Pitch Pipeline

> 把黑客松 / 竞赛里一个模糊想法，推到可提交的完整交付：三栏收敛 → 选题大纲 → 正文 → 独立评审回路 → PRD → 夜班交接（demo / poster / presentation）。适用于比赛选题、路演材料、 从 idea 到交付的全链路编排，以及「怎么把方案讲清楚、怎么不被评委问倒」这类需求。 Use when the user is preparing a hackathon/competition entry, a pitch, a PRD, a roadshow deck, or asks how to turn an idea into a submittable package under a deadline. 不适用于：已有明确 spec 的纯编码任务、单篇文档润色、没有交付压力的头脑风暴。

- Skill: `yhyu13/hackathon-pitch-pipeline` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx get-skill add yhyu13/hackathon-pitch-pipeline`
- Raw SKILL.md: https://api.skillmd.com/api/skills/yhyu13/hackathon-pitch-pipeline/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Product & Planning
- Author: yhyu13 (https://skillmd.com/u/yhyu13)
- Updated: 2026-11-12
- Page: https://skillmd.com/skills/yhyu13/hackathon-pitch-pipeline

---


# 从 idea 到可提交：黑客松交付流水线

来源：2026-11 Aholo 黑客松仓（`yhyu13/Hackthon_Aholo_20261107`）实战蒸馏。
文中每条主张都带记录位置：仓内文件路径，或 issue 评论链接——两轮独立评审的**原始结论只存在于
issue 评论**，PR 的 review 区是空的，所以这里直接给出评论链接。逐条映射见 `references/evidence-map.md`。
（v1.1.0 合并了两个并行会话的产出：手法 7/8 与「单文件交付」一节，以及路径锚定与证据映射。）

一句话：**先把「能答的问题」找出来，再把答案写成可验证的文档，最后把文档变成能演的东西。**
顺序不能倒，倒在哪一步，后面全部返工。

## 何时调用

- 用户说「做个选题 / 写大纲 / 写正文 / 写 PRD / 做路演 / 做 demo / 明天就比赛」
- 用户拿到赛题、评分表、课程 PPT，要判断「我们该做什么」
- 用户问「我们比别人新在哪」「怎么讲才不被问倒」

**不调用**：已有冻结 spec 的实现任务（直接做代码）；纯文案润色；没有截止时间的探索。

## 五个阶段与各自的验收门

| 阶段 | 产出 | 验收门（不过不许进下一阶段） |
|---|---|---|
| 1 收敛 | 三栏表：发散项 / 为什么砍 / 留下什么 | 每个留下项都能回答「有可判定的对错吗」「截止前跑得完吗」「非这个技术不可吗」 |
| 2 大纲 | 分页大纲，每页一句话结论 | 每页标题本身就是结论，不是「关于 XX」 |
| 3 正文 | 按赛方结构写的完整文稿 | 每个事实带来源级别；每个未验证项带状态标记 |
| 4 评审 | 独立上下文的批评意见 + 修订版 | 至少一轮外部批评；每条阻塞项有回应 |
| 5 交付 | PRD / 夜班交接 / demo 排期 | 接手者读完一页就能开工，不需要问原作者 |

## 八个硬手法

### 1 状态标记，防「把假设写成完成」

全文只允许三种状态：`已核实`（有 2–3 级来源）/ `计划`（方案定了没验证）/ `待补`（依据未定）。
写作时不许混用，交稿前只改状态、不改措辞。

**为什么这条最值钱**：它可以被机器查。状态标记不是靠人眼盯，而是写成**反例断言**——
把违规措辞当反例喂给验收器，验收器必须拒绝它。

**证据**：本项目出现过同一件事在两份正本里口径相反——`docs/pitch/topic-body-v7.md` §2.2 写
「Lux3D 管线还在验证」，而 `docs/pitch/topic-outline-v5.html` 的「5 总结与展望」写
「证明了：约束是真的、Lux3D 管线能跑通、代价可以被看见」。正文改了状态、大纲没跟着改，
就变成「未验证写成已完成」。这类问题肉眼最容易放过，所以要用验收器拦。
本仓把它落成了可执行断言：PRD 语义验收器（`specs/005-hackathon-prd/validate_prd.py`）
把「已解除 / 已满足 / 已完成」直接列为 U-10 未决项的违规措辞并拒绝，
同时禁止「把旧 QA 当新证据」、禁止在提交时间未核对时写死日期。

### 2 正本单一化

每个决策只留一份正本，其他文档引用它，不复制它。
决策变化写进决策记录的「定案」一节，标明影响哪几份正本。

**证据**：中途出现过大纲 v5、正文 v5.2、PRD v1.2 三份口径互相矛盾，实现方读哪份都可能错。
收口办法是《选题大纲决策记录》八节结构：口径定稿 / 版本演进 / 关键决策与被否决的方案 /
逐项核实 / 评分对齐 / 未决事项 / 文件清单 / 来源（`docs/pitch/decisions.md`）。
「被否决的方案」一节最值钱：它保存了「为什么不选另一条路」，避免下一届重新讨论同一个问题。

### 3 风险前置：先验证不可降级的东西

找出「一旦失败，整个方案归零」的那一件事，放到排期第一小时。
其余部分都可以缩，这一件不能缩。

**证据**：本项目是「Lux3D 能不能出可用资产」，定在 H2。排期原则是风险倒序，不是功能倒序。
落地形态是 48 小时 Go/No-Go 闸门（`docs/review-gate/README.md`）：闸门对象唯一化到 U-10，
三步最小验证、总耗时 ≤48 小时、明确「不写产品代码」，并配「判定与降级」与三条闸门纪律。
关键差别：闸门对象只有一个。列三个闸门等于没有闸门。

### 4 独立上下文评审

自己写的东西自己看不出来。用独立上下文的评审者，给它**可检查的标准**（不是「好不好」），
每轮只修阻塞项。典型能抓到的：

- 数字前后不一致（87 米与 60.8 米并存）
- 交叉引用指向不存在的小节
- 计数错误（表格里 4 条待补，正文写「三条」）
- 口径偷换（用「设计保留面积」论证「法定保护面积」）
- **false-green**：某个编号非法或带空格时校验器本该失败，实际却通过了

**记录位置**：两轮真实评审的原始结论在 issue #25 的评论里——
第 1 轮（PR #47，`REQUEST_CHANGES`，四项可检查型问题）：
[2026-11-06T17:15:25Z 评论](https://github.com/yhyu13/Hackthon_Aholo_20261107/issues/25#issuecomment-6690836308)；
第 2 轮（PR #76 / #77，DSH 只读沙箱，`changes_requested`，1 critical + 4 major + 4 minor，
其中 critical 是「评审期间 worktree 脏」——评审对象本身不干净）：
[2026-11-07T10:56:03Z 评论](https://github.com/yhyu13/Hackthon_Aholo_20261107/issues/25#issuecomment-6705899522)。

### 5 用真实案例定坐标

至少两类对照，缺一类就说不清自己新在哪：

- **同类产品**（真实存在、可查证、最好亲自用一遍）
- **同题材参考件**（往届作品、方案论证片、行业案例）

做成一张四列对照表：形态 / 代价 / 判据 / 用户角色。
最后压出一句话核心价值，这句话要能直接当答辩第一句。

**证据**：竞品形式对比与「我们欠缺清单」（`docs/competitor-review/README.md` +
`docs/competitor-review/team-gap.md`，对照表列头是「维度 / 我们 / 他们 / 判断」）给同类产品坐标；三案例横评
（`docs/video-ref/design/04-cross-case-comparison.md`）是三支 B 站设计类视频
（王封矿 / 浦东水泥厂 / 西安六村堡）的论证骨架与驱动类型横评，给同题材参考件坐标，两者并列才成立。

### 6 版本留档，永不覆盖

每改一版另存新号（v1 → v2 → …），旧版原样留着。
不覆盖的理由不是洁癖：评审回路需要对比，事故复盘需要追溯，换人接手需要看到演进。

**证据**：`docs/pitch/decisions.md` 第二节逐版留档大纲 v1 → v5 的演进与每次改动的原因；
PRD v1.1 未另存文件，只存在于 git 历史（PR #47 / #61）；当前版本是 v2.1
（`docs/prd/product-prd-v2.1.md`），旧版要对比得回 git 历史查。

### 7 核心机制必须是动词链

- 反例：「提供沉浸式体验」「赋能文化传承」——形容词，不可验
- 正例：「做选择 → 看代价 → 对比现实 → 理解判断」
- 检验：每一步能否在屏幕上指到一个 UI 落点。指不出来的那一步，就是没做。

**证据**：本项目核心机制写成形容词版时答辩无法自证；改成动词链后，四步分别对得上结果页的一个区块，缺哪块一眼看得出。

### 8 承诺降级：能答几个就承诺几个

写「用户能收获什么」之前，逐条问：屏幕上有没有对应的落点？没有的删掉。
宁可承诺三问全部答得上，不要列五问三问含糊——多承诺一个答不出的，就是三分钟说教。

**证据**：原本列五问，其中「钱谁出」「改完谁被挤走」两行在时限内排不进结果页，降为三问；降级理由写进决策记录，不偷偷删。

## 单文件交付：HTML 与图

- 内联 CSS / JS / SVG，零外部请求，双击即开，断网可放映
- **mermaid 竖排超过 4 个节点，在横屏投影上通常难以辨认**：改 `flowchart LR` 并缩短节点标签；`flowchart.padding` 调到 30+ 可防中文标签溢出节点框
- 渲染办法：内联 mermaid.js 起一页，无头 Chrome 跑 `--dump-dom`，把 `<svg>` 抠出来内联进文档——比在文档里引用 3 MB 的库轻，也不怕断网
- 查外链：`grep -o 'https\?://[^"]*' 文件 | sort -u`，只剩 `w3.org` 命名空间才算干净（`xmlns` 不是网络请求）

## 三条红线

1. **不编造来源**。产品是否真实存在、数字是否有出处、图片是否本人可授权，逐条落实；
   落实不了就标「未亲验」。
2. **不用生成图冒充实景**。AI 图只能放示意位，每张标「AI 生成」。
   一旦拿它当现场证据，整节论证会被一句「这是实拍吗」问穿。
3. **不把没做的写成做了**。成果章节写「计划态」，等验收后只改状态标记。

## 排期模板（黑客松 12 小时）

| 时段 | 比例 | 做什么 |
|---|---|---|
| 前 20% | 方向 + 技术验证 | 只验证最大风险那一条，拿到可打开的产物 |
| 中间 40% | 制作 | 主回路跑通，范围可缩，机制不缩 |
| 后 30% | 测试 | 真跑五遍、录屏、抓报错；这段最容易被压缩，也最容易翻车 |
| 最后 10% | 展示 | 演示视频、海报、PPT、掐表排练 |

课程若给的是别的比例，按课程来；课程没给，用这个。

## 路演顺序（多数赛制通用）

1. **先演**：第一屏就给可操作画面，不要开场讲背景
2. **再讲问题**：什么场景、什么问题、谁的问题
3. **讲机制**：核心链路四步，技术栈承担哪一环
4. **收在局限**：做到了什么、没做到什么

局限要主动写。评委问「你们怎么知道用户有这个问题」，答案最好是「我们不知道，这是待验证的假设」，
而不是现编一个数据。

## 何时失效

- 赛制没有明确评分表，也没给课程材料：先要评分口径，否则整条流水线没有靶子
- 团队没有决策人：正本单一化会退化成「谁都能改」
- 交付周期长于两周：这套节奏是为 8–12 小时压缩设计的，长周期要换成迭代制

## 本仓落地样例（均为 Aholo 仓 main 上已存在的路径）

| 产物 | 路径 |
|---|---|
| 决策记录（八节正本） | `docs/pitch/decisions.md` |
| 选题大纲（单文件 HTML，23 页，左右翻页） | `docs/pitch/topic-outline-v5.html` |
| 路演 deck 与逐字稿 | `docs/pitch/roadshow/` |
| PRD 正文（v1.2，已被 v2.1 取代） | `docs/prd/product-prd.md` |
| PRD 语义验收器（反例断言） | `specs/005-hackathon-prd/validate_prd.py` |
| 评审对账 + 48h Go/No-Go 闸门 | `docs/review-gate/README.md` |
| 讲师四张卡（空间 / 问题 / Lux3D / 项目）→ 价值映射 | `docs/onboard-value/README.md` |
| 竞品形式对比与欠缺清单 | `docs/competitor-review/README.md` |
| 案例横评（坐标用） | `docs/video-ref/design/04-cross-case-comparison.md` |
| 选题正文长文 | `docs/pitch/topic-body-v7.md` |
| PRD v2.1 | `docs/prd/product-prd-v2.1.md` |
| 夜班交接 | `NIGHT-SHIFT.md`（+ 同名单文件 `NIGHT-SHIFT.html`） |

> 表内路径均已在 Aholo 仓 `main` 上存在（选题正文 v7 / PRD v2.1 / 夜班交接 于 2026-11-07 合入）。
> 若某条路径在别的仓里不存在，说明该产物还没落地——**不要把未合入的产物写进本表**，
> skill 指向不存在的文件比少列一条更糟。

## 参考

- `references/evidence-map.md` —— 八个手法各自对应哪份可查证据、当时抓到了什么，
  以及本项目真实踩过的反面清单。

