Problem
Canonical matrix fixture 10-nonprofit now passes dependency discovery with SSI PR #875 and combined Blocks Engine commit 598c6898, but import aborts before creating any pages with static_site_importer_font_materialization_producer_face_invalid / producer_face_invalid.
The compiled site uses authored font-family declarations but exposes no planned local font families (planned_font_families: [], expected and embedded SVG font count 0). SSI's font materialization producer validation nevertheless treats the absent/non-local producer face shape as fatal. The resulting editor-open and 92.48% visual mismatch failures are downstream because the front page was never materialized.
The immutable fixture must remain unchanged. The owning font-materialization boundary should distinguish a valid no-local-font plan from a malformed declared local font face.
Reproduction
Run the canonical matrix locally against fixture 10-nonprofit, SSI PR #875 head c7c07f9a, and Blocks Engine combined commit 598c6898. Dependency discovery passes; import returns a failed materialization receipt with zero pages and producer_face_invalid.
Artifacts from the direct run:
10-nonprofit/materialization-receipt--001.json
wp-codebox-output-batch-001.json
static-site-fixture-matrix-result.json
Acceptance
- A compiler plan with no declared local font families bypasses local producer-face materialization cleanly.
- Declared local producer faces remain strictly validated and malformed faces still fail closed.
- Fixture
10-nonprofit imports without producer_face_invalid and creates its front page without fixture changes.
- Contract coverage distinguishes absent, valid local, and malformed local producer-face states.
- Diagnostics identify the rejected face fields when validation fails.
AI assistance
OpenAI gpt-5.6-sol via OpenCode and a general OpenCode subagent ran the immutable canonical fixture directly through WP Codebox, isolated the first failing import stage, and drafted the owning-layer contract. Chris Huber directed the investigation and remains responsible for the issue and resulting change.
Problem
Canonical matrix fixture
10-nonprofitnow passes dependency discovery with SSI PR #875 and combined Blocks Engine commit598c6898, but import aborts before creating any pages withstatic_site_importer_font_materialization_producer_face_invalid/producer_face_invalid.The compiled site uses authored font-family declarations but exposes no planned local font families (
planned_font_families: [], expected and embedded SVG font count0). SSI's font materialization producer validation nevertheless treats the absent/non-local producer face shape as fatal. The resulting editor-open and 92.48% visual mismatch failures are downstream because the front page was never materialized.The immutable fixture must remain unchanged. The owning font-materialization boundary should distinguish a valid no-local-font plan from a malformed declared local font face.
Reproduction
Run the canonical matrix locally against fixture
10-nonprofit, SSI PR #875 headc7c07f9a, and Blocks Engine combined commit598c6898. Dependency discovery passes; import returns a failed materialization receipt with zero pages andproducer_face_invalid.Artifacts from the direct run:
10-nonprofit/materialization-receipt--001.jsonwp-codebox-output-batch-001.jsonstatic-site-fixture-matrix-result.jsonAcceptance
10-nonprofitimports withoutproducer_face_invalidand creates its front page without fixture changes.AI assistance
OpenAI gpt-5.6-sol via OpenCode and a general OpenCode subagent ran the immutable canonical fixture directly through WP Codebox, isolated the first failing import stage, and drafted the owning-layer contract. Chris Huber directed the investigation and remains responsible for the issue and resulting change.