[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71F5M874YA5YD9893SHFC6Y":3,"skill-same:01M71F5M874YA5YD9893SHFC6Y":196},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":16,"sourceHtmlUrl":17,"categories":18,"keywords":27,"publishedAt":48,"linkOnly":49,"markdownContent":50,"markdownBody":51,"frontMatter":52,"refName":53,"commitSha":54,"skillDirectory":5,"forksCount":14,"repositoryHtmlUrl":55,"repositoryHomepageUrl":6,"ownerHtmlUrl":56,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":57,"install":58,"resources":71},"01M71F5M874YA5YD9893SHFC6Y","paper-download",null,"获取、复用或导入论文 PDF 到 Zotero，先查已有条目、附件和任务本地资料，只补请求的缺项；归档保留已有阅读内容与外部新增附件，超时先核实原操作。Use when 用户给出题名、DOI、论文 URL、作者主页、论文列表、本地 PDF 或 paper-search 结果，要求下载、保存到 Zotero、整理已有论文或继续机构授权下载。研究问题检索与引用元数据核验用 paper-search；原文技术核对用 paper-review。联网由 web-access 路由；Windows 版机构模块通过 web-access HTTP Broker 复用当前 Edge 会话，负责出版物核验，不自行执行浏览器登录或验证码。","SanAntonio021\u002Fagents-skills","SanAntonio021","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F56460680?v=4","01M71F2WGFWC4J9XYAKBEYGHSY","Weipeng Wang","01M71F2WHCP3JATT5FGJSXZXXC",0,"MIT","https:\u002F\u002Fgithub.com\u002FSanAntonio021\u002Fagents-skills\u002Fblob\u002Fmain\u002Fpaper-download\u002FLICENSE","https:\u002F\u002Fgithub.com\u002FSanAntonio021\u002Fagents-skills\u002Fblob\u002Fmain\u002Fpaper-download\u002FSKILL.md",[19,24],{"categoryNo":20,"categoryName":21,"taxonomyType":22,"taxonomyTypeDesc":23},"01JBSEEDCAT000000000000002","文档处理","SCENARIO","使用场景",{"categoryNo":25,"categoryName":26,"taxonomyType":22,"taxonomyTypeDesc":23},"01JBSEEDCAT000000000000021","资料检索与研究",[28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47],"paper download","download","paper","review","下载","URL","when","access","http","use","整理","edge","数据","search","Zotero","web","PDF","doi","broker","windows","2026-11-10 10:12:30",false,"---\nname: paper-download\nlicense: MIT\ndescription: 获取、复用或导入论文 PDF 到 Zotero，先查已有条目、附件和任务本地资料，只补请求的缺项；归档保留已有阅读内容与外部新增附件，超时先核实原操作。Use when 用户给出题名、DOI、论文 URL、作者主页、论文列表、本地 PDF 或 paper-search 结果，要求下载、保存到 Zotero、整理已有论文或继续机构授权下载。研究问题检索与引用元数据核验用 paper-search；原文技术核对用 paper-review。联网由 web-access 路由；Windows 版机构模块通过 web-access HTTP Broker 复用当前 Edge 会话，负责出版物核验，不自行执行浏览器登录或验证码。\n---\n\n# 论文 PDF 获取与入库\n\n## 范围与交付\n\n获取或复用用户请求的论文版本，核验后保存为 Zotero 管理的附件。已知论文下载和本地 PDF 入库使用本技能；筛选论文或寻找论断证据先用 `paper-search`，技术核对用 `paper-review`。只问访问状态时保持只读。\n\n沿用检索交接的题名、稳定标识、已核实来源、资料库、工作区集合、父条目及版本要求；交接 key 及交接或子智能体报告的条目、附件和路径状态，均需用统一命令回读后才能据此下载或新建。已有父条目只补附件，未建条目则查重后建立一次。助手给错 key 且请求论文和同库正确目标均能唯一确认时直接纠正并说明；用户明确指定的 key 或资料库与论文冲突，或候选仍有歧义时先询问。不重复确认已授权的入库和归类。\n\n- Zotero 是默认文献库；未指定资料库时用个人库，不猜当前选中分类。论文沿用 [`zotero-workspace-library`](..\u002Fzotero-workspace-library\u002FSKILL.md) 确定的工作区集合；同一资料复用条目和附件，不按文章或检索任务复制分类。\n- 用户明确只要本地文件时按指定位置交付；要求项目副本时从 Zotero 导出。索引仅在用户要求或有效项目约定需要时维护，不默认创建 `paper_index.md`、引用账本或另一套 PDF 库。\n- 阅读复用已有笔记。文献本身的方法、结果、局限及原文位置留在 Zotero；当前文章的引用用途和待核问题留在工作区已有材料，不默认批量重做精读。\n- Windows 机构访问只复用用户已有合法权限；`web-access` 是唯一浏览器执行层，默认当前 Edge 的 `existing` 会话。常规登录、验证和下载按任务授权由该层处理，不复制 Profile，不读取或导出学校密码、浏览器密码库、Cookie 或认证令牌；真正短信、动态口令、刷脸或系统级验证才交还用户。\n\n## 目标版本\n\n开始时沿用用户的版本要求。纯本地整理、归类或导入已有文件时，核对身份并如实记录文件版本，不自动扩大为下载或升级任务；只有请求获取或补齐版本时，未指定且论文已正式发表才默认出版社当前正式版。明确只要作者稿、预印本或某个历史版本时，以该版本验收。确认仅有预印本、无正式发表记录时，按预印本任务处理；发表状态未知时继续核实，不推定正式版存在或不存在。\n\n`publication_status` 描述论文是否发表；`version` 描述实际文件，两者不能混用。库内已有作者稿或旧 Early Access，不能满足当前卷期正式版请求。默认目标为正式版时，可保存合法作者稿供阅读，但仍报告“作者稿已保存，正式版待补”；用户明确指定非正式版本时，按请求完成，不强制补另一版本。\n\n## 执行流程\n\n1. **查重与定位**：使用 [zotero-workspace-library](..\u002Fzotero-workspace-library\u002FSKILL.md) 的 `find\u002Fget\u002Fcollections` 查询条目、附件、阅读内容及集合，`find --request` 可按公共身份规则只读定位。命令内置连接检查，无需先猜地址或凭据。接手 token 或配置故障时先按其“故障交接”核实，不自行翻配置或推定历史原因。交接 key 先读取完整题名、DOI、作者、年份及来源；正确 key 可直接复用，不为重复核验扫描全库。无 key 或稳定标识未命中时用完整题名、作者找候选并读取实际 DOI，再核对本任务已知的本地 PDF。缺 DOI 不等于可以新建，多匹配或未决冲突不能任选。执行层缺失时报告 `dependency_missing_zotero_library`，不恢复独立旧实现。\n2. **核实身份与目标**：复用可定位、未变化的已核实信息；缺口交 `paper-search`，未知字段不猜。需要获取或升级已发表论文时，读取出版社当前记录，核对 DOI、卷期页码或文章号和当前版本，再判断已有文件是否满足请求。已有可读目标版本优先复用；库内缺 PDF 而本地已有时，直接核验本地文件并入库，缺父条目不等于缺全文。纯本地整理不触发升级下载。已有附件的冗余检查按下文执行。\n3. **发现全文入口**：尚缺目标文件时，按 [全文入口发现](references\u002Fpublisher-download-playbook.md#全文入口发现) 查找，并执行下面的固定分流，不得在首个出版社链接失败后直接结束：\n   - 第一层：核对 DOI\u002F出版社文章页，尝试出版社公开 PDF 或当前已配置、获授权的机构渠道；页面超时、返回 HTML、空响应或 `401\u002F403` 只能记录为该入口失败，不能当成“没有全文”。\n   - 第二层：若正式版入口受阻，使用准确 DOI、完整题名和作者继续查 DOI 元数据、OpenAlex\u002FGoogle Scholar 的所有版本、Unpaywall\u002FCORE\u002FBASE 等开放副本定位，再回到实际托管页面或 PDF；不能只看聚合站摘要。\n   - 第三层：继续查作者主页、研究组主页、机构仓储、学科仓储和作者公开平台。取得可读且身份匹配的作者稿、排版稿或预印本时先保存并如实标记实际 `version`，同时保留 `official_status=pending`；只有用户明确只要出版社正式版时才停止非正式版本归档。\n   - 每层至少检查一个独立入口；某一入口失败后继续下一个独立入口，直到获得已核验文件，或已记录所有可用渠道及具体阻塞原因。访问机构资源失败时，先核对实际登录态（页面是否显示机构名称或「Access provided by」字样），未登录或登录态已失效时按 `web-access` 重新完成机构登录再重试，不得在未确认登录态的情况下断言机构无订阅。未适配的助手、工具故障或页面访问检查不能当成学校无订阅。\n   - 找到并核验目标版本即可停止扩渠道；若只找到其他版本，仍应按用户允许范围归档，并明确正式版是否待补，不能把“作者公开 PDF 已保存”写成“出版社正式版已取得”。\n4. **取得并核验 PDF**：先加载 `web-access`，再由其选择和执行具体论文页面及 PDF 的访问与下载；不得在技能外自行使用 HTTP 脚本、curl 或其他下载器试抓出版社入口。Windows 默认当前 Edge 的 `existing` 会话和本任务后台标签；“后台”指浏览器后台任务，不等于脱离会话的直接 HTTP 请求。公开、稳定且已确认的静态 PDF 也由 `web-access` 决定是否使用普通下载，不要求所有公开文件启动浏览器。机构模块消费 HTTP Broker 的 `\u002Faccess` 与 `\u002Fdownload`，不重写浏览器或认证逻辑。搜索与公开元数据按 `web-access` 选择工具。IEEE Xplore 或 Optica 文章需要机构访问时，优先使用本技能的 [公开机构访问模块](scripts\u002Finstitutional_access\u002FREADME.md)。下载到本次任务暂存目录，按下文核验文件身份、可读性及版本。\n   - **验证页必须接续**：返回 `Please wait`、JavaScript 跳转、`checkjs.cfm`、登录页或 HTML 时，先记录实际响应，再通过 `web-access` 在同一任务浏览器页观察、等待脚本和跳转，并在工具允许范围内完成页面验证；核对页面变化和 PDF 入口后继续下载。不能只记录 `not_pdf` 就结束该入口，也不能反复直抓同一验证地址。真实用户接管、站点明确拒绝或工具限制按 `web-access` 处理，不能承诺所有验证都能自动通过。\n   - **超时先查原状态**：工具超时、页面仍加载或出现 `.crdownload` 时，先检查同一任务页面、下载状态及输出文件，再按 `web-access` 的有界等待和重试规则接续。记录发生超时的层次；验证页未完成、传输超时、文件截断、浏览器控制失败及权限拒绝分别报告，不把它们统称超时或学校无订阅。当前入口确有阻塞后继续第 3 步的其他来源。\n5. **原生入库与回读**：本地文件通过 [下载归档入口](scripts\u002Fzotero_archive.py) 的 `--request` 提交，机构下载使用 `finalize --session --request`；两者调用同一公共身份定位和归档实现。指定 `--required-version` 保留请求版本，`--parent-key-source` 默认 `user`；只有 key 确实来自助手交接时才传 `assistant`。业务入口复核 PDF 身份，助手错 key 仅在同库唯一目标时纠正；输出原 key、采用的 key 和依据，错误条目及其附件、集合、标签、笔记、批注保持原样。用户冲突或无唯一目标返回 `identity_review_required`，先说明差异再询问。原操作未知或仍在运行时查询原编号；只有明确终止且确认零内容写入才可提交纠正后的新请求。`finalize` 在归档与回读通过后才执行既有 `complete`；入库成功而收尾失败时再次运行同一命令，只续做收尾。请求超时保留 operation 编号及有效文件，先 `operation status`，确认原操作结束后才 `operation resume`；不重放或切换 Connector。\n6. **版本去重与收尾**：目标版本入库或复用核验成功后，仅按下文核实冗余候选并调用公共 `prune --request` 移入回收站；再次核对保留文件、分类、标签和笔记。公共层复制导入，成功验收后才清理本次自有暂存；失败时保留有效文件和旧附件。按 `web-access` 收尾自有会话和页面，保留用户页面及长期服务。\n\n准确机构登录授权、用户接管、网络重试和宿主拒绝边界统一遵循 [web-access](..\u002Fweb-access\u002FSKILL.md)；站点操作见 [下载参考流程](references\u002Fpublisher-download-playbook.md#公开机构访问模块)。不读取或导出密码、Cookie、令牌，不通过其他工具重放宿主明确拒绝的动作；独立获准的公开查找可继续。\n\n## 机构访问模块\n\nWindows 机构模块支持 Python 3.10+、Node.js 22+、IEEE Xplore 和 Optica Publishing Group，依赖同仓库的 `web-access`。Python 环境位于 `%LOCALAPPDATA%\\PaperDownload\\venv`；短生命周期 Broker task token 保存在 Windows 凭据管理器，不是出版社认证令牌。模块只保留出版物识别、身份\u002FPDF\u002F版本验证与既有 CLI，入库使用 `zotero-workspace-library`，请求格式见其接口契约。\n\n默认前检 `check-deps.mjs --browser edge --mode existing --json`，由 `web-access` 从 `DevToolsActivePort` 发现当前 Edge 的实际 CDP 地址，连接 HTTP Broker（通常 `127.0.0.1:3456`）。每个任务新建后台 tab，保留用户原有活动页；收尾只关闭自有页，不停止 Broker 或 Edge。`managed` 仅显式隔离任务可用，不是默认或自动回退。模块不启动、探测修复或另接浏览器，不复制 Profile 或登录数据。HTTP `\u002Fjson\u002Fversion` 404 不等于 CDP 失败，控制判定和恢复交给 `web-access`。\n\n同一 `--session` 一次只允许一个命令运行；并发调用返回会话占用，不并行操作同一页面。\n\n活动会话先用 `status\u002Fresume` 接续取得 PDF。`finalize` 要求原会话已有下载完成阶段、输出路径及文件哈希；把别的本地 PDF 改名不能代替下载完成。本地文件使用 `scripts\u002Fzotero_archive.py --request`，不借用未完成的下载会话。只通过 CLI 读取脱敏状态，不打开凭据会话文件。\n\n```powershell\n$skillRoot = '\u003C已解析的 paper-download 技能目录>'\n$ia = Join-Path $skillRoot 'scripts\u002Finstitutional_access\u002Frun.ps1'\n& $ia acquire --session \u003C唯一任务名> --url \u003C文章页> --doi \u003CDOI> --output \u003C新PDF路径>\n& $ia status --session \u003C唯一任务名>\n& $ia resume --session \u003C唯一任务名> --doi \u003CDOI> --output \u003C新PDF路径>\n& $ia finalize --session \u003C唯一任务名> --request \u003C已核实归档请求.json>\n# 助手交接 key 时附 --parent-key-source assistant；版本明确时附 --required-version official 等\npython (Join-Path $skillRoot 'scripts\u002Fzotero_archive.py') --request \u003C已核实归档请求.json>\n# complete 保留为取消下载等已授权分支的会话收尾接口\n```\n\n- `acquire` 返回 `downloaded_identity_verified` 时复用同一 PDF，不再启动第二条机构下载路径。\n- 前检要求 `ready:true`、请求的模式与 Edge 身份一致、控制探针通过；`proxy_version_mismatch`、`control_probe_failed`、`task_capacity_reached` 等保留原状态，不改写成学校未登录或无订阅。\n- 访问状态通过 `POST \u002Fv2\u002Ftabs\u002F{targetId}\u002Faccess` 取得脱敏 `state`、`failureCode`、`handoffRequired`、`interactionRequired`。先核对 Broker 能力；缺接口是环境\u002F版本缺口，不在本模块重建登录、验证码或 CDP 执行路径。\n- 常规保存账号自动填充与登录提交由 Broker 完成；图形\u002F滑块验证由 `web-access` 页面动作、邮箱验证码由获授权邮件工具按实际能力处理。`interactionRequired` 或兼容状态 `user_login_required`、`publisher_verification` 不自动等于人工接管，也不保证脚本能解决所有验证。\n- 真正短信、动态口令、刷脸或系统级验证才根据 `handoffRequired` 保留现场交还用户。handoff 期间禁读、禁截图、禁修改；用户完成后调用 `resume` 回读同一任务，不能把回复当作登录、权限或 PDF 成功证据。工具限制、账号歧义或能力不足单独报告，不冒充强验证；发送消息、申请权限或付款不属于常规登录授权。\n- PDF 统一调用 `POST \u002Fv2\u002Ftabs\u002F{targetId}\u002Fdownload`，提供准确 `url`、有限 `timeoutMs` 和 `maxBytes`，仅允许同源或已确认的出版社 PDF 主机。复核完整二进制、解码后的最终 URL、长度与 SHA-256，再进行身份\u002F版本检查；不保留页内 fetch\u002FBase64 分块或另一套 CDP 下载实现。\n- `access_unavailable` 需结合实际页面判断；只有确认当前机构登录有效且存在相应权限拒绝证据，才报告订阅不足。401\u002F403\u002F429\u002F418、挑战和控制失败分别记录，不靠重复登录、改代理、Cookie 或端点绕过。返回 `institutional_access` 但无 PDF 时保留同一任务，报告入口缺口。\n- 下载成功仍需按本技能主流程核对文件、DOI、版本、Zotero 附件和回读。正常下载到归档使用 `finalize`，其内部在 Zotero 保存验收后调用 `complete`；会话处于 handoff 时不能直接关闭。\n- 已确认本次不再重试的活动任务也应在用户结束该分支后调用 `complete`。handoff 中的任务不能绕过恢复屏障强制关闭；若用户明确取消，保留给用户关闭，或等待任务到期释放。\n\n## PDF 身份与版本核验\n\n- 文件头为 `%PDF-`，文件可读且是对应论文正文，不是登录页、HTML 包装、摘要、封面、补充材料或错误通知。真 PDF 也可能是整期文件，提取单篇时记录原页范围。\n- 核对完整题名、作者及发表身份。有印刷 DOI 时核对一致；未印 DOI 不单独判失败，但须串联已核实出版社记录、实际全文入口、题名作者及出版标记。存在身份冲突时保留待核，不自动入库或删除有效旧文件。\n- 正式版须与出版社当前排版、卷期页码或文章号及年份对应。当前仅提供已编辑正式 Early Access 时注明尚无卷期版；标有作者版、未完成编辑的文件仍按实际状态处理。双栏外观、DOI、仓储标签、网页 `Full Text` 或 `FULL ACCESS` 均不能单独证明正式 PDF 已取得。\n- 作者或机构公开副本可以是正式版，但需同样核验；没有接收证据的发表前稿不能标 `accepted_manuscript`。接收稿、预印本、历史稿和身份已确认但版本未明的文件分别记录，不能一律称正式版。\n\n## 版本选择与去重\n\n仅处理本次触及的论文正文 PDF；补充材料、更正文件、独立笔记和其他附件不进入清理集合。阅读内容保护包括 Zotero 批注、PDF 内嵌批注、附件自身及关联笔记；读取失败按未知保留。\n\n- **同一版本**：优先复用有批注的可读附件，其次有附件笔记的已有附件，再其次已有可读文件，不因下载时间较新替换。多份都有阅读内容或版本等价不明时暂留。无批注、无附件笔记的重复正文可原生移入回收站。\n- **确有更新**：目标新版核验并保存后，无阅读内容的旧正文可移入回收站；带批注或笔记的旧版暂留，报告准确新版入口及旧版待迁移原因，不按页码或坐标搬批注。用户请求历史版本时，不据此清理不同版本的现有正文。\n- **依据与提交**：同哈希可证明字节相同，不同哈希、同 DOI、文件名或时间不能证明版本更新。结合出版状态、修订说明、正文和图表判断；提交前复核归属、版本及阅读内容。新增批注或文件变化使原清理判断失效时重新检查。\n\n具体候选记录、原生回收站调用和回读要求见 [版本去重执行](references\u002Fzotero-storage.md#版本去重执行)。不永久删除、不清空回收站、不直接修改数据库或 storage；入库失败不进入旧版清理。\n\n## 命名与输出\n\nZotero 管理的文件沿用库内命名设置，不直接重命名 storage 文件。明确导出本地且无项目约定时，使用 `年份-期刊名-标题名.pdf`；年份按正式发表年，仅预印本则用其年份并标版本，期刊或会议名以核实信息为准。清理 Windows 非法文件名字符，长题名可截短，完整身份留在条目中。多版本用 `(official)`、`(accepted-manuscript)`、`(temporary-preprint)`、`(arXiv)` 等最小后缀。重命名仅更新任务引用和明确存在的索引，不修改登录授权记录。\n\n交还时按全局规范的“交接”简短说明：目标是否完成、实际保留的版本、Zotero 条目或本地交付入口，以及必要的待补原因。仅元数据、可读网页或下载暂存不能当成 PDF 入库完成。批量结果只报已取得的目标版本、其他可读版本及待补的数量，不能用“每篇都有 PDF”代替版本验收；逐篇明细、工作区集合、去重状态、原生移入回收站数量和暂留理由不贴进回复，用户追问再给。\n\n未取得目标版本时，用一两句说明卡在哪一步和下一步怎么补，已查渠道和各自访问结果的明细用户追问再给；不将“本轮未取得”扩大成“全文不存在”。记录复用的历史证据与本轮实际访问，不把旧错误当今天的实测。返回便于库内搜索的关键词，通常无需展示 storage 路径或让用户记住 key。\n\n沿用以下状态值，不另建状态体系：\n\n- `version`：`official`、`accepted_manuscript`、`preprint`、`temporary_preprint`、`unresolved`。\n- `publication_status`：`published`、`preprint_only`、`unknown`。\n- `access_status`：`open`、`institutional`、`request-only`、`unresolved`。\n- `download_status`：`downloaded`、`pending`、`failed`、`skipped`，只表示相应文件状态。\n- `official_status`：`obtained`、`pending`、`not_applicable`；用户指定非正式目标或确认仅有预印本时用 `not_applicable`，不把它解释为论文未正式发表。\n- 既有 CLI 命令、业务状态与 `version` 等枚举保持兼容；新增 `failure_code` 保留 Broker 的控制\u002F站点\u002F文件分类，不覆盖旧状态。`not_pdf`、`incomplete`、`identity_mismatch`、`too_large`、`download_timeout` 均不能作为下载或入库成功。\n- 受阻时附具体原因：`host_policy`、`environment`、`user_verification`、`institution_permission`、`transport`、`pdf_validation` 或 `zotero_write_unknown`。文件占用属于本地环境；未知写入与已确认失败分开，不把各类阻塞统称为学校登录失败。\n\n技能维护按 `skill-creator`，发布按 `agent-rules`；普通下载不自动修改技能，也不把单机或单一机构验收推广为全部出版社均可用。\n","# 论文 PDF 获取与入库\n\n## 范围与交付\n\n获取或复用用户请求的论文版本，核验后保存为 Zotero 管理的附件。已知论文下载和本地 PDF 入库使用本技能；筛选论文或寻找论断证据先用 `paper-search`，技术核对用 `paper-review`。只问访问状态时保持只读。\n\n沿用检索交接的题名、稳定标识、已核实来源、资料库、工作区集合、父条目及版本要求；交接 key 及交接或子智能体报告的条目、附件和路径状态，均需用统一命令回读后才能据此下载或新建。已有父条目只补附件，未建条目则查重后建立一次。助手给错 key 且请求论文和同库正确目标均能唯一确认时直接纠正并说明；用户明确指定的 key 或资料库与论文冲突，或候选仍有歧义时先询问。不重复确认已授权的入库和归类。\n\n- Zotero 是默认文献库；未指定资料库时用个人库，不猜当前选中分类。论文沿用 [`zotero-workspace-library`](..\u002Fzotero-workspace-library\u002FSKILL.md) 确定的工作区集合；同一资料复用条目和附件，不按文章或检索任务复制分类。\n- 用户明确只要本地文件时按指定位置交付；要求项目副本时从 Zotero 导出。索引仅在用户要求或有效项目约定需要时维护，不默认创建 `paper_index.md`、引用账本或另一套 PDF 库。\n- 阅读复用已有笔记。文献本身的方法、结果、局限及原文位置留在 Zotero；当前文章的引用用途和待核问题留在工作区已有材料，不默认批量重做精读。\n- Windows 机构访问只复用用户已有合法权限；`web-access` 是唯一浏览器执行层，默认当前 Edge 的 `existing` 会话。常规登录、验证和下载按任务授权由该层处理，不复制 Profile，不读取或导出学校密码、浏览器密码库、Cookie 或认证令牌；真正短信、动态口令、刷脸或系统级验证才交还用户。\n\n## 目标版本\n\n开始时沿用用户的版本要求。纯本地整理、归类或导入已有文件时，核对身份并如实记录文件版本，不自动扩大为下载或升级任务；只有请求获取或补齐版本时，未指定且论文已正式发表才默认出版社当前正式版。明确只要作者稿、预印本或某个历史版本时，以该版本验收。确认仅有预印本、无正式发表记录时，按预印本任务处理；发表状态未知时继续核实，不推定正式版存在或不存在。\n\n`publication_status` 描述论文是否发表；`version` 描述实际文件，两者不能混用。库内已有作者稿或旧 Early Access，不能满足当前卷期正式版请求。默认目标为正式版时，可保存合法作者稿供阅读，但仍报告“作者稿已保存，正式版待补”；用户明确指定非正式版本时，按请求完成，不强制补另一版本。\n\n## 执行流程\n\n1. **查重与定位**：使用 [zotero-workspace-library](..\u002Fzotero-workspace-library\u002FSKILL.md) 的 `find\u002Fget\u002Fcollections` 查询条目、附件、阅读内容及集合，`find --request` 可按公共身份规则只读定位。命令内置连接检查，无需先猜地址或凭据。接手 token 或配置故障时先按其“故障交接”核实，不自行翻配置或推定历史原因。交接 key 先读取完整题名、DOI、作者、年份及来源；正确 key 可直接复用，不为重复核验扫描全库。无 key 或稳定标识未命中时用完整题名、作者找候选并读取实际 DOI，再核对本任务已知的本地 PDF。缺 DOI 不等于可以新建，多匹配或未决冲突不能任选。执行层缺失时报告 `dependency_missing_zotero_library`，不恢复独立旧实现。\n2. **核实身份与目标**：复用可定位、未变化的已核实信息；缺口交 `paper-search`，未知字段不猜。需要获取或升级已发表论文时，读取出版社当前记录，核对 DOI、卷期页码或文章号和当前版本，再判断已有文件是否满足请求。已有可读目标版本优先复用；库内缺 PDF 而本地已有时，直接核验本地文件并入库，缺父条目不等于缺全文。纯本地整理不触发升级下载。已有附件的冗余检查按下文执行。\n3. **发现全文入口**：尚缺目标文件时，按 [全文入口发现](references\u002Fpublisher-download-playbook.md#全文入口发现) 查找，并执行下面的固定分流，不得在首个出版社链接失败后直接结束：\n   - 第一层：核对 DOI\u002F出版社文章页，尝试出版社公开 PDF 或当前已配置、获授权的机构渠道；页面超时、返回 HTML、空响应或 `401\u002F403` 只能记录为该入口失败，不能当成“没有全文”。\n   - 第二层：若正式版入口受阻，使用准确 DOI、完整题名和作者继续查 DOI 元数据、OpenAlex\u002FGoogle Scholar 的所有版本、Unpaywall\u002FCORE\u002FBASE 等开放副本定位，再回到实际托管页面或 PDF；不能只看聚合站摘要。\n   - 第三层：继续查作者主页、研究组主页、机构仓储、学科仓储和作者公开平台。取得可读且身份匹配的作者稿、排版稿或预印本时先保存并如实标记实际 `version`，同时保留 `official_status=pending`；只有用户明确只要出版社正式版时才停止非正式版本归档。\n   - 每层至少检查一个独立入口；某一入口失败后继续下一个独立入口，直到获得已核验文件，或已记录所有可用渠道及具体阻塞原因。访问机构资源失败时，先核对实际登录态（页面是否显示机构名称或「Access provided by」字样），未登录或登录态已失效时按 `web-access` 重新完成机构登录再重试，不得在未确认登录态的情况下断言机构无订阅。未适配的助手、工具故障或页面访问检查不能当成学校无订阅。\n   - 找到并核验目标版本即可停止扩渠道；若只找到其他版本，仍应按用户允许范围归档，并明确正式版是否待补，不能把“作者公开 PDF 已保存”写成“出版社正式版已取得”。\n4. **取得并核验 PDF**：先加载 `web-access`，再由其选择和执行具体论文页面及 PDF 的访问与下载；不得在技能外自行使用 HTTP 脚本、curl 或其他下载器试抓出版社入口。Windows 默认当前 Edge 的 `existing` 会话和本任务后台标签；“后台”指浏览器后台任务，不等于脱离会话的直接 HTTP 请求。公开、稳定且已确认的静态 PDF 也由 `web-access` 决定是否使用普通下载，不要求所有公开文件启动浏览器。机构模块消费 HTTP Broker 的 `\u002Faccess` 与 `\u002Fdownload`，不重写浏览器或认证逻辑。搜索与公开元数据按 `web-access` 选择工具。IEEE Xplore 或 Optica 文章需要机构访问时，优先使用本技能的 [公开机构访问模块](scripts\u002Finstitutional_access\u002FREADME.md)。下载到本次任务暂存目录，按下文核验文件身份、可读性及版本。\n   - **验证页必须接续**：返回 `Please wait`、JavaScript 跳转、`checkjs.cfm`、登录页或 HTML 时，先记录实际响应，再通过 `web-access` 在同一任务浏览器页观察、等待脚本和跳转，并在工具允许范围内完成页面验证；核对页面变化和 PDF 入口后继续下载。不能只记录 `not_pdf` 就结束该入口，也不能反复直抓同一验证地址。真实用户接管、站点明确拒绝或工具限制按 `web-access` 处理，不能承诺所有验证都能自动通过。\n   - **超时先查原状态**：工具超时、页面仍加载或出现 `.crdownload` 时，先检查同一任务页面、下载状态及输出文件，再按 `web-access` 的有界等待和重试规则接续。记录发生超时的层次；验证页未完成、传输超时、文件截断、浏览器控制失败及权限拒绝分别报告，不把它们统称超时或学校无订阅。当前入口确有阻塞后继续第 3 步的其他来源。\n5. **原生入库与回读**：本地文件通过 [下载归档入口](scripts\u002Fzotero_archive.py) 的 `--request` 提交，机构下载使用 `finalize --session --request`；两者调用同一公共身份定位和归档实现。指定 `--required-version` 保留请求版本，`--parent-key-source` 默认 `user`；只有 key 确实来自助手交接时才传 `assistant`。业务入口复核 PDF 身份，助手错 key 仅在同库唯一目标时纠正；输出原 key、采用的 key 和依据，错误条目及其附件、集合、标签、笔记、批注保持原样。用户冲突或无唯一目标返回 `identity_review_required`，先说明差异再询问。原操作未知或仍在运行时查询原编号；只有明确终止且确认零内容写入才可提交纠正后的新请求。`finalize` 在归档与回读通过后才执行既有 `complete`；入库成功而收尾失败时再次运行同一命令，只续做收尾。请求超时保留 operation 编号及有效文件，先 `operation status`，确认原操作结束后才 `operation resume`；不重放或切换 Connector。\n6. **版本去重与收尾**：目标版本入库或复用核验成功后，仅按下文核实冗余候选并调用公共 `prune --request` 移入回收站；再次核对保留文件、分类、标签和笔记。公共层复制导入，成功验收后才清理本次自有暂存；失败时保留有效文件和旧附件。按 `web-access` 收尾自有会话和页面，保留用户页面及长期服务。\n\n准确机构登录授权、用户接管、网络重试和宿主拒绝边界统一遵循 [web-access](..\u002Fweb-access\u002FSKILL.md)；站点操作见 [下载参考流程](references\u002Fpublisher-download-playbook.md#公开机构访问模块)。不读取或导出密码、Cookie、令牌，不通过其他工具重放宿主明确拒绝的动作；独立获准的公开查找可继续。\n\n## 机构访问模块\n\nWindows 机构模块支持 Python 3.10+、Node.js 22+、IEEE Xplore 和 Optica Publishing Group，依赖同仓库的 `web-access`。Python 环境位于 `%LOCALAPPDATA%\\PaperDownload\\venv`；短生命周期 Broker task token 保存在 Windows 凭据管理器，不是出版社认证令牌。模块只保留出版物识别、身份\u002FPDF\u002F版本验证与既有 CLI，入库使用 `zotero-workspace-library`，请求格式见其接口契约。\n\n默认前检 `check-deps.mjs --browser edge --mode existing --json`，由 `web-access` 从 `DevToolsActivePort` 发现当前 Edge 的实际 CDP 地址，连接 HTTP Broker（通常 `127.0.0.1:3456`）。每个任务新建后台 tab，保留用户原有活动页；收尾只关闭自有页，不停止 Broker 或 Edge。`managed` 仅显式隔离任务可用，不是默认或自动回退。模块不启动、探测修复或另接浏览器，不复制 Profile 或登录数据。HTTP `\u002Fjson\u002Fversion` 404 不等于 CDP 失败，控制判定和恢复交给 `web-access`。\n\n同一 `--session` 一次只允许一个命令运行；并发调用返回会话占用，不并行操作同一页面。\n\n活动会话先用 `status\u002Fresume` 接续取得 PDF。`finalize` 要求原会话已有下载完成阶段、输出路径及文件哈希；把别的本地 PDF 改名不能代替下载完成。本地文件使用 `scripts\u002Fzotero_archive.py --request`，不借用未完成的下载会话。只通过 CLI 读取脱敏状态，不打开凭据会话文件。\n\n```powershell\n$skillRoot = '\u003C已解析的 paper-download 技能目录>'\n$ia = Join-Path $skillRoot 'scripts\u002Finstitutional_access\u002Frun.ps1'\n& $ia acquire --session \u003C唯一任务名> --url \u003C文章页> --doi \u003CDOI> --output \u003C新PDF路径>\n& $ia status --session \u003C唯一任务名>\n& $ia resume --session \u003C唯一任务名> --doi \u003CDOI> --output \u003C新PDF路径>\n& $ia finalize --session \u003C唯一任务名> --request \u003C已核实归档请求.json>\n# 助手交接 key 时附 --parent-key-source assistant；版本明确时附 --required-version official 等\npython (Join-Path $skillRoot 'scripts\u002Fzotero_archive.py') --request \u003C已核实归档请求.json>\n# complete 保留为取消下载等已授权分支的会话收尾接口\n```\n\n- `acquire` 返回 `downloaded_identity_verified` 时复用同一 PDF，不再启动第二条机构下载路径。\n- 前检要求 `ready:true`、请求的模式与 Edge 身份一致、控制探针通过；`proxy_version_mismatch`、`control_probe_failed`、`task_capacity_reached` 等保留原状态，不改写成学校未登录或无订阅。\n- 访问状态通过 `POST \u002Fv2\u002Ftabs\u002F{targetId}\u002Faccess` 取得脱敏 `state`、`failureCode`、`handoffRequired`、`interactionRequired`。先核对 Broker 能力；缺接口是环境\u002F版本缺口，不在本模块重建登录、验证码或 CDP 执行路径。\n- 常规保存账号自动填充与登录提交由 Broker 完成；图形\u002F滑块验证由 `web-access` 页面动作、邮箱验证码由获授权邮件工具按实际能力处理。`interactionRequired` 或兼容状态 `user_login_required`、`publisher_verification` 不自动等于人工接管，也不保证脚本能解决所有验证。\n- 真正短信、动态口令、刷脸或系统级验证才根据 `handoffRequired` 保留现场交还用户。handoff 期间禁读、禁截图、禁修改；用户完成后调用 `resume` 回读同一任务，不能把回复当作登录、权限或 PDF 成功证据。工具限制、账号歧义或能力不足单独报告，不冒充强验证；发送消息、申请权限或付款不属于常规登录授权。\n- PDF 统一调用 `POST \u002Fv2\u002Ftabs\u002F{targetId}\u002Fdownload`，提供准确 `url`、有限 `timeoutMs` 和 `maxBytes`，仅允许同源或已确认的出版社 PDF 主机。复核完整二进制、解码后的最终 URL、长度与 SHA-256，再进行身份\u002F版本检查；不保留页内 fetch\u002FBase64 分块或另一套 CDP 下载实现。\n- `access_unavailable` 需结合实际页面判断；只有确认当前机构登录有效且存在相应权限拒绝证据，才报告订阅不足。401\u002F403\u002F429\u002F418、挑战和控制失败分别记录，不靠重复登录、改代理、Cookie 或端点绕过。返回 `institutional_access` 但无 PDF 时保留同一任务，报告入口缺口。\n- 下载成功仍需按本技能主流程核对文件、DOI、版本、Zotero 附件和回读。正常下载到归档使用 `finalize`，其内部在 Zotero 保存验收后调用 `complete`；会话处于 handoff 时不能直接关闭。\n- 已确认本次不再重试的活动任务也应在用户结束该分支后调用 `complete`。handoff 中的任务不能绕过恢复屏障强制关闭；若用户明确取消，保留给用户关闭，或等待任务到期释放。\n\n## PDF 身份与版本核验\n\n- 文件头为 `%PDF-`，文件可读且是对应论文正文，不是登录页、HTML 包装、摘要、封面、补充材料或错误通知。真 PDF 也可能是整期文件，提取单篇时记录原页范围。\n- 核对完整题名、作者及发表身份。有印刷 DOI 时核对一致；未印 DOI 不单独判失败，但须串联已核实出版社记录、实际全文入口、题名作者及出版标记。存在身份冲突时保留待核，不自动入库或删除有效旧文件。\n- 正式版须与出版社当前排版、卷期页码或文章号及年份对应。当前仅提供已编辑正式 Early Access 时注明尚无卷期版；标有作者版、未完成编辑的文件仍按实际状态处理。双栏外观、DOI、仓储标签、网页 `Full Text` 或 `FULL ACCESS` 均不能单独证明正式 PDF 已取得。\n- 作者或机构公开副本可以是正式版，但需同样核验；没有接收证据的发表前稿不能标 `accepted_manuscript`。接收稿、预印本、历史稿和身份已确认但版本未明的文件分别记录，不能一律称正式版。\n\n## 版本选择与去重\n\n仅处理本次触及的论文正文 PDF；补充材料、更正文件、独立笔记和其他附件不进入清理集合。阅读内容保护包括 Zotero 批注、PDF 内嵌批注、附件自身及关联笔记；读取失败按未知保留。\n\n- **同一版本**：优先复用有批注的可读附件，其次有附件笔记的已有附件，再其次已有可读文件，不因下载时间较新替换。多份都有阅读内容或版本等价不明时暂留。无批注、无附件笔记的重复正文可原生移入回收站。\n- **确有更新**：目标新版核验并保存后，无阅读内容的旧正文可移入回收站；带批注或笔记的旧版暂留，报告准确新版入口及旧版待迁移原因，不按页码或坐标搬批注。用户请求历史版本时，不据此清理不同版本的现有正文。\n- **依据与提交**：同哈希可证明字节相同，不同哈希、同 DOI、文件名或时间不能证明版本更新。结合出版状态、修订说明、正文和图表判断；提交前复核归属、版本及阅读内容。新增批注或文件变化使原清理判断失效时重新检查。\n\n具体候选记录、原生回收站调用和回读要求见 [版本去重执行](references\u002Fzotero-storage.md#版本去重执行)。不永久删除、不清空回收站、不直接修改数据库或 storage；入库失败不进入旧版清理。\n\n## 命名与输出\n\nZotero 管理的文件沿用库内命名设置，不直接重命名 storage 文件。明确导出本地且无项目约定时，使用 `年份-期刊名-标题名.pdf`；年份按正式发表年，仅预印本则用其年份并标版本，期刊或会议名以核实信息为准。清理 Windows 非法文件名字符，长题名可截短，完整身份留在条目中。多版本用 `(official)`、`(accepted-manuscript)`、`(temporary-preprint)`、`(arXiv)` 等最小后缀。重命名仅更新任务引用和明确存在的索引，不修改登录授权记录。\n\n交还时按全局规范的“交接”简短说明：目标是否完成、实际保留的版本、Zotero 条目或本地交付入口，以及必要的待补原因。仅元数据、可读网页或下载暂存不能当成 PDF 入库完成。批量结果只报已取得的目标版本、其他可读版本及待补的数量，不能用“每篇都有 PDF”代替版本验收；逐篇明细、工作区集合、去重状态、原生移入回收站数量和暂留理由不贴进回复，用户追问再给。\n\n未取得目标版本时，用一两句说明卡在哪一步和下一步怎么补，已查渠道和各自访问结果的明细用户追问再给；不将“本轮未取得”扩大成“全文不存在”。记录复用的历史证据与本轮实际访问，不把旧错误当今天的实测。返回便于库内搜索的关键词，通常无需展示 storage 路径或让用户记住 key。\n\n沿用以下状态值，不另建状态体系：\n\n- `version`：`official`、`accepted_manuscript`、`preprint`、`temporary_preprint`、`unresolved`。\n- `publication_status`：`published`、`preprint_only`、`unknown`。\n- `access_status`：`open`、`institutional`、`request-only`、`unresolved`。\n- `download_status`：`downloaded`、`pending`、`failed`、`skipped`，只表示相应文件状态。\n- `official_status`：`obtained`、`pending`、`not_applicable`；用户指定非正式目标或确认仅有预印本时用 `not_applicable`，不把它解释为论文未正式发表。\n- 既有 CLI 命令、业务状态与 `version` 等枚举保持兼容；新增 `failure_code` 保留 Broker 的控制\u002F站点\u002F文件分类，不覆盖旧状态。`not_pdf`、`incomplete`、`identity_mismatch`、`too_large`、`download_timeout` 均不能作为下载或入库成功。\n- 受阻时附具体原因：`host_policy`、`environment`、`user_verification`、`institution_permission`、`transport`、`pdf_validation` 或 `zotero_write_unknown`。文件占用属于本地环境；未知写入与已确认失败分开，不把各类阻塞统称为学校登录失败。\n\n技能维护按 `skill-creator`，发布按 `agent-rules`；普通下载不自动修改技能，也不把单机或单一机构验收推广为全部出版社均可用。\n",{"name":5,"license":15,"description":7},"main","50d3cbdeaad6fc1ca5a68a140dd2b1f2aaeadcf8","https:\u002F\u002Fgithub.com\u002FSanAntonio021\u002Fagents-skills","https:\u002F\u002Fgithub.com\u002FSanAntonio021","2026-11-14 03:01:39",{"source":8,"skillName":5,"commands":59,"prompt":69,"zipAvailable":70},[60,63,66],{"tool":61,"command":62},"npx","npx skills add SanAntonio021\u002Fagents-skills --skill paper-download",{"tool":64,"command":65},"bunx","bunx skills add SanAntonio021\u002Fagents-skills --skill paper-download",{"tool":67,"command":68},"pnpm","pnpm dlx skills add SanAntonio021\u002Fagents-skills --skill paper-download","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FSanAntonio021\u002Fagents-skills\u002Fblob\u002Fmain\u002Fpaper-download\u002FSKILL.md",true,[72,78,82,86,90,94,98,102,108,112,116,120,124,128,132,136,140,144,148,152,156,160,164,168,172,176,180,184,188,192],{"path":73,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":76,"sourceHtmlUrl":77},"agents\u002Fopenai.yaml","REFERENCE","参考文档",2191,"https:\u002F\u002Fgithub.com\u002FSanAntonio021\u002Fagents-skills\u002Fblob\u002Fmain\u002Fpaper-download\u002Fagents\u002Fopenai.yaml",{"path":79,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":80,"sourceHtmlUrl":81},"evals\u002Fevals.json",31886,"https:\u002F\u002Fgithub.com\u002FSanAntonio021\u002Fagents-skills\u002Fblob\u002Fmain\u002Fpaper-download\u002Fevals\u002Fevals.json",{"path":83,"resourceType":83,"resourceTypeDesc":84,"sizeBytes":85,"sourceHtmlUrl":16},"LICENSE","许可证",1070,{"path":87,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":88,"sourceHtmlUrl":89},"references\u002Fpublisher-download-playbook.md",15578,"https:\u002F\u002Fgithub.com\u002FSanAntonio021\u002Fagents-skills\u002Fblob\u002Fmain\u002Fpaper-download\u002Freferences\u002Fpublisher-download-playbook.md",{"path":91,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":92,"sourceHtmlUrl":93},"references\u002Fupstream-sources.md",669,"https:\u002F\u002Fgithub.com\u002FSanAntonio021\u002Fagents-skills\u002Fblob\u002Fmain\u002Fpaper-download\u002Freferences\u002Fupstream-sources.md",{"path":95,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":96,"sourceHtmlUrl":97},"references\u002Fzotero-storage-history.md",4184,"https:\u002F\u002Fgithub.com\u002FSanAntonio021\u002Fagents-skills\u002Fblob\u002Fmain\u002Fpaper-download\u002Freferences\u002Fzotero-storage-history.md",{"path":99,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":100,"sourceHtmlUrl":101},"references\u002Fzotero-storage.md",2517,"https:\u002F\u002Fgithub.com\u002FSanAntonio021\u002Fagents-skills\u002Fblob\u002Fmain\u002Fpaper-download\u002Freferences\u002Fzotero-storage.md",{"path":103,"resourceType":104,"resourceTypeDesc":105,"sizeBytes":106,"sourceHtmlUrl":107},"scripts\u002Finstitutional_access\u002F__init__.py","SCRIPT","脚本",93,"https:\u002F\u002Fgithub.com\u002FSanAntonio021\u002Fagents-skills\u002Fblob\u002Fmain\u002Fpaper-download\u002Fscripts\u002Finstitutional_access\u002F__init__.py",{"path":109,"resourceType":104,"resourceTypeDesc":105,"sizeBytes":110,"sourceHtmlUrl":111},"scripts\u002Finstitutional_access\u002F__main__.py",80,"https:\u002F\u002Fgithub.com\u002FSanAntonio021\u002Fagents-skills\u002Fblob\u002Fmain\u002Fpaper-download\u002Fscripts\u002Finstitutional_access\u002F__main__.py",{"path":113,"resourceType":104,"resourceTypeDesc":105,"sizeBytes":114,"sourceHtmlUrl":115},"scripts\u002Finstitutional_access\u002Fbootstrap.ps1",3978,"https:\u002F\u002Fgithub.com\u002FSanAntonio021\u002Fagents-skills\u002Fblob\u002Fmain\u002Fpaper-download\u002Fscripts\u002Finstitutional_access\u002Fbootstrap.ps1",{"path":117,"resourceType":104,"resourceTypeDesc":105,"sizeBytes":118,"sourceHtmlUrl":119},"scripts\u002Finstitutional_access\u002Fbrowser.py",18584,"https:\u002F\u002Fgithub.com\u002FSanAntonio021\u002Fagents-skills\u002Fblob\u002Fmain\u002Fpaper-download\u002Fscripts\u002Finstitutional_access\u002Fbrowser.py",{"path":121,"resourceType":104,"resourceTypeDesc":105,"sizeBytes":122,"sourceHtmlUrl":123},"scripts\u002Finstitutional_access\u002Fcli.py",29393,"https:\u002F\u002Fgithub.com\u002FSanAntonio021\u002Fagents-skills\u002Fblob\u002Fmain\u002Fpaper-download\u002Fscripts\u002Finstitutional_access\u002Fcli.py",{"path":125,"resourceType":104,"resourceTypeDesc":105,"sizeBytes":126,"sourceHtmlUrl":127},"scripts\u002Finstitutional_access\u002Ffinalize.py",6167,"https:\u002F\u002Fgithub.com\u002FSanAntonio021\u002Fagents-skills\u002Fblob\u002Fmain\u002Fpaper-download\u002Fscripts\u002Finstitutional_access\u002Ffinalize.py",{"path":129,"resourceType":104,"resourceTypeDesc":105,"sizeBytes":130,"sourceHtmlUrl":131},"scripts\u002Finstitutional_access\u002Fpdf_tools.py",1910,"https:\u002F\u002Fgithub.com\u002FSanAntonio021\u002Fagents-skills\u002Fblob\u002Fmain\u002Fpaper-download\u002Fscripts\u002Finstitutional_access\u002Fpdf_tools.py",{"path":133,"resourceType":104,"resourceTypeDesc":105,"sizeBytes":134,"sourceHtmlUrl":135},"scripts\u002Finstitutional_access\u002Fproviders.py",12931,"https:\u002F\u002Fgithub.com\u002FSanAntonio021\u002Fagents-skills\u002Fblob\u002Fmain\u002Fpaper-download\u002Fscripts\u002Finstitutional_access\u002Fproviders.py",{"path":137,"resourceType":104,"resourceTypeDesc":105,"sizeBytes":138,"sourceHtmlUrl":139},"scripts\u002Finstitutional_access\u002FREADME.md",6948,"https:\u002F\u002Fgithub.com\u002FSanAntonio021\u002Fagents-skills\u002Fblob\u002Fmain\u002Fpaper-download\u002Fscripts\u002Finstitutional_access\u002FREADME.md",{"path":141,"resourceType":104,"resourceTypeDesc":105,"sizeBytes":142,"sourceHtmlUrl":143},"scripts\u002Finstitutional_access\u002Frequirements.txt",14,"https:\u002F\u002Fgithub.com\u002FSanAntonio021\u002Fagents-skills\u002Fblob\u002Fmain\u002Fpaper-download\u002Fscripts\u002Finstitutional_access\u002Frequirements.txt",{"path":145,"resourceType":104,"resourceTypeDesc":105,"sizeBytes":146,"sourceHtmlUrl":147},"scripts\u002Finstitutional_access\u002Frun.ps1",1021,"https:\u002F\u002Fgithub.com\u002FSanAntonio021\u002Fagents-skills\u002Fblob\u002Fmain\u002Fpaper-download\u002Fscripts\u002Finstitutional_access\u002Frun.ps1",{"path":149,"resourceType":104,"resourceTypeDesc":105,"sizeBytes":150,"sourceHtmlUrl":151},"scripts\u002Finstitutional_access\u002Fsession_store.py",6979,"https:\u002F\u002Fgithub.com\u002FSanAntonio021\u002Fagents-skills\u002Fblob\u002Fmain\u002Fpaper-download\u002Fscripts\u002Finstitutional_access\u002Fsession_store.py",{"path":153,"resourceType":104,"resourceTypeDesc":105,"sizeBytes":154,"sourceHtmlUrl":155},"scripts\u002Finstitutional_access\u002Ftests\u002F__init__.py",56,"https:\u002F\u002Fgithub.com\u002FSanAntonio021\u002Fagents-skills\u002Fblob\u002Fmain\u002Fpaper-download\u002Fscripts\u002Finstitutional_access\u002Ftests\u002F__init__.py",{"path":157,"resourceType":104,"resourceTypeDesc":105,"sizeBytes":158,"sourceHtmlUrl":159},"scripts\u002Finstitutional_access\u002Ftests\u002Ftest_browser_discovery.py",8140,"https:\u002F\u002Fgithub.com\u002FSanAntonio021\u002Fagents-skills\u002Fblob\u002Fmain\u002Fpaper-download\u002Fscripts\u002Finstitutional_access\u002Ftests\u002Ftest_browser_discovery.py",{"path":161,"resourceType":104,"resourceTypeDesc":105,"sizeBytes":162,"sourceHtmlUrl":163},"scripts\u002Finstitutional_access\u002Ftests\u002Ftest_cli_state.py",11218,"https:\u002F\u002Fgithub.com\u002FSanAntonio021\u002Fagents-skills\u002Fblob\u002Fmain\u002Fpaper-download\u002Fscripts\u002Finstitutional_access\u002Ftests\u002Ftest_cli_state.py",{"path":165,"resourceType":104,"resourceTypeDesc":105,"sizeBytes":166,"sourceHtmlUrl":167},"scripts\u002Finstitutional_access\u002Ftests\u002Ftest_finalize.py",12579,"https:\u002F\u002Fgithub.com\u002FSanAntonio021\u002Fagents-skills\u002Fblob\u002Fmain\u002Fpaper-download\u002Fscripts\u002Finstitutional_access\u002Ftests\u002Ftest_finalize.py",{"path":169,"resourceType":104,"resourceTypeDesc":105,"sizeBytes":170,"sourceHtmlUrl":171},"scripts\u002Finstitutional_access\u002Ftests\u002Ftest_handoff.py",9997,"https:\u002F\u002Fgithub.com\u002FSanAntonio021\u002Fagents-skills\u002Fblob\u002Fmain\u002Fpaper-download\u002Fscripts\u002Finstitutional_access\u002Ftests\u002Ftest_handoff.py",{"path":173,"resourceType":104,"resourceTypeDesc":105,"sizeBytes":174,"sourceHtmlUrl":175},"scripts\u002Finstitutional_access\u002Ftests\u002Ftest_pdf_tools.py",2711,"https:\u002F\u002Fgithub.com\u002FSanAntonio021\u002Fagents-skills\u002Fblob\u002Fmain\u002Fpaper-download\u002Fscripts\u002Finstitutional_access\u002Ftests\u002Ftest_pdf_tools.py",{"path":177,"resourceType":104,"resourceTypeDesc":105,"sizeBytes":178,"sourceHtmlUrl":179},"scripts\u002Finstitutional_access\u002Ftests\u002Ftest_providers.py",6677,"https:\u002F\u002Fgithub.com\u002FSanAntonio021\u002Fagents-skills\u002Fblob\u002Fmain\u002Fpaper-download\u002Fscripts\u002Finstitutional_access\u002Ftests\u002Ftest_providers.py",{"path":181,"resourceType":104,"resourceTypeDesc":105,"sizeBytes":182,"sourceHtmlUrl":183},"scripts\u002Finstitutional_access\u002Ftests\u002Ftest_session_store.py",2603,"https:\u002F\u002Fgithub.com\u002FSanAntonio021\u002Fagents-skills\u002Fblob\u002Fmain\u002Fpaper-download\u002Fscripts\u002Finstitutional_access\u002Ftests\u002Ftest_session_store.py",{"path":185,"resourceType":104,"resourceTypeDesc":105,"sizeBytes":186,"sourceHtmlUrl":187},"scripts\u002Ftests\u002Ftest_zotero_local_status.py",16071,"https:\u002F\u002Fgithub.com\u002FSanAntonio021\u002Fagents-skills\u002Fblob\u002Fmain\u002Fpaper-download\u002Fscripts\u002Ftests\u002Ftest_zotero_local_status.py",{"path":189,"resourceType":104,"resourceTypeDesc":105,"sizeBytes":190,"sourceHtmlUrl":191},"scripts\u002Fzotero_archive.py",5514,"https:\u002F\u002Fgithub.com\u002FSanAntonio021\u002Fagents-skills\u002Fblob\u002Fmain\u002Fpaper-download\u002Fscripts\u002Fzotero_archive.py",{"path":193,"resourceType":104,"resourceTypeDesc":105,"sizeBytes":194,"sourceHtmlUrl":195},"scripts\u002Fzotero_local_status.py",776,"https:\u002F\u002Fgithub.com\u002FSanAntonio021\u002Fagents-skills\u002Fblob\u002Fmain\u002Fpaper-download\u002Fscripts\u002Fzotero_local_status.py",[197,225,239,259,270,294],{"skillNo":198,"name":199,"nameZh":6,"description":200,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":201,"sourceHtmlUrl":202,"categories":203,"keywords":215,"publishedAt":48},"01M71F7NWCYRJG4C1WVFSDPS2H","writing-router","统一写作协作流程，并处理普通中文编辑。Use when 用户要撰写、重写、润色或审查项目书、技术方案、会前技术交流稿、系统说明、专利技术交底书、测试与结果分析、调研报告、会议纪要、中文或英文论文，先确定主稿、修改范围和协作方式，再结合对应专业技能完成正文、检查与写回；也直接处理界面文案、普通中文去 AI 味、删废话和无法直接归类的中文材料。投稿事务、停稿审查、文献检索和单纯文件排版由对应专门技能处理。","https:\u002F\u002Fgithub.com\u002FSanAntonio021\u002Fagents-skills\u002Fblob\u002Fmain\u002Fwriting-router\u002FLICENSE","https:\u002F\u002Fgithub.com\u002FSanAntonio021\u002Fagents-skills\u002Fblob\u002Fmain\u002Fwriting-router\u002FSKILL.md",[204,207,210],{"categoryNo":205,"categoryName":206,"taxonomyType":22,"taxonomyTypeDesc":23},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":208,"categoryName":209,"taxonomyType":22,"taxonomyTypeDesc":23},"01JBSEEDCAT000000000000018","写作与文案",{"categoryNo":211,"categoryName":212,"taxonomyType":213,"taxonomyTypeDesc":214},"01JBSEEDCAT000000000000036","内容创作者","PROFESSION","适用职业",[216,217,218,219,37,220,221,222,223,34,224],"router","writing","writing router","协作","文件","报告","testing","中文","文案",{"skillNo":226,"name":227,"nameZh":6,"description":228,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":229,"categories":230,"keywords":231,"publishedAt":48},"01M71F7F7J66P4K9SKXR9JD6KD","web-access","统一处理联网任务的工具选择，包括搜索、网页读取、下载和浏览器操作。 普通检索直接使用可用搜索或读取工具；抓取受阻、正文不完整时主动转到浏览器继续。 已知依赖登录态、动态内容或页面交互时直接使用浏览器，无需用户再次点名。","https:\u002F\u002Fgithub.com\u002FSanAntonio021\u002Fagents-skills\u002Fblob\u002Fmain\u002Fweb-access\u002FSKILL.md",[],[232,43,35,233,39,234,235,236,237,238,32],"web access","https","搜索","工具","github","Existing","交互",{"skillNo":240,"name":241,"nameZh":6,"description":242,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":243,"sourceHtmlUrl":244,"categories":245,"keywords":247,"publishedAt":48},"01M71F7C4AP46V8XEM7XX0HFYW","visiomaster","在 Windows 上将已确认的文字讨论或参考图片绘制为可编辑 Visio 流程图、系统架构图和端口连接图，并打开已有 .vsdx 按页面和 Shape ID 局部修改原生模块、文字、分组及连线，保留其他对象。用户要求画 Visio、生成 .vsdx、修改旧 Visio 图或多轮修订时使用。场景起图以 .scene.json 迭代，旧图以当前 .vsdx 迭代；不要求 Visio 的系统框图和科研配图交 research-schematic-imagegen，飞书文档或画板里的图交 lark-whiteboard，论文投稿图审查交 paper-figure-review。","https:\u002F\u002Fgithub.com\u002FSanAntonio021\u002Fagents-skills\u002Fblob\u002Fmain\u002Fvisiomaster\u002FLICENSE","https:\u002F\u002Fgithub.com\u002FSanAntonio021\u002Fagents-skills\u002Fblob\u002Fmain\u002Fvisiomaster\u002FSKILL.md",[246],{"categoryNo":25,"categoryName":26,"taxonomyType":22,"taxonomyTypeDesc":23},[241,31,248,47,249,30,250,251,252,253,254,255,256,257,258],"id","research","json","shape","文字","流程图","架构图","生成","image","imagegen","schematic",{"skillNo":260,"name":261,"nameZh":6,"description":262,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":263,"licenseFileUrl":264,"sourceHtmlUrl":265,"categories":266,"keywords":267,"publishedAt":48},"01M71F6VZN093VVJD7NCT809J9","skill-creator","创建、修改和改进技能，检查技能结构、触发说明及执行效果。根据实际影响选择文字检查、独立行为试跑或新旧对照，也提供按需使用的盲评、查看器、Claude 触发优化和打包工具。用户要求新建技能、调整流程、修复技能行为或比较技能效果时使用；普通业务任务不因此进入技能维护。","Apache-2.0","https:\u002F\u002Fgithub.com\u002FSanAntonio021\u002Fagents-skills\u002Fblob\u002Fmain\u002Fskill-creator\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002FSanAntonio021\u002Fagents-skills\u002Fblob\u002Fmain\u002Fskill-creator\u002FSKILL.md",[],[268,269,252,235],"creator","skill creator",{"skillNo":271,"name":272,"nameZh":6,"description":273,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":274,"sourceHtmlUrl":275,"categories":276,"keywords":284,"publishedAt":48},"01M71F5XZPZ7Y7YYNFSAEFSQXF","paper-search","为科研问题检索、扩展并核实论文证据，也负责正式参考文献生成、DOI\u002F元数据一致性核验和已有引用纠错。Use when 用户要找论文、查文献、补参考文献、找代表作\u002F最新进展\u002F相反证据，或说“继续找”“再深入”；正式引用任务核实相关条目的出版字段，复用可定位且未变化的核验结果，有具体疑点只核相关条目。仅 BibTeX 语法、样式、引用键对应和编译问题转 latex-paper，不因 IEEE\u002FBibTeX 关键词全查。普通检索快速返回可核实且去重的结果，联网用 web-access。已知论文下载转 paper-download，原文技术核对和审稿转 paper-review，整篇稿件引用覆盖检查转对应论文编辑或审查技能。普通参数或多渠道比较表转 xlsx，明确持续产品库或库契约审计转 product-research-workbook，远程写回转对应文档技能。","https:\u002F\u002Fgithub.com\u002FSanAntonio021\u002Fagents-skills\u002Fblob\u002Fmain\u002Fpaper-search\u002FLICENSE.md","https:\u002F\u002Fgithub.com\u002FSanAntonio021\u002Fagents-skills\u002Fblob\u002Fmain\u002Fpaper-search\u002FSKILL.md",[277,280,281],{"categoryNo":278,"categoryName":279,"taxonomyType":22,"taxonomyTypeDesc":23},"01JBSEEDCAT000000000000004","电子表格",{"categoryNo":25,"categoryName":26,"taxonomyType":22,"taxonomyTypeDesc":23},{"categoryNo":282,"categoryName":283,"taxonomyType":213,"taxonomyTypeDesc":214},"01JBSEEDCAT000000000000031","产品经理",[285,30,41,35,40,286,43,249,45,31,287,34,37,288,289,255,290,291,292,293],"paper search","product","关键词","product-research","ieee","local","adaptation","xlsx","evidence",{"skillNo":295,"name":296,"nameZh":6,"description":297,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":298,"sourceHtmlUrl":299,"categories":300,"keywords":303,"publishedAt":48},"01M71F4F14TKK63R4DR4KB2C97","humanizer","Remove signs of AI-generated writing from general English prose. Use when\nediting or reviewing general English text to make it sound more natural and\nhuman-written. Do not use for Chinese text, IEEE\u002FSCI manuscript delivery, or\nengineering proposal delivery; route those to writing-router,\nieee-manuscript-edit, or project-writing. Based on Wikipedia's comprehensive\n\"Signs of AI writing\" guide. Detects and fixes patterns including:\ninflated symbolism, promotional language, superficial -ing analyses, vague\nattributions, em dash overuse, rule of three, AI vocabulary words, passive\nvoice, negative parallelisms, and filler phrases.","https:\u002F\u002Fgithub.com\u002FSanAntonio021\u002Fagents-skills\u002Fblob\u002Fmain\u002Fhumanizer\u002FLICENSE","https:\u002F\u002Fgithub.com\u002FSanAntonio021\u002Fagents-skills\u002Fblob\u002Fmain\u002Fhumanizer\u002FSKILL.md",[301,302],{"categoryNo":208,"categoryName":209,"taxonomyType":22,"taxonomyTypeDesc":23},{"categoryNo":211,"categoryName":212,"taxonomyType":213,"taxonomyTypeDesc":214},[296,304,305,306,307,308,309,310,311,216,312,313,314,34,217,315,316,317,318,319],"vague","edit","delivery","wikipedia","human","em dash","route","text","english","patterns","dash","generated","remove","project","chinese","proposal"]