用途:指导为尚未支持的平台(如 Blogger、Ghost、Tumblr)构建内容提取适配器,接入现有提取管线,输出可导入的内容。
开工前:先检查 src/adapters/ 是否已有该平台适配器,有则无需本技能;向用户索取目标平台的真实站点 URL,用于逆向分析。
阶段一 侦察:确定平台识别方式(域名特征、响应头、HTML 标记、CNAME),把信号加到 src/lib/extraction/detect-platform.ts;确定内容发现方式(sitemap.xml、导航抓取 extractNavLinks()、平台公开 API、JSON-LD 等结构化数据);确定内容提取路径,优先 API,其次解析服务端 HTML,JavaScript 渲染时用 Playwright(launchBrowser())。复杂平台可用 liberate_map_apis(需以 --remote-debugging-port=9222 启动 Chrome 并登录)自动发现 API 端点、鉴权头与响应样例,也可用 liberate_probe 检查 window 全局、localStorage、Cookie 等信息,并记录发现结果。
阶段二 构建适配器:适配器是目录 src/adapters/<platform>/,index.ts 仅作装配,逻辑放在同级文件(如 discover.ts、extract.ts、types.ts、content.ts 等),可参考 webflow 与 shopify。需实现 PlatformAdapter:id、detect(url)、discover(url, opts)、extract(inventory, wxr, opts, context),可选 probe、capture、blocks。extract 内用 runExtractionLoop() 驱动 extractPage,返回 ExtractedPage;可复用 shared.ts 的 extractMeta、extractTitle、extractHeading、extractNavLinks 等。若平台有电商,可用通用 JSON-LD Product 检测,或提供自定义 extractProduct 返回 WooProduct;变体商品生成父行加带 parentSku 的子行;CSV 用 WooProductCsvBuilder 的 openStream/closeStream。
阶段三 注册:在 src/mcp-server.ts、src/ui/discover.tsx 与可选的 inspect.tsx 中按字母序引入。
阶段四 测试:在 test/fixtures/ 建样例(去除隐私信息),在 test/adapters/<platform>.test.ts 测检测、页面提取、媒体 URL、质量评分与商品提取,并用 npx tsx src/cli.ts <site-url> --dry-run --verbose 对真实站点验证。
阶段五 文档:更新 README.md、DISCOVERIES.md,必要时更新 AGENTS.md。
限制:需真实站点做逆向;平台 API 会变化,需记录逆向的版本与日期;收费、价格等信息资料未提供。