Remove hardcoded Header and Intro labels from tool index.html files and make the shared platform shell the source of truth for tool header/intro text.
This PR fixes the remaining mismatch where fullscreen may appear correct through CSS/attributes while the underlying per-tool markup still contains generic static text.
Many tool pages contain static markup like:
<summary class="is-collapsible__summary">Header and Intro</summary>This means the source markup still contains generic text even though the shared shell is expected to provide tool-specific header/intro.
The desired behavior is not to mask Header and Intro; it should not be the source label for tools.
For every tool using the shared platform shell:
- Do not hardcode
Header and Introas the visible summary label. - Header/intro text must be generated from shared tool metadata.
- The visible summary/header must include the active tool name.
- The visible intro must include the active tool name.
- The shared shell should remain the single source of truth.
Header:
<Tool Name> — <Short Description>Intro:
<Tool Name>: <one-line usage/help text>Inspect all tool index.html files for:
<summary class="is-collapsible__summary">Header and Intro</summary>Replace static generic labels with a shared-shell-controlled placeholder, data binding, or empty mount point that the platform shell owns.
Acceptable approaches:
- Replace static text with a shell-owned element, for example:
<summary class="is-collapsible__summary" data-tools-platform-summary></summary>-
Or keep the summary element for behavior but make its visible text fully controlled by shared shell JS.
-
Or centralize summary creation in
platformShell.jsif compatible with existing tools.
Do not rely only on CSS pseudo-elements to hide the old text.
Each affected tool must have enough registry metadata to render:
tool.nametool.shortDescriptiontool.introor equivalent one-line usage text
If metadata is missing, show an actionable configuration error.
Do not silently fall back to generic text.
Target shared tool pages only.
Likely files:
tools/*/index.htmltools/shared/platformShell.jstools/shared/platformShell.csstools/toolRegistry.js
Do not modify:
- King of the Iceberg files
- sample games
- runtime game engine files
start_of_dayfolders
- No shared-shell tool
index.htmlcontains visible static textHeader and Introas a summary label. - Fullscreen summary/header visibly includes the active tool name.
- Normal tool header visibly includes the active tool name.
- Intro visibly includes the active tool name where intro is shown.
- The shared platform shell owns the rendered text.
- Legacy behavior for collapse/fullscreen toggles still works.
- Missing metadata produces actionable configuration error.
- No CSS-only masking of the old generic text.
- No KOTI/sample/runtime/start_of_day changes.
Do not run long sample suites.
Run:
node --check tools/shared/platformShell.js
node --check tools/toolRegistry.jsIf any per-tool JS changes, run node --check on those files only.
Run targeted browser validation:
- Open each affected shared-shell tool.
- Confirm raw visible summary/header text is tool-specific.
- Enter fullscreen.
- Confirm fullscreen summary/header is tool-specific.
- Confirm no visible
Header and Introremains. - Confirm collapse/fullscreen toggles still work.
Create:
tmp/pr_tool_remove_static_header_intro_validation.jsonIt should include:
- tools checked
- files checked
- whether
Header and Introremains in visible source/DOM - visible normal header text
- visible fullscreen header text
- visible intro text
- PASS/FAIL
Create:
docs/dev/reports/PR_tool_remove_static_header_intro_report.mdInclude:
- PASS/FAIL
- changed files
- root cause
- tools/index files updated
- validation commands/results
- remaining issues