figma-transformer: improve FSE responsive parity#482
Conversation
|
Added a second diagnostics/data wave in What changed:
Verification:
Remaining known issue:
|
|
Added the clone-offset normalization fix in Root cause:
Fix:
Verification:
|
|
Static-site viability wave pushed in What changed:
Verification:
Residual scale gaps remain around browser-level visual QA, broader fixture-matrix coverage, and source-backed image/SEO metadata beyond fields explicitly supplied by callers. |
|
Next static-site viability wave pushed in What changed:
Verification:
Residual scale gaps:
|
|
Static layout parity wave pushed in What changed:
Verification:
Residual risks:
|
|
Wave 5 update pushed in Verification:
|
|
Refactor/abstraction fanout pushed in What changed:
Verification:
Note:
|
Wave 8 evidence
Verification:
Latest local artifact for operator review:
|
Wave 9 evidenceTen focused minions investigated the next defect wave. This pass landed the safe, contract-backed fixes from that fanout:
Verification:
Latest local artifact for operator review on this machine:
Known remaining fidelity gaps:
|
Wave 10 evidence: arbitrary
|
Wave 11 evidence: full-bleed root correctionThe Yotako scale pass proved responsive grouping and centering evidence, but the first root-centering fix capped the outer page frame at This correction keeps the document model generic:
Verification:
Latest local artifacts:
Remaining generic work from the minion trace:
|
Refactor wave: HTML/CSS -> Kiwi evidence-chain cleanupIntegrated five parallel minion commits focused on scalable
Evidence chain used by minions:
Verification:
FSE note:
|
Wave 27/28 updatePushed the latest data-parity fixes plus the accepted Included
Verification
Artifact metrics
Remaining warning signals
AI assistance disclosure for this update: GPT-5.5 via OpenCode integrated the refactor commits, resolved conflicts, and ran verification; Chris remains responsible for review and acceptance. |
Wave 29 data-mining integrationIntegrated the selected generic improvements from the 12-agent Included
Verification
Final Wave29 artifact metrics
Data conclusions
AI assistance disclosure for this update: GPT-5.5 via OpenCode coordinated Wave29 subagents, integrated selected generic fixes, resolved conflicts, and ran verification; Chris remains responsible for review and acceptance. |
Wave 30 large
|
| Fixture | Status | Quality | Pages | Files | Assets | Vector placeholders | Missing font CSS | Remaining signals |
|---|---|---|---|---|---|---|---|---|
| Dr Aarti | success_with_warnings |
warn |
10 | 116 | 105 | 0 | 0 | suspicious_absolute_to_flow_conversion:6 |
| Peter Attia | success_with_warnings |
warn |
25 | 85 | 59 | 0 | 0 | off_canvas_left_css:1, large_css_offsets:2, off_canvas_visual_nodes:2, clipped_visual_area:11, large_absolute_offsets:3 |
| Yotako | success_with_warnings |
pass |
2 | 164 | 161 | 0 | 0 | none |
| FSE | success_with_warnings |
warn |
5 | 48 | 42 | 0 | 0 | suspicious_absolute_to_flow_conversion:3 |
Agentic Commerce probe
Source: /Users/chubes/Downloads/Agentic Commerce WIP.fig
- Input bytes:
318,474,638. - Embedded asset count:
363. - Embedded asset bytes omitted by preflight:
314,087,978. - Largest embedded asset:
20,058,241bytes. - zstd-inflated Kiwi message bytes:
45,215,359. - Result status:
unsupported_decoder_pending. - Key diagnostics:
figma_transformer_archive_asset_content_omitted_size,figma_transformer_kiwi_message_decode_skipped_preflight,figma_transformer_decoded_scenegraph_missing. - Bounded parser-parity probe under
512Mcompleted at about86MBmax RSS with a summary envelope instead of fataling.
Memory stance
The goal is not to force every full-fidelity transform under 512M. A ~1GB+ ceiling is reasonable for serious .fig imports, especially with embedded assets. The important change here is that large files now have bounded diagnostics and preflight failure envelopes instead of unbounded fatal memory paths. Full-fidelity Agentic Commerce still needs early page/node-gated decode or streaming scenegraph consumption.
AI assistance disclosure for this update: GPT-5.5 via OpenCode coordinated Wave30 subagents, integrated selected generic fixes, resolved contracts, and ran verification; Chris remains responsible for review and acceptance.
Wave 31 page planning + gated decodePushed the selected Wave31 integration. Included
Verification
Peter Wave31 metrics
Peter page-planner decision evidence:
Agentic Commerce gated decodeSource: Command shape: php -d memory_limit=512M figma-transformer/bin/figma-transformer \
"/Users/chubes/Downloads/Agentic Commerce WIP.fig" \
--zstd-command="/opt/homebrew/bin/zstd" \
--kiwi-gated-decode \
--max-pages=1 \
--max-nodes=200Result:
Data conclusionPeter’s duplicate/alternative pages are now much clearer: they are mostly versioned design-canvas drafts, reference scopes, design-system frames, or duplicate route drafts. Agentic Commerce is no longer just a fatal-scale black box; selected gated decode can produce a bounded artifact under 512M, while full-fidelity import still needs dependency expansion for selected subtrees. AI assistance disclosure for this update: GPT-5.5 via OpenCode coordinated Wave31 subagents, integrated selected generic fixes, dropped an unsafe responsive matcher change after contract failures, and ran verification; Chris remains responsible for review and acceptance. |
Wave 31 fixture regression sweepRan the full-transform regression sweep after the Wave31 page-planning/gated-decode push. Command shape for each fixture: php -d memory_limit=1536M figma-transformer/bin/figma-transformer <fixture.fig> \
--zstd-command="/opt/homebrew/bin/zstd" \
--multi-page \
--max-pages=50 \
--max-nodes=5000CSS invalid-token scans found no
Conclusion: Dr/Yotako/FSE stay on the expected Wave30 baseline after Wave31. Peter keeps the intended page-planning improvement and now has explicit candidate decision evidence instead of noisy duplicate/versioned page emission. |
Wave 31 extra community
|
| Fixture | Status | Quality | Pages | Files | Assets | Vector placeholders | Missing font CSS | Artifact-quality signals |
|---|---|---|---|---|---|---|---|---|
| Whitepace - SaaS Landing Page (Community) | success_with_warnings |
pass |
3 | 10 | 6 | 0 | 0 | none |
| Positivus Landing Page Design (Community) | success_with_warnings |
pass |
7 | 15 | 7 | 0 | 0 | none |
CSS invalid-token scans found no NaN, Infinity, INF, or gap:- in either generated site artifact.
Non-blocking diagnostic notes observed:
- Whitepace includes route/page-planning and residual geometry instrumentation such as
low_confidence_route_frame_filtered,responsive_group_formed,large_absolute_offsets, andlarge_css_offsets, but no artifact-quality signal crossed the failure/warn threshold. - Positivus includes source/normalization instrumentation such as zero-dimension source nodes, local style paint conflicts, component clone transform preservation, and unsupported vector blob accounting, while artifact quality still passed with zero vector placeholders.
Conclusion: these two extra community files do not expose a new landing blocker for this PR.
Wave 31 deeper fidelity follow-upPushed a follow-up after reviewing the new Whitepace and Positivus community files visually. What changed
Verification
New community file evidenceWhitepace improved materially after selected-subtree normalization:
Before the subtree fix, the same run emitted 226 files / 220 assets because the selected page subtrees were pruned by the global Positivus now surfaces the real limitation instead of reporting a clean top-level artifact:
The Positivus Why this mattersThis follow-up shifts the bar from “selected files produced HTML” toward “the artifact quality surface catches visual-fidelity risks reviewers can actually see.” Whitepace now preserves far more selected-page content, and Positivus no longer gets a misleading pass when it is still a fixed desktop canvas. AI assistance disclosure for this update: GPT-5.5 via OpenCode helped inspect generated artifacts, mine source/HTML/CSS diagnostics, implement generic fixes, add contracts, and run verification; Chris remains responsible for review and acceptance. |
Summary
Testing
git diff --checkphp -l figma-transformer/src/Html/BreakpointMediaDiffBuilder.phpphp -l figma-transformer/src/Html/ResponsiveNodeMatcher.phpphp -l figma-transformer/src/Html/LayoutIntentClassifier.phpphp -l figma-transformer/src/Html/StaticHtmlEmitter.phpphp -l figma-transformer/src/Scenegraph/ScenegraphNormalizer.phpphp -l figma-transformer/tests/contract/run.phpcd figma-transformer && composer test:contractstatus=success_with_warnings,page_count=5,file_count=34Notes
AI assistance
.figconversion defects, drafting transformer changes and contracts, running verification, and preparing this PR.