Rule handbook metadata
- Rule
DET.CONTEXT.BURDEN· lanedeterministic- Page status
- current
- page_version
8ed7dbbf91a9eefe79c802d31265d29e4463a94aee61c7c6fda856a057dd2108- generated_at
- 2026-05-19T21:30:00.000Z
- registry_fingerprint
aef1de6082cf0f50d463783c843dee0ffb9132fbd5ed4ea6e5bb3f031f359c72
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.
Related rules
DET.BUTTON.GROUP.MAX— horizontal hero button row cap (feeds hero interactive count).DET.CTA.HIERARCHY— one primary CTA class per viewport region.DET.NAV.DEDUP— duplicate destination labels across competing nav bands.DET.NAV.DEPTH— global primary nav nesting depth (.landing-nav,.fs-primary-nav-global).DET.PAGE.MODE— root/must use landing/product shell, not handbook reader mode.AI.CONTEXT.BURDEN_SUBJECTIVE— perceived overload when numeric caps pass.AI.CONTEXT.COGNITIVE_CLARITY— acronyms and technical depth before product explanation.