mcpField
2
2026-legal-research-agent

2026-legal-research-agent

github.com/curiositech生产力257230 次安装2 天前更新
代码仓库

关于 2026-legal-research-agent

面向 National Expungement Guide 项目的法律研究技能,用于收集和核验各州的犯罪记录清除法律与相关资料。它提供官方来源优先级、Firecrawl 抓取配置、数据校验和缺口分析流程,不用于解释法律或提供法律建议。

主要功能

  1. 01各州权威法律来源定位
  2. 02Firecrawl 抓取任务配置
  3. 03抓取数据准确性校验
  4. 042026 年法律变更研究
  5. 05州级 URL 模式整理
  6. 06数据覆盖缺口分析

适用场景

  1. 01核查某州犯罪记录清除法规
  2. 02配置法院与立法网站抓取
  3. 03验证法规、表格及费用数据
  4. 04查找州级资料覆盖缺口

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/curiositech/some_claude_skills --skill 2026-legal-research-agent

安装后在 Claude Code 中输入/2026-legal-research-agent确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

.claude-plugin/
plugin.json
references/
clean-slate-timeline.md
url-patterns-by-state.md
scripts/
validate-scraped-data.ts

详细介绍

2026 年法律研究 Agent


何时使用此技能

在以下情况下使用此技能:

  • 查找权威法律来源,了解特定州的记录封存法律
  • 配置 Firecrawl 任务,抓取法院系统、立法机构或法律援助网站
  • 验证抓取的数据是否准确、完整
  • 研究 2026 年法律变更,包括 Clean Slate 法案和大麻相关记录封存
  • 构建 URL 模式,系统地逐州收集数据
  • 找出现有抓取数据覆盖范围中的缺口

请勿将此技能用于:

  • 解读法律含义(使用 national-expungement-expert)
  • 构建用户界面或组件
  • 向用户提供法律建议
  • 与法律数据无关的一般网页抓取

核心说明

1. 权威来源层级

研究记录封存法律时,按以下顺序优先选择来源:

Tier 1 (Primary Authority):
├── State Legislature websites (statute text)
├── State Court Administrative Office
└── State Attorney General publications

Tier 2 (Official Secondary):
├── State Bar Association guides
├── Court self-help centers
└── Public law databases (public.law, justia.com)

Tier 3 (Tertiary but Valuable):
├── Legal aid organizations (LSC grantees)
├── Law school clinics
└── Reentry organizations (CCRC, NACDL)

Tier 4 (Verification Only):
├── Commercial legal databases
├── News articles about law changes
└── Attorney blog posts

识别要点:新手会抓取 Google 搜索的第一个结果。专家知道,courts.{state}.gov 包含自助表格,而 legislature.{state}.gov 包含法条文本,两者缺一不可。

2. 各州类型的 URL 模式知识

各州组织法律资源的方式各不相同。请了解以下模式:

统一法院系统(法院负责所有事务):

California: courts.ca.gov/selfhelp-expungement.htm
Oregon: courts.oregon.gov/programs/exp/Pages/default.aspx
Washington: courts.wa.gov/forms/?fa=forms.contribute&formID=101

分立系统(立法机构与法院各自独立):

Texas: txcourts.gov (forms) + texas.public.law (statutes)
New York: nycourts.gov (forms) + nysenate.gov/legislation/laws (statutes)
Florida: flcourts.gov (forms) + leg.state.fl.us/statutes (statutes)

Public.law 州(法条托管质量出色):

oregon.public.law, california.public.law, texas.public.law
michigan.public.law, washington.public.law

识别要点:要知道,apps.leg.wa.gov/RCW/ 是华盛顿州的法条数据库,而 leg.wa.gov 是立法机构的通用网站——实际法律文本位于 RCW 子域名下。

3. 了解 2026 年法律格局

截至 2026 年,以下重大变化会影响研究:

Clean Slate 州(已通过自动记录封存法):

  • 宾夕法尼亚州(2018 年)、犹他州(2019 年)、新泽西州(2019 年)、密歇根州(2020 年)
  • 加利福尼亚州(2020 年)、康涅狄格州(2021 年)、特拉华州(2021 年)、弗吉尼亚州(2021 年)
  • 俄克拉荷马州(2022 年)、科罗拉多州(2022 年)、纽约州(2023 年)、明尼苏达州(2023 年)
  • 马里兰州(2024 年)、伊利诺伊州(2024 年)、俄勒冈州(2025 年)

大麻相关记录封存(具体法条):

  • 目前大多数州都有单独的大麻记录封存规定
  • 除了搜索“expungement”,还要搜索“cannabis conviction”
  • 检查追溯适用日期

需要核实的 2025—2026 年法律变更:

  • Oregon HB 2316(扩大资格范围)
  • California AB 1076(扩大自动救济范围)
  • 查看 CCRC 的 Restoration of Rights Project,了解最新情况

识别要点:“自动记录封存”并不意味着立即生效——宾夕法尼亚州的 Clean Slate 对逮捕记录设有 10 年等待期,且等待期因罪名而异。研究必须记录这些细节。

4. Firecrawl 配置专业知识

配置抓取任务时:

提取架构设计:

// For statute pages, extract:
{
  statuteCitation: "string",   // e.g., "ORS 137.225"
  title: "string",             // e.g., "Setting aside conviction"
  fullText: "string",          // Complete statute text
  effectiveDate: "string",     // When current version took effect
  lastAmended: "string",       // Most recent amendment date
  subsections: "array",        // Parsed subsections
}

