What problem does it solve? Building report screens (turnover sheets, account cards, register listings) normally means hand-writing toolbars, print logic, and Excel export for every report. This Skill shows how to get all of that for free by extending the shared ReportBase class, so you only write the query and the table markup. ## Core Features & Use Cases - Zero-config print and Excel export: ReportBase owns the sticky toolbar (Refresh / Print / Excel), the print header, and the .xlsx build — the subclass only declares the model, title, buildReport(), and renderBody(). - Generated SQL wrapper: deno task sql:gen generates the index wrapper from the filters schema (filter parsing, required-filter refusal, $filters echo), leaving only the hand-written data query in db/<report>.sql. - Filter contract and drill-down: filters live in $root.$filters as {id, name} reference objects, and tab.open params land directly in another report's filters for drill-down navigation. - Use Case: Create a turnover balance report with organization and period filters, a two-level table header, totals in tfoot, and row-click drill-down into an account card — with print and Excel working immediately. ## Quick Start Ask the AI to create a turnover balance report screen extending ReportBase with organization and period filters, a hand-written SQL data function, and drill-down to the account card report.