signal-from-expert

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Signal from Expert

Signal from Expert

Two ingredients make this work. Both are required:
  1. Volume of the user's honest, unfiltered thinking — it exposes exactly how they see something and their current level of understanding.
  2. A world-class expert's body of work — several essays, articles or transcripts, read in full, reviewed against all of his thinking.
The output is relevance and clarity: the expert's exact words, mapped onto the user's exact situation, including where they are wrong.
这项工作需要两个必备要素:
  1. 用户真实、未经过滤的思考内容体量——能精准展现用户对事物的看法及当前认知水平。
  2. 顶尖专家的作品合集——需完整阅读多篇论文、文章或访谈稿,并与用户的所有思考内容进行比对。
输出内容需具备关联性与清晰性:将专家原文与用户实际情况对应,包括用户存在错误的地方。

Inputs

输入信息

The user's message names three things. If one is missing, ask for it in one plain-text question.
  • Corpus — the files or folders of the user's own thinking to analyze (e.g.
    journal/2026-08-29.md
    , or
    daily/
    last 14 days). Read exactly that. Nothing more.
  • Expert + topic — e.g. "Paul Graham on what to build", "Bezos on decision making".
  • URLs (optional) — specific pieces he wants included.
用户消息需包含三项内容。若缺失其中一项,以简洁文本提问索要。
  • Corpus(语料库)——用户用于分析的个人思考文件或文件夹(例如
    journal/2026-08-29.md
    ,或
    daily/
    文件夹中过去14天的内容)。仅读取指定内容,不得额外扩展。
  • 专家+主题——例如“Paul Graham 谈创业方向”、“Bezos 谈决策制定”。
  • URLs(可选)——用户希望纳入分析的特定作品链接。

Workflow

工作流程

1. Read the corpus in full

1. 完整读取语料库

cat -n
every named file. Do not skim. Do not read other files to "add context" — the corpus is the corpus.
cat -n
every named file. Do not skim. Do not read other files to "add context" — the corpus is the corpus.

2. Build the source list

2. 构建来源列表

bash
ls <repo>/essays/<expert-slug>/ 2>/dev/null   # reuse what is already saved
Then find more with DeepAPI (load the
deepapi
skill;
source ~/.deepapi/env
if the key is not set). Run 5+ separate
POST /v1/search/web
calls with different phrasings of
<expert> <topic>
(essay, talk transcript, interview, "best essays on", specific sub-questions). Pick the 5–8 pieces most relevant to the topic. Merge with the user's URLs and anything already saved.
Show the list (title + URL, one line each) and ask "go?". Do not scrape before the user answers.
bash
ls <repo>/essays/<expert-slug>/ 2>/dev/null   # reuse what is already saved
随后通过DeepAPI查找更多内容(加载
deepapi
技能;若未设置密钥,执行
source ~/.deepapi/env
)。针对
<expert> <topic>
使用不同表述(如论文、演讲文稿、访谈、“最佳相关论文”、特定子问题),发起5次以上独立的
POST /v1/search/web
请求。筛选出5-8篇与主题最相关的作品,与用户提供的URL及已保存内容合并。
展示该列表(每行包含标题+URL),并询问“是否继续?”。在用户答复前不得进行抓取操作。

3. Scrape and save the sources

3. 抓取并保存来源内容

bash
python3 scripts/fetch-sources.py --expert "Paul Graham" --out <repo>/essays/paul-graham \
  https://paulgraham.com/startupideas.html https://paulgraham.com/schlep.html
One DeepAPI call for all URLs. Writes
NN-slug.md
per page (header + verbatim text, site layout junk stripped) and prints a head/tail preview per file. Check every preview: the text must start at the real first line and end at the real last line. Fix leftovers by hand; never edit the prose itself.
If
<repo>/essays/AGENTS.md
does not exist, copy
assets/essays-AGENTS.md
there and add the
CLAUDE.md
symlink.
bash
python3 scripts/fetch-sources.py --expert "Paul Graham" --out <repo>/essays/paul-graham \
  https://paulgraham.com/startupideas.html https://paulgraham.com/schlep.html
针对所有URL发起一次DeepAPI请求。为每个页面生成
NN-slug.md
文件(包含标题+原文文本,剔除网站布局冗余内容),并打印每个文件的首尾预览。检查所有预览内容:文本必须从真实起始行开始,到真实结束行结束。手动修复残留问题;不得修改原文内容。
<repo>/essays/AGENTS.md
不存在,将
assets/essays-AGENTS.md
复制到该位置,并添加
CLAUDE.md
符号链接。

