Skip to content

CI: attach every validator's report to the Forme Review upload - #77

Merged
danmolitor merged 3 commits into
mainfrom
chore/forme-review-conformance
Sep 9, 2026
Merged

CI: attach every validator's report to the Forme Review upload#77
danmolitor merged 3 commits into
mainfrom
chore/forme-review-conformance

Conversation

@danmolitor

Copy link
Copy Markdown
Owner

The UA-1 gate keeps each veraPDF report under dist/review/reports; the e-invoice gate writes its Factur-X PDF into the corpus, keeps its veraPDF reports (PDF/A-3b, PDF/UA-1), and turns Mustang's report into the documented forme-review-conformance/1 JSON. The upload step moves after the e-invoice gate and attaches dist/review/reports/*, on pdf-testkit 0.3.0.

Forme Review parses veraPDF and nothing else, by policy; Mustang, which this repo runs itself, goes through the JSON like any other validator. The adapter is mustangToConformance in scripts/parity/lib.mjs, about forty lines. Verified locally: a real Mustang 2.26.0 report round-trips through the pdf-testkit 0.3.0 parser with its failures and version, and a kept veraPDF report parses with the file path intact.

After this, every run carries a PDF/UA-1 verdict on all 39 documents, and PDF/A-3b, PDF/UA-1 and EN 16931 verdicts on the Factur-X invoice, each attributed to the validator that produced it. Forme Review records them; it does not validate, and a verdict never changes the check.

The UA-1 gate keeps each veraPDF report under OUT_DIR/reports; the
e-invoice gate writes its PDF into the corpus, keeps its veraPDF reports
(PDF/A-3b, PDF/UA-1), and turns Mustang's report into the documented
forme-review-conformance/1 JSON — Forme Review parses veraPDF and nothing
else, so Mustang, which we run ourselves, goes through the JSON like any
other validator. The upload step moves after the e-invoice gate and
attaches dist/review/reports/*. pdf-testkit 0.3.0.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MKzAu3ytK4juTnPg1XHNRN
@github-actions

github-actions Bot commented Sep 8, 2026

Copy link
Copy Markdown

📄 pdf-testkit — invoice-layout.json

✅ No semantic changes detected.

danmolitor and others added 2 commits September 8, 2026 18:43
verify-einvoice.mjs called veraValidate, keepReport and
mustangToConformance from parity/lib.mjs without importing them, so
the gate threw before its first validator ran. The unused inline
veraCompliant goes with it. Both gates run locally against veraPDF
1.30.2 and Mustang 2.26.0 with OUT_DIR set, and the 42 kept reports
parse and match all 40 documents through the 0.3.0 CLI's parser.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@pdf-testkit/vitest ^0.1.6 held the top-level @pdf-testkit/core at
0.1.6 while the CLI carried its own nested 0.3.0; whichever resolved
first would win. The matchers at 0.3.0 depend on core ^0.3.0, so the
lock now installs one core and drops the nested copy. The 29
regression tests that use the matchers pass unchanged.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@danmolitor
danmolitor merged commit aa0acf9 into main Sep 9, 2026
11 checks passed
@danmolitor
danmolitor deleted the chore/forme-review-conformance branch September 9, 2026 00:13
@github-actions github-actions Bot locked and limited conversation to collaborators Sep 9, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant