본문으로 건너뛰기
cccskills
무료GitHub에 공개

citable

Citable builds an interactive cite-checking table for US court filings (briefs, memoranda, petitions, declarations, etc.). Every citation links to its pinpoint location in the record exhibit, the case (CourtListener), the statute (Cornell LII) or the treaty (flagged where one cannot be located), with a status and a note field per citation for the reviewer to fill. When the filing is revised, citable rebuilds the table, flags citation-related changes and carries the saved review forward. Use when the user asks to cite-check, build a citation table, link a brief's citations, or update a table for a revised draft.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

실행 점수 미검증

설치 방법 보기

포함된 파일(56)

  • SKILL.md15.9 KB
  • CHANGELOG.md1.2 KB
  • LICENSE33.2 KB
  • README.md5.4 KB
  • references/map-format.md6.0 KB
  • scripts/build_table.py142.1 KB
  • scripts/data/LICENSE-reporters-db1.3 KB
  • scripts/data/reporters.json91.9 KB
  • scripts/inventory.py2.9 KB
  • scripts/template.html28.4 KB
  • scripts/vendor/nupunkt/__init__.py27.7 KB
  • scripts/vendor/nupunkt/_version.py22 B
  • scripts/vendor/nupunkt/cli_model_utils.py7.4 KB
  • scripts/vendor/nupunkt/cli.py19.9 KB
  • scripts/vendor/nupunkt/core/__init__.py35 B
  • scripts/vendor/nupunkt/core/base.py5.0 KB
  • scripts/vendor/nupunkt/core/constants.py2.7 KB
  • scripts/vendor/nupunkt/core/language_vars.py4.0 KB
  • scripts/vendor/nupunkt/core/parameters.py11.6 KB
  • scripts/vendor/nupunkt/core/tokens.py9.9 KB
  • scripts/vendor/nupunkt/data/general_abbreviations.json966 B
  • scripts/vendor/nupunkt/data/legal_abbreviations.json22.6 KB
  • scripts/vendor/nupunkt/document.py11.1 KB
  • scripts/vendor/nupunkt/evaluation/__init__.py923 B
  • scripts/vendor/nupunkt/evaluation/dataset.py6.8 KB
  • scripts/vendor/nupunkt/evaluation/evaluator.py9.8 KB
  • scripts/vendor/nupunkt/evaluation/metrics.py9.1 KB
  • scripts/vendor/nupunkt/hybrid/__init__.py1.3 KB
  • scripts/vendor/nupunkt/hybrid/adaptive_tokenizer.py17.5 KB
  • scripts/vendor/nupunkt/hybrid/confidence_tokenizer_fixed.py13.3 KB
  • scripts/vendor/nupunkt/hybrid/confidence_tokenizer.py12.0 KB
  • scripts/vendor/nupunkt/layout.py9.1 KB
  • scripts/vendor/nupunkt/LICENSE1.0 KB
  • scripts/vendor/nupunkt/models/__init__.py4.0 KB
  • scripts/vendor/nupunkt/models/default_model.json.gz25.6 KB
  • scripts/vendor/nupunkt/optimization/__init__.py722 B
  • scripts/vendor/nupunkt/optimization/discovery.py1.4 KB
  • scripts/vendor/nupunkt/optimization/hyperparameter.py12.5 KB
  • scripts/vendor/nupunkt/py.typed0 B
  • scripts/vendor/nupunkt/segmentation.py7.1 KB
  • scripts/vendor/nupunkt/tokenizers/__init__.py250 B
  • scripts/vendor/nupunkt/tokenizers/paragraph_tokenizer.py7.8 KB
  • scripts/vendor/nupunkt/tokenizers/sentence_tokenizer.py47.6 KB
  • scripts/vendor/nupunkt/trainers/__init__.py118 B
  • scripts/vendor/nupunkt/trainers/base_trainer.py50.5 KB
  • scripts/vendor/nupunkt/training/__init__.py547 B
  • scripts/vendor/nupunkt/training/core.py14.2 KB
  • scripts/vendor/nupunkt/training/hyperparameters.py6.4 KB
  • scripts/vendor/nupunkt/training/optimizer.py6.0 KB
  • scripts/vendor/nupunkt/utils/__init__.py655 B
  • scripts/vendor/nupunkt/utils/compression.py12.1 KB
  • scripts/vendor/nupunkt/utils/iteration.py1.4 KB
  • scripts/vendor/nupunkt/utils/paths.py5.1 KB
  • scripts/vendor/nupunkt/utils/statistics.py2.9 KB
  • scripts/vendor/nupunkt/workflows/__init__.py324 B
  • scripts/vendor/nupunkt/workflows/automated_training.py9.6 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

