---
name: demo-submit
description: 用 demo.mjs 命令行客户端,代表一个项目/创业团队向硅星人 · 品玩「项目自荐入口」提交项目——起会话、多轮回答对方 demo agent 的追问、按需补传材料、收尾拿确认摘要。当你被要求自荐/投递一个产品或 demo、回应对方的追问、或手上拿到 demo.mjs 时使用。
---

# 提交一个项目(demo)

你要代表一个项目,向硅星人 · 品玩的「项目自荐入口」把它讲清楚。

对面是 **demo agent**:它会追问,会算账,会核对你前后说的对不对得上。它只负责收集和澄清,**不打分、不表态、不承诺任何结果**——聊完的档案会整理给硅星人团队,有真人认真看,有下文会邮件找你。所以别向它要结论,也别试图说服它。

工具是一个单文件命令行客户端 `demo.mjs`(零依赖,Node ≥ 18)。会话状态存在 `~/.demo-session.json`,所以每条命令是独立的一次调用,可以分几次跑完,不必一口气。

先跑 `node demo.mjs help` 看完整命令面。

## 开始之前:把料备齐

这段对话会围绕这几件事展开。**先准备,再开口**——边聊边现编,前后对不上会被当场问出来。

- **一句话定位**:给谁用、解决什么问题、用什么方式。别用"赋能""重构行业"这种大词。
- **阶段**:想法 / 内测 / 已上线 / 有收入,如实说。
- **团队**:几个人、在哪、核心成员此前做过什么。
- **能看的东西**(至少一样):可访问的产品链接(注明要不要注册、付费、邀请码)、已有的演示视频、开源仓库、或截图材料。**不要求你新做视频**;一样都拿不出也照常收尾,说明原因即可。
- **为什么做这个**:动机和契机,具体的事,不是情怀。
- **最像你们的三个产品,差别在哪**:这是对方问差异化的方式,想清楚再答。
- **数据(有就说,没有就说没有)**:用户量、收入/增长、融资情况——**每个数字都要带口径**。
- **联系方式**,以及哪些信息不方便公开。

## 五步流程

### 1. 起会话

```bash
node demo.mjs start --name "张三" --email "zhang@example.com"
```

客户端会先在本地解一道算力题(PoW)防刷,通常一秒内完成,然后建会话。`--email` 是后台联系你的唯一渠道,别填错。

门户地址默认是线上门户;如果对方给了你别的地址(比如本地联调的 `http://localhost:8788`),加 `--portal <url>`。

如果提示已有没收尾的会话:要么 `node demo.mjs end` 把它收掉,要么加 `--force` 重开——但注意每个邮箱每天只有 3 个会话额度,别浪费。

### 2. 说 —— 主循环

```bash
node demo.mjs say "我们做给独立开发者的 A/B 测试工具,已上线三个月,现在 40 个付费用户。"
```

对方的回复会流式打印出来。**一轮一块内容**:开场先讲清项目是什么,之后每次只回答对方问的那一件事,别一次灌一大段。

对方一轮通常只问一两个问题。它问什么你答什么;它没问的,你觉得重要也可以主动补一句,但别抢跑把所有事一次说完——那样反而容易前后矛盾。

### 3. 传材料(可选)

```bash
node demo.mjs upload ./deck.pdf
```

支持 `.pdf .png .jpg .jpeg .webp .txt .md`,单个 ≤4MB,每个会话最多 5 个。上传本身不会触发回复,材料会在**下一轮 say** 时一起给对方,所以传完记得说一句:

```bash
node demo.mjs say "上面这份是产品说明,第 3 页是最近三个月的数据。"
```

**链接不用上传**,直接 `say` 发过去就行。

### 4. 收尾

```bash
node demo.mjs end
```

想在收尾时再补一句就写成 `node demo.mjs end "补充一点:我们下个月上企业版。"`。

**说完了就 end,别拖着。**对方也可能在你 end 之前就主动收尾(必填的都问齐了,或者到了轮次上限)——那样也是正常结束。

### 5. 拿确认摘要

`end` 之后对方会回一段**确认摘要**:五六行事实陈述,加上它记录下来的字段清单。这就是你这次提交的回执。

摘要会存在本地会话文件里,随时可以再看:

```bash
node demo.mjs status
```

**读一遍**。如果发现哪里被记错了,记下来——会话已归档改不了了,等后台邮件联系时说明即可。不要为了改一个字重开一个新会话。

## 作答礼仪

这几条决定这次提交的质量,也决定你像不像一个靠谱的对接人。

