PROMPT.md
3.97 KB
小红书 Skills 开发任务
目标
基于 xiaohongshu-mcp Go 源码,从零重写 Python CDP 引擎,为 OpenClaw 生态构建完整的小红书自动化 Skills。
参考资料
-
xiaohongshu-mcp Go 源码:
/Users/zy/src/zy/xiaohongshu-mcp/— 10k stars,13 个 MCP 工具 -
xiaohongshu-mcp 数据结构:
/Users/zy/src/zy/xiaohongshu-mcp/xiaohongshu/types.go -
xiaohongshu-mcp 工具定义:
/Users/zy/src/zy/xiaohongshu-mcp/mcp_server.go
架构
模块结构
scripts/
├── xhs/ # 核心 XHS 自动化包
│ ├── cdp.py # CDP WebSocket 客户端
│ ├── stealth.py # 反检测 JS 注入 + Chrome 启动参数
│ ├── cookies.py # Cookie 文件持久化
│ ├── types.py # 数据类型(dataclass)
│ ├── errors.py # 异常体系
│ ├── selectors.py # CSS 选择器常量
│ ├── urls.py # URL 常量
│ ├── human.py # 人类行为模拟
│ ├── login.py # 登录
│ ├── feeds.py # 首页 Feed
│ ├── search.py # 搜索 + 筛选
│ ├── feed_detail.py # 笔记详情 + 评论加载
│ ├── user_profile.py # 用户主页
│ ├── comment.py # 评论、回复
│ ├── like_favorite.py # 点赞、收藏
│ ├── publish.py # 图文发布
│ └── publish_video.py # 视频发布
├── cli.py # 统一 CLI 入口(13 个子命令)
├── chrome_launcher.py # Chrome 进程管理
├── account_manager.py # 多账号管理
├── image_downloader.py # 媒体下载(SHA256 缓存)
├── title_utils.py # UTF-16 标题长度计算
├── run_lock.py # 单实例锁
└── publish_pipeline.py # 发布编排器
CLI 接口(对应 Go 的 13 个 MCP 工具)
python scripts/cli.py check-login
python scripts/cli.py login
python scripts/cli.py delete-cookies
python scripts/cli.py list-feeds
python scripts/cli.py search-feeds --keyword "关键词" [--sort-by --note-type ...]
python scripts/cli.py get-feed-detail --feed-id ID --xsec-token TOKEN [--load-all-comments]
python scripts/cli.py user-profile --user-id ID --xsec-token TOKEN
python scripts/cli.py post-comment --feed-id ID --xsec-token TOKEN --content "内容"
python scripts/cli.py reply-comment --feed-id ID --xsec-token TOKEN --content "内容" [--comment-id | --user-id]
python scripts/cli.py like-feed --feed-id ID --xsec-token TOKEN [--unlike]
python scripts/cli.py favorite-feed --feed-id ID --xsec-token TOKEN [--unfavorite]
python scripts/cli.py publish --title-file T --content-file C --images P1 P2 [--tags --schedule-at --visibility]
python scripts/cli.py publish-video --title-file T --content-file C --video P [--tags --schedule-at]
全局选项:--host, --port, --account
输出:JSON(ensure_ascii=False)
退出码:0=成功,1=未登录,2=错误
代码规范要求
- Python 代码必须通过
ruff check和ruff format - 完整的 type hints(PEP 484),使用
str | None而非Optional[str] - 公共函数和类必须有 docstring
- 行长度上限 100 字符
- 使用
from __future__ import annotations启用延迟注解 - 异常类统一继承自
XHSError - CLI 使用 argparse,exit code: 0=成功,1=未登录,2=错误
- JSON 输出使用
ensure_ascii=False保留中文
完成标志
当以下条件全部满足时,输出完成标志:
-
xhs/包 17 个模块已全部创建 -
cli.py13 个子命令已实现 - 5 个支撑脚本已重写
- 5 个
skills/*/SKILL.md已更新 - 根目录
SKILL.md、CLAUDE.md、README.md已更新 -
uv run ruff check .无错误 -
uv run ruff format --check .无差异
ALL SKILLS COMPLETE