--- name: research-legislation description: Use when the user requests a sourced brief on a U.S. state bill, its text, status, sponsors, and recorded floor votes. --- # Research one state bill Start with [get-legislation](../get-legislation/SKILL.md) and its scope, defaults, evidence, identity, schema, pagination, and error rules. No local settings file or subagent is required. Present the response in a Cicada Guide card. Use show_status for clarification, unsupported requests, or recoverable errors. After the card succeeds, leave the assistant message empty. 1. Resolve state and session with list_states/list_sessions. Search an exact bill using bill, division_id, and session_id. If state/session is unresolved or several bills match, ask; never pick the first match. For a topic, show scoped candidates and let the user choose. 2. Follow the [bill research procedure](../get-legislation/references/bill-brief-researcher.md). Get get_bill_dossier for record, sponsors, document metadata, and initial floor votes, or use get_bill and supporting tools. Batch unresolved sponsors through search_people ids. Read get_latest_bill_document through every next_text_offset; a null text_source means unreadable, not empty text. Provide the returned document URL and reason instead of inventing a summary. List older versions with get_documents when needed. 3. Use the dossier's roll calls without repeating get_rollcalls when rollcalls.has_more is false, count and total both equal items.length, and no warning indicates failed or incomplete floor-vote retrieval. If more pages exist, continue get_rollcalls with the same bill_id and the returned next_offset; if completeness metadata is missing, inconsistent, or retrieval failed, start get_rollcalls at offset 0. Follow each returned next_offset while has_more. Preserve warnings and disclose incomplete coverage when a warning or retrieval failure remains; has_more=false alone does not establish completeness. The get_bill path requires get_rollcalls because get_bill contains no vote history. Use each roll call's returned counts. Only call get_rollcall_breakdown when names or party splits are requested. Mark partial breakdowns and distinguish no recorded votes from 0–0. Report passage only when the recorded status or description supports it. 4. Write identification, dated recorded status, a short text-grounded explanation, sponsors, relevant floor votes, source URLs, and limitations. Separate enrolled-document labels from enactment evidence. General governor deadlines never establish this bill's outcome. 5. Call show_bill with id, a plain headline of 1–120 characters, and summary based only on data read. When text is unreadable, use the official title for the headline and state that limitation in the summary. Put the brief and its limitations in the card.