// For court self-help pages, extract:
{
  stateName: "string",
  expungementPageUrl: "string",
  formsLibraryUrl: "string",
  selfHelpUrl: "string",
  contactPhone: "string",
  feeScheduleUrl: "string",
}

// For forms, extract:
{
  formNumber: "string",        // e.g., "MC-440"
  formTitle: "string",
  pdfUrl: "string",
  applicableTo: "array",       // ["misdemeanor", "arrest"]
  lastUpdated: "string",
}

政府网站的速率限制:

rateLimit: 2,  // 2 requests/second max for .gov sites
timeout: 90000,  // Government sites can be slow
maxRetries: 3,  // Retry on timeout
waitFor: 3000,  // Wait for JavaScript on modern court sites

识别要点:法条页面应设置 onlyMainContent: true(跳过导航栏等页面元素),但表格页面应设置 onlyMainContent: false(表格链接通常位于侧边栏)。

5. 数据验证清单

抓取完成后,请验证:

□ Statute citations match official format (e.g., "ORS" not "Or. Rev. Stat.")
□ Effective dates are parseable and reasonable (not future, not too old)
□ URLs are live and return 200 status
□ PDF form links actually download PDFs (not HTML error pages)
□ Phone numbers are in consistent format
□ Fee amounts are numeric and reasonable ($0-$500 typical range)
□ State code extracted correctly (watch for ambiguous URLs)

常见提取错误:

  • 将“oregon.public.law”匹配为“la”(路易斯安那州),而不是“or”(俄勒冈州)
  • 法条文本在 10,000 个字符处被截断(应提高上限)
  • 表格“最后更新”日期格式不一致
  • 将县级 URL 误认为州级 URL
6. 缺口分析流程

要找出某州缺失的数据:

# Check what we have
ls src/data/scraped/states/{state}/

# Expected files for complete coverage:
# - statutes.json (eligibility rules from statute text)
# - court-system.json (court URLs, contacts, forms links)
# - forms/ (actual PDF forms)
# - fees.json (filing fee amounts)
# - counties/ (county-specific court data)

# Cross-reference with state data file
grep -l "waitingPeriods\|eligibilityRules" src/data/states/{state}.ts

填补缺口的优先顺序:

  1. 法条(所有规则的基础)
  2. 法院表格(用户实际需要提交的材料)
  3. 费用信息(用户需要据此编制预算)
  4. 县级联系信息(提交材料的地点)
  5. 西班牙语资源(无障碍访问)

反模式

切勿做以下事情:
  1. 抓取时不限制速率 - 政府网站会封禁你
  2. 将二手来源中的法条文本当真 - 务必对照一手来源进行核实
  3. 假设 URL 模式一致 - 各州各不相同
  4. 忽略生效日期 - 法律会发生变化;抓取的数据需要带上时间戳
  5. 脱离州法律背景抓取县级网站 - 县级规则是补充,不能取代州法律
  6. 跳过自助服务部分 - 其中通常有最清晰的资格条件摘要
  7. 将所有州一视同仁 - Clean Slate 州的流程截然不同
常见错误:
❌ Scraping Wikipedia for statute text
✅ Scraping the state legislature's official code

❌ Using findlaw.com as primary source
✅ Using findlaw.com to find the citation, then scraping the official source

❌ Assuming "expungement" is the only term
✅ Searching for: expungement, sealing, set-aside, dismissal, destruction, pardons

❌ Treating waiting periods as simple numbers
✅ Capturing offense-specific waiting periods (felonies vs misdemeanors vs arrests)

项目特定背景

此技能专为 National Expungement Guide 项目设计:

现有基础设施
  • Firecrawl 脚本:scripts/firecrawl/
  • 任务定义:scripts/firecrawl/jobs.ts(P0-P4 优先级任务)
  • URL 配置:scripts/firecrawl/config.ts(全部 50 个州)
  • 输出路径:src/data/scraped/states/{state}/
  • 州数据:src/data/states/(每个州对应一个 TypeScript 文件)
运行抓取任务
# Set API key first
export FIRECRAWL_API_KEY=your_key

# Run P0 (state statutes + courts) - ~$0.20 cost
npx tsx scripts/firecrawl/run-p0.ts

# Dry run to preview
npx tsx scripts/firecrawl/run-p0.ts --dry-run

# Check reports
cat scripts/firecrawl/reports/p0-*.json
数据流
Firecrawl scrape → src/data/scraped/{state}/*.json
       ↓
Manual review + cleanup
       ↓
Integrated into src/data/states/{state}.ts
       ↓
Used by eligibility wizard + PDF generator

参考资料

参见 references/ 文件夹:

  • url-patterns-by-state.md - 全部 50 个州的完整 URL 模式
  • clean-slate-timeline.md - 每项 Clean Slate 法律的通过和生效时间
  • firecrawl-schemas.md - 所有使用的提取架构

示例工作流

用户请求:“研究加利福尼亚州 2026 年的犯罪记录封存法律,并抓取最新数据”

Agent 工作流:

  1. 检查现有数据:ls src/data/scraped/states/ca/
  2. 在 california.public.law 核实当前法条版本
  3. 通过 CCRC 或新闻搜索检查 2025-2026 年的法律变更
  4. 如果 URL 已变更,更新 scripts/firecrawl/config.ts
  5. 运行定向抓取:将加利福尼亚州专属 URL 添加到 P0 任务
  6. 根据已知法条引用验证提取的数据
  7. 记录发现的任何缺漏或变更

评论

支持 Markdown