# Task P.4.5.1 Visual Regression Report

## Scope

This task establishes reusable visual regression baselines for Product Item quotation templates without changing quotation runtime architecture.

Implemented outputs:

- baseline fixture generation under [fixtures/pdf-visual/README.md](/C:/Users/mtpphtaps/Documents/gitea/alla-allaos-fullstack/fixtures/pdf-visual/README.md)
- automated visual-regression audit script at [scripts/audit-pdf-visual-regression.ts](/C:/Users/mtpphtaps/Documents/gitea/alla-allaos-fullstack/scripts/audit-pdf-visual-regression.ts)
- manual QA checklist at [docs/implementation/task-p.4.5.1-visual-qa-checklist.md](/C:/Users/mtpphtaps/Documents/gitea/alla-allaos-fullstack/docs/implementation/task-p.4.5.1-visual-qa-checklist.md)

## Generated fixture set

Baselines are organized by reusable scenario:

- `quotation-empty`
- `quotation-single-item`
- `quotation-standard`
- `quotation-20-items`
- `quotation-100-items`
- `quotation-long-description`
- `quotation-multi-topic`

Each scenario stores `ALLA` and `ONVALLA` golden PDFs plus manifest metadata.

## Automated validation coverage

The visual regression script validates:

- PDF generation success
- page count stability
- section order stability
- Product Item page presence through runtime structure
- `items_table` seven-column contract
- signature block remaining on the last rendered page
- runtime issue severity
- 500-item generation performance smoke check

Current run report is written to:

- `artifacts/pdf-visual/visual-regression-report.json`
- `artifacts/pdf-visual/visual-regression-report.md`

## Screenshot strategy

This environment does not currently provide a PDF-to-image renderer such as `pdftoppm`, Ghostscript, or ImageMagick, and `sharp` cannot rasterize the generated PDFs here.

Because of that:

- golden PDF baselines are generated now
- current-run PDFs are generated now
- manifest-based regression comparison is automated now
- pixel screenshot comparison is documented but not automated in this environment

If a renderer is added later, the current fixture layout can be extended without changing the dataset contract.

## Acceptance mapping

- visual fixtures created = PASS
- golden PDF baselines created = PASS
- future regression comparison path created = PASS
- automated layout validation added where practical = PASS
- screenshot automation documented with environment limitation = PASS
- manual visual sign-off still required for true pixel review = PENDING
