-
防重複:grep "| <slug> |" docs/philip/syndication-log.md(完整欄位格式,避免前綴重疊誤命中;檔案不存在視為無紀錄)。## 方格子(vocus) 段下已有該 slug → 停,回報既有 vocus URL,結束。無紀錄 → 接 Step 2。
-
跑 prep script(repo root):node .claude/skills/medium-syndicate/scripts/medium-prep.mjs <slug>,讀 JSON 輸出(title / description / tags / canonicalURL / outDir / risks)。outDir 在 /tmp,隔夜可能被清,Step 6 要用時不在就重跑本步。接 Step 3。
-
原站上線確認:對 prep 輸出的 canonicalURL 跑 curl -sI 確認 200,再 curl -s | grep 'rel="canonical"' 確認自我 canonical 存在。任一失敗 → 停(文章沒上線,先走發布流程),結束。通過 → 接 Step 4。
-
風險處理(開瀏覽器前在對話裡先做完):risks.tableLines > 0 或 risks.codeBlocks 非空 → vocus 編輯器對表格/程式碼的保真度尚未實證(見踩過的坑),先列出哪幾塊、預告 Step 6 貼上後要逐塊目視驗證;表格比照 medium 先改寫成條列較保險。risks.externalLinks 僅供參考(貼渲染版自動保留連結)。處理完 → 接 Step 5。
-
開瀏覽器 + 進編輯器:tabs_context_mcp 看現況 → 新分頁開 https://vocus.cc/。
- 未登入 → 停,請使用者登入後說「好了」再從本步重來(不代登入)。
- 已登入 → 點右上「創作」。若跳「請完成手機驗證」彈窗 → 停,請使用者自己完成手機簡訊驗證(帳號級一次性前置,驗證碼只進使用者手機、輸入它是使用者的帳號安全動作,不代填);驗證後通常會落到
vocus.cc/creatordesk。
- 在 creatordesk 選「文章」(完整編輯功能;不要選「貼文」)→ 自動建草稿、URL 變
vocus.cc/new-editor/{id}、編輯器出現 → 接 Step 6。
-
內容注入(代發):
- 跑
node .claude/skills/medium-syndicate/scripts/medium-paste-html.mjs <slug> 產 <outDir>/paste.html(抓已發布頁、剝 header/footer/H1、程式碼與表格換 ⟦CODE-BLOCK-N⟧ / ⟦TABLE-N⟧ 佔位符)。
- 標題:點標題區(placeholder「請輸入文章名稱」)→
type 貼上 prep 的 title(vocus 標題用 type 實測穩,不像 Medium 會吞英文段;打完看分頁標題已更新即確認)。
- 內文:
bash .claude/skills/medium-syndicate/scripts/clipboard-html.sh <outDir>/paste.html(輸出含 «class HTML»)→ 點內文區(placeholder「開始創作你的精彩內容」)→ cmd+v。
- JS 驗證:
document.querySelectorAll('a').length 對上 paste.html 外連數、標題層級在、無殘留 ⟦⟧ 佔位符。明顯缺段重貼一次。完成 → 接 Step 7。
-
佔位符重建(若 Step 4 有 code/table):逐塊比照 references/vocus-mechanics.md 的編輯器工具列處理;無 code/table 直接接 Step 8。
-
進發佈設定:點右上「準備發佈」(已發佈過的文章顯示為「調整發佈設定」)→ 三步精靈:
- 基本設定:標題已帶入;分類必填,AI/工具/技術文選「軟體開發」(或「科技」),完整分類清單見 references;摘要系統自動擷取(150 字內,可留 auto)。點「下一步」。
- 進階設定:往下找「啟用整合網址 Beta」→ 勾選 → 下方 URL 欄填 prep 的
canonicalURL(future-proof,見上「為什麼」段,不是硬閘)。點「下一步」。
- 權限和狀態:內容收費=「免費公開」(預設);發佈狀態=選「公開發佈」。接 Step 9。
-
發佈(代發):點「確認發佈」(使用者已授權代發含按發佈,2026-06-13)→ 出現「發佈成功」→ 點「前往內容頁」→ tabs_context_mcp 取公開 URL(形如 vocus.cc/article/{id})。接 Step 10。
-
發佈後驗證:curl -s "<vocus URL>" | grep -o '<link[^>]*rel="canonical"[^>]*>'(vocus 吃 curl,不像 Medium 會 403)。預期 canonical=vocus 自己(FC-065 已知,不是新失敗、不需排查);只確認文章公開可取、內容完整即可。接 Step 11。
-
轉發紀錄落檔(副作用步驟,不可略過):append 到 docs/philip/syndication-log.md 的 ## 方格子(vocus) 段(段不存在先建):
- YYYY-MM-DD | <slug> | <vocus URL> | canonical=vocus-self(已知 Beta 不生效,全文照轉)
寫完 grep 回讀確認該行存在 → 給使用者驗收回報:vocus 文章 URL、內容保真度(外連/標題/佔位符)、canonical 現況。流程結束。