渡口 · 稿件分发
Chrome插件负责浏览器侧(抓取、填充、文章库),本skill负责终端侧(md进出、任务下发)。两侧通过本地桥(127.0.0.1:8787)互通。
核心原则:所有命令由你执行,用户零终端操作。 桥服务由CLI自动拉起(探活失败就后台启动,日志 /tmp/dukou-bridge.log),永远不要让用户手动跑任何命令。用户只需要:Chrome开着、渡口插件加载着。
命令
CLI在本skill目录的 scripts/dukou.js(自包含零依赖,下文以 ~/.claude/skills/dukou 为例,按实际安装路径调整):
# 投稿:md → 插件文章库 → 自动打开平台编辑页并填充
node ~/.claude/skills/dukou/scripts/dukou.js send 文章.md --dest x --autofill
node ~/.claude/skills/dukou/scripts/dukou.js send 文章.md --dest bili --autofill
node ~/.claude/skills/dukou/scripts/dukou.js send 文章.md --dest editor --autofill # 公众号排版器
node ~/.claude/skills/dukou/scripts/dukou.js send 文章.md # 只入库
# 取稿:微信公众号文章 → 本地 <目录>/<标题>/<标题>.md + images/
node ~/.claude/skills/dukou/scripts/dukou.js fetch "https://mp.weixin.qq.com/s/xxx" --save-to ./素材
# 导出插件文章库(缺省最新一篇)
node ~/.claude/skills/dukou/scripts/dukou.js export --save-to ./素材
node ~/.claude/skills/dukou/scripts/dukou.js ping # 探活(顺带自动启动桥)
时效:插件每30秒轮询桥,CLI阻塞到任务完成(--wait 秒数可调,import默认90/fetch默认240)。告诉用户点一下Chrome工具栏的渡口图标可立即同步。
send 的 md 约定
- 首个
# 一级标题作为文章标题(不进正文);其余各级标题都渡成H2 - 图片
必须独占一行;支持 jpg/png/gif/webp;路径相对md所在目录 - 行内支持
**粗***斜*`code`[链接](url);分割线会被丢弃(X不支持) - 可选frontmatter:
title:author:cover:(头图路径) - X单图约5MB限制:插件填充时自动压缩超限图(先降质量后缩尺寸),无需预处理
- 图片用远程URL(http)时:X/B站只吃本地图,会跳过远程图;但
--dest editor排版器走原始markdown,远程图URL原样保留、预览直接显示——所以图全是ImgBB等远程链接的稿子,优先渡到 editor
平台差异
--dest x --autofill:自动打开 X Articles,用户需点一下 Write 新建草稿,之后自动填入标题/正文/图片/头图(头图弹裁剪框需用户点Apply确认)--dest bili --autofill:自动打开B站专栏编辑页,全自动填入--dest editor --autofill:自动打开公众号排版器(editor.huasheng.ai),把整篇raw markdown灌进左侧输入区,右侧实时预览。图片走markdown里的URL(远程图直接显示;本地图做不进来,让用户在排版器里重传)。填完用户自己点排版器的「复制到公众号」- 填充完成后发布/复制动作永远留给用户,不要尝试代替用户发布
- 插件文库里每篇都有「渡到X / B站 / 排版器」按钮,用户也可不经终端、直接在插件里把任意存稿渡往各平台
排错与引导安装
- CLI报「连不上渡口桥/自动启动失败」→ 看
/tmp/dukou-bridge.log - ping通但任务等待超时(插件一直没来取)→ 依次确认:
- Chrome是否开着?
- 渡口插件是否已安装加载?未安装时引导用户:clone https://github.com/alchaincyf/dukou ,打开
chrome://extensions→ 开发者模式 → 「加载已解压的扩展程序」→ 选仓库里的extension/目录。装好后队列里的任务会被自动取走,无需重发 - 让用户点一下渡口插件图标(立即同步)
- 改过
extension/代码后必须让用户重载插件并刷新目标页;旧页面点「填入」会提示刷新
版本自检(静默)
本节给 AI agent:每次使用本 skill 前,先做一个不联网的判断——读本 skill 目录(SKILL.md 所在目录)下的 .last-update-check 文件(内容为一行日期 YYYY-MM-DD)。文件存在且距今不足 30 天,跳过本节直接干活,不向用户提任何更新相关的话。
到期或文件不存在时,且仅在此时:
- 本目录不是 git 克隆(无
.git或无 origin)→ 写入今天日期后跳过本节 - 对比版本:
git -C <本目录> rev-parse HEAD与git -C <本目录> ls-remote origin HEAD - 无论结果如何,把今天日期写入
.last-update-check - 两者一致 → 什么都不说;确认落后 → 先完成用户当前任务,结束后附一句「本 skill 有新版本,可用
git -C <本目录> pull --ff-only更新」。是否更新由用户决定,不要主动执行更新