visuddhinanda c46cf64000 refactor: 改造成 Claude Code 插件,准备 marketplace 分发 1 неделя назад
..
.claude-plugin c46cf64000 refactor: 改造成 Claude Code 插件,准备 marketplace 分发 1 неделя назад
skills c46cf64000 refactor: 改造成 Claude Code 插件,准备 marketplace 分发 1 неделя назад
README.md c46cf64000 refactor: 改造成 Claude Code 插件,准备 marketplace 分发 1 неделя назад
install.sh c46cf64000 refactor: 改造成 Claude Code 插件,准备 marketplace 分发 1 неделя назад

README.md

wikipali-write

一个 Claude Code 插件:让 Claude 以 AI 模型身份把句子写入 WikiPali 句子库。

写入的句子 editor_uid 记为 AI 模型的 uid 而不是操作者本人,署名与审计因此是准确的——谁翻的就是谁翻的。

安装

/plugin marketplace add visuddhinanda/wikipali-plugins
/plugin install wikipali-write@wikipali

桌面版在 Code 标签页里点 +PluginsAdd plugin 也可以装。

不走 marketplace 的话,克隆本仓库后跑 plugins/wikipali-write/install.sh --user

装之前请知道它会做什么

插件能在你的机器上执行代码,装之前你应当知道这一个具体会干什么:

  • 读写 ~/.wikipali/credentials.json(权限 0600),里面存你的 WikiPali 登录 token、AI 模型身份 token 和 channel access token;
  • 往 wikipali.org 写数据。写入是覆盖式的:相同位置(book / paragraph / word_start / word_end / channel)的已有句子会被替换。插件在每次写入前会回显目标并要求确认;
  • 只用 Python 标准库,不装任何依赖,不建虚拟环境。

不会接触你的密码:登录由 wp_login.py 完成,密码经 getpass 读入内存,不落盘、不进日志、不进对话。这个脚本必须由你本人在真正的终端里执行,Claude 不代跑。

用法

装好后直接对 Claude 说「把这些译文写进 WikiPali 的某某 channel」即可,它会自己走完流程。手工调用:

python3 <插件目录>/skills/write/scripts/wp.py whoami        # 看当前凭据状态
python3 <插件目录>/skills/write/scripts/wp_login.py         # 登录(自己跑)
python3 <插件目录>/skills/write/scripts/wp.py ensure-model --name <模型标识>
python3 <插件目录>/skills/write/scripts/wp.py channels
python3 <插件目录>/skills/write/scripts/wp.py write sents.json --channel <uid> --dry-run

句子文件的形状:

{
  "channel_uid": "<channel uid>",
  "sentences": [
    { "book_id": 1, "paragraph": 10, "word_start": 0, "word_end": 12,
      "content": "译文", "content_type": "markdown" }
  ]
}

站点

线上四个地址(www / next × .org / .cc)共享同一个数据库和密钥,凭据通用,可随时切换:

python3 .../wp.py endpoint          # 列出并标出当前
python3 .../wp.py endpoint next     # 改默认
python3 .../wp.py --api next ...    # 只影响这一次调用

www 是稳定版、next 是最新版代码,不是不同的数据环境。较新的端点在稳定版上返回 404,意思是「该站点代码版本还没到」。

权限模型

三种 token,职责不混:

Token 代表谁 有效期
用户 token 人类操作者 365 天
模型 token AI 模型身份,写句子时的 Authorization 30 天,可撤销
access token 被委托的 channel 编辑权,写句子时的 body 字段 7 天

模型自身不是任何 channel 的 owner,它的全部写权限来自你签发的 access token,且受 book 范围约束——你没有编辑权的 channel,签发阶段就会失败。凭据泄漏时用 wp.py revoke 作废该模型已签出的全部 token。

开发

本插件在 visuddhinanda/mintplugins/wikipali-write/ 下开发,与被调用的 Laravel API(api-v13/)同仓演进——API 契约一改,插件在同一个提交里跟上。设计文档在 docs/wikipali-write-skill-design.md

端点细节、返回形状与各处陷阱见 skills/write/references/api.md

License

MIT