Rule handbook metadata
- Rule
DET.CONTEXT.BURDEN· lanedeterministic- Page status
- stale
- page_version
3a3560d8867679c9b198e83a76c693330f1598634579afc61130ba04c2c41bf5- generated_at
- 2026-05-19T21:30:00.000Z
- registry_fingerprint
6773fda516344e110b5a7b1435e655e1264e773825ca8bbe62194189891c42ba
How this rule is fixed
Pilot deterministic fixer: handbook_after · harness mode standalone · verify expect_rule_clean.
- Harness:
apply-harness-fixture-remediation.pycopies the After example HTML from this handbook page onto the defect fixture, theninvoke-det-ruleset-remediation-verify.shre-audits and expects zero findings for this rule. - Production sites:
run-website-ux-remediation-loop.shrunshandbook_html_patch(HTML patches inlib/ux-deterministic-fixers/fixers/patches/) before invoking the Cursor agent when the quality gate still fails.
Detection module: docs/design/ux-audit/deterministic-design-rules.md#det-context-burden. Scroll down for Before / After examples and Evidence and remediation steps.
Purpose
Kitchen Sink landing_page shells (components/layouts.py, css/forgesdlc-theme.css) are meant to lead with a product story: curated landing-header / landing-nav, a landing-hero band, and depth routes under /docs or /handbook. When a public homepage reuses handbook chrome—fs-primary-nav-global, persistent fs-sidebar, offcanvas trees, and wide link walls—the first screen reads as documentation before the visitor sees what the product does.
This deterministic rule enforces the Forge enterprise first-screen budget from docs/design/forge-enterprise-ai-website-standard.md using crawl metrics and a Playwright hero-fold probe:
| Signal | Cap | Scope |
|---|---|---|
Pre-main links before first in-main h1 |
≤ 10 | All audited pages |
| Header / outside-main nav links | ≤ 7 | All audited pages |
Distinct nav chrome containers outside main |
≤ 4 | All audited pages |
| First-viewport link count | ≤ 28 | Home / landing root only |
Hero-fold interactive controls in main |
≤ 3 | Home / landing root only |
Interactive controls count visible <button>, [role="button"], .btn anchors, and submit/button inputs in the hero fold, excluding pagination, dropdown menus, and in-nav controls. Platform handbook inner routes are skipped (same pattern as docs readers).
Plan: Audit / and primary landing URLs for chrome and link counts above the fold. Do: Switch root pages to landing_page shell; curate landing-nav-link items; demote depth to sidebars on deep routes only. Check: Confirm crawl metrics and contextBurdenReport.heroInteractiveCount are within caps. Adjust: When subjective overload persists after counts pass, escalate to AI.CONTEXT.BURDEN_SUBJECTIVE.
Passing signals
- Root homepage uses
landing-header+landing-navwith 4–7 visible top-level destinations (Overview, How it works, Trust, Docs, etc.). - No persistent
fs-sidebaror generated handbook tree on desktop homepage view; full trees live under/docs,/handbook, or/reference. preMainFirstH1LinkCount≤ 10 — skip links, theme toggles, and cookie banners excluded from the count.outsideMainHeaderNavLinkCount≤ 7 — curated global nav, not an exhaustive product index.navChromeContainerCount≤ 4 — header + one mobile offcanvas band, not stacked sidebars and duplicate nav rails.- On home:
firstViewportLinkCount≤ 28 andheroInteractiveCount≤ 3 (typically onebtn btn-forgeprimary, onebtn-cyan-outlinesecondary, optional low-emphasis third). - Additional destinations use
landing-hero-secondary-links/landing-hero-secondary-linktext links below the button row.
Failing signals
preMainFirstH1LinkCount> 10 — link walls, cross-ref asides, or chrome links appear above the primary in-main headline (pre_main_first_h1_link_count=N max=10, major; critical when count exceeds max + 2).outsideMainHeaderNavLinkCount> 7 —landing-navorfs-primary-nav-globalexposes too many top-level choices (outside_main_header_nav_links=N max=7).navChromeContainerCount> 4 — competingheader,nav,aside,fs-sidebar, and offcanvas bands outsidemain(nav_chrome_container_count=N max=4).- On home:
firstViewportLinkCount> 28 — first viewport dominated by navigational anchors (critical). - On home:
heroInteractiveCount> 3 — four or more hero-fold.btn/ button controls inlanding-hero-actions__buttons(major; critical when count exceeds max + 1). - Homepage screenshot reads as handbook reader despite hero copy — often co-fails
DET.PAGE.MODEandDET.NAV.DEDUP.
Before example
Before (failing example)
Governed human + agent delivery
One methodology spine from intent to evidence.
Failing KS markup: handbook-style chrome on / — stacked nav bands, sidebar tree, pre-main cross-refs, and four hero buttons. Exceeds header nav, nav-band, pre-main, and hero-control budgets.
After example
After (passing example)
Governed human + agent delivery
Shape intent, delegate safely, and release with evidence—not ad hoc prompts.
Three outcomes teams need
Clear intent before agent work starts.
Passing KS markup: canonical landing_page shell — curated header nav, no homepage sidebar, story-first hero with two button actions and muted secondary links.
Evidence and remediation
Evidence: Crawl metrics from lib/dom-metrics.js — preMainFirstH1LinkCount, outsideMainHeaderNavLinkCount, navChromeContainerCount, firstViewportLinkCount (home only). Playwright probe contextBurdenReport.heroInteractiveCount from collectContextBurdenReport. Finding messages cite keys such as pre_main_first_h1_link_count=14 max=10, outside_main_header_nav_links=12 max=7, nav_chrome_container_count=6 max=4, first_viewport_link_count=30 max=28, hero_interactive_controls=5 max=3.
Remediate (in order):
- Shell: Route
/throughlanding_page, notproduct_pagewith persistentfs-sidebar. Move handbook trees to/docs//handbookdeep routes. - Header nav: Trim
landing-nav/fs-primary-nav-globalto 4–7 curated destinations; nest the rest under Docs or a single mega-menu on interior pages only. - Pre-main links: Remove
fs-cross-refs, breadcrumb walls, and maintainer indexes above the heroh1; link dense reference from below the fold or dedicated pages. - Hero controls: Collapse to one
btn-forge+ onebtn-cyan-outline; demote extras tolanding-hero-secondary-link(align withDET.BUTTON.GROUP.MAX). - Chrome bands: Consolidate duplicate mobile/desktop nav trees; keep offcanvas for small viewports without also exposing full sidebar on homepage desktop.
- Re-run
analyze-website-ux.mjson/; if counts pass but the viewport still feels noisy, reviewAI.CONTEXT.BURDEN_SUBJECTIVE.