Formal per-report discovery suite (matches reviewer reference bar) - #4
Merged
Conversation
Restructure the report suite to the gold-standard reference deliverables Akhilesh shared: each of the seven reports is now a STANDALONE document with its own branded cover, its own table of contents, and hierarchically numbered sections. Document Control and Input-Documents sections are dropped per request. Identity & components (assets.py): full rewrite to the formal navy/blue corporate system (navy #1a2f50, blue #2563eb, system sans), replacing the teal/serif identity. Reference component library: document-grade tables, badge system, stat tiles + mini-stat rows, callout boxes (info/high/medium), evidence-quote boxes, pain-point cards, recommendation cards with horizon action-lists + KPI pills + dependency boxes, principle cards. Grounded SVG infographics (render.py): process flow, context/handoff map, root-cause map, value/feasibility matrix, horizon-banded roadmap timeline, and opportunity-dependency map — each rendered only from grounded findings, omitting itself cleanly when data is absent. Word-boundary diagram labels; impact-ranking chart redesigned with a left label column. Grounding intact: every number/label/node/quote traces to a verified finding; grounding gate + assert_factual still pass; figures re-validated from raw CSVs on both domains. Suppressed client names never appear in body or chrome. make_pdf.py: per-report standalone PDFs + combined suite PDF. Both validated domains (o2c, p2p) regenerated. 100% statement+branch coverage; pyrefly clean.
…egisters
Closes the depth gap against Akhilesh's three reference reports.
1. Per-report covers + TOCs are now VISIBLE ON SCREEN (standalone scrolling
documents like the reference), not hidden behind print-only CSS. A slim top
nav-bar replaces the sidebar.
2. Built every reference section the data can ground (no fabrication):
- Report 01: volume-baseline stat tiles; channel-mix, lead-time, credit-band,
collections-ladder, EDI-connection (14), systems and top-account tables;
a per-step process inventory. 12 pages, 11 tables — reference parity.
- Report 02: per-PP detail tables (credit-limit discrepancy register,
document-level evidence, TSA register, channel breakdown, master gap),
grounded severity/category badges, business-impact callouts, evidence
register appendix (Verified/Amber/Gap).
- Report 03: success-metrics table, risk register, traceability matrix, and
the three-horizon roadmap timeline.
Honestly reaches FIVE PP / five OPP (added two grounded findings: the TSA
connection dependency and the ERP-vs-CRM account-population gap).
Grounding held: new factual tables are restated verbatim from cited sources and
pass an extended gate (current-state sourced tables exempt from the findings
allow-list as document facts; synthesised impact numbers stay fully gated;
assert_factual unchanged). Every figure re-validated from raw CSVs/SOPs.
Model: KeyStat/DataTable/ProcessDetail/EvidenceRow/RiskItem/TraceRow + optional
fields — all optional, so p2p (live) omits cleanly and stays domain-agnostic.
Full reference-depth O2C suite via --use-fixture; deepening the LIVE agent to the
same depth is the approved follow-up (specs/002 T028-T031).
184 tests; 100% coverage; pyrefly clean. Both domains regenerated (o2c 58pp PDF).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What & why
Akhilesh set the three shared reports (Current State, Pain Points, Transformation) as the bar for
ALL reports: "formal with some infographics … separate report for each section, each with their own
table of contents … document control, input documents used are not required." Then, reviewing a
first cut: "still all in one report not individual with their own TOC … missing more than half of
what's in the shared ones." This PR addresses both.
Structure
contents, visible on screen (slim top nav to move between reports) and in PDF. Hierarchical
section numbering throughout.
#1a2f50, blue#2563eb, system sans) matching thereferences.
Depth (the second pass — closing the "missing half")
Forensically compared each reference section to what our data can ground, then built everything
groundable (no fabrication):
EDI connection inventory (all 14), systems and top-account tables; a per-step process
inventory. 12 pages, 11 tables — reference parity.
document-level evidence, TSA register, channel breakdown, master-population), grounded
severity/category badges, business-impact callouts, and an evidence register (Verified/Amber/
Gap).
traceability matrix, and the three-horizon roadmap timeline.
(the TSA EDI-connection dependency from the register; the ERP-vs-CRM account-population gap).
An independent side-by-side review puts this at ~85–90% of the reference's depth, exceeding it
in places (system profiles, information-format taxonomy, three-dimension readiness assessment).
Grounding (non-negotiable) held
grounding gate: current-state sourced tables are exempt from the findings allow-list (they are
document facts, each cited), while every synthesised impact number stays fully gated and
assert_factualis unchanged.(340/318/22), 14 EDI connections, channel mix — all exact.
diagram) are deliberately omitted, never fabricated; where the reference names a person, ours
uses the grounded role.
live, omits the o2c-specific tables cleanly).
Quality
PDFs committed (o2c now 58 pages). Spec-driven (specs/002, kept local).
Delivery note
The full reference-depth O2C suite renders via
--use-fixture(hand-grounded, gate-validated).Deepening the LIVE agent to emit the same structured sections for any domain is the approved
follow-up (specs/002 T028–T031); the live path renders the core suite today and a single live run
will confirm parity.