Rule handbook metadata
- Rule
DET.STUDIO.FULLPAGE_SHOT· lanedeterministic- Page status
- current
- page_version
7a4fa8e1a9f25f9cd5bdec4f4d105c8813f082be5cb7d09ae83b87a04ae6e1f9- generated_at
- 2026-08-13T00:00:00.000Z
- registry_fingerprint
aef1de6082cf0f50d463783c843dee0ffb9132fbd5ed4ea6e5bb3f031f359c72
How this rule is fixed
Not in the deterministic fixer pilot registry (stub or not yet wired). Use the After example below as the target state and remediate manually or extend pilot-registry.json.
Detection module: docs/design/ux-audit/deterministic-design-rules.md#det-studio-fullpage_shot. Scroll down for Before / After examples and Evidence and remediation steps.
Purpose
Studio shells scroll inside main.fc-main, not only the viewport. If ChatGPT receives a viewport-height PNG, it cannot judge below-the-fold competing jobs and will false-pass DET.STUDIO.JOB_BUDGET.
capture-page.mjs temporarily expands nested scroll roots before screenshot. This rule fails when screenshot_height << scroll_height for tall workspaces.
Passing signals
capture-page.mjssetsscroll_heightand full PNG height ≥ 90% of scroll when content > 900px.REQUIRE_SCREENSHOT_ATTACH=1(default) ensures GPT receives the PNG.
Failing signals
- Screenshot shows only the header band while H2 sections exist below the fold.
capture_capped: truewithout documented reason.
Before example
Capture with default viewport only — assessor sees header but not four H2 sections below nested scroll.
After example
Run capture-page.mjs which expands main.fc-main chain before page.screenshot({ fullPage: true }).
Evidence and remediation
- Fix capture harness, not product UI, when this rule fires alone.
- Re-run PDCA iteration after capture fix.
Related rules
DET.STUDIO.JOB_BUDGET— requires full scroll evidence.