version: "0.1.0" description: > Post-render QA gates. All thresholds are hard numeric limits used to fail builds (unless a gate is explicitly marked as warn-only by the invoking CLI flags). metrics: max_widows_per_10_pages: "Count of widow lines across any 10 consecutive pages." max_orphans_per_10_pages: "Count of orphan lines across any 10 consecutive pages." max_stranded_headings: "Count of headings at page bottom with insufficient following content per keep rule." max_overfull_lines: "Count of lines exceeding measure by overflow threshold (render-time measured)." max_table_overflow_incidents: "Count of tables that overflow page/column bounds or are clipped." max_code_overflow_incidents: "Count of code blocks with horizontal overflow or clipping." max_link_wrap_incidents: "Count of wrapped URLs/DOIs/emails violating link wrap policy." max_heading_numbering_errors: "Count of numbering sequence/format violations." max_citation_format_errors: "Count of citations not matching configured style format." overflow_detection: overfull_line_threshold_css_px: 1.0 consider_clipping_as_overflow: true ignore_decorative_elements: true profiles: web_pdf: default: max_widows_per_10_pages: 1 max_orphans_per_10_pages: 1 max_stranded_headings: 0 max_overfull_lines: 2 max_table_overflow_incidents: 0 max_code_overflow_incidents: 1 max_link_wrap_incidents: 2 max_heading_numbering_errors: 0 max_citation_format_errors: 0 strict: max_widows_per_10_pages: 0 max_orphans_per_10_pages: 0 max_stranded_headings: 0 max_overfull_lines: 0 max_table_overflow_incidents: 0 max_code_overflow_incidents: 0 max_link_wrap_incidents: 0 max_heading_numbering_errors: 0 max_citation_format_errors: 0 print_pdf: default: max_widows_per_10_pages: 0 max_orphans_per_10_pages: 0 max_stranded_headings: 0 max_overfull_lines: 0 max_table_overflow_incidents: 0 max_code_overflow_incidents: 0 max_link_wrap_incidents: 0 max_heading_numbering_errors: 0 max_citation_format_errors: 0 strict: max_widows_per_10_pages: 0 max_orphans_per_10_pages: 0 max_stranded_headings: 0 max_overfull_lines: 0 max_table_overflow_incidents: 0 max_code_overflow_incidents: 0 max_link_wrap_incidents: 0 max_heading_numbering_errors: 0 max_citation_format_errors: 0 dense_tech: default: max_widows_per_10_pages: 1 max_orphans_per_10_pages: 1 max_stranded_headings: 0 max_overfull_lines: 3 max_table_overflow_incidents: 1 max_code_overflow_incidents: 2 max_link_wrap_incidents: 3 max_heading_numbering_errors: 0 max_citation_format_errors: 0 strict: max_widows_per_10_pages: 0 max_orphans_per_10_pages: 0 max_stranded_headings: 0 max_overfull_lines: 1 max_table_overflow_incidents: 0 max_code_overflow_incidents: 0 max_link_wrap_incidents: 1 max_heading_numbering_errors: 0 max_citation_format_errors: 0 memo: default: max_widows_per_10_pages: 3 max_orphans_per_10_pages: 3 max_stranded_headings: 0 max_overfull_lines: 2 max_table_overflow_incidents: 1 max_code_overflow_incidents: 1 max_link_wrap_incidents: 4 max_heading_numbering_errors: 1 max_citation_format_errors: 1 strict: max_widows_per_10_pages: 1 max_orphans_per_10_pages: 1 max_stranded_headings: 0 max_overfull_lines: 0 max_table_overflow_incidents: 0 max_code_overflow_incidents: 0 max_link_wrap_incidents: 2 max_heading_numbering_errors: 0 max_citation_format_errors: 0 slide_deck: default: max_widows_per_10_pages: 5 max_orphans_per_10_pages: 5 max_stranded_headings: 0 max_overfull_lines: 0 max_table_overflow_incidents: 0 max_code_overflow_incidents: 0 max_link_wrap_incidents: 0 max_heading_numbering_errors: 0 max_citation_format_errors: 1 strict: max_widows_per_10_pages: 2 max_orphans_per_10_pages: 2 max_stranded_headings: 0 max_overfull_lines: 0 max_table_overflow_incidents: 0 max_code_overflow_incidents: 0 max_link_wrap_incidents: 0 max_heading_numbering_errors: 0 max_citation_format_errors: 0