Skip to content

Produce content round-trip facts before report projection - #1637

Merged
chubes4 merged 1 commit into
trunkfrom
refactor/1360-content-round-trip-evaluation
Sep 9, 2026
Merged

Produce content round-trip facts before report projection#1637
chubes4 merged 1 commit into
trunkfrom
refactor/1360-content-round-trip-evaluation

Conversation

@chubes4

@chubes4 chubes4 commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

Summary

Finish the facts-first validation path under #1360 after #1635.

  • ContentRoundTripReporter::evaluate() produces authoritative findings; ContentRoundTripEvaluation supplies status and the unchanged report projection.
  • Retain the public report() facade and evaluate once in HtmlCompilation.
  • HtmlValidationOutcome::fromValidationFacts() now receives explicit status/findings for all three validators. Remove the last report-derived factory input and report-reading helpers.
  • Preserve text normalization, ignored form-control echoes, comment stripping, thresholds, snippets, classification and finding order.

Full reporting remains enabled. No validator skipping, evidence-mode option, acceptance change or performance claim is introduced.

Verification

Baseline: 16f967e1ecdab102ec33bed384b71afdeb7a2e57.
Candidate: b3697768a06d66bf6e7d307e1e489d03da89df62.

All ten final checks passed: PHP 8.2-8.5 package and WordPress integration suites, plus generic visual parity tools, and solved-site promotion.

  • Direct evaluation assertions cover invented-text warnings and valid-text passes; existing text/echo/comment/normalization/snippet tests remain intact.
  • Full PHP 8.4 Composer suite passed with 512 MB configured for child commands, including canonical/unit tests, 305 parity fixtures, packaging and install proof.
  • Coordinator independently reran the unchanged verifier on baseline and candidate: all 385 HTML fixtures and nine targeted HTML/artifact cases retain identical serialized blocks and full envelopes, excluding only recursive transform_duration_ms.
  • Comparison records have SHA-256 245205a2e962e48887b6b93b53408e4c52b60328dbdf682ec19e678efcad261d; comparisons preserve binary bytes and array order through PHP serialization.
  • Artifact fixtures exercise nonzero companion/runtime/style/shared-shell/responsive outputs.
  • WordPress integration and solved-site promotion passed separately in the final CI runs linked above; they are not claimed from standalone lab tests.

Reproduce

From php-transformer with matching dependencies and sufficient PHP memory inherited by child commands:

composer test
REQUIRE_WP_TESTS=1 WP_TESTS_DIR=/path/to/wordpress-tests composer test:wordpress-integration

The full-corpus comparison command in #1627 applies unchanged to the baseline and candidate above. The checked-in consumer inventory documents the final facts-only outcome boundary.

AI Assistance

OpenAI GPT-5.6 Terra via direct OpenCode implemented and lab-tested the change. GPT-6 Astra via OpenCode coordinated and reviewed the producer/report data flow, independently reran the full corpus/artifact comparison, and prepared this PR under Chris Huber's direction. No release or deployment was performed.

@chubes4
chubes4 marked this pull request as ready for review September 9, 2026 20:23
@chubes4
chubes4 merged commit b4cab19 into trunk Sep 9, 2026
10 checks passed
@chubes4
chubes4 deleted the refactor/1360-content-round-trip-evaluation branch September 9, 2026 20:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant