Daily auto-publish spore from SPORE-INBOX via canonical SPORE-PUBLISH-PIPELINE — pick high-quality entry → 4 hard gate → ship Threads + X → 復盤. Routine fires 10:00 daily; manual via "/twmd-spore-publish" or "發今天的孢子" or "跑 spore publish". TRIGGER when: routine twmd-spore-publish-daily fires / user says "跑 spore publish" / "發今天的孢子" / "從 SPORE-INBOX 選一篇 ship".
Before anything else:跑 /twmd-become write 完整走 BECOME_TAIWANMD.md Step 0-9。Write mode self-test 8-9 題全過才能進 Stage 1。
驗證 ACK 一行(必寫 memory file 頂部,沒寫視為 BECOME 未完成):
✅ BECOME ack: mode=write / 8 organ 最低=<即時 consciousness-snapshot.sh> / Q14 cross-session continuity=PASS不准用記憶中的舊器官分數,跑 bash scripts/tools/consciousness-snapshot.sh 取當前。
export SPORE_ROUTINE_MODE=1讀 SPORE-INBOX.md §Pending:
Requested: 日期 oldest first)→ 第三順位Entry 含「敏感度: 高」field + cron context(無 observer)→ 一律 defer to human:
<!-- routine defer 2026-MM-DD: 高敏感 REACTIVE 需 observer 親自 ship --> HTML comment(不 mutate entry 本體)+ continue
to 下一條 candidate + LESSONS-INBOX append「P0 高敏感 routine defer cycle vc=N」。/twmd-spore-publish 跑時:observer 在場才能 ship;先讀本條 rule + 由
observer 拍板,不准 routine context 的 logic 套到 manual 場景。python3 scripts/tools/article-health.py knowledge/<path>.md --json| Gate | 閾值 |
|---|---|
| prose-health | ≤ 3 AI 水印密度(v1.1 inversion 後是 ≤ 3,不是 ≥ 8.0;per SPORE-PUBLISH v1.0→v1.1 5/25) |
| word-count | ≥ 4500 CJK chars |
| footnote-density | ≥ B tier (A=20+ / B=10-19 / C=5-9 / D=<5) |
| media-richness | pass (≥ 2 image OR ≥ 1 iframe — INFO-only after v1.1 仍跑) |
| lastVerified | ≤ 90d fresh |
任一 fail → entry skip + 下一條(不 mutate INBOX)。 全 candidate fail → skip ship + LESSONS-INBOX append「intake gap」+ exit 0(不算失敗 routine)。
詳見 SPORE-PIPELINE.md Stage 3。SPORE_ROUTINE_MODE=1 auto-decision per v3.7。
Before drafting any prose: 強制 Read 完整 SPORE-WRITING.md(不 head / 不 grep / 不憑記憶)。落 ACK 一行進 memory:
✅ SPORE-WRITING ack: §朋友 tone prime + §模板速查表(6 模板) + §Wave 2 plugin gate + §三板斧 + §晶晶體禁用 全讀完。Family judged = <viral A/B/C/D | F-公開信 | E-串文>沒寫 ACK = Stage 3 未完成。不准用「我熟了」「上次跑過」「等價 prompt」這類藉口跳。
為什麼這條 gate 是 routine 不可省的閘門(2026-05-28 哲宇 callout「為什麼孢子失去『你知道嗎』voice」+ #97 美食「你知道嗎—」破折號 + #101 落日飛車「你知道嗎,」無 emoji + #103 周蕙「走進台灣 KTV」完全無 prefix 三條連續 drift 觸發 root cause audit):
textHasHook 抓 keyword("KTV")不抓 prefix("你知道嗎")— self-attest 自我矇眼寫完 spore body 落 docs/factory/spore-blueprints/{N}-{slug}.md 後強制跑:
python3 scripts/tools/article-health.py docs/factory/spore-blueprints/{N}-{slug}.md --check=spore-writingRule #14 v2 HARD — viral spore 第一行必須有友善 prefix 之一:
你知道嗎?{emoji} (最強推薦)你知道嗎,{...} (舊風格逗號變體仍允許)欸,{具體事件} / 欸你{...}身為台灣人 / 想像{一下} / 如果{你/台} / 當你/你們「『引語』」 直接引語開場場景代入 / 第二人稱化 / 日常感不算等效 prime — 必須字面 prefix。
F-公開信 / E-串文 / hook_tier: N/A exempt(plugin auto-detect via frontmatter)。
Plugin hard=1 → revise prose 加 prefix,重跑 plugin。不准 --no-verify 繞過。
routine spore-publish-daily 必須寫 docs/factory/spore-blueprints/{N}-{slug}.md blueprint file(含 fence-wrapped 完整 spore prose),不准只在 session memory inline body。觸發背景:周蕙 #103 inline 而非 blueprint → plugin Rule #14 根本沒跑 → silent voice drift through gate。
Blueprint frontmatter 必填:
spore_number: '#{Threads N} / #{X N+1}'
template: <A1 / A2 / B / C / D / E-thread / F-站方公開信>
hook_tier: <1a / 1b / N/A>template: F-... 或 hook_tier: N/A = publicletter family exempt(plugin auto-detect)。
🚨 Pitfall 6 hard rule(2026-05-28 instrument)— post-ship verify:
const before = document.querySelectorAll('[data-pressable-container]').length;
// click 發佈 + wait 3s
const after = document.querySelectorAll('[data-pressable-container]').length;
// after > before → ship success, exit loop
// after == before → genuine fail, ONE retry max
// after >> before+1 → duplicate, navigate /replies cleanupMax 1 retry per ship attempt。第二次失敗 → screenshot + LESSONS-INBOX append + escalate observer,不要 silent third retry。觸發背景:5/27 #101 落日飛車 3 次嘗試 + 5/28 #92 大宇雙劍 3 次 retry duplicate ship。詳見 SPORE-HARVEST-PIPELINE §Pitfall 6。
Threads vs X composer 差異:
\n — 單塊 prose OKShip 成功後每平台跑一次 python3 scripts/tools/spore-db.py add-spore --date YYYY-MM-DD --platform threads|x --slug 文章slug --url '<乾淨化URL>' --template '...' --highlight 'ship 一句話'(回傳新 id)→ 跑 python3 scripts/tools/sync-spore-links.py --apply 長 identity pointer。不寫 SPORE-LOG.md(已凍結,validate ERROR)、frontmatter 不放數字。完整敘事寫 blueprint 檔。
SPORE-PUBLISH-PIPELINE §5.2 4 種結構性問題 audit:
Self-review 4 題(必填 memory):
/twmd-finale chain → memory + commit + push main-direct(v2.0)。
memory 必含:BECOME ACK + Stage 1-5 outcome + self-review 4 題 + Handoff 三態 + Beat 5 反芻。
完整 SOP:SPORE-PUBLISH-PIPELINE.md
ARGUMENTS: (none — routine 自己讀 SPORE-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.