4. Read every source in full

4. 完整读取所有来源内容

cat -n
each saved file so you can cite
file:line
ranges. Read all of them before writing anything.
cat -n
each saved file so you can cite
file:line
ranges. Read all of them before writing anything.

5. Write the analysis

5. 撰写分析报告

Default 4 numbered items. Format, exactly:
undefined
默认包含4个编号条目。格式严格遵循以下规范:
undefined

DD-MM-YYYY — Signal from <Expert>

DD-MM-YYYY — Signal from <Expert>

Corpus: <files>. Sources:
essays/<expert-slug>/
(N pieces). Agent analysis, not the user's words.

Read all N. Here are the K that hit your exact situation, each with <Expert>'s own words and the file:line for the full passage.
Corpus: <files>. Sources:
essays/<expert-slug>/
(N pieces). Agent analysis, not the user's words.

Read all N. Here are the K that hit your exact situation, each with <Expert>'s own words and the file:line for the full passage.

1. <Short, plain-English claim>

1. <Short, plain-English claim>

<One or two lines: what the user said in the corpus, and why this passage hits it.>
"<Exact quote, 1–4 sentences>"
Full section:
essays/<expert-slug>/NN-slug.md:START-END
<One or two lines: what the user said in the corpus, and why this passage hits it.>
"<Exact quote, 1–4 sentences>"
Full section:
essays/<expert-slug>/NN-slug.md:START-END

2. ...

2. ...

Co-founder read: <One paragraph. What the items say together and what to do next.>

Rules for the items:

- **At least one item must be a gap** — a place where the expert's writing shows the user is wrong, or missing something. Mark it: `## 2. Gap: ...`. Back it with a quote like every other item.
- Quotes are the expert's exact words, short. Never long excerpts — the full text is in the saved file, the `file:line` range points to it.
- Quote the user's own corpus words when calling out a pattern or gap. Never paraphrase their reasoning.
- One claim per item. Plain English. No hedging.
- Skip anything in the corpus that is private personal life rather than the topic at hand.
Co-founder read: <One paragraph. What the items say together and what to do next.>

条目规则:

- **至少包含一处认知缺口条目**——即专家内容显示用户存在错误或认知缺失的地方。标记格式为:`## 2. Gap: ...`。与其他条目一样,需附上专家原文引用。
- 引用内容需为专家原文,且简短。不得使用长篇摘录——完整文本已保存于文件中,`file:line`范围可指向对应内容。
- 指出模式或认知缺口时,需引用用户语料库中的原文。不得转述用户的推理内容。
- 每个条目对应一个观点。使用简洁直白的表述,不得含糊其辞。
- 忽略语料库中与当前主题无关的私人生活内容。

6. Save and show

6. 保存并展示结果

Save to
<corpus folder>/signal-<expert-slug>.md
(if the corpus is one file, its parent folder). Print the full analysis in chat. Do not commit.
将分析结果保存至
<corpus folder>/signal-<expert-slug>.md
(若语料库为单个文件,则保存至其父文件夹)。在聊天窗口中打印完整分析内容。无需提交版本控制。

Failure modes

故障处理

  • Unknown field "url"
    — the scrape body uses
    urls
    (array). The script does this right.
  • Python
    IncompleteRead
    on DeepAPI responses
    — the sandbox proxy truncates chunked responses to urllib. The script uses curl for that reason; do the same for any ad-hoc calls.
  • Page shows
    truncated: true
    — re-run with a higher
    --max-chars
    .
  • Search returns junk — ask the user for URLs instead of guessing.
  • Fewer than 3 sources found — say so and ask; do not pad with weak pieces.
  • Unknown field "url"
    ——抓取请求体需使用
    urls
    (数组格式)。脚本已正确处理此问题。
  • DeepAPI响应出现Python
    IncompleteRead
    错误
    ——沙箱代理截断了urllib的分块响应。因此脚本使用curl处理,临时调用也需采用相同方式。
  • 页面显示
    truncated: true
    ——使用更高的
    --max-chars
    参数重新运行。
  • 搜索结果无效——向用户索要URL,而非自行猜测。
  • 找到的来源少于3个——告知用户并询问;不得用无关内容凑数。