bib: public-reaction series per code family — docket comment counts + stance, and FR Comment/Response pairs as the pre-2017 proxy #690
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Spec docs/superpowers/specs/2026-09-09-code-family-longitudinal-design.md (
bib/reaction.py).What is in the corpus. Ten sealed dockets CMS-2017-0092 … CMS-2026-2377. Abstract-level mentions per docket (2017→2026): CCM 5 / 19 / 6 / 11 / 24 / 2 / 5 / 10 / 174 / 27; APCM 19 in CMS-2024-0256 (the year it was proposed), 25, 5; G2211 3,353 in CMS-2023-0121 (the year it was activated), then 146 and 190; telehealth ≈10–13k per docket 2020–2023. These are abstract hits — chunk-level counts after the anchors issue will be higher (1,507 comment items mention 99490/CCM in chunk text).
Before 2017 the only public record is the FR itself:
Comment:/Response:paragraph pairs, e.g. CY2015 CCM valuation ("Many commenters recommended a higher valuation … adopt the RUC-recommended values for CPT code 99490",DE2VH9PD¶1255, 79 FR 67717) and the calendar-month dispute (¶1248/¶1249). That series runs back to CY2002 (84 anchored rules).What.
pfs.code_reaction(family, docket_or_rule, year, n_comments, share_of_docket, stance_support, stance_oppose, stance_modify, top_orgs_json, sample_anchors_json). Stance = closed vocabulary via the local model (P35 pipeline); orgs from existingorg:tags. FR pairs: pair eachComment:paragraph with its followingResponse:when either mentions a family code.Done when a notebook plots CCM, APCM, G2211 and telehealth reaction over 2015–2026 from the table, every bar drills to anchored comments/paragraphs, and the chat's sources for "what did commenters say about G2211 in 2023" include CMS-2023-0121 comments.
Progress (branch worktree-p49-anchors-2, unmerged):
stack pfs reaction --family … [--code …] [--stance-sample N] [--write](5af8c1f+ fix9b173d3) builds the public-reaction series per family and storespfs.code_reaction. Per docket: distinct commenters whose chunks carry the family (n_items) over the docket's distinct commenters (n_total), one GROUP BY over the comments collection; optional stance sample (newest N commenters, one chunk each, self-hosted closed-vocab classifier: support/oppose/modify/unclear). Pre-2017 proxy: FRComment:/Response:pairs per rule that name a family code (a comment spans its continuation paragraphs up to the response).Live: G2211 spikes exactly where expected — 3,663 of 22,021 commenters in CMS-2023-0121 (CY2024 cycle), versus 29 in CMS-2022-0113 and 126 in CMS-2024-0256. CCM runs 29 (2017) → 62 (2019) → 155 (CMS-2025-0304) commenters per docket; APCM first appears in CMS-2025-0304 (39). CCM FR pairs back to CY2015: 47 pairs across the rules (the continuation-paragraph fix added 8, including CY2015's 3). The 30-sample CCM stance run finished in under a minute (273 classifier calls); classification now runs before the DuckDB write lock is taken.
Merged to main as
4616d36(branch worktree-p49-anchors-2, Tasks 4–8 of the anchors plan; suite 14,944 passed). Residue parked by rulings is tracked in #705 (CPT manual as a chat source, IOM page locating, MLN resolver, shared SQL predicate, key case).