Files
stack/dev
kert 8982633860
Some checks failed
CI / skinny-install (bcda) (push) Successful in 38s
CI / skinny-install (conf) (push) Successful in 28s
CI / skinny-install (perf) (push) Successful in 31s
CI / skinny-install (pfs) (push) Successful in 30s
CI / skinny-install (rex) (push) Successful in 33s
Infra CI / docs (push) Failing after 6s
Infra CI / api (push) Successful in 28s
Infra CI / mc (push) Successful in 10s
CI / skinny-install (aco) (push) Successful in 1m17s
CI / skinny-install (api) (push) Successful in 37s
CI / lint-test (push) Failing after 1m59s
CI / skinny-install (bib) (push) Successful in 31s
CI / skinny-install (bls) (push) Successful in 28s
CI / skinny-install (ccw) (push) Successful in 31s
CI / skinny-install (cms) (push) Successful in 28s
CI / skinny-install (cli) (push) Successful in 39s
Infra CI / zotero (push) Successful in 7s
CI / lint-test (pull_request) Failing after 1m32s
Infra CI / notebooks (push) Successful in 3m15s
CI / skinny-install (aco) (pull_request) Successful in 49s
CI / skinny-install (bcda) (pull_request) Successful in 32s
CI / skinny-install (api) (pull_request) Successful in 41s
CI / skinny-install (bls) (pull_request) Successful in 30s
CI / skinny-install (bib) (pull_request) Successful in 35s
CI / skinny-install (ccw) (pull_request) Successful in 27s
CI / skinny-install (cli) (pull_request) Successful in 36s
CI / skinny-install (cms) (pull_request) Successful in 24s
CI / skinny-install (conf) (pull_request) Successful in 29s
CI / skinny-install (perf) (pull_request) Successful in 49s
CI / skinny-install (pfs) (pull_request) Failing after 45s
CI / skinny-install (rex) (pull_request) Successful in 28s
Infra CI / notebooks (pull_request) Successful in 16s
Infra CI / zotero (pull_request) Successful in 6s
Infra CI / api (pull_request) Successful in 6s
Infra CI / mc (pull_request) Successful in 7s
Infra CI / docs (pull_request) Successful in 44s
feat: rex.comments — CMS rulemaking comment analysis module (refs #251-#256)
New subpackage: src/rex/comments/ for downloading, extracting, classifying,
and analyzing public comments on CMS rulemaking dockets.

Modules:
- models.py — Comment and Attachment dataclasses
- client.py — regulations.gov API v4 client (fetch, download, cache)
- extract.py — PDF (pypdf) and DOCX (python-docx) text extraction
- classify.py — 5-point position scale + 11 theme tags via weighted regex
- coordination.py — stakeholder segmentation, Jaccard n-gram form letter
  detection, provision mapping
- store.py — DuckDB skin_subs.rulemaking_comments table

Pipeline script: dev/scripts/analyze_rulemaking_comments.py
- --demo mode with 15 synthetic comments for development
- --docket for live regulations.gov fetch (requires API key)
- --cache for offline analysis from JSON

Demo results: 15 comments, 1 coordinated campaign (7 form letters),
position split 9 oppose / 2 neutral / 2 support.

Reference: jacobmr/hti5 methodology adapted for CMS skin sub dockets.
2026-03-25 15:40:13 -04:00
..