最高法院案件準備 → 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/<DOCKET>.html
擷取該頁面並提取 DocketPDF 連結。條目標題會識別每個提交文件(「調卷令申請書已提交」、「申請人答辯狀」、「美國政府法庭之友意見書」等)。
預設文件集(依閱讀順序——若尚未存在則跳過,並在清單中註明):
| # | 文件 | 來源 |
|---|---|---|
| 00 | 問題陳述 | https://www.supremecourt.gov/qp/<TERM>-<5-digit-zero-padded-number>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/<TERM>/<docket>_<suffix>.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:<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 <file.pdf>非零退出碼表示未找到合理的內容框——此時上傳未裁切的檔案,而不是失敗。 remarkable_mkdir→<專案>/<短標題>(例如SCOTUS Prep/Smith v. Arizona)。- 依照上表將每個 PDF 命名為
NN 標題.pdf(保留數字以便依閱讀順序排序),例如02 調卷令申請書.pdf、06 被申請人實體答辯狀.pdf。 - 之後使用
remarkable_browse瀏覽該資料夾,確認所有檔案都已成功上傳。
步驟 4 — 報告
向使用者提供一份清單:案件標題、案號、辯論日期/狀態、每個已上傳的文件(附上案卷頁面顯示的提交日期)、每個不可用的文件及其原因、相關案件,以及法庭之友意見書數量,並提供下載特定文件的選項。