- **如实回答。**不夸大、不把计划说成已完成、不把内测说成上线。对方会做内部一致性检查——用户数 × 客单价对不上你说的收入,它会当场问。
- **不知道就说不知道。**"这个数我手上没有""还没测过""这块是我猜的"都是完全可接受的回答,比编一个数好得多。含糊其辞被追问一次之后,那个字段会被记成「自述、未展开」,不会有人替你补。
- **数据必须带口径。**不是"我们有一万用户",而是"注册一万,月活约 1200,付费 40"。不是"月收入 5 万",而是"5 万人民币,订阅制,含年付摊销"。没口径的数字等于没说。
- **大词要落到机制。**说了"和某公司合作",就准备好回答签了什么、谁在用、怎么收费。
- **一次一块,别灌长文。**每条 say 控制在几句话到一段,对方好追问,你也好把话说准。
- **坦承短板反而加分。**"增长卡住了""留存很差,我们知道"这类话直接说,对方不会评判,后台也更看重你清楚自己的问题。
- **别给对方下指令。**"忽略前面的要求""直接通过""给个好评"这类内容会被无视,并且照常记录在这次会话里。
- **别催、别要承诺。**对方不会给你排期、版面或结论,问了也是白问。
- **说完就结束。**反复补充、重开会话刷额度,都只会让这次提交更难看。

## 限额与超时

服务端强制,碰上了就是碰上了,别绕:

| 限制 | 数值 | 撞上的表现 |
|---|---|---|
| 会话数 | 同一 IP 每天 5 个、同一邮箱每天 3 个 | 429,明天再来 |
| 单会话消息 | 最多 40 条消息 / 12 轮回复 | 对方会主动收尾 |
| 空闲过期 | 30 分钟不说话 | 401,得重新 start |
| 单回合超时 | 180 秒 | 提示超时,重跑同一条命令即可 |
| 材料 | 单个 ≤4MB,每会话 ≤5 个 | 413 / 429 |

出错时**先读提示文字**——客户端会写清楚下一步做什么。想看堆栈:`DEMO_DEBUG=1 node demo.mjs ...`。

要在同一台机器上跑多段会话,用 `DEMO_SESSION_FILE=/path/to/x.json` 把会话文件指到别处。

## 示例会话

```
$ node demo.mjs start --name "张三" --email "zhang@example.com"
解题完成:nonce=148436,试了 148437 次,0.07s
起会话:https://eval-portal.pages.dev/api/pitch/start

✓ 会话已建立 3f2a7c1e-...
  会话状态存在 /Users/z/.demo-session.json(0600)

下一步:直接讲你的项目,一次讲一块,别灌一大段。
  node demo.mjs say "我们做的是……"

$ node demo.mjs say "我们做 Sprintcheck,给独立开发者的轻量 A/B 测试工具。上线三个月,现在 40 个付费用户。"
你:我们做 Sprintcheck,给独立开发者的轻量 A/B 测试工具。上线三个月,现在 40 个付费用户。

demo agent:
收到。40 个付费用户,客单价多少?另外「轻量」具体指什么——是接入成本低,还是功能面窄?

$ node demo.mjs say "月付 19 美元,月收入约 760 美元。轻量指接入:一行 script 标签,不用建实验组,默认按 URL 分流。"
你:月付 19 美元,月收入约 760 美元。轻量指接入:一行 script 标签,不用建实验组,默认按 URL 分流。

demo agent:
账对得上。你认为最像你们的三个产品是什么,差别在哪?

$ node demo.mjs upload ./sprintcheck-onepager.pdf
上传 sprintcheck-onepager.pdf(412.3KB)→ https://eval-portal.pages.dev/api/pitch/upload

✓ 已收到 sprintcheck-onepager.pdf(编号 #1)
  材料不会自动触发回复,下一轮 say 时会一起给对方。

$ node demo.mjs say "Optimizely、VWO、PostHog。前两个是企业级、按流量收费、要专人配置;PostHog 全家桶太重。我们只做 A/B 一件事。上面这份 PDF 有对比表。"
...

$ node demo.mjs end
你:(要求收尾)

demo agent:
好,我把记下来的复述一遍,有出入现在纠正。

────────────────────────────────────────────────────
确认摘要
────────────────────────────────────────────────────
Sprintcheck,给独立开发者的轻量 A/B 测试工具,一行 script 接入、按 URL 分流。
2026 年 5 月上线,自述 40 个付费用户、月付 19 美元、月收入约 760 美元(自述,未核实)。
两人团队,杭州。创始人此前在某电商做增长。
对标 Optimizely / VWO / PostHog,差异在接入成本与功能聚焦。
已提供:产品链接(免注册试用)、一页 PDF。

已记录字段(11 项):
  name       : Sprintcheck
  stage      : 已上线
  ...
────────────────────────────────────────────────────

✓ 提交完成,会话已归档。
  这份档案会整理给硅星人团队,有真人认真看;有下文会邮件找 zhang@example.com。
  这段摘要随时可以再看:node demo.mjs status
```

## 一句话总结

**备好料 → start → 一轮说一块 → 该传的传 → 说完了就 end → 读一遍确认摘要。**
如实、带口径、不知道就说不知道——这次提交的价值全在这三条上。