citable

Produces citable-<document>.html (+ .csv) in the case folder: a local page, opened in Chrome, that locates sources. This is pattern-matched review: the scripts find and link the citations; the reviewer keeps the judgment role, checking each citation and recording the result in the status and note fields. For lawyers and paralegals cite-checking their own or an opponent's US filing.

Requirements

Run on the user's computer (device shell) in the folder holding the filings and exhibits. Check once: python3 (3.10+) with pdfplumber + Pillow; pdftotext, pdftoppm (poppler); tesseract (only for exhibits whose ¶ numbers are images). Missing tesseract → those links are marked approximate (amber), not wrong. Scripts: scripts/inventory.py, scripts/build_table.py (needs scripts/template.html, scripts/data/ and scripts/vendor/ beside it; bundled, nothing to install). Copy the whole scripts/ folder into the case folder's parent or run it from the skill directory; never write into the user's PDFs. If the skill directory is not on the user's computer, copy the scripts as citable-scripts.tar.gz into the case folder (never into citable-backups/), unpack them to a scratch directory outside it, and tell the user the archive can be deleted. --out <path stem> writes the table elsewhere (links still reach the case folder). Before overwriting a table, the build copies it and its CSV to citable-backups/ beside it (timestamped; the user can delete old copies).

Workflow

  1. Ask which filing(s) to process (one table per filing) and confirm the case folder (where the filing and record exhibits sit). Tell the user that documents cited by name (unlettered exhibits, locally saved authorities) are matched to files by name, so file names should resemble how the filing cites them (see step 3). If the filing is a Word file, tell the user: "citable v1.0 is designed to work with PDFs. If your draft is in Word, make a copy, accept all tracked changes, delete all comments, and save the copy as a PDF (File → Save As → PDF), and then run citable on that copy." If the filing, or a document it cites with a pinpoint, has no text layer (an image-only scan), stop and say it must be OCR'd first (the build refuses such a filing); one cited without a pinpoint may be mapped once identified (tell the user). If it is not a US court filing (e.g. an arbitral memorial), say that case-law and statute links will not work, but record documents and any authorities saved in the folder will link once mapped.
  2. Inventory: python3 scripts/inventory.py "<case>". Note each PDF's role, ECF numbers, text_para_markers, margin_para_images, exhibit_refs and stamps_first_page (other courts' ECF documents and NYSCEF numbers found in each file; the build uses these stamps to link docket and NYSCEF citations to copies in the folder). If a document cited by ¶ (e.g. an arbitral award) has no ¶ numbers in its text layer (text_para_markers near 0), check margin_para_images: roughly one or more per page suggests the ¶ numbers are images. That is a signal, not proof (logos and stamps also count), so render one page (pdftoppm) and look at it before listing the document in para_image_docs.
  3. Draft citable-map.json in the case folder (format: references/map-format.md):
    • exhibits: letter/number → file, from the declaration's "attached … as Exhibit X" sentences, filenames and ECF attachment numbers. An exhibit that is only pages inside another file is mapped as {"file": …, "pages": "20-25"}; do not create new files. If two filings use the same exhibit letters for different documents, use one map per side.
    • docs: every other file the filing cites by name rather than exhibit label: other filings ("X Dec": "X decl.pdf"), exhibits not yet lettered ("2026-09-10 medical report": "2026-09-10 Medical Report (Dr Y).pdf"), and authorities saved in the folder ("CL-12": "CL-12 Tza Yap Shum v Peru.pdf"). Use the name exactly as the filing uses it. Each links by ¶, by page, or (no pinpoint) to its first page. If no file plausibly matches a name, or two do, ask; do not guess.
    • record_terms: defined terms that mean an exhibit ("Award" → A), including deposition short names ("Vavra Dep." → A, so "Vavra Dep. 124:19-21" links).
    • authorities: every case in the filing. Look each one up with the CourtListener connector (analyze_citations on the table of authorities or the citation list, which is one call). Record the opinion URL, a short name as the filing uses it, and cl_name only if CourtListener's name differs. Not found → leave it out (the table marks it amber). Then check page markers on the opinion CourtListener displays for the case (the combined opinion if the cluster has one, else the lead; take opinion ids from cluster_opinions, never cluster ids): search_document for the cited reporter's page after the first page (e.g. *663 for 556 U.S. 662), up to 10 opinion ids per call. Found in a star-pagination span → "markers": true; otherwise false (<page-number> markers cannot be link targets), plus "marker_reporter" if the copy marks a parallel reporter's pages instead (e.g. Iqbal's shows *1942: "129 S. Ct. 1937"). Add "stub": true if there are no markers and the text is under about 5,000 characters. Pinpoints are green only where markers is true. CourtListener allows about 125 requests a day and 50 an hour: tell the user before starting how many cases need marker checks (unchecked ones stay amber), and check cases cited with a pinpoint first. A cite CourtListener resolves to a different case gets no_link (see the format note), not omission.
    • unreported: each Westlaw/Lexis cite that gives a docket number, court and date. Search CourtListener RECAP (search, type rd, court, docket_number, entry dates ±2 days) for the opinion, order or report and recommendation filed that day; take its filepath_local (recap-documents endpoint) → recap = https://storage.courtlistener.com/<filepath_local>, plus entry (court, docket, Dkt. number). If the match is doubtful (e.g. an order adopting a report and recommendation, which then holds the cited passage), say so in the map summary. Decision not in RECAP → docket_url and note. Where the filing quotes the decision at a star page, search the RECAP document for a short exact phrase of the quote and record the PDF page in pages (find it from the page stamps or page breaks around the match); a paraphrase gets no page. These links are always amber.
    • dockets (only if the filing cites docket entries): per case number, the CourtListener docket URL and short descriptions of the cited entries (from the docket). nyscef: the index number, and a file only where the stamps do not show one. doc_series and numbered_paragraphs: see the format note.
    • treaties: rule = copy in the record first, else the official reporter. For a UN Treaty Series link you need the registration number (search treaties.un.org); URL pattern https://treaties.un.org/doc/Publication/UNTS/Volume%20<vol>/volume-<vol>-I-<regno>-English.pdf. Confirm the URL resolves before recording it.
  4. Show the map to the user and get confirmation before building. Never guess an exhibit or document mapping. Only after the user confirms, record "confirmed": {"by": "<name>", "date": "<YYYY-MM-DD>", "sha256": "<output of python3 scripts/build_table.py --fingerprint citable-map.json>"}. The build refuses an unconfirmed map, or one changed since it was confirmed. Any later addition or change (including for a second filing, and remapping exhibits to OCR'd copies) is shown and confirmed again, with a new fingerprint.
  5. Build: python3 scripts/build_table.py "<case>" "<filing>.pdf" citable-map.json. If it stops for finding no citations, tell the user; add --allow-no-citations only once they confirm the filing cites nothing. If a table for that filing already exists, its saved (or previously carried) statuses and notes are carried forward automatically, and the old table is kept in citable-backups/. For a revised draft with a new filename, add --previous "<old table>.html". Only work the reviewer has saved carries forward, so tell them to click Save first.
  6. Report in chat (briefly): number of citations; links to the exact page; each amber/red link and why; any MAP WARNING, COVERAGE WARNINGS, FORMAT WARNINGS and POSSIBLY MISSED lines printed by the build (these are for the user, never put them in the page); the "not treated as citations" list; on updates, the changed, relinked, reworded, new and removed counts.
  7. Suggest the reviewer check the table against the filing once for missed citations.

If a script crashes or plainly misses a kind of citation, tell the user what failed. Change the scripts only with the user's agreement, and list the changes.

What the table does

  • Each passage appears once, with its citations highlighted and numbered and the filing's formatting kept. There is one sub-row per citation with links, a cite-check status (check pending / confirmed / partial support / unsupported) and a note. A citation with several pinpoints is one citation.
  • Link dot: green = exact page, amber = approximate (e.g. an ambiguous Id., a docket search or listing, a record cite whose pinpoint the script could not read, a web address taken from the filing, a PDF page used because the document has no printed page numbers), red = unresolved (e.g. a ¶ that does not exist in the exhibit, with the reason shown), grey = listed for checking but not linked (supra; Westlaw/Lexis cites not found on CourtListener; state statutes; local rules; another case's docket entries; no_link cites).
  • Record pinpoints: ¶, page, section ("§1.2"), transcript page:line (via the printed page numbers, incl. condensed transcripts) and Bates numbers (read exactly from the text layer). An exhibit to an exhibit ("Exhibit A to Exhibit BB") links to the outer exhibit (amber). A deposition exhibit inside an exhibit ("Ex. H, Smith Dep. Ex. 9, at 2") links to its own map entry if it has one (map it as a page range of Ex. H); if not, its page is counted from its slip sheet or exhibit sticker in Ex. H, or Ex. H opens at its first page, amber either way; only a Bates number read in Ex. H stays green. A record cite followed by numbers the script could not read is amber, never green.
  • Footnotes are found by matching the numbers called in the text to the footnote that starts with that number; a continued footnote is recognised by smaller type or single spacing (in a double-spaced filing), with the divider line only as a fallback. A number called twice is read with the next footnote of that number. Two footnotes with one number on one page, called once, are both read (number small or full-size) if the line above the second ends a sentence; a wrapped line that begins with the number ("28 U.S.C. § 1331") stays in its footnote. Each pair gives a FORMAT WARNING; so does a line that begins with the number but follows a line that does not end a sentence (it is read as a continuation). A repeated number on a later page is not detected.
  • Id. is resolved through record and case citations, skipping sources cited in explanatory parentheticals ("quoting …"). If a footnote cite sits between Id. and its text antecedent, the row is amber and explained. An Id. with a ¶ pinpoint after a case citation is red (cases are not cited by ¶) and names the last record citation. An Id. with a page pinpoint ("Id. at 1") whose source was cited by transcript page:line keeps its literal link, amber (the filing may mean another document).
  • Page pinpoints use the document's own printed page numbers; with no printed numbers, the PDF page. Where the document also carries ECF page stamps and the two numberings differ, a second link opens the ECF page; both are green and their hover text says to check which reading the filing means. "[Bates range] at N" counts N pages from the first Bates number (amber).
  • Case pinpoints open CourtListener at the page marker (Chrome text fragment); reporters and their variant abbreviations come from Free Law Project's reporters-db. Where CourtListener's copy has no page markers a link can jump to, marks another reporter's pages, or has little text, the link is amber and says so; state-reporter links remind the reviewer to check that the marker is for the cited reporter. A pinpoint before the first page is red; one more than 150 pages after it is amber. Westlaw/Lexis cites found on CourtListener open the court's PDF (amber): at the page holding the quoted passage where the map records one, otherwise at p. 1.
  • Docket citations (Docket/ECF/Dkt./Doc. No., with "at P" or "¶ N" pinpoints) and NYSCEF citations link to the copy in the case folder (found from the filing stamps) where there is one, otherwise to the CourtListener docket listing (amber). Entries of another case's named docket ("(IOEngine Docket) … Doc. Nos. 1, 12") are listed (grey), not linked. Federal rules and statutes open on LII; CPLR sections on the New York Senate site; state statutes (e.g. ILCS, Mass. Gen. Laws, Cal. … Code §) are listed (grey) but not linked. See footnote N links to the footnote.
  • A citation standing as its own sentence takes the sentence before it as its proposition.
  • If a rebuild finds the map now sends a citation elsewhere, the row is flagged "relinked" and its status reset (the note is kept).
  • Statuses and notes are held only in the open page until Save writes them into the HTML file (Chrome can overwrite the original; otherwise a copy goes to Downloads), so tell the reviewer to save frequently. Export CSV is also available. "Promote to proposition for checking" moves a reference-only item into the table.

Confidentiality

The page makes no network calls and stores nothing in the browser; a clicked link tells that site which source is opened. Statuses and notes live in the saved HTML file (or a copy in Downloads); Export CSV also writes to Downloads. The page, its backups in citable-backups/ and the CSV contain the filing's text and the review: treat them as attorney work product.

Limits (say so if relevant)

PDFs need a text layer. OCR'd PDFs are fine. Image-only scans must be OCR'd first. OCR errors in the filing itself can cause missed citations; OCR misreads of Bates stamps or transcript page numbers make those links amber (first page). supra is listed but not linked. Case pinpoints jump only where CourtListener's copy marks the cited reporter's pages. State statutes and local rules are listed but not linked, and less common forms may be missed. A case cited only by name ("Masud,") or only by docket number is not read. Treatises and secondary sources are not detected. Less common state reporters may be missed. Uncited factual sentences are not flagged. Reading ends at the filing's signature line. Without one (e.g. a draft), it stops at a table of contents that follows a body heading (e.g. Introduction, Argument) or numbered paragraphs, read as an attached document (COVERAGE WARNING); otherwise the whole file is read, including any attachments. Body text before a table of contents is discarded as cover material if it has neither (COVERAGE WARNING if it is long). A notice of motion with its own signature, followed by its memorandum in the same PDF, is read only to the notice's signature (COVERAGE WARNING); split the PDF to table the memorandum. A bold heading in sentence case without an outline marker may be read as body text.

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Public-safe preliminary screen for challenges to the impartiality of an AI evaluator, LLM-as-a-judge, decision-support agent, or adjudicative system based on prior outputs, suspected bias, unstable reasoning, or self-reinforcing memory. Use when asked whether an AI should be recused, disqualified, replaced, audited, or escalated. Does not decide real cases or claim that human judicial-recusal doctrine automatically applies.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

lawve-ai/awesome-legal-skills8942026년 10월 20일 업데이트

Creates an Agent Authority Charter for enterprise or regulated AI agents before deployment. Use this Skill when a user needs to define what an AI agent is allowed to do, who delegated authority to it, what actions are permitted or prohibited, when human approval is required, what evidence must be preserved, and how the agent can be suspended, revoked, or escalated.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

lawve-ai/awesome-legal-skills8942026년 10월 20일 업데이트

EU AI Act Knowledge Engine — authoritative regulatory Q&A grounded in 70 official EU source documents (including the 2026 Commission draft guidelines on Art. 6 high-risk classification — general principles, Annex I, Annex III). Answers any question about the AI Act with article-level citations from the full regulation text, Commission guidelines, EDPB/EDPS opinions, codes of practice, harmonised standards, FRIA guides, incident templates, and sector-specific guidance. This skill should be used when the user asks about the "EU AI Act", "AI Act regulation", "Regulation 2024/1689", "KI-Verordnung", asks to "explain an AI Act article", "what does Article X say", "AI Act requirements", "AI Act penalties", "AI Act timeline", "GPAI obligations", "high-risk AI", "prohibited AI practices", "AI Act and GDPR", "fundamental rights impact assessment", "AI Act standards", "AI Act national implementation", "AI literacy", "serious incident reporting", "Digital Omnibus", "AI regulatory sandbox", or any question about EU artificial intelligence regulation. Also triggers on German terms: "KI-Gesetz", "KI-Verordnung", "Hochrisiko-KI", "KI-Kompetenz", "Grundrechte-Folgenabschaetzung", "GPAI-Verhaltenskodex". For assessment workflows that produce a classification decision rather than a knowledge answer, offer to run a structured risk-tier classification in-session.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

lawve-ai/awesome-legal-skills8942026년 10월 20일 업데이트

This skill builds a structured audit trail of an AI-assisted task: what the tool was asked to do, what materials it was given, what it produced, how the output was verified, and what was ultimately relied upon. It documents the workflow for supervision and later review without ruling on privilege or disclosure, so the record stays accurate rather than self-serving.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

lawve-ai/awesome-legal-skills8942026년 10월 20일 업데이트

Use this skill when the user wants an AI governance, legal-risk, privacy, compliance, procurement, or vendor-risk review of an internal AI use case, an AI product feature, an LLM workflow, or a third-party AI vendor. The skill asks intake and clarifying questions first when facts or evidence are missing, identifies required documentation and missing evidence, maps the use case to AI governance frameworks and applicable legal domains, and produces a preliminary or final governance review with scorecards, findings, owners, remediation actions, and follow-up questions.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

lawve-ai/awesome-legal-skills8942026년 10월 20일 업데이트

Turn an interpretive-ambiguity audit of a legal text — contract, statute, regulation, or judicial opinion — into a polished deliverable. Produces a multi-page website (default), a single-page interactive site, a Microsoft Word document, a PowerPoint deck, or a LaTeX/PDF. Use whenever a user has a stress-test result, ambiguity audit, or "where will this be litigated" scenarios and wants to publish, present, or share them. Triggers on "publish the audit," "make a report from this," "turn this into a website / deck / brief / Word doc," "make a Netlify site," "build slides of these ambiguities," "render the scenarios," "package this stress test," "produce a LaTeX version," and similar. Pairs with the ambiguity-stress-test skill (the underlying analysis) but works on any structured or semi-structured ambiguity analysis. Visual design is opinionated but the user can override colors, fonts, and brand label. Most formats need Python and a writable filesystem; single-file HTML works where the host has neither.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

lawve-ai/awesome-legal-skills8942026년 10월 20일 업데이트

lawve-ai의 스킬 모두 보기

이 스킬의 문제 신고