Daily spore candidate picking via canonical SPORE-PICK-PIPELINE — propose 3 candidates to SPORE-INBOX §Pending. Routine fires 08:00 daily; manual via "/twmd-spore-pick" or "跑 spore pick" or "補 SPORE-INBOX". TRIGGER when: routine twmd-spore-pick-daily fires / user says "跑 spore pick" / "幫我選幾篇可以發孢子的文章" / "補 SPORE-INBOX".
Before anything else:跑 /twmd-become write 完整走 BECOME_TAIWANMD.md Step 0-9。Write mode self-test 8-9 題全過才能進 Stage 1。
驗證 ACK 一行(必寫 memory file 頂部):
✅ BECOME ack: mode=write / 8 organ 最低=<即時 consciousness-snapshot.sh> / Q14 cross-session continuity=PASSgit pull origin main| Source | 用途 |
|---|---|
public/api/dashboard-articles.json | article pool (~500-700 non-about wc>2000) |
public/api/dashboard-analytics.json §searchConsole7d | SC opportunities (pos>10 imp>100) |
public/api/dashboard-spores.json | 最近 14d 排除 list |
docs/factory/SPORE-INBOX.md §Pending | 現有 pending 排除 list |
docs/semiont/ARTICLE-DONE-LOG.md 最近 14d | 趁熱 candidate pool |
docs/semiont/ARTICLE-INBOX.md §P0/P1 | EVERGREEN-TOPIC candidate |
每 source 在 memory file 標 line count cite(HG2)。
對 article pool 每篇算 7 dim:
| Dim | 範圍 | 觸發條件 |
|---|---|---|
| D1 趁熱 | 0-30 | ≤7d=30, ≤14d=15, ≤30d=5 |
| D2 SC opportunity | 0-25 | imp ≥ 500 + pos > 10 → +25, imp ≥ 100 → +15 |
| D3 News sense | 0-20 | article.slug ∈ this-week news-lens topics → +20 |
| D4 多語 fanout | 0-15 | category ∈ {People/Food/Music/Sports/History} + < 3 translations → +15, else +8 |
| D5 冷門高品質 | 0-10 | v2 widen: 80/80/30d=+10, 70/70/60d=+7, 70/-/90d=+5 |
| D6 Hook variety | -10-0 | recent 3 spore hook 同類 → -10 |
| D7 敏感度 | -20-0 | high-sensitivity keyword 命中非 REACTIVE → -20 |
score = d1 + d2 + d3 + d4 + d5 + d6 + d7
non_zero_dims = sum(1 for d in [d1, d2, d3, d4, d5] if d > 0)每 candidate 4 hook anchor + ≥ 2 hook types + 必驗事實 ≥ 10 條 + Source-Mode 標記 + Notes 欄位 score 拆解 transparency。
完整 schema:SPORE-PICK-PIPELINE.md §Stage 3。
| # | Gate | Stage |
|---|---|---|
| HG1 | BECOME write mode 完成 | 0 |
| HG2 | 6 source 全讀完(line count cite) | 1 |
| HG3 | 每 candidate 7 dim 都算分(Notes transparency) | 2 |
| HG4 | 每 candidate ≥ 2 hook anchor + ≥ 2 hook types | 3 |
| HG5 | 0 candidate 在 14d 內發過孢子(spore-db.py last-spore --article) | 4 |
| HG6 | 0 candidate 跟 SPORE-INBOX 現有 pending 重複 | 4 |
| HG7 | 至少 2 個不同 Source-Mode | 4 |
| HG8 | 至少 1 個來自 ARTICLE-DONE-LOG 最近 7d | 4 |
| HG9 | 不碰高敏感(兩岸/228/政治)除非 REACTIVE | 4 |
| HG10 (v2) | 每 candidate 至少 2 個非零 dim 或 score ≥ 35(D1 單軸不算 valid) | 2 |
HG10 fail handling(鐵律 2026-05-28 v2):candidate 不能 propose,寧可 < 3 candidates 也不用單軸湊數。Pool 太稀 → 寫 LESSONS-INBOX entry + 明確 emit「< 3 viable, observer review」(不假裝 routine 健康)。
觸發背景:5/28 spore-pick audit 揭露三 candidate 全 D1 單軸(艋舺 30/0/0/0/0/0/0 / 台灣 BIM 30/0/0/0/0/0/0 / 媒體總史 0/0/0/8/0/0/0)→ 7-dim 框架實質退化成「最舊 FIFO」proxy。
Append 3 entries 到 SPORE-INBOX.md §Pending(保留 §已發歷史 不動,append-only 鐵律遵守)。
routine source default P2。score ≥ 60 / news-lens 標 / REACTIVE 才升 P0/P1。
commit + push origin main(v2.0 main-direct)。
/twmd-finale chain → memory file 必含:BECOME ACK + Stage 1-4 outcome + 10 HG 狀態表 + Handoff 三態 + Beat 5 反芻。
完整 SOP:SPORE-PICK-PIPELINE.md
ARGUMENTS: (none — pipeline 自己讀 dashboard + INBOX state)
4d66426
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.