SCOTUS 案件准备 → reMarkable
给定一个案件名称(以及可选的卷宗号),收集规范的阅读文档集并将其上传到平板电脑的 <项目>/<案件>/ 目录下。
硬性规则
- 每个上传的文档都是您实际下载的真实 PDF。 在上传之前,验证每个文件是否以
%PDF开头。绝不要手动构造一个文档 URL 并假设其成功——必须实际获取并检查。 - 首先通过网络确认案件标题和卷宗号。 如果名称存在歧义(多个已受理的合并案件、共同当事人名称),在下载错误案件的摘要之前,先与用户确认。
- 诚实地报告遗漏的文件。 如果某个文件尚未提交、未公开或无法找到,在最终清单中明确说明。绝不要用类似文件替代。
步骤 1 — 解析案件
- 通过网络搜索案件名称,确认确切的标题和最高法院卷宗号(格式
NN-NNN,例如24-316)。可靠的确认来源包括:supremecourt.gov、SCOTUSblog 案件页面、Oyez。 - 注意案件是否与其他案件合并(获取主卷宗号;在清单中提及合并案件)。
- 记录辩论状态:尚未辩论 / 已辩论(可获得记录)/ 已判决。
步骤 2 — 下载文档(到临时目录,通过 curl 下载)
卷宗页面(所有提交文件的索引,包含 PDF 链接):
https://www.supremecourt.gov/search.aspx?filename=/docket/docketfiles/html/public/<卷宗号>.html
获取后提取 DocketPDF 链接。页面条目文本标识每个文件(“调卷令申请已提交”、“申请人摘要”、“美国法庭之友摘要”等)。
默认文档集(按阅读顺序排列——跳过尚不存在的文件;在清单中注明):
| # | 文档 | 来源 |
|---|---|---|
| 00 | 争议问题 | https://www.supremecourt.gov/qp/<任期>-<5位数字零填充编号>qp.pdf(例如卷宗号 24-316 → 24-00316qp.pdf) |
| 01 | 下级法院判决 | CourtListener(如下所示) |
| 02 | 调卷令申请 | 卷宗页面 |
| 03 | 反对摘要 | 卷宗页面 |
| 04 | 调卷令阶段回复 | 卷宗页面 |
| 05 | 申请人案情摘要(实质) | 卷宗页面 |
| 06 | 被申请人案情摘要(实质) | 卷宗页面 |
| 07 | 实质回复摘要 | 卷宗页面 |
| 08 | 美国/总检察长友情摘要(如有,任意阶段) | 卷宗页面 |
| 09 | 口头辩论记录(如已辩论) | https://www.supremecourt.gov/oral_arguments/argument_transcripts/ — 链接遵循 .../argument_transcripts/<任期>/<卷宗号>_<后缀>.pdf;在当期的记录索引页面上查找真实链接 |
其他友情摘要:不要默认全部下载(可能多达几十份)。告知用户有多少份已提交,并主动提供添加特定文件。
通过 CourtListener 获取下级法院判决: 搜索
https://www.courtlistener.com/api/rest/v4/search/?q=<案件名称>&court=<下级法院 ID>
或网站搜索,匹配调卷令申请中的卷宗号/案件标题(申请的前几页精确指出了下方判决)。然后使用法律研究技能的辅助工具,确定性地解析并下载 PDF(优先使用 CourtListener 存储的副本,失败时回退到法院自己的文件,保存前验证 %PDF 魔术字节):
python3 ${CLAUDE_PLUGIN_ROOT}/skills/legal-research/cl_case_tools.py pdf cluster:<集群ID> --out "01 下级法院判决.pdf"
(cluster_id 来自搜索结果;如果有判例引用,也可以使用)。如果 CourtListener 或法院网站上没有 PDF,调卷令申请的附录中包含下级法院判决——将其标记为回退方案,而不是上传未经验证的文件。
在访问 supremecourt.gov 时使用浏览器模拟的 User-Agent(裸 curl 会返回 403):curl -sL -A "Mozilla/5.0" -o <文件> <网址>。
步骤 3 — 上传到 reMarkable
工具:remarkable_* MCP 工具(如果未加载:ToolSearch "select:mcp__remarkable__remarkable_upload,mcp__remarkable__remarkable_mkdir,mcp__remarkable__remarkable_browse" — 根据连接服务器泄露的前缀调整)。
- 先裁剪边距 — 在每个 PDF 上运行此技能的
crop_pdf.py脚本,使文档在平板电脑上无空白边距打开(用户无需手动调整边框):uv run <此技能目录>/crop_pdf.py <文件名.pdf>如果退出码非零,表示未找到合理的内容框——此时上传未经裁剪的文件,而不是失败。 remarkable_mkdir→<项目>/<简短案件标题>(例如SCOTUS 准备/Smith v. Arizona)。- 按表格所示上传每个 PDF,命名为
NN 标题.pdf(保留编号以便按阅读顺序排序),例如02 调卷令申请.pdf、06 被申请人实质摘要.pdf。 - 之后使用
remarkable_browse浏览该文件夹,确认所有文件都已成功上传。
步骤 4 — 报告
向用户提供一个清单:案件标题、卷宗号、辩论日期/状态、每个已上传的文档(伴有卷宗页面显示的提交日期)、每个不可用的文档及其原因、合并案件以及友情摘要统计,并主动提供拉取特定文件。