通道健康
输入 / 处理 / 产出与 worker 细节。给工程,不给晨读。
事件雷达未来催化与公司日程展开
AI / TMT 事件雷达
全球 AI、AI 供应链与美国重磅宏观事件
群聊
TMTB Slack Daily · HKT 业务日
已发现线程抓取完成,但全历史 root 覆盖未知
日报抽取已 finalized
08:00 SLO、引用有效性与证据对账均通过
趋势与证据默认折叠
近 14 日趋势与执行证据
| 指标 | 近14日 | 最新 |
|---|---|---|
| 输入消息 | ▇▇▃▂▄▅▄▄▅▂▁▆██ | 568 |
| atoms | ▅▆▇▆▅▅▅▅▆▄▃▇██ | 31 |
| 引用 | █▅▅▆▇▇▄▆▄▄▄▇▅█ | 30 |
Earnings
TMTB Slack Earnings · 独立 07:00 HKT 业务日
Earnings Slack 只读抓取完整
Earnings 总结与原子化已 finalized
Earnings reader 与证据对账通过
趋势与证据默认折叠
Earnings 执行证据
X
来源级供数与原子化产出
raw 候选、最近采集成功与采集错误尚未接入
抽取运行与失败明细尚未接入
ledger 断档 28 天
趋势与证据默认折叠
| 业务日 | atoms |
|---|---|
| 2026-07-31 | 0 |
| 2026-07-30 | 0 |
| 2026-07-29 | 0 |
| 2026-07-28 | 0 |
| 2026-07-27 | 0 |
| 2026-07-26 | 0 |
| 2026-07-25 | 0 |
| 2026-07-24 | 0 |
| 2026-07-23 | 0 |
| 2026-07-22 | 0 |
| 2026-07-21 | 0 |
| 2026-07-20 | 0 |
| 2026-07-19 | 0 |
| 2026-07-18 | 0 |
卖方
Gmail 原文归档与卖方原子化产出
Gmail 全文归档完整
文本或图片待重试 1 项
ledger 正常
趋势与证据默认折叠
| 业务日 | atoms |
|---|---|
| 2026-07-31 | 0 |
| 2026-07-30 | 283 |
| 2026-07-29 | 589 |
| 2026-07-28 | 546 |
| 2026-07-27 | 542 |
| 2026-07-26 | 230 |
| 2026-07-25 | 0 |
| 2026-07-24 | 423 |
| 2026-07-23 | 613 |
| 2026-07-22 | 273 |
| 2026-07-21 | 611 |
| 2026-07-20 | 513 |
| 2026-07-19 | 254 |
| 2026-07-18 | 0 |
News
新闻候选、raw 母本与 story 原子化
20/20 feed sources non-empty; degraded: none.
Schedule evidence checked.;Recent extraction logs and the latest local manifest were checked for item-level failures.;0 grounded-span mismatches today; source_span coverage 94.8% overall.
News result and health panels are visible; deployed snapshot freshness is checked against the current ledger.
- 2026年上半年全球智能手机SoC出货量年减15%
- 联发科2026年上半年出货量年减超过25%
- 日月光第二季税后纯益210.68亿元,季增49%,年增180%,创18季新高
- 日月光第二季合并营收1910.64亿元,季增10%,年增26.7%,创单季历史新高
- 日月光投控宣布今年资本支出由85亿美元提高20亿美元至105亿美元
- 法人估日月光今年资本支出将达105亿美元
- 爱普6月自结税后纯益3.27亿元,年增785%
- 爱普6月自结每股税后纯益2.01元
趋势与证据默认折叠
- 费城半导体指数大涨逾7%
- 台股29日失守40000点大关
- 张锡预计台股加权指数年底至明年首季有机会挑战50000点
- 南亚科发生巨额违约交割,金额4,768.05万元,由12家券商申报
- 南亚科首次出现巨额违约交割
- 日月光投控宣布今年资本支出由85亿美元提高20亿美元至105亿美元
- 法人估日月光今年资本支出将达105亿美元
- 台达电2026年资本支出由去年约460亿元提高至近700亿元,因应AI数据中心和能源基础设施需求快速增加。
- 台达电上半年已投入资本支出275亿元。
- 微软上会计年度第四季营收900亿美元,年增18%,优于市场预期。
- 微软上会计年度第四季净利358亿美元,年增31%,优于市场预期。
- Meta第二季营收608亿美元,年增28%
- Meta第二季净利158亿美元,年减14%
- 日月光第二季税后纯益210.68亿元,季增49%,年增180%,创18季新高
- 日月光第二季合并营收1910.64亿元,季增10%,年增26.7%,创单季历史新高
- 费城半导体指数自6月高点回档超过2成
- 麦格理认为半导体族群修正是反映评价与市场持股部位的重新调整,而非AI需求或供给恶化
- 三星电子Q2营收171.5兆韩元,年增130%
- 三星电子Q2营运获利89.5兆韩元,约619.8亿美元
- 2026年上半年全球智能手机SoC出货量年减15%
- 联发科2026年上半年出货量年减超过25%
- 晶豪科第二季合并营收139.46亿元,年增324%
- 晶豪科第二季税后纯益59.08亿元
- 外资今年以来卖超台积电1.7兆元
- 外资卖超台积电致持股比率降至7成以下
- 光焱科技矽光子光缺陷检测设备Night Jar-H完成开发,并与国际一线大厂完成PoT验证
- 光焱科技将展开HVM量产验证,预计今年底完成
新闻入库链路
| 层级 | 今天数量 | 实际落点 | 说明 |
|---|---|---|---|
| 全文候选 | 15 | state/news/local_in/YYYY-MM-DD_*.json | Chrome 抓到的全文候选池;不等于入库 |
| raw 母本 | 38 | state/news/raw/YYYY-MM-DD/*.jsonl | 去重/正文长度过滤后进入抽取的原文母本 |
| 入库 story | 18 | summarizer/state/ledger_news.jsonl · surfaced_in=news/ | 一篇新闻可拆成多个 atom |
| atoms / claims | 192 | ledger_news.jsonl · promotion_level=claim | 当前 news 全部以 atom claim 入库 |
| source_span | 192/192 | ledger_news.jsonl · source_span | 今天存量为 0;写入口已修,后续会保留原文句 |
| quarantine | 0 | summarizer/state/quarantine/news.jsonl | 结构硬错不进主 ledger,可回捞 |
全量入库表
| story / source_id | 媒体 | raw | atoms | source_span | 代表 claim | 原文 |
|---|---|---|---|---|---|---|
2026-07-31/09622e6d5b0a台積電指路 台股醞釀反彈 | 工商時報(全文) | ✓ raw母本 | 1 | 1/1 | 费城半导体指数大涨逾7% | 打开 |
2026-07-31/16e6f6309278張錫:現在是台積電甜甜價 | 工商時報(全文) | ✓ raw母本 | 10 | 10/10 | 台股29日失守40000点大关 | 打开 |
2026-07-31/c19c399c3142南亞科驚傳違約交割 | 工商時報(全文) | ✓ raw母本 | 4 | 4/4 | 南亚科发生巨额违约交割,金额4,768.05万元,由12家券商申报 | 打开 |
2026-07-31/51fe479afceb科技大廠狂拉AI資本支出》日月光投控大擴產 衝抵105億美元 | 工商時報(全文) | ✓ raw母本 | 10 | 10/10 | 日月光投控宣布今年资本支出由85亿美元提高20亿美元至105亿美元 | 打开 |
2026-07-31/d031efa3885b科技廠狂拉AI資本支出》台達電逼近700億 加快全球布局 | 工商時報(全文) | ✓ raw母本 | 8 | 8/8 | 台达电2026年资本支出由去年约460亿元提高至近700亿元,因应AI数据中心和能源基础设施需求快速增加。 | 打开 |
2026-07-31/44bf05067686科技廠狂拉AI資本支出》微軟維持投資步調 台鏈安啦 | 工商時報(全文) | ✓ raw母本 | 22 | 22/22 | 微软上会计年度第四季营收900亿美元,年增18%,优于市场预期。 | 打开 |
2026-07-31/e0dbeca399aa科技廠狂拉AI資本支出》AI燒錢 Meta自由現金流減91% | 工商時報(全文) | ✓ raw母本 | 11 | 11/11 | Meta第二季营收608亿美元,年增28% | 打开 |
2026-07-31/6d17396e9360日月光投控Q2獲利年增180% 創18季新高 | 工商時報(全文) | ✓ raw母本 | 16 | 16/16 | 日月光第二季税后纯益210.68亿元,季增49%,年增180%,创18季新高 | 打开 |
2026-07-31/f8e09b74e7cb半導體回檔 外資釋疑力挺 | 工商時報(全文) | ✓ raw母本 | 13 | 13/13 | 费城半导体指数自6月高点回档超过2成 | 打开 |
2026-07-31/f5aba2b4c434三星:記憶體缺到2028年 | 工商時報(全文) | ✓ raw母本 | 13 | 13/13 | 三星电子Q2营收171.5兆韩元,年增130% | 打开 |
2026-07-31/ca8dcb0e0472成本高漲 手機SoC出貨承壓 | 工商時報(全文) | ✓ raw母本 | 13 | 13/13 | 2026年上半年全球智能手机SoC出货量年减15% | 打开 |
2026-07-31/2ab25220a70e記憶體市況熱 晶豪科Q2賺逾2個股本 | 工商時報(全文) | ✓ raw母本 | 14 | 14/14 | 晶豪科第二季合并营收139.46亿元,年增324% | 打开 |
2026-07-31/aa57143ef526外資提款逾1.7兆 集中台積電 | 工商時報(全文) | ✓ raw母本 | 9 | 9/9 | 外资今年以来卖超台积电1.7兆元 | 打开 |
2026-07-31/61fad438e774光焱矽光子檢測 邁HVM驗證 | 工商時報(全文) | ✓ raw母本 | 7 | 7/7 | 光焱科技矽光子光缺陷检测设备Night Jar-H完成开发,并与国际一线大厂完成PoT验证 | 打开 |
2026-07-31/275f902f2f9b愛普完成第二家晶圓廠認證 | 工商時報(全文) | ✓ raw母本 | 9 | 9/9 | 爱普6月自结税后纯益3.27亿元,年增785% | 打开 |
2026-07-31/0fce85b562cc緯穎 伺服器出貨強 | 工商時報(全文) | ✓ raw母本 | 12 | 12/12 | 纬颖第二季营收季增1%,年增26% | 打开 |
2026-07-31/db6f1becbb91搶先進封裝商機 川寶 打造TGV金屬化產線 | 工商時報(全文) | ✓ raw母本 | 7 | 7/7 | 川寶宣布建置全台首条具备一条龙服务能力的TGV金属化代工产线 | 打开 |
2026-07-31/97aa71971def聯電法說 H2營運動能靚 | 工商時報(全文) | ✓ raw母本 | 13 | 13/13 | 聯電第二季EPS達3.39元,創單季歷史新高 | 打开 |
微信
180K 微信语料 · 接入前队列
已有待接入登记,尚未完成身份授权与增量同步
尚未建立去重、原子化与 ledger 写入流程
尚无 finalized 业务日与消费出口
趋势与证据默认折叠
系统
跨来源健康、配置和深度运维默认折叠;来源本身只在上方各自管理。
全 Fork 链路审计接通、累计数据、代码提交与 14 天供数异常
| Fork / 工作线 | 接通 | 最后供数 | 累计数据 | 代码 | 14天节奏 |
|---|---|---|---|---|---|
| 群聊 180K | 接通 | 2026-07-29 | 3,431 atoms | ✓ 已提交 | ▇▆▅▅▅▅▆▄▃▇██·· |
| 推特 | 断档 | 2026-07-03 · 断28天 | 285,511 atoms | ✓ 已提交 | ·············· |
| 卖方 | 接通 | 2026-07-30 | 13,908 atoms | ✓ 已提交 | ·▄▇█▄█▆·▄▇▇█▄· |
| Wrap | 断档 | 2026-06-30 · 断31天 | 2,385 atoms | ✓ 已提交 | ·············· |
| 新闻·韩台 | 断档 | 2026/07/16 · 断None天 | 21,473 atoms | ✓ 已提交 | ▃▄▇▆█▇▄▂▂▄▆▆▅▂ |
| 作者画像 | 加工层 | 随主库更新 | 411 作者标 | ✓ 已提交 | — |
| 微信 180K | 加工层 | 未接入 | 2,940 条待原子化 | 无代码 | — |
全站产物与部署跨来源页面、派生产物与 worker 探活注意
| 产物 | 最后生成 | 距今 |
|---|---|---|
| 日刊 | 2026-07-27 | 4天前 |
| 关键数据 | 2026-07-27 | 4天前 |
| 群聊日报 | 2026-07-29 | 2天前 · 业务日 |
| 全源日报 | 2026-07-27 | 4天前 |
| 晋升 promotion | 2026-07-14 | 17天前 |
| 因果图 | 2026-07-14 | 17天前 |
| 估计带 | 2026-07-14 | 17天前 |
| 法庭MU | 2026-07-27 | 4天前 |
数据健康契约违规、向量欠账与字段覆盖异常
| 源 | atoms | 推理链覆盖 |
|---|---|---|
| 群聊 | 3,431 | 0% |
| 卖方 | 13,908 | 11% |
| Wrap | 2,385 | 0% |
| X | 285,511 | 0% |
| News | 21,473 | 13% |
质量闸账本契约、复制棘轮与 golden异常
| 账本契约 | ✕ ... 还有 10037 条 |
|---|---|
| 复制棘轮 | ✓ |
| 抽取 golden | 认知93.2% 立场75.7% |
Cron · 云端跑批每条 workflow 最近一次执行异常
| Workflow | 上次结果 | 时间(UTC) | 触发 |
|---|---|---|---|
| TMTB Slack · Cloudflare Worker | success | 2026-07-29 23:10 | cloudflare_primary |
| News Daily (韩台半导体) | failure | 2026-07-30 21:17 | workflow_dispatch |
X 采集监控采集 worker(x_monitor_runs)实时错误 · 非榜单管道注意
推特榜单 · 预评价 runner本机 SOL 预评价心跳、待预评积压与待人工复核正常
模型路由 · 规则 · Eval生产配置透明,只读注意
| 步骤 | 模型 | 提供方 | max_tok | temp |
|---|---|---|---|---|
| GENERATE 初稿 | Gemini-3.1-Pro | Poe | 8192 | 默认 |
| CRITIQUE 审 | Gemini-3.1-Pro | Poe | 8192 | 默认 |
| REVISE 改 | Gemini-3.1-Pro | Poe | 8192 | 默认 |
| EXTRACT 抽卡 | deepseek-chat | DeepSeek | 8192 | 0.3 |
extraction_rules v1.1 · 来源 = origin/main cloudflare-slack-daily/src/worker.ts (线上真相) · 换模型/参数 = 改 Worker source, 过 eval 再 commit。Prompt 全文git 版生产 prompt 与 rubric空闲
1) GENERATE — 出初稿 (输出 JSON) · 4,478 字
```
你是一位买方交易台的总结分析师. 下面是某金融 Slack 频道当天的完整对话流, 以及一份滚动记忆账本.
**输出**: 严格符合下面 JSON Schema 的对象. **只输出 JSON 对象** (以 `{` 开头, `}` 结尾), 不要用 markdown code fence 包裹, 不要任何 HTML 标签, 不要解释文字.
## 内容规则 (必须严格遵守):
{{RUBRIC}}
## JSON Schema (输出结构):
{{SCHEMA}}
## 字段语义详解:
- `h1`: 钩子式标题, **双 clause**抓全天 take, 不是 "交易台备忘录" 这种通用标题. 例: "开源 = AI capex 利空?群里第一次正面开吵;HDD 该比 NAND 贵远超 2 turns"
- `keypoints`: **一些重点 (页顶提纲)**, **每张 card 对应 1 句, 按 cards 显示顺序 1:1 映射**. 不跳卡, 不合并.
- **数量必须 = cards 总数**. 有 8 张 card 就 **必须** 8 条 keypoint; 有 3 张 card 就 **必须** 3 条. **零容差**.
- 排序: `sections[0].cards[0]` → `sections[0].cards[1]` → ... → `sections[1].cards[0]` → ... 严格按出现顺序.
- 读者扫一遍 keypoints = 拿到全页所有 card 的 take 速览, 决定哪些深读.
- **提交前自检**: 数一下 `len(keypoints)` 和 `sum(len(sec.cards) for sec in sections)`. **不等 → 改, 不许提交**.
- `chip`: 3-10 字加粗 prefix, 跟对应 card 主题对齐
- `rest`: 接续 1 句 take + 关键数字/名字, **≤ 40 字**
- `newin_label` / `newin_items`: **不再使用** (账本未接入, 写不出真正的"今日新增"). 不要输出这两个字段.
- `sections[].angle`: section h2 的 angle, **不是分类标签**. ❌ "AI/科技主线" / "公司情绪" 是分类; ✅ "超大厂被掀桌, 半导接捧" / "AMZN/META 弱 = positioning 不是基本面" 是 angle.
- `sections[].cards[]`:
- `h3`: 卡片标题文字, 3-15 字, **不带 emoji** (emoji 走单独字段).
- `emoji`: 主题 emoji 字符 (如 "🔓"/"💾"/"🛢️") 或 null.
- `hot`: true 表示当天最热线程之一.
- `flagship`: true = 旗舰卡 (`.card.full` 占两列宽). 每 section 通常 0-2 张.
- `tag_kind`: `"long"`/`"short"`/`"watch"`/`"debate"` 之一 (多/空/观察/争论).
- `tag_text`: 标签可见文字, 如 "争论·新叙事" / "观察·仓位信号" / "多·上游".
- `sw_head`: **判断先行**的核心句, 6-30 字, 立场/钩子. 整段加粗渲染. ❌ "同为 X, Y 与 Z..." 铺陈式; ✅ "WDC/STX 分化不是基本面, 是定价机制".
- `sw_rest`: 支撑/破折号补语, 可省. 可含 `[[cite:<ts>]]`.
- `bullets[]`: atomic bullets, 活跃日旗舰卡 5-8 条, 普通卡 3-5 条.
- `head`: takeaway chip, 3-30 字, 是 take 浓缩. 渲染为亮琥珀粗体. ❌ "事实"/"数据"/"现状" 空标签; ❌ "这代表什么?" 抽象问句; ✅ "建滔 ASP 提速" / "AVGO 在 v9 吗?" / "Apple 投降 → 盘后拉升".
- `body`: 支撑细节 + cite. 可含 inline `<b>` 和 `[[cite:<ts>]]`.
- `closer`: 可选 (旗舰卡建议加). `head` = "对 PM 来说 = ..." 类执行视角翻译. **只 paraphrase 卡内已有内容**, 不引入新数字/新动作 (违反 §0 严格基于源).
## Cite 规则 (重要, 防幻觉):
- 格式: `[[cite:<ts>|<figure>|<中文译文>]]` 嵌入 body / sw_rest / newin.body / top3.rest / closer.rest 文本.
- **`<ts>` 必须**是**下方对话流**里实际出现的 `[1781...]` 前缀 ID, **绝对不允许编造** (例: `1700000000.000001` 或 `1781790000.000000` 末尾全 0 这种序列号都是编造).
- **数字 / 文字 必须在 body 文本里正常写一遍**, 不能只放进 `<figure>` 字段!
`<figure>` 只是给 render_citations.py 做"原贴存在性"校验用, **不会显示给读者**. 标记被渲染成 `[n]` 上标.
- ❌ `"ASP 涨[[cite:ts|84%|]] 至 HKD230"` → 渲染后变 `"ASP 涨 [1] 至 HKD230"`, **84% 消失了**.
- ✅ `"ASP 涨 84% 至 HKD230[[cite:ts|84%|...]]"` → 渲染后 `"ASP 涨 84% 至 HKD230 [1]"`, **数字保留**.
- `<figure>` 必须**逐字复制原贴** (原贴 `1.75bn` 就写 `1.75bn`, 不补 `$`/`+`/`%`); **单值** (多值拆多个 cite, 别用 `/` 复合); qualitative 引用**省 figure** (用 bare `[[cite:<ts>]]`).
- 不确定原贴怎么写 → 省 figure 比写错好.
## 流程:
1. 对 transcript 做账本 diff: 标【增量】vs【背景】.
2. 按热度 (表情+回复) 排 Top-K (沉寂 K=2 / 常规 K=4 / 活跃 K=6); 前一半"必保"覆盖.
**重要 — "父帖空 / 问题帖" 不等于无信号**:
父帖**空文本/纯图/纯问题**的线程 (例: 某人空文本帖配 ticker, 或 "What are everyone's fav stocks for next week?" / "anyone see any news on $X?") **真信号在 replies 里**, 不在父帖. 不要看父帖没 take 就跳过.
判定规则:
- 父帖**空 / 短 / 是问题**但**总热度 ≥ 20** (反应数 + 回复数) → 必读完 replies 再决定要不要砍.
- 用**第一条高赞 reply** 或 **被反复点名的 ticker** 当 topic seed, 提炼成一张卡 (head 用 reply 里的核心 take, 不是父帖的问句).
- 例: 父帖空文本 + 票 TTWO + 11 个 heart → topic seed 用 "$TTWO nice move + IGV 跟随但 underwhelms" 这种 reply 含的 take, 写 TTWO 卡.
这是 6/18 漏 TTWO 必保线程的根因; 模型默认从父帖找主题 + 立场, 看不到空/问题就跳, 但 reply 是金子.
3. 板块归属 §1E: 按"reprice 对象"而非"信息来源域". AI 监管 / 模型访问限制 / Apple 关税 都归 AI 主线, 不归宏观.
4. 写 JSON: h1 → top3 → newin_items → sections (前段 AI/科技主线, 后段 宏观/其他).
5. **尽量挖掘深度** —— **深度 = 多角度发现, 不是凑 bullets**
写每张卡时, 主动找以下角度的信号(包括但不限于):
- **量化**: 数字 / 数量级 / 比率 / 价格 / 时间窗口 / 占比
- **机制**: "X → Y" 因果链, 物理/资本/政治/技术约束, 为什么会这样
- **共识 vs 分歧**: 多空、高赞反驳 (+N 投票)、群里一致 vs 各执一词
- **Catalyst**: 即将兑现的 trigger, 下一步可观察信号, 谁要先动
找到几个角度, 就写几个 bullets. **找不到 = 该卡少 bullets 是合理的; 找到了懒得展开 = 偷懒.**
**典型卡 3-5 bullets**(自检 anchor, 不是硬目标):
- 多数活跃卡(材料丰富)应该挖到 3-5 角度
- 真的单角度 topic → 1-2 bullets 完全 OK
- 真的丰富 → 6+ bullets 也 OK
- **如果你写出 2 bullets 但 transcript 这个话题有 5+ messages / 10+ reactions, 大概率是你漏挖了, 重新读一遍 replies**
**热度只影响"全天卡数 + 总篇幅", 不影响"单卡深度发现"**. **活跃日尤其要多挖**(材料多、信号密集, 别浪费). 其他天按材料里有的发现就好 —— 长帖照样挖深, 群里没人说话就少写卡.
❌ 凑数填充重复内容 (padding) —— 比少写更糟
❌ 拆碎同一个 take 凑成多个 bullets
❌ 找到了多角度但只写 1 句话
✅ 1 个角度 = 1 个 bullet; 多个角度 = 多个 bullets, 上限看材料
## 体量与档位:
{{BUDGET}}
## 记忆账本:
{{LEDGER}}
## 对话流 (cite ts 唯一合法来源):
{{TRANSCRIPT}}
只输出 JSON 对象.
```
---2) CRITIQUE — 按规则审查 (输出文本批评) · 1,852 字
```
你是一位严格的总结质量评审. 审查这份 JSON 草稿, 对照规格 / 原始对话流 / 记忆账本.
## 内容规则:
{{RUBRIC}}
## 原始对话流:
{{TRANSCRIPT}}
## 记忆账本:
{{LEDGER}}
## 待审 JSON 草稿:
{{DRAFT}}
按规格 §1 六维度扫描. **只列命中**, 没问题就静默通过.
重点扫描清单:
- **【cite ts 真实性·红线】**: 扫所有 `[[cite:<ts>]]` 标记, ts 是否在**对话流**里实际出现过. ts 编造 (如 `1700000000.000001` 序列号) → 红线, 最高优先级要求改.
- **【覆盖 Top-K §1A】**: 列出当天 Top-K 热门线程 (K 按热度), 逐条对照 JSON 标 ✅覆盖/➕已并入/⛔故意省略. 必保线程默默漏掉 → 要求补.
- **【板块归属 §1E】**: 按"reprice 对象"判. AI 监管 (KYC for AI / 模型访问限制 / AI 出口管制) / Apple 关税 → AI 主线; 被误丢宏观 → 要求挪.
- **【so-what 判断先行 §1D】**: 每个 card 的 `sw_head` 前 6-10 字是否立场断言. 若是 "同为 X, Y 与 Z..." 铺陈式 → 要求改写.
- **【元判断词 §1D】**: `sw_head` / `sw_rest` / `body` / `closer` 含元判断词 (市场/共识/仓位/拥挤/信念/一致预期/一边倒/恐慌/贪婪) 但同句无 `[[cite:<ts>]]` → 要求补 cite 或删句.
- **【发言人匿名 §1G】**: 扫整个 JSON (h1 + top3 + newin + sw_head + sw_rest + h3 + body + closer) 是否含 Slack handle (短英文别名). cite 标记里的 ts 不算. handle 出现且未加角色注 → 要求改为角色描述 ("卖方笔记" / "存储多头") 或被动语态.
- **【bullet 头】**: `bullet.head` 是否空标签 ("事实"/"数据"/"现状") 或抽象空问句 ("这代表什么?"/"为什么这个这么重要?"). 命中 → 要求改具体 chip.
- **【AI 套话 §0】**: 扫全文是否含 "综上所述/值得注意的是/在某种程度上/有迹象表明/体现了/反映了" 等. 命中 → 要求删或换大白话.
- **【closer 不过度总结】**: closer 里的数字/观点/动作必须**只来自卡内已有 bullet 或原贴** (§0 严格基于源). 引入新内容 → 要求删 closer 或改写.
- **【伪细节 §3.1】**: 看疑似命中条目 (二手新闻/盘中情绪/P&L 八卦/同义重复/技术口水/未完成思考). 触发"多人共振/positioning shift"等保留条件就明确标注成"群体情绪信号"/"仓位信号"; 不触发就要求砍.
- **【浅卡扫描 — 深度审视】**: 对每张 card, 估算**对话流**里这个话题相关的 messages 数 + reactions 数. 如果 **messages ≥ 5 + reactions ≥ 10 但 card 只有 1-2 bullets** → 浅了, REQUEST 加深: 让 REVISE 回去原贴找漏掉的 量化 / 机制 / 共识-分歧 / catalyst 角度 (规格 §0 多角度发现). **不是要求凑数 padding** —— 是抓"明明材料厚但写得浅"的偷懒.
- **【keypoints 1:1 检查】**: 数 `sections` 里所有 cards 总数 N, 看 `keypoints` 长度 M. **如果 M ≠ N → 红线, REQUEST 必须补**. 把漏掉的 cards 列出来, 让 REVISE 加上对应 keypoints (按 cards 顺序插入到正确位置).
不要打分数. 每条给【字段位置 (如 `sections[0].cards[1].bullets[2]`) + 为什么不行 + 怎么改】.
只输出 critique 文本.
```
---3) REVISE — 修订 JSON (输出 JSON) · 349 字
```
你是修订人. 把 JSON 草稿按 critique 改一遍.
## 内容规则:
{{RUBRIC}}
## JSON Schema:
{{SCHEMA}}
## 原 JSON 草稿:
{{DRAFT}}
## 评审意见:
{{CRITIQUE}}
优先级:
1. **【红线】先改** — 编造 ts / 数字 / 方向 / 板块归属错误.
2. cite 缺失 (元判断 / 元判断词类句) 补 cite, 或删句.
3. 增量性: 把套话换成带数字/分歧的增量; 被误砍的硬料捞回来.
4. 信号密度优先, 篇幅次要 (规格 §2). 不要为收篇幅砍硬料.
**只输出修订后的完整 JSON 对象**, 不要解释, 不要 markdown 包裹.
```
---4) EXTRACT — 抽 atomic claims 进 ledger (输出 JSON 数组) · 9,055 字
```
你的任务: 从已审核完成的 JSON 总结里, 抽出原子 claim, 准入 ledger.
## 准入规则 (rubric §F.5):
每个 claim 必须满足:
1. **(entity, predicate) 唯一原子**: 一个 claim 只讲一个实体的一个属性 / 行为 / 状态. 看到"并且 / +"几乎必拆.
2. **打 1+ 类标签** (好数字 / 好观点 / 好思考 / 好信源 / 好问题). **0 类 = 装饰文字, 不进 ledger.**
3. **直接复用 bullet 的措辞**, 不要重新生成 (避免跟 daily 的 voice 漂移).
## 5 类标签定义:
| 类别 | 含义 | 例子 |
|---|---|---|
| **好数字** | 量化锚点, 可对照 | "FY28 AVGO XPU $250-300B 营收" |
| **好观点** | 锐利立场 + 锚点, 不空喊 | "ALC: Warsh 偏鹰 + 任务小组拖延 = rate vol 回归" |
| **好思考** | 改框架 / 启发反思 | "Jevons 反驳: 超大厂托管开源毛利更高 = 开源利空论自相矛盾" |
| **好信源** | 独特一手, 难复制 | "Mei: Jensen 长驻韩国 = 内存供应紧张的间接证据" |
| **好问题** | **带逻辑的反问** —— 问题内嵌锋利观察 / 悖论 / 隐藏判断 | "如果开源 ARR 真利空, NVDA 为啥没反应?" / "Anthropic 烧 $X 但估值 $Y, 怎么合理化?" |
一个 claim 可多类 (好数字 + 好观点 都给).
**好问题 详解** (这类经常被漏抽, 重点找):
- ✅ "如果开源 ARR 真利空, 为什么 NVDA 价格没反应?" — 内嵌"前提→预期→观测反驳"逻辑链
- ✅ "Anthropic 烧 $X 但估值 $Y, 怎么合理化?" — 内嵌现金流跟估值的悖论
- ✅ "Cook 真的能压价吗?" — 内嵌"议价权可能已转移"隐藏判断
- ❌ "X 还有上涨空间吗?" — 纯打听, 无逻辑内核
- ❌ "这代表什么?" — 无观察, 无内嵌断言
- ❌ "明天 CPI 怎样?" — 通用预测请求, 无锐利点
**主动找好问题源**: transcript 里**带 `?` 但又含数字 / 名字 / 时间锚点**的帖子, 高概率是好问题. 不要只看陈述句.
## ⚠️ Tag 是**封闭 5 类 enum**, 不许发明
**只能用这 5 个**: `好数字` / `好观点` / `好思考` / `好信源` / `好问题`
❌ 不接受: 好事实 / 好比较 / 好数据 / 好分析 / 好洞察 / 好对比 / 好观察 (任何其他都是错)
看到 fact 含数字 → 选 `好数字`
看到对比 X vs Y → 选 `好观点` (有判断) 或 `好思考` (改框架)
看到事实 (无数字) + 有立场 → 选 `好观点`
看到一手信号 → 选 `好信源`
不能套上面任一 → 这条 claim 别抽, 是装饰文字.
## assertion_type 枚举 (严格边界, 5 类):
- **fact**: 已发生的事实陈述, 通常含具体数字 / 主体 / 时间 (例: Cook 公开表态; TEL 提价 +SD%; Mei 称 Jensen 长驻韩国).
- **forecast**: 未来预测, **必须有 value (qty / date / direction) 至少 1 项**. 没量化 → 不算 forecast, 改 narrative.
- ✅ "FY28 NVDA 数据中心 $250B 营收" (qty + date)
- ✅ "26 年 PCB 设备进入交付大年" (date)
- ✅ "存储进入紧缺周期, 持续 12-18 月" (direction + duration)
- ❌ "Google 可能补贴代币挤压前沿模型" — 无 qty / date / direction → narrative 类
- **position**: 立场 / 仓位 / 观点表态 (ALC 看多 NVDA; 群里普遍看空大厂; 卖方分析师加配 META).
- **narrative**: 叙事框架 / 解释模型 / 未量化展望 (开源拖累 ARR; AI capex 见顶; Apple 失去定价权).
- **refute**: 反驳 / 拆台已有叙事 (Jevons 反驳开源利空; "AVGO 丢单"被 JPM 否认).
## cognition_type ∈ {fact, take} — 三色 provenance 类型
跟 assertion_type **正交**. 关键判定: 这条 claim 的 information unit 是 verifiable fact 还是 author 解读.
🟦 **fact** = verifiable, 无 author 主观加工:
- 公司公告原话 / 财报数字 / SEC 文件 / 政府公告 / 价格 metric
- 央行声明 / 总统/官员公开陈述 (Trump tweet, Powell speech)
- 彭博/路透/WSJ confirmed news 转述
- 公司 official forward guidance ("公司指引 Q4 EPS $X")
- **管理层 (CEO/CFO) 对当下/已发生事件的公开表态**: "Cook 公开表态愿换内存供应优先级" / "Jensen 公开讲 5 层蛋糕" → fact (已发生 statement 事件)
- 群里**忠实转述**第三方 fact ("彭博: Apple 推迟 X")
- **可独立验证**: 打开 Bloomberg/财报能查到
🟥 **take** = 人原创判断 / framing / forecast / interpretation:
- 任何人对 entity 的 forecast / position / narrative / refute
- **管理层 forward judgment** (对未来 N 年的预测, 即便是 CEO 说的): Jensen "未来十年供应链难满足" → take
- **Sellside 报告里的 TP / rating / forecast** — analyst take
- 群友自己估算的数字 ("我估 35% 增速天花板") · framing-laden 表述
## stance ∈ {bullish, bearish, neutral, na} — atom 多空立场
从 author 视角对所讲 entity 的 directional take:
- **bullish** = 利好 / 看多 / 正面判断
- **bearish** = 利空 / 看空 / 负面判断
- **neutral** = 含 take 但方向不明
- **na** = **纯客观事实**陈述 (财报数字/价格), 无 author 立场
#### ⚠️ na 收紧
任何含因果 / 比较 / 趋势 / 状态词的 atom 必须给 bull/bear, **不能 na**:
- 比较: 低于/高于/超过/落后于/跑赢/低估/高估
- 因果: 受...拖累/受益于/驱动/侵蚀/支撑/挤压
- 趋势: 加速/放缓/恶化/改善/承压/见顶/触底
- 状态: 供不应求/供过于求/失衡/紧张/宽松
- 隐含 framing: 锁定份额 → bull; 失去定价权/资金提款机/投降信号 → bear
#### ⚠️ 持仓侧反向陷阱
任何关于"做空 X / 空头 X / 做多 X / 多头 X"描述, 看反方处境:
- "做空风险高 / 难做空 / 空头被轧" → **bullish** (空头不利 = 股价不跌)
- "做多风险高 / 多头止损" → **bearish** (多头不利)
## topic (1-3 短词组) — 主题 cluster
短词组, 名词性, 4-8 字, 不写句子. 让跨 atom 能按 topic group.
规则:
- 1-3 个 tag, 不要超
- 优先复用标准化短词组: `估值 / 营收 / 需求 / 产能 / 竞争 / 政策 / 并购 / 管理层表态 / 技术路线 / 供应链 / 财报 / 出货 / 库存 / 价格`
- **不把 entity 名当 topic** (包括 ticker/中文公司名/复合形式): ❌ ["TAM路径","NVTS"] · ❌ ["ASE营收预测"] · ✅ ["TAM路径","收入预期"] · ✅ ["营收预测","测试产能"]
- 想到 "X营收" 而 entity=X, 写 "营收预测"
## source_credibility ∈ {1, 2, 3, 4, 5} — atom 真正 originating author 的信用档
| 档 | 类型 |
|---|---|
| **5** | Primary source: 公司公告/财报/SEC · 央行/政府公告 · CEO/CFO/Founder 公开陈述 (Cook/Jensen/Pichai/Altman/Musk) · 总统/官员陈述 (Trump/Powell) · 顶级 wire confirmed (Bloomberg/Reuters/WSJ exclusive) |
| **4** | 顶级 sellside (JPM/GS/MS/Jefferies/UBS/BofA/Citi) · 知名 newsletter (Stratechery/Matt Levine/SemiAnalysis) · 知名独立分析师 |
| **3** | 群里 active 高质 contributor (ALC/Methodica/Loeb/Citrini/Sims/Mei 等被频繁 cite) |
| **2** | 一般群友 / handle 不出名 / 转发无明确出处 |
| **1** | wild guess / "I heard" / 无 source rumor / 模糊推测 |
## 抽取流程: 2 pass
### Pass 1: 主抽 — 从日报 (voice 一致优先)
- 扫 DRAFT.sections[].cards[].bullets[] 每个 bullet
- 抽 atomic claim, **直接复用 bullet 措辞**, 不重写
- 输出 section_idx / card_idx / bullet_idx (从 0 开始)
- sw_head / sw_rest 也是 claim 来源 (bullet_idx = -1)
- 一个 bullet 通常含 1-3 个 claim. 单角度 1 个; 多 entity / 多 predicate 必拆.
- closer 是"对 PM 翻译", 通常不抽.
### Pass 2: 补抽 — 从 transcript (召回率优先)
扫**下方对话流**, 找**日报里没充分呈现但群里有强信号**的 claim. 触发条件 (满足任 1):
1. **配对讨论的另一方**: 日报有 "SNDK vs MU 估值辩论" 卡, 但只抽了 SNDK 的 claim. → 把 MU 那侧也抽出来.
2. **群里反复提**: 同一 entity 在 transcript 里 ≥ 3 人提 / ≥ 2 个 thread 提, 但日报因 Top-K 落选 → 抽.
3. **高反应数被埋没**: transcript 里某条主帖反应数 ≥ 8 但日报没写 (Top-K 漏) → 抽.
4. **群里数字 / 论点细节** 日报泛泛带过没具体化 → 从 transcript 抠具体数字 / 论点入 ledger.
Pass 2 claim 格式 (用 `card_idx=-1` 标记"transcript 补抽"): `{"section_idx": -1, "card_idx": -1, "bullet_idx": -1, "claims": [...]}`
Pass 2 claim 仍要满足:
- 5 类标签准入 (好数字/好观点/好思考/好信源/好问题)
- entity 不在黑名单 (AI/市场/投资/AI Mode 等不抽)
- forecast 必须有 value
- **source_ts 必填** (直接从 transcript 的 `[ts]` 抠出来, 不能 null)
- text 措辞用 transcript 原文 (不是改写, 因为日报里没这句)
⚠️ **Pass 2 不是补遗一切**. 只补"群里真有共识 / 反应 / 双主体"的信号. 一对一闪现 / 无人响应 / 偏 P&L 八卦 / 二手新闻 → 不算.
### 通用规则 (两 pass 都遵守)
- 真不知道 source_ts 就填 null (但尽量从对应 `[[cite:...]]` 或 transcript ts 里抠)
- **source_span 必填** (2026-07-05, 原文↔atom 绑定): 从 transcript 里**逐字复制**生成该 claim 的那句原话 (≤400 字). 它是原文母本, 便于定位/审计保真; 定位不到才填 null. 跟 text 的区别: text 可以是你的浓缩措辞, source_span 必须是 transcript 里的原字.
## entity 跟 predicate 的边界 (常错, 必读):
**entity = 主体名词** (公司 / ticker / 板块 / 叙事 / 人物 / 抽象概念). **predicate = 关于 entity 的属性 / 状态 / 行为 / 预测**.
| ❌ 错: metric-style 当 entity | ✅ 对: 拆成 entity + predicate |
|---|---|
| entity="Nvidia 芯片总尺寸" / predicate="飙升至 322,040mm²" | entity="Nvidia" / predicate="芯片总尺寸" / value={qty: "Hopper 38,280mm² → Rubin Ultra 322,040mm²"} |
| entity="CCL ASP" / predicate="预计 26 年涨 84%" | entity="CCL (建滔)" / predicate="ASP 预期" / value={qty: "26 年 +84% YoY 至 HK$230/张"} |
| entity="ABF 产能利用率" / predicate="升至 100%" | entity="ABF" / predicate="产能利用率预期" / value={qty: "24 年 65% → 27 年 100%+"} |
| entity="单机架 CCL 价值量" / predicate="升至数万美元" | entity="CCL (in AI 机架)" / predicate="单机架价值量" / value={qty: "H100 几千美元 → Rubin 数万美元"} |
**判断**: 这个名字能不能跨多个 bullet 复用?
- "Nvidia" 可以 → entity
- "Nvidia 芯片总尺寸" 太具体, 一辈子就这一句 → 不是 entity, 应该是 predicate
**好 entity 名**: NVDA / Apple / AVGO / Warsh / AI capex / 内存涨价周期 / 开源拖累 ARR / CCL / Ibiden / 国内 PCB 厂 / 卖方分析师群体
**坏 entity 名 (metric / 句子 / 太具体)**: "Nvidia FY28 营收" / "26 年 PCB 设备需求" / "Apple 投降买内存" / "Warsh 鹰派表态"
## ❌ 禁用 entity 名 (太泛, 无法做 dossier — **见到直接跳 claim 或改成具体 entity**):
`AI` / `市场` / `投资` / `需求` / `供应` / `增长` / `利润` / `成本` / `产能` / `公司` / `板块` / `前沿模型` / `前沿实验室` / `投资规模` / `AI Mode` / `AI ROI` / `AI Infra` / `AI 推理需求` / `AI 工具解决方案` / `AI 投资` / `AI 基建` / `AI 数据中心建设` / `AI 支出模式` / `端侧 AI` / `AI 板块` / `AI 实验室`
→ 处理方式 2 选 1:
1. **能改成具体 entity** → 改 (例: "AI" → 具体公司 NVDA / Anthropic; "市场" → 具体板块 半导体板块; "前沿模型" → 具体模型 Claude / Gemini)
2. **改不成** → 整个 claim **不抽** (这是装饰文字, 不是信号)
具体的判断: 你能不能用"\<entity\> 在 \<predicate\> 上 \<value\>"造句, 并且 6 个月后接手的人立马 get 你在讲谁?
能 → entity 可以;
不能 (因为 entity 是抽象到无定指对象) → 不抽.
## 输出格式:
**JSON 数组**, 以 `[` 开头, `]` 结尾. 每个 claim 必带新加 3 字段 (cognition_type / stance / topic).
\{
"card_idx": 1, // sections[i].cards[j] 里的 j, 0-indexed
"section_idx": 0, // sections 里的 i, 0-indexed
"bullet_idx": 2, // bullets 里的 idx; -1 = 来自 sw_head/sw_rest; -2 = 来自 closer
"claims": [
\{
"entity": "Apple",
"predicate": "策略转向: 用资产负债表换内存供应",
"value": null,
"text": "Cook 公开表态: 愿用 Apple 资产负债表换内存供应优先级",
"assertion_type": "position",
"tags": ["好观点", "好信源"],
"cognition_type": "fact",
"stance": "bullish",
"topic": ["管理层表态", "供应链"],
"source_credibility": 5,
"source_span": "Cook: willing to trade Apple's balance sheet for memory supply priority",
"source_ts": "1781938174.846909"
\}
]
\}
如果 bullet **没有任何 claim 满足准入** (纯装饰 / 全 0 类), `claims` 设 `[]` (空数组). 不要硬凑.
## 待抽的 JSON 总结:
{{DRAFT}}
## 对话流 (源 ts 唯一合法来源):
{{TRANSCRIPT}}
## 最终输出 (零冗余, 严格):
**直接以 `[` 开头**, **以 `]` 结尾**. 不要打招呼, 不要"收到, 我理解了", 不要解释思路, 不要 markdown code fence, 不要任何中文 / 英文导语. **第一个字符必须是 `[`**.
例 (这就是合法输出, 一字不多): `[{"section_idx":0,"card_idx":0,"bullet_idx":0,"claims":[{"entity":"NVDA","predicate":"FY28 数据中心营收预期","value":{"qty":"$250-300B","date":"FY28"},"text":"FY28 数据中心营收 $250-300B","assertion_type":"forecast","tags":["好数字"],"cognition_type":"take","stance":"bullish","topic":["数据中心增长"],"source_credibility":4,"source_ts":"1781938174.846909"}]}]`
```
---5) RENDER — 渲染 HTML (确定性, 非 LLM) · 951 字
不是提示词, 是代码:
```bash
python summarizer/render_html.py <draft.json> # 输出 HTML fragment 到 stdout
```
正常 pipeline 由 `summarize.py` 自动调用. `render_html.py` 把 JSON → HTML, 保证 class 名 / 嵌套 / lead span / 容器结构全对.
随后:
```bash
python summarizer/render_citations.py <export.json> <out.html> # 展开 [[cite:]] 标记
python summarizer/build_site.py # 包外壳, 加 heat pill / sym 等
python summarizer/checks.py <export.json> site/<date>.html --day <date>
```
---
## 流水线顺序
```
抓 Slack → split_by_day → 读账本 →
GENERATE (JSON) → CRITIQUE (text) → REVISE (JSON) →
EXTRACT (JSON 数组 → ledger.jsonl + wiki/log.md) →
render_html.py (JSON → HTML fragment) →
render_citations.py (展开 [[cite:]]) →
checks.py (验证) → build_site.py (包外壳) → 发布
```
> 只跑一轮 critique → revise (多轮收益递减).
> EXTRACT 在 REVISE 之后, render 之前. EXTRACT 失败不阻塞 render (ledger 是辅助资产).
> render_html 在 render_citations 之前 (JSON → fragment → 展开 cite).rubric.md (内容规则 · 什么是好 take) · 5,870 字
# 总结质量规格 (rubric.md)
> **这是唯一的规格文件。** 它同时被三处使用:
> 1. **生成**时作为 prompt 的一部分(告诉模型什么是好总结);
> 2. **批评**时作为 judge 的判据(让模型按它挑毛病);
> 3. **你手评**时作为 👍/👎 的依据。
>
> 只维护这一份。任何对"什么是好总结"的认知更新,都改这里,三处自动同步。
---
## 0. 这份产物是什么
**读者**:买方 / PM / 决策者。
**产出物 = 给决策者看的逻辑清晰要点备忘录,像与领域专家对谈后整理的纪要。**
**目标**:替读者排序 + 下判断,不是把聊天记录压缩一遍。
**三条核心原则**:
- **去 AI 味** —— 直接、讲人话. 禁用 "综上所述 / 值得注意的是 / 体现了 / 反映了 / 在某种程度上" 等 AI 套话 (完整清单见 `checks.py AI_CLICHES`).
- **符号优先** —— 用 `→` / `=` / `+` 表达递进 / 等同 / 并列(见 §3.0)
- **严格基于源** —— 所有事实 / 判断 / 数字必须能在 `{{TRANSCRIPT}}` 里找到. transcript 之外的推测 / 添油加醋 / "看起来合理的脑补" 一律禁止.
**详细度跟着当天热度走**:
- 热度高 → 多挖、信息密度高、LLM 在重点话题多分配 attention
- 热度低 → 短而精;但**沉寂日也可能有高增量新叙事,该前置**
- **详细度不设上限**,内容质量优先于篇幅
**两个独立维度**:
- **depth**(挖多深)= 跟当天热度
- **order**(谁排前面)= 跟增量(首次出现 > 重述)
> 视觉 / HTML 结构 / 容器 / 颜色 → 由 schema.py + render_html.py 强制,不在本规格.
> checks.py 的"当天体量→档位"是评估期参考, 不是 LLM 写作时的约束.
**"体量" 定义**(操作层, 物理实现在 `checks.py HEAT_TIERS`):
体量 = **互动热度 + 源词量 // 30**
- 互动热度 = 回复数 + 反应总数
- 源词量 = 中文字符 // 2 + 英文词数
档位: `<150` 沉寂 / `150-550` 常规 / `≥550` 活跃
`summarize.py compute_heat` 跟 `checks.py day_weight` 必须用同一公式, 否则 prompt 告诉 LLM 的预算和 checks 评估的预算会跨档位.
---
## 1. 六个维度(批评和手评都按这几条)
每条给:✅ 通过长什么样 / ❌ 失败长什么样(例子来自真实迭代)。
### A. 覆盖度 Coverage
**当天最被讨论的话题必须进总结**. 按反应 + 回复数算热度, 越热的越没理由漏.
几种最易翻车的覆盖失败(包括但不限于下面):
- **漏头条写冷门** —— 跳过真正最热的, 选了好写的话题
- **跳过父帖空 / 纯图 / 纯问题的线程** —— 真信号在 replies 里, 不在父帖
- **漏无 ticker 的宏观 / 情绪线程** —— 它们没字符串锚点, 最易被默默忽略
### C. 忠实度 Faithfulness(红线)
§0 严格基于源的延伸: 数字 / 署名 / 观点方向 不能编, 不能写反.
### D. 结论性 So-what
每张卡的 `.sw` 必须**判断先行**: 前 6-10 字 = 立场/钩子, 不能是事实复述或"关于讨论的描述".
❌ "争的不是方向而是'该给多少溢价' —— HDD 因供给纪律更受偏好"
✅ "**HDD 该比 NAND 贵 2 turns, 没人反对** —— 争的只是数字大小"
### E. 优先级 Prioritization
板块顺序: **前段 AI/半导体/科技公司主线 → 后段 宏观/其他**.
**归属判定 = "受影响主体" 而非 "信息来源域"**:
- 关键问题: 这条信息主要 **reprice** 哪类资产?
- AI 监管 / KYC for AI / 出口管制 / Apple 关税 → 都归 AI/科技, 哪怕来源是政府
- FOMC / CPI / Iran 冲突 → 归宏观
例外: 宏观本身是 actionable 转变 (FOMC 落地 / 鹰派转向) → 可前置, 但要点明 actionable 部分.
### F. 增量性 Incrementality(每日产品头号维度)
**定义**: 频道时间线上是否**首次出现**. 基准是频道, 不是读者个人.
**价值梯度** (高 → 低, 包含以下但不限于以下):
1. **新叙事 / 首次框定** —— 例: 第一次把"散热"当瓶颈
2. **已知叙事下的新数据点** —— 例: 新目标价 / 新交易 / GPU 续约 $5.10
3. **实质变化 / 反转** —— 情绪翻转 / 共识破裂 / 预测兑现或打脸
4. **无新数据的重述** —— 零增量, 应砍
比较在**叙事 / 实体 / 数字**层面, 不是逐字. 换说法的同一叙事 ≠ 新.
> 当前状态: 账本未接入, 全靠 LLM 推断"频道时间线上是否新". 见 §5 TODO.
### F.5 Ledger 准入 — 5 类信号 + 三层架构
**Ledger 不是把所有 bullet 都丢进去**. bullet 是呈现单位, ledger 进的是**原子 claim** —— (entity, predicate, value) 三元组唯一, 信息浓缩.
**三层架构**:
- `claim` (机器索引层) — 1 entity + 1 predicate + 可选 value + 5 类标签, 自包含
- `bullet` (人读呈现层) — 1 个 bullet 可含 1-3 claim
- `narrative arc` (跨时空叙事层) — 跨多个 claim 的故事弧, 也是可追踪实体
**准入: 每个 claim 必须打 1+ 类标签, 0 类砍**.
| 类别 | 含义 | 例子 |
|---|---|---|
| **好数字** | 量化锚点, 可对照 | "FY28 AVGO XPU $250-300B 营收" |
| **好观点** | 锐利立场 + 锚点, 不空喊 | "ALC: Warsh 偏鹰 + 任务小组拖延 = rate vol 回归" |
| **好思考** | 改框架 / 启发反思 | "Jevons 反驳: 超大厂托管开源毛利更高 = 开源利空论自相矛盾" |
| **好信源** | 独特一手, 难复制 | "Mei: Jensen 长驻韩国 = 内存供应紧张的间接证据" |
| **好问题** | 引发探索 / inquiry | "如果开源 ARR 真利空, 为什么 NVDA 没反应?" |
一个 claim 可多类 (好数字 + 好观点 都给).
**时间衰减** (claim 不删, 只降权):
| 类型 | 半衰期 |
|---|---|
| fact | ∞ (除非被 supersede) |
| forecast | 锚到 forecast 日期 |
| position | 14-30 天 |
| narrative | 60-90 天, 再现刷新 |
**矛盾不仲裁, 显式建模**:
- 跨主体分歧 → 渲染成 "争论·X" 卡 (现有)
- 跨时间反转 → 渲染成 "立场翻转" 卡 (新)
- LLM 在 summarize 时跟 ledger 现有做语义匹配, 自动建 `contradicts` / `supersedes` 边
**编辑 = append-only revision, 原 claim 不可变**. 见 ROADMAP §3.6.
### G. 发言人匿名化
正文里**默认不写原始 Slack handle**(内部别名对外部读者只是字符串噪音)。
常见的替换(包括但不限于):
- **角色描述**:卖方笔记 / 存储多头 / 宏观空头 / 一位 PM
- **被动语态**:被反驳 / 有人指出 / 群里复盘
例外:当一段判断的关键 = 谁说的(已知高信誉账户)→ 第一次出现加角色注 "DCap(群内存储多头)".
Cite 弹窗仍保留原 handle, verification 不丢. 当前判断"谁是高信誉账户"靠 prompt + 人工经验兜底, 未来交给 §5.1 用户画像账本.
---
## 2. 操作性规则(备查目录)
规则层(篇幅档位 / HTML 结构 / class 名 / cite 格式 / 机密声明 等)由下游工具固化:
- `schema.py` / `render_html.py` / `build_site.py` / `render_citations.py` / `checks.py` / `prompts.md`
本规格只描述**内容质量原则**, 不重复操作性规则.
---
## 3. 什么"细节"算好细节
判断一个细节该留还是该砍, 问一句: **它是不是"赢得信任的数字"?**
- ✅ **留**: 能锚定判断的具体数字 (数量级阶梯 / 供需缺口比率 / 分级 TAM 等)
- ❌ **砍**: 没有判断附着、也没有新映射的罗列
- 例外: 清单本身**首次系统化** (如首次理出 Rubin 单板 MLCC 6 家供应商及份额) → ①级增量, 不是伪细节
**深度按热度分配**:
- **天内**: 当天 Top-3 旗舰主题给量化纵深; 长尾一句话带过
- **跨天**: 整体篇幅按热度走 (见 §0)
前提: 只用源里真实数字, 缺则不写.
### 3.0 表达密度 —— 优先用符号
当判断有清晰的因果/等价/并列关系时,**优先用符号替代汉字连接词**。密度高、消歧准、不像 AI 写法。
| 符号 | 含义 | 例子 |
|---|---|---|
| `→` | 递进 / 流程 / 因果 | "Anthropic 限制 → 企业转中国开源 → 利空 AI capex" |
| `=` | 等同 / 定义 / 结果 | "散热 = 新瓶颈" / "瓶颈交易没死 = 没看到 capex 下滑" |
| `+` | 并列 / 累加 | "WDC 涨 + STX 没涨 = LTA 一刀切了浮动定价" |
判断要不要用符号: 这段话能不能用 "X = Y" 或 "A → B → C" 一句话讲完? 能 → 优先用符号。不能(含多重转折/限定)→ 用汉字句。**不要硬塞符号让句子变碎**。
### 3.1 默认无信号的细节
没有绝对的伪细节, 只有"默认无信号"的. 这些**默认砍**, 但满足触发条件可保留:
- **默认砍**: 二手新闻 / 盘中情绪 / P&L 八卦 / 无依据预测 / 同义重复 / 看图无文 / 过期 catalyst / 技术分析口水 / 未完成思考 / 机制科普
- **触发保留条件**: 多人共振 / positioning shift / 高信誉账户 / 共识强度 / 新角度重新解读 / 首次机制揭示
- **永远砍**: 纯情绪表态 (+1 / this), 这是热度信号不是内容
## 4. 评分方式(刻意保持简单)
- **不打数字分**(7.3/10 没法行动)。批评一律输出**可执行的话**:"X 板块只列票没结论,建议……"。
- **手评只用 👍 / 👎 + 一句话原因**,记进日志。
- eval **反应式生长**:只有当输出**反复**栽在同一个点上,才把那条固化进本规格或 checks.py。没坏的不加检查。
---
## 5. 增量账本 (state/ledger) — 基础版本, 待迭代
§F 的"以时间为基准"需要"过去说过什么"的记忆.
**目标结构**: 滚动窗口内 (默认 14-30 天) 累积 `narratives` / `entities` / `figures`, 每条带首次出现日期.
**目标流程**: 今天 ⊖ 账本 = 增量; 发布后追加新增项; 淘汰超窗口旧项. 对比在**叙事 / 实体 / 数字**层面做, 靠语义而非字符串.
**冷启动**: 第 1 天空账本 → 全部算新.
**当前状态 (TODO)**: 账本未正式接入, 由 LLM 凭单日 transcript 推断"是否首次出现". 后续迭代:
- 落地 `state/ledger.json` 数据结构
- 渲染期填充 prompt 的 `{{LEDGER}}` placeholder
- 接入 UPDATE-LEDGER 闭环 (每天发布后更新)
### 5.1 用户画像账本(未来扩展,未实现)
`state/persona.json`:`handle → {角色 / 覆盖板块 / 信誉档 / 立场倾向}`。
当前**未实现** —— 正文匿名化(§1G)作为兜底。等积累足够数据后,能给三处升级:
- **§1G 例外条款**:"谁是高信誉账户"从经验判定 → 数据判定(首次出现自动配 "DCap(群内存储多头)" 角色注)
- **§3.1 条件规则表**:"高信誉账户首次表态"的触发条件有了实际依据
- **§F 增量性加权**:常被验证为正确的账户首次表态 → 自动升为 ① 级新叙事
数据来源:日积月累的总结里手动给 handle 打标(角色 + 信誉 + 立场),或者跑离线分析(某 handle 历史表态的命中率)。先 prompt 兜底,等数据上来再上系统。Twitter Selection v2帖子级筛选、重要度与人工校准注意
profiler/selection_contract_v2.json · profiler/selection_rules_v2.json · eval profiler/reports/selection_eval_latest.jsonTaste Context筛选口味与判例正常
- 我们筛选的是能改变 TMTB 对核心实体、核心议题、产业节奏或市场叙事判断的信息。
- 好信息要能压缩成可追踪的 claim,或者能解释一个重要 claim 为什么正在变得重要。
- 作者权重只是先验;最终选择发生在单条内容层。
- `incremental` 必须说明相对谁增量:相对已有账本、市场共识、作者惯常内容,或当前研究主线。
- 不是只有新增事实才值得选;对当前重要叙事提供独立确认、反证、置信度变化、叙事压缩或传播放大的内容,也可以进入系统。
| ID | Topic | Conf | Belief | What changes it |
|---|---|---|---|---|
b_ai_capex_not_slowing | AI capex | medium | AI compute buildout still appears to be expanding; isolated pause signals should be checked against ASIC, HBM, … | Multiple hyperscalers cut capex guidance or supply-chain order data weakens across GPU,… |
b_asic_supply_chain_readthrough | ASIC / Trainium | medium | Hyperscaler ASIC ramps matter because they shift the read-through from only NVIDIA GPU demand to ODM, networkin… | ASIC shipment evidence stays headline-only without order, supplier, capacity or timing … |
b_data_sources_need_topic_gate | data/rankings | high | Similarweb, Artificial Analysis, TrendForce and ranking/data accounts are high-trust inputs only when the measu… | Repeated off-focus data points become useful in downstream product decisions. |
b_paywall_teaser_can_be_signal | paywall teaser | medium | Paywall teaser is not automatically low value; teaser headlines with a clear claim, entity, timing, number or e… | Review shows teaser-only items usually cannot be followed up or converted to claims. |
b_persona_accounts_are_narrative_sensors | industry persona | medium | Some industry-known individuals are valuable because their views propagate; they should be judged by narrative … | Selection labels show persona-driven content rarely changes beliefs or downstream choic… |
b_official_accounts_need_marketing_filter | official accounts | high | Official accounts are useful for product, pricing, customer, roadmap, metric and partnership facts, but ordinar… | Marketing-only posts consistently reveal material adoption or market timing signals. |
| ID | Kind | Decision | Pattern |
|---|---|---|---|
ex_persona_strong_view | positive | narrative | 行业名人或 builder 对 AI coding、模型能力、产品方向提出新鲜且可能发酵的观点。 |
ex_official_marketing | negative | ignore | 官方号发布普通品牌文案、活动宣传或没有新产品/客户/价格/指标的 marketing 材料。 |
ex_teaser_with_claim | boundary | watch | paywall teaser 只有标题/摘要,但标题包含 AWS Trainium 拉货、供应链 QoQ、客户/订单或时间点。 |
ex_reinforces_active_belief | positive | fact | 内容不是全新主题,但来自独立来源,提供新的数字、时间点、供应商、客户或订单证据,加强一个 active belief。 |
ex_challenges_active_belief | positive | watch | 内容反对当前主线或 active belief,并给出可检查证据,例如订单放缓、价格转弱、客户推迟、产能过剩。 |
ex_repetition_without_impact | negative | ignore | 内容只是同源搬运或重复市场共识,没有新证据、新角度、传播意义或置信度变化。 |
- Charter 保持 1-2 页内。
- Current Focus 保持 10 条以内。
- Active beliefs 保持 50 条以内,旧 belief archive。
- 每次 LLM 判断最多检索 3-8 条相关 belief/example。
- 系统可以建议新增/修改 belief,但不能无审核地无限写入 context。
TASTE_CONTEXT.md · taste/taste_beliefs.jsonl · taste/taste_examples.jsonl · 快照 taste/taste_context_snapshot.json项目备忘录尚未产品化的判断正常
- 有一类作者平时没有稳定观点,但偶尔会有一两条有价值信息。不要直接排除,也不要给高权重。
- 默认放在 `偶尔参考` / B 档,低权重保留。
- 只有当内容碰到重要实体或重要议题时才放大权重。
- 重要实体例子:OpenAI、Anthropic、NVIDIA、AWS、Microsoft、Google、Meta、TSMC、SK Hynix、Micron、Broadcom。
- 重要议题例子:模型能力变化、AI capex、ASIC/Trainium/TPU、GPU 供需、HBM/内存、先进封装、数据中心电力、关键产品发布、业绩指引变化。
- Similarweb、Artificial Analysis、TrendForce 这类源的价值取决于话题交叉,而不是账号本身每条都重要。
- 先判断数据对象是否碰到当前主线实体或主线议题。
- 例如 Similarweb 分析 ChatGPT、Claude、Gemini、Perplexity、AI 搜索份额时重要性高。
- 例如 Similarweb 分析 Instagram 或普通消费 App 流量,如果当前项目没有这个主线,重要性低。
- 数据源可以高信任,但不是每条都高相关;`trust` 和 `relevance` 要分开看。
- 产品 leak、供应链 rumor、市场传闻要保留,但必须降低事实确定性。
- 未确认前标为 rumor,不直接进入事实层。
- 如果 rumor 触及核心实体或会影响市场预期,可以进入观察层。
- 后续若有公司公告、主流媒体、供应链多源确认,再升级。
- 有一类行业知名人士不是稳定新闻源,也不一定每条都是硬信息,但他们的观点会被行业/市场二次传播。典型特征是:别人会因为“这是某个人的观点”而专门去看,例如 Peter Steinberger 这类强人格从业者。
- 在作者画像里使用 `行业名人/叙事源` 预设,默认不排除。
- 账号层可以给 S/A 档和较高洞察分,但单条内容仍要过实体、议题、新鲜度门控。
- 高价值命中:OpenAI/Anthropic/模型能力、AI coding、产品方向、关键公司叙事、会被社区发酵的观点。
- 低价值过滤:纯闲聊、回复串碎片、人格化玩笑、没有可转述 claim 的情绪表达。
- 作者画像字段应当是宽松路由提示,不是硬 taxonomy。不要把话题切得太细;例如 `Taiwan semi` 这类边界模糊的概念,应优先归到 `Asia supply chain` 或 `AI infra/semis` 这类宽域,再让 LLM 按单条内容判断是否命中。
- `scope_hints`: 作者大致在哪些宽域有发言权,例如 `AI models/products`、`AI infra/semis`、`Asia supply chain`、`company official`、`data/rankings`。
- `content_modes`: 常见内容模式,例如 `original insight`、`official update`、`data point`、`news/alert`、`rumor/leak`、`interview/context`、`paywall teaser`、`personal narrative`。
- `noise_hints`: 常见噪音,例如 `marketing`、`personal rant/jokes`、`non-AI/tech`、`duplicate/aggregation`、`stale explainer`。
- `ingest_hint`: 默认入库层,例如 `fact`、`watch`、`narrative`、`alert`、`ignore`。
- 这些字段只提供先验,不能直接决定单条内容是否入库。
- `paywall teaser` 不天然降权;如果标题/摘要本身包含观点、叙事、关键问题或市场关注点,应进入 `watch` 或 `narrative`。
- 官方号不天然高权重;marketing 材料要降权,但产品发布、模型能力、客户/合作、定价、路线图和指标应保留。
- 官方关键人物、行业名人和 builder 个人号需要区分人格化叙事和低信号发牢骚;前者可以进入 `narrative`,后者过滤。
- Selection Lab 应展示作者规则提示,但最终仍由人对单条内容标注“该不该选、为什么”。规则质量要从这些标注里反推。
PROJECT_MEMO.md;这些是可迭代判断,不是硬契约。成本 · LLM本地记账下限空闲
| 模型 | 调用 | 输入 | 输出 | ≈成本 |
|---|---|---|---|---|
| deepseek | 1,270 | 2,267,354 | 1,852,243 | $0.84 |
| gemini | 97 | 1,517,983 | 217,087 | $2.98 |
策展层教义、模块与残料盒正常
| 教义判词 | 13 条 |
|---|---|
| 刊件模块 | 1 · keydata_memory_pricing |
| 合并持证率 | 45/150 (30%) |
| 刊读原文覆盖 | 150/150 (100%) |
燃料 · 瓶颈标注与沉淀正常
| 快标 (质量权重燃料) | 8 |
|---|---|
| 沉淀 (你留下的判断) | 2 |
系统债待还的技术债与积压注意
- 90 commits 未推
- 微信2940条待原子化
- 休眠登记 5 项
TMTB Asia独立英文项目正常
| 工作区 | ✓ 已提交 |
|---|---|
| 最近提交 | 07-28 10:07|merge leftover write updated_at |
| 素材 / 样张 | 4 素材 · 4 html |
| 站点 | tmtb-asia.pages.dev · /drop |