Summary
Two slug names in committees.py (LS_COMMITTEES / RS_COMMITTEES) elide the analytically load-bearing portion of the committee's mandate and make those committees undiscoverable to researchers working on non-obvious policy domains.
Specific cases
1. transport (RS_COMMITTEES, mstCommId=20)
Full committee name: "Transport, Tourism and Culture". Three coequal ministries. A researcher pulling committee reports on a Culture-mandate topic — public libraries, museums, archives, archaeology, heritage — would scan the slug list looking for culture, find none, and either give up or have to read committees.py source to discover that transport is the right slug. The Ministry of Culture's Demands for Grants reports (e.g. RS #310 "Demands for Grants 2022-23 of the Ministry of Culture") sit behind this slug.
2. science (RS_COMMITTEES, mstCommId=19)
Full committee name: "Science and Technology, Environment, Forests and Climate Change". Anyone pulling environment-policy reports — climate, forests, pollution monitoring, EIA scrutiny — would not guess science.
Proposal
Non-breaking change: add aliases, keep existing slugs working.
RS_COMMITTEES: dict[str, tuple[str, int]] = {
...
"transport": ("Transport, Tourism and Culture", 20),
"culture": ("Transport, Tourism and Culture", 20), # alias, preferred
"science": ("Science and Technology, Environment, Forests and Climate Change", 19),
"environment": ("Science and Technology, Environment, Forests and Climate Change", 19), # alias, preferred
...
}
culture and environment would be documented as the canonical / preferred slugs in the user-facing docs (README and/or --help text; maintainer's call). transport and science continue to work, marked as accepted-but-deprecated. Removal of the deprecated forms can wait for a v2.0 major bump.
Same pattern would apply to any other LS/RS slugs that elide load-bearing mandate portions; flagging only the two clearest cases here.
Discoverability fix
Independent of the rename, a list-committees CLI subcommand that prints slug -> full name (committee code) for both houses would let users discover the mapping without reading source.
Acceptance criteria
Context
Filed after the first end-to-end run of crawl-committees against a Culture-mandate topic profile, where the slug transport was not discoverable from any user-facing source (README, --help text). The committee mapping is currently only legible by reading the source of committees.py.
Summary
Two slug names in
committees.py(LS_COMMITTEES/RS_COMMITTEES) elide the analytically load-bearing portion of the committee's mandate and make those committees undiscoverable to researchers working on non-obvious policy domains.Specific cases
1.
transport(RS_COMMITTEES,mstCommId=20)Full committee name: "Transport, Tourism and Culture". Three coequal ministries. A researcher pulling committee reports on a Culture-mandate topic — public libraries, museums, archives, archaeology, heritage — would scan the slug list looking for
culture, find none, and either give up or have to readcommittees.pysource to discover thattransportis the right slug. The Ministry of Culture's Demands for Grants reports (e.g. RS #310 "Demands for Grants 2022-23 of the Ministry of Culture") sit behind this slug.2.
science(RS_COMMITTEES,mstCommId=19)Full committee name: "Science and Technology, Environment, Forests and Climate Change". Anyone pulling environment-policy reports — climate, forests, pollution monitoring, EIA scrutiny — would not guess
science.Proposal
Non-breaking change: add aliases, keep existing slugs working.
cultureandenvironmentwould be documented as the canonical / preferred slugs in the user-facing docs (README and/or--helptext; maintainer's call).transportandsciencecontinue to work, marked as accepted-but-deprecated. Removal of the deprecated forms can wait for a v2.0 major bump.Same pattern would apply to any other LS/RS slugs that elide load-bearing mandate portions; flagging only the two clearest cases here.
Discoverability fix
Independent of the rename, a
list-committeesCLI subcommand that printsslug -> full name (committee code)for both houses would let users discover the mapping without reading source.Acceptance criteria
cultureaccepted as--committeesvalue, resolves to mstCommId=20environmentaccepted as--committeesvalue, resolves to mstCommId=19transportandsciencecontinue to work, with deprecation note in--helptextlist-committeessubcommand prints the full mappingContext
Filed after the first end-to-end run of
crawl-committeesagainst a Culture-mandate topic profile, where the slugtransportwas not discoverable from any user-facing source (README,--helptext). The committee mapping is currently only legible by reading the source ofcommittees.py.