用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/RonShih/social-media-agent --skill fetch-reference命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
基于 SOC 职业分类
正在显示 SKILL.md
| name | fetch-reference |
| description | 取一個外部網址的主文內容(標題 / 正文 / 重點)給 draft-* skill 參考。內建多層 fallback 對抗反爬。 |
共通規則見
CLAUDE.md。本 skill 專責「把網址變成可用文字」,不負責起草貼文。
url:要參考的網址(單一)purpose:caller 用途說明(讓 LLM 摘要時知道要保留什麼,例:「要做 IG 發文,請保留產品賣點與圖片描述」){
"url": "...",
"title": "...",
"main_text": "正文純文字(已去廣告 / nav / footer)",
"summary": "依 purpose 摘要的 3-8 句重點",
"key_points": ["...", "..."],
"images": ["https://...absolute-url..."],
"fetched_via": "webfetch | curl | playwright",
"fetched_at": "<ISO timestamp>"
}
失敗:{ "error": "<原因>", "tried": ["webfetch", "curl", "playwright"] }
WebFetchWebFetch(url, prompt="抽出 title / main text / image URLs,回 JSON")main_text < 100 字(多半是被擋)curl 帶真實瀏覽器 header失敗才跑這層。用 Bash:
curl -sL --max-time 30 \
-A "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36" \
-H "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" \
-H "Accept-Language: zh-TW,zh;q=0.9,en;q=0.8" \
-H "Accept-Encoding: gzip, deflate, br" \
-H "Sec-Fetch-Dest: document" \
-H "Sec-Fetch-Mode: navigate" \
-H "Sec-Fetch-Site: none" \
-H "Upgrade-Insecure-Requests: 1" \
--compressed \
"$URL" -o /tmp/fetch-ref-$$.html
Read /tmp/fetch-ref-$$.html 把 HTML 拿進來(截最前 200KB 即可)<title>、<meta property="og:*">、<article> / <main> / 最大 <div> 文字rm /tmp/fetch-ref-$$.html仍失敗才用。這層會開瀏覽器、慢、必須收尾:
mcp__playwright__browser_navigate → urlmcp__playwright__browser_wait_for({ time: 2 }) 讓 JS 渲染mcp__playwright__browser_snapshot 拿頁面結構browser_evaluate 跑:
() => {
const a = document.querySelector('article, main, [role=main]') || document.body;
return {
title: document.title,
text: a.innerText.slice(0, 20000),
images: [...document.querySelectorAll('img')].map(i => i.src).filter(Boolean).slice(0, 20)
};
}
mcp__playwright__browser_close(與本檔 caller 約定 — 收尾義務在這個 skill)拿到 main_text 後,依 purpose 摘要:
key_pointssummaryimages 過濾掉明顯的 logo / icon(<100x100、檔名含 logo/icon/avatar),只保留與內容相關的{ "error": "...", "tried": [...] },不要編造內容{ "error": "paywall or login required", "tried": [...] },不要硬塞 metadata 當主文browser_closecurl 卻沒帶 UA + Accept-Language(會被一律擋掉)