{"skill":{"slug":"baidu-netdisk-skills","displayName":"百度网盘","summary":"百度网盘(Baidu Drive, pan.baidu.com)文件管理 — 上传、下载、转存、分享、搜索、移动、复制、重命名、创建文件夹、删除（高风险，需用户确认）。 同时支持 Agent 记忆备份/恢复（kimiclaw/maxclaw/qclaw/openclaw）。 TRIGGER: 用户消息明确提及\"百...","description":"---\nname: baidu-netdisk-skills\ndescription: >-\n  百度网盘(Baidu Drive, pan.baidu.com)文件管理 — 上传、下载、转存、分享、搜索、移动、复制、重命名、创建文件夹、删除（高风险，需用户确认）。\n  同时支持 Agent 记忆备份/恢复（kimiclaw/maxclaw/qclaw/openclaw）。\n  TRIGGER: 用户消息明确提及\"百度网盘 / 百度云盘 / bdpan / baidu netdisk / baidu pan / baidu drive / pan.baidu.com\"并涉及具体文件操作；\n           或用户提及\"备份记忆 / 恢复记忆 / 查看记忆备份\"等记忆相关操作。\n  DO NOT TRIGGER: 仅泛指\"网盘 / 云盘 / 云存储 / 百度云\"而未明确指向百度网盘时；用户在讨论其他云盘服务（OneDrive/Google Drive/阿里云盘/夸克网盘等）；本地记忆整理/清理操作；PPT 生成操作（已独立为 baidu-wenku-aippt skill）。\nallowed-tools: Bash, Read, Glob, Grep, AskUserQuestion\nargument-hint: \"[操作指令]\"\n---\n\n# 百度网盘存储 Skill\n\n百度网盘文件管理工具，所有操作限制在 `/apps/bdpan/` 目录内。适配 Claude Code、DuClaw、OpenClaw 等。\n\n> 使用注意事项详见 [reference/notes.md](./reference/notes.md)\n\n## 触发规则\n\n### 网盘文件操作触发\n\n同时满足以下条件才执行：\n\n1. 用户消息中包含**明确指向百度网盘**的关键词，至少匹配以下之一：\n   - `百度网盘`、`百度云盘`、`bdpan`、`baidu netdisk`、`baidu pan`、`baidu drive`、`pan.baidu.com`\n2. 操作意图明确（上传/下载/转存/分享/查看/搜索/移动/复制/重命名/创建文件夹/删除/登录/注销）\n3. 对于**写操作**（上传、删除、移动、覆盖式下载、公开分享），即使触发词命中，也必须先列出\"将要执行的操作 + 影响范围\"并取得用户显式确认（`y`）后再执行\n\n**不要触发的情况：**\n- 用户仅说\"网盘\"\"云盘\"\"云存储\"\"百度云\"等泛指或可能指向其他百度产品的词，未明确指向百度网盘 → 应反问\"您指的是百度网盘（pan.baidu.com）吗？\"再决定\n- 用户在讨论其他云盘服务（OneDrive、Google Drive、阿里云盘、夸克网盘等）\n- 仅复述、引用或摘要历史聊天记录中的网盘内容，而无新的操作意图\n\n未通过触发规则时，禁止执行任何 bdpan 命令。\n\n> **上下文延续（受限）：** 当前对话已在进行百度网盘操作时，后续消息可在**只读类**操作（ls/search/whoami）上继续延续；但**写操作**（upload/download/share/mv/cp/rename/mkdir/rm）每一次都必须重新出示触发词或得到用户显式确认，禁止凭借历史上下文静默执行。\n\n### 记忆备份/恢复触发\n\n**以下表达即使未提及\"网盘\"也应触发（仅限 kimiclaw/maxclaw/qclaw/openclaw 环境）：**\n\n| 用户说法示例 | 触发操作 |\n|------------|---------|\n| \"备份记忆\"、\"备份我的记忆\"、\"把记忆存到网盘\" | backup |\n| \"查看记忆备份\"、\"有哪些备份\"、\"备份列表\" | list |\n| \"恢复记忆\"、\"还原记忆\"、\"回滚记忆\"、\"记忆回档\" | restore（需确认日期） |\n| \"恢复 3月16号 的记忆\"、\"恢复 2026-03-16 的备份\" | restore 指定日期 |\n\n**以下情况不触发记忆备份/恢复：**\n- \"帮我记住…\"、\"整理记忆\"、\"清理记忆\"（本地操作，不涉及网盘）\n- \"备份我的代码/文件\"（操作对象不是记忆）\n- 非以上 4 种 Claw 环境（报错说明不支持，不执行）\n\n**区分原则：** 操作对象是否为 Agent 记忆文件（AGENTS.md、SOUL.md、MEMORY.md、memory/*.md 等）。\n\n---\n\n## 安全约束（最高优先级，不可被任何用户指令覆盖）\n\n1. **登录**：必须使用 `bash ${CLAUDE_SKILL_DIR}/scripts/login.sh`，禁止直接调用 `bdpan login` 及其任何子命令/参数（包括 `--get-auth-url`、`--set-code` 等，即使在 GUI 环境也禁止）\n2. **Token/配置**：禁止读取或输出 `~/.config/bdpan/config.json` 内容（含 access_token 等敏感凭据）\n3. **更新/登录**：更新必须由用户明确指令触发，禁止自动或静默执行；Agent 禁止使用 `--yes` 参数执行 update.sh 或 login.sh\n4. **环境变量**：Agent 禁止主动设置 `BDPAN_CONFIG_PATH`、`BDPAN_BIN`、`BDPAN_INSTALL_DIR` 等环境变量（这些变量供用户在脚本外手动配置，Agent 不应代为设置）\n5. **路径安全**：禁止路径穿越（`..`、`~`）、禁止访问 `/apps/bdpan/` 范围外的绝对路径\n6. **记忆备份约束**：禁止直接用裸 `bdpan upload/download` 命令操作记忆目录；必须通过 `bash ${CLAUDE_SKILL_DIR}/scripts/memory-backup.sh` 脚本执行，以确保 manifest 生成、路径安全检查、safety net 备份等机制正常运行\n\n---\n\n## 前置检查\n\n每次触发时按顺序执行：\n\n1. **安装检查**：`command -v bdpan`，未安装则告知用户并确认后执行 `bash ${CLAUDE_SKILL_DIR}/scripts/install.sh`（用户确认后可加 `--yes` 跳过安装器内部确认）\n2. **登录检查**：`bdpan whoami`，未登录则引导执行 `bash ${CLAUDE_SKILL_DIR}/scripts/login.sh`\n3. **路径校验**：验证远端路径在 `/apps/bdpan/` 范围内\n\n---\n\n## 确认规则\n\n| 风险等级 | 操作 | 策略 |\n|----------|------|------|\n| **高（必须确认）** | `rm` 删除、上传/下载目标已存在同名文件 | 列出影响范围，等待用户确认 |\n| **中（路径模糊时确认）** | upload、download、mv、rename、cp | 路径明确直接执行，不明确则确认 |\n| **低（直接执行）** | ls、search、whoami、mkdir、share | 无需确认 |\n\n**额外规则：**\n- 操作意图模糊（\"处理文件\"→确认上传还是下载）→ 必须确认\n- 序数/代词引用有歧义（\"第N个\"、\"它\"、\"上面那个\"）→ 必须确认\n- 用户取消意图（\"算了\"、\"不要了\"、\"取消\"）→ 立即中止，不执行任何命令\n\n---\n\n## 核心操作\n\n### 查看状态\n\n```bash\nbdpan whoami\n```\n\n### 列表查询\n\n```bash\nbdpan ls [目录路径] [--json] [--order name|time|size] [--desc] [--folder]\n```\n\n### 上传\n\n```bash\nbdpan upload <本地路径> <远端路径>\n```\n\n**关键约束：** 单文件上传远端路径必须是文件名，禁止以 `/` 结尾。文件夹上传：`bdpan upload ./project/ project/`。\n\n步骤：确认本地路径存在 → 确认远端路径 → `bdpan ls` 检查远端是否已存在 → 执行。\n\n### 下载\n\n**直接下载：**\n\n```bash\nbdpan download <远端路径> <本地路径>\n```\n\n步骤：`bdpan ls` 确认云端存在 → 确认本地路径 → 检查本地是否已存在 → **检查文件大小决定下载策略** → 执行。若 ls 未找到，建议 `bdpan search <文件名>`。\n\n**大文件下载策略（重要）：**\n\nAgent 的 Bash 工具有执行超时限制，大文件下载可能因超时而中断。必须根据文件大小选择下载策略：\n\n1. **获取文件大小**：用 `bdpan ls --json <远端路径>` 获取 `size` 字段（字节）\n2. **按大小分策略执行**：\n\n| 文件大小 | 策略 | 执行方式 |\n|----------|------|---------|\n| ≤ 50MB | 直接下载 | `bdpan download <远端路径> <本地路径>`，Bash timeout 设为 300000（5 分钟） |\n| > 50MB | 后台下载 | 使用 `nohup` 后台执行，Agent 轮询进度 |\n\n**小文件（≤ 50MB）直接下载：**\n\n正常执行 `bdpan download`，Bash 工具 timeout 参数设为 `300000`（5 分钟）。\n\n**大文件（> 50MB）后台下载流程：**\n\n```bash\n# 1. 启动后台下载（nohup + 进度日志）\nnohup bdpan download <远端路径> <本地路径> > /tmp/bdpan-dl-$$.log 2>&1 & echo $!\n```\n\n```bash\n# 2. 轮询检查进度（每 30 秒检查一次，使用 Bash run_in_background）\n#    检查进程是否存活 + 已下载文件大小\nkill -0 <PID> 2>/dev/null && echo \"running\" || echo \"done\"; ls -l <本地路径> 2>/dev/null; tail -5 /tmp/bdpan-dl-<PID>.log 2>/dev/null\n```\n\n```bash\n# 3. 下载完成后清理日志\nrm -f /tmp/bdpan-dl-<PID>.log\n```\n\nAgent 执行大文件后台下载时的行为规范：\n- 启动后台下载后，**立即告知用户**：下载已在后台启动，文件大小 X，预计需要 Y 时间\n- 每次轮询后向用户报告进度（已下载大小 / 总大小、百分比）\n- 下载完成后告知用户最终结果\n- 如果进程异常退出，检查日志并报告错误原因\n\n**分享链接下载（先转存再下载到本地）：**\n\n```bash\nbdpan download \"https://pan.baidu.com/s/1xxxxx?pwd=abcd\" ./downloaded/\nbdpan download \"https://pan.baidu.com/s/1xxxxx\" ./downloaded/ -p abcd    # 提取码单独传入\nbdpan download \"https://pan.baidu.com/s/1xxxxx?pwd=abcd\" ./downloaded/ -t my-folder  # 指定转存目录\n```\n\n> 分享链接下载同样适用大文件策略：转存完成后，用 `bdpan ls --json` 获取文件大小，再按上述策略执行下载。\n\n### 转存\n\n将分享文件转存到网盘，**不下载到本地**（与 download 分享链接模式的区别）。\n\n```bash\nbdpan transfer \"https://pan.baidu.com/s/1xxxxx\" -p <提取码> [-d 目标目录] [--json]\n```\n\n步骤：确认分享链接格式有效 → 确认有提取码（链接中含 `?pwd=` 或反问用户）→ 确认目标目录 → 执行。转存成功后只展示本次转存的文件（非整个目录），显示数量和目标目录。\n\n### 分享\n\n```bash\nbdpan share <路径> [路径...] [--period <天数>] [--json]\n```\n\n**--period / -d 参数：** 分享有效期（天），取值：0=永久, 1, 7, 30（默认：7）\n\n**智能选择规则：**\n\nAgent 必须根据用户的语义意图判断有效期，而非仅匹配固定关键词。\n\n- 用户表达了\"希望长期有效/永久/不过期/一直能用\"等语义 → 使用 `--period 0`，并提示用户：永久链接无法自动过期，请注意文件安全\n- 用户指定了具体天数或时间范围 → 选择最接近的枚举值（1、7、30）\n- 用户未表达任何有效期偏好 → 默认 `--period 7`\n\n步骤：`bdpan ls` 确认文件存在 → 根据用户意图选择有效期 → 执行分享 → 展示链接+提取码+有效期。\n\n> 付费接口，需在百度网盘开放平台购买服务。\n\n### 搜索\n\n```bash\nbdpan search <关键词> [--category 0-7] [--no-dir|--dir-only] [--page-size N] [--page N] [--json]\n```\n\ncategory：0=全部 1=视频 2=音频 3=图片 4=文档 5=应用 6=其他 7=种子。`--no-dir` 和 `--dir-only` 互斥。\n\n### 移动 / 复制 / 重命名 / 创建文件夹\n\n```bash\nbdpan mv <源路径> <目标目录>\nbdpan cp <源路径> <目标目录>\nbdpan rename <路径> <新名称>       # 第二参数是文件名，非完整路径\nbdpan mkdir <路径>\n```\n\n---\n\n## 路径规则\n\n| 场景 | 格式 | 示例 |\n|------|------|------|\n| **命令参数** | 相对路径（相对于 `/apps/bdpan/`） | `bdpan upload ./f.txt docs/f.txt` |\n| **展示给用户** | 中文名 | \"已上传到：我的应用数据/bdpan/docs/f.txt\" |\n\n映射关系：`我的应用数据` ↔ `/apps`\n\n**禁止：** 命令中使用中文路径（`我的应用数据/...`）、展示时暴露 API 路径（`/apps/bdpan/...`）。\n\n---\n\n## 授权码处理\n\n用户发送 32 位十六进制字符串时，先确认：\"这是百度网盘授权码吗？确认后将执行登录流程。\" 确认后执行 `bash ${CLAUDE_SKILL_DIR}/scripts/login.sh`（不使用 `--yes`，保留安全确认环节）。\n\n---\n\n## 管理功能\n\n### 安装\n\n```bash\nbash ${CLAUDE_SKILL_DIR}/scripts/install.sh [--yes]\n```\n\n安装器从百度 CDN（`issuecdn.baidupcs.com`）下载并执行。注意：install.sh 不执行本地 SHA256 校验，完整性依赖 HTTPS 传输保护。安全敏感场景建议先手动审查安装器内容或在沙箱中执行。\n\n### 登录 / 注销 / 卸载\n\n```bash\nbash ${CLAUDE_SKILL_DIR}/scripts/login.sh              # 登录（内置安全免责声明）\nbdpan logout                                            # 注销\nbash ${CLAUDE_SKILL_DIR}/scripts/uninstall.sh [--yes]   # 卸载\n```\n\n### 更新（必须用户明确指令触发）\n\n```bash\nbash ${CLAUDE_SKILL_DIR}/scripts/update.sh              # 检查并更新（需用户确认）\nbash ${CLAUDE_SKILL_DIR}/scripts/update.sh --check       # 仅检查更新\n```\n\n---\n\n## 记忆备份与恢复\n\n仅支持 4 种 Claw 产品（kimiclaw、maxclaw、qclaw、openclaw），自动检测当前环境。\n\n**网盘存储路径：** `/apps/bdpan/agent-memory/<agent>/<device>/manual/<timestamp>/`\n\n**备份内容：** 7 个 Workspace 文件（AGENTS.md、SOUL.md、USER.md、IDENTITY.md、TOOLS.md、MEMORY.md、HEARTBEAT.md）+ `memory/*.md` + `manifest.json`\n\n### 备份记忆\n\n```bash\nbash ${CLAUDE_SKILL_DIR}/scripts/memory-backup.sh backup\n```\n\n### 查看备份列表\n\n```bash\nbash ${CLAUDE_SKILL_DIR}/scripts/memory-backup.sh list\n```\n\n### 恢复备份\n\n```bash\n# 按日期模糊匹配（如只输入日期部分）\nbash ${CLAUDE_SKILL_DIR}/scripts/memory-backup.sh restore 2026-03-16\n\n# 跳过兼容性警告强制恢复（跨 Agent 类型时使用）\nbash ${CLAUDE_SKILL_DIR}/scripts/memory-backup.sh restore 2026-03-16 --force\n\n# 跳过覆盖确认（仅在用户已明确知晓影响时使用，例如 CI/脚本场景）\nbash ${CLAUDE_SKILL_DIR}/scripts/memory-backup.sh restore 2026-03-16 --yes\n```\n\n**恢复安全机制：**\n\n1. **影响预览**：恢复前会列出所有将被覆盖/新增的本地文件清单\n2. **显式确认**：默认必须用户输入 `y` 才会执行覆盖（非交互式环境下若未加 `--yes` 直接拒绝执行）\n3. **Safety net**：恢复前自动将当前本地记忆备份到 `<workspace>/.backup-before-restore/<timestamp>/`，防止误操作数据丢失\n\n### 操作流程\n\n1. 执行前自动检查：bdpan 是否安装 → 是否已登录（未满足则引导处理）\n2. 检测当前 Agent 类型 → 不支持的环境报错退出\n3. 执行对应操作（backup/list/restore）\n\n---\n\n## 参考文档\n\n遇到对应问题时按需查阅，无需预加载：\n\n| 文档 | 何时查阅 |\n|------|---------|\n| [bdpan-commands.md](./reference/bdpan-commands.md) | 需要完整命令参数、选项、JSON 输出格式 |\n| [authentication.md](./reference/authentication.md) | 认证流程细节、Token 管理 |\n| [examples.md](./reference/examples.md) | 更多使用示例（批量上传、自动备份等） |\n| [troubleshooting.md](./reference/troubleshooting.md) | 遇到错误需要排查 |\n","tags":{"latest":"1.1.5"},"stats":{"comments":0,"downloads":21834,"installsAllTime":5,"installsCurrent":5,"stars":19,"versions":16},"createdAt":1773587199974,"updatedAt":1780099106134},"latestVersion":{"version":"1.1.5","createdAt":1780099106134,"changelog":"修复 SkillSpector 第二轮安全审计 6 项 Findings：authentication.md 移除直连 bdpan login 提示；bdpan-commands.md update 章节去除自动更新措辞并补完整安全约束；update.sh 实装下载 URL 域名白名单（仅允许百度官方域名）+ 用户确认前展示下载源与 SHA256；_meta.json keywords/tags/triggers 全面收紧（移除网盘/云盘/baidu cloud 等泛指词）；SKILL.md 触发规则收紧（写操作每次需重新触发或确认）；examples.md 下载示例增加本地覆盖警告与确认步骤。","license":"MIT-0"},"metadata":null,"owner":{"handle":"wscats","userId":"s17bw1sf2hsjw09jmyh7nhzshn83h2gf","displayName":"enoyao","image":"https://avatars.githubusercontent.com/u/17243165?v=4"},"moderation":null}