Sitelet https://github.com/Nishfleet/TinyStudio.io/pull/22
Skip to content
This repository was archived by the owner on Sep 28, 2026. It is now read-only.

fix(public): repair heading hierarchy without visual changes - #22

Closed
nish3451 wants to merge 1 commit into
mainfrom
fix/heading-hierarchy
Closed

nish3451 wants to merge 1 commit into
mainfrom
fix/heading-hierarchy

Conversation

@nish3451

@nish3451 nish3451 commented Aug 8, 2026 •

Copy link
Copy Markdown
Member

intended-outcome: Fix skipped heading levels on the home page (and the other three owned public pages) so the native document outline descends without gaps — h1 -> h2 -> h3 — while leaving the rendered appearance untouched.

The TinyStudio.io dogfood audit found the homepage (and agents, pricing, specimen) skipping heading levels: sections under h2 used h4 sub-headings, and the roster/specimen used h3 directly under the h1. This change retags the sub-headings one level shallower, retargets the affected CSS selectors (so nothing visually changes), and adds a deterministic regression test (scripts/test-heading-hierarchy.mjs, wired into npm test) that locks the corrected outline per page and proves the checker rejects the pre-fix shapes.

verify: /home/nish/.local/bin/test-gate npm run check; /home/nish/.local/bin/test-gate npm test; git diff --check; sgscan

Repository proof only: heading hierarchy and tests, locally verified. No live deployment, ranking, or accessibility-certification claim is made. No deployment or merge in this change.

Summary by CodeRabbit

  • Bug Fixes

    • Improved heading structure across the public pages for clearer navigation and accessibility.
    • Corrected heading levels on agent, pricing, specimen, timeline, and FAQ sections without changing their appearance or content.
  • Tests

    • Added automated checks to prevent invalid heading hierarchies and ensure consistent page outlines.
    • Heading validation now runs as part of the standard test suite.

Retag public section headings to remove native outline skips, retarget the affected CSS selectors, and add deterministic hierarchy coverage.

Co-Authored-By: Claude <noreply@anthropic.com>

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nish3451 has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@coderabbitai

coderabbitai Bot commented Aug 8, 2026 •

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

The change corrects heading levels across four public pages, updates matching CSS selectors, adds heading hierarchy regression tests, and runs those tests through the npm test workflow.

Changes

Heading hierarchy

Layer / File(s) Summary
Correct public page heading levels
public/agents.*, public/index.*, public/pricing.*, public/specimen.*
Public HTML headings now use corrected h2 and h3 levels. CSS selectors target the updated elements without style changes.
Heading hierarchy parser and validation
scripts/test-heading-hierarchy.mjs
The test module parses visible headings, validates hierarchy rules, checks four page outlines, and covers invalid or hidden headings.
Heading test workflow integration
package.json
The npm test workflow now runs the new test:headings script.

Estimated code review effort: 2 (Simple) | ~10 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the heading hierarchy fix and preservation of visual appearance.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/heading-hierarchy

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@public/agents.css`:
- Line 19: Update the .gatebox h2 font-family declaration to use the unquoted
Fraunces identifier, preserving the existing serif fallback and all other
typography properties.

In `@public/specimen.css`:
- Line 20: Update the .notrun h3 font-family declaration to use the unquoted
Fraunces identifier, removing only the unnecessary quotes while preserving the
existing fallback and other styling.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: ae870910-1b7e-45c7-a4c6-05d037ee566d

📥 Commits

Reviewing files that changed from the base of the PR and between c0862d4 and d6a6bb7.

📒 Files selected for processing (10)
  • package.json
  • public/agents.css
  • public/agents.html
  • public/index.css
  • public/index.html
  • public/pricing.css
  • public/pricing.html
  • public/specimen.css
  • public/specimen.html
  • scripts/test-heading-hierarchy.mjs

Comment thread public/agents.css
.gatebox>div{padding:38px 42px}
.gatebox>div:first-child{border-right:1px solid var(--line)}
.gatebox h4{font-family:'Fraunces',serif;font-weight:300;font-size:25px;letter-spacing:-.02em}
.gatebox h2{font-family:'Fraunces',serif;font-weight:300;font-size:25px;letter-spacing:-.02em}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Remove the unnecessary font-family quotes.

Stylelint reports font-family-name-quotes on Line 19. Use the unquoted identifier to satisfy the enabled rule.

Proposed fix
-  .gatebox h2{font-family:'Fraunces',serif;font-weight:300;font-size:25px;letter-spacing:-.02em}
+  .gatebox h2{font-family:Fraunces,serif;font-weight:300;font-size:25px;letter-spacing:-.02em}
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
.gatebox h2{font-family:'Fraunces',serif;font-weight:300;font-size:25px;letter-spacing:-.02em}
.gatebox h2{font-family:Fraunces,serif;font-weight:300;font-size:25px;letter-spacing:-.02em}
🧰 Tools
🪛 Stylelint (17.14.0)

[error] 19-19: Expected no quotes around "Fraunces" (font-family-name-quotes)

(font-family-name-quotes)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@public/agents.css` at line 19, Update the .gatebox h2 font-family declaration
to use the unquoted Fraunces identifier, preserving the existing serif fallback
and all other typography properties.

Source: Linters/SAST tools

Comment thread public/specimen.css
.notrun{margin-top:40px;background:rgba(176,74,46,.05);border:1px solid rgba(176,74,46,.22);
border-radius:10px;padding:26px 30px}
.notrun h4{font-family:'Fraunces',serif;font-weight:300;font-size:21px;letter-spacing:-.018em;color:var(--sig)}
.notrun h3{font-family:'Fraunces',serif;font-weight:300;font-size:21px;letter-spacing:-.018em;color:var(--sig)}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Remove the unnecessary font-family quotes.

Stylelint reports font-family-name-quotes on Line 20. Use the unquoted identifier to satisfy the enabled rule.

Proposed fix
-  .notrun h3{font-family:'Fraunces',serif;font-weight:300;font-size:21px;letter-spacing:-.018em;color:var(--sig)}
+  .notrun h3{font-family:Fraunces,serif;font-weight:300;font-size:21px;letter-spacing:-.018em;color:var(--sig)}
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
.notrun h3{font-family:'Fraunces',serif;font-weight:300;font-size:21px;letter-spacing:-.018em;color:var(--sig)}
.notrun h3{font-family:Fraunces,serif;font-weight:300;font-size:21px;letter-spacing:-.018em;color:var(--sig)}
🧰 Tools
🪛 Stylelint (17.14.0)

[error] 20-20: Expected no quotes around "Fraunces" (font-family-name-quotes)

(font-family-name-quotes)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@public/specimen.css` at line 20, Update the .notrun h3 font-family
declaration to use the unquoted Fraunces identifier, removing only the
unnecessary quotes while preserving the existing fallback and other styling.

Source: Linters/SAST tools

@nish3451

nish3451 commented Aug 9, 2026

Copy link
Copy Markdown
Member Author

Closing as superseded. PR #28 (heading hierarchy on all six served pages) already merged to main as 7be3d8f. This branch is CONFLICTING/DIRTY and must not be merged. Dogfood e6e153bdadd0 tracks live/fingerprint follow-up only.

@nish3451 nish3451 closed this Aug 9, 2026
@nish3451

nish3451 commented Aug 9, 2026

Copy link
Copy Markdown
Member Author

Closing as a duplicate of #27. The two branches produce a byte-identical content diff (same 10 files, same 203/46 line counts); they differ only in blob hashes and hunk offsets because #27 was cut from a newer base. #27 also carries the check:render-blocking script that #22 predates, so it is the strictly newer of the pair.

Overseer verdict (Opus 5, midday shift 2026-08-09). Root cause is item selection, not the work: the loop re-picked the heading-hierarchy backlog item ~4h after already having an open PR for it. Logged for the dedupe fix.

@nish3451

nish3451 commented Aug 9, 2026

Copy link
Copy Markdown
Member Author

Correction to my previous comment: #22, #27 and #28 were all the same heading-hierarchy item. #28 is the one that landed (merged as 7be3d8f), and #22/#27 were both already closed as superseded before I commented — I mis-stated #27 as the survivor. The finding is worse than I wrote, not better: the item was implemented three times, not two.

nish3451 added a commit that referenced this pull request Aug 12, 2026
…(PR #22 conflict-locked, superseded by #28) against current GitHub state (2026-08-12) (#152)

Closes the review item "Two open PRs carry the same heading-hierarchy fix —
PR #22 is conflict-locked and superseded" (review queue, unreviewed-by-grok),
re-verified against the current GitHub state on 2026-08-12.

Verified facts (2026-08-12):
- PR #22 is CLOSED (2026-08-09), never merged, mergeStateStatus: DIRTY
  (conflict-locked) at close — the item's description was accurate.
- The superseding fix PR #28 is MERGED on main (2026-08-09, commit 7be3d8f);
  sibling duplicate #27 is also CLOSED.
- All 53 currently open PRs diff-reviewed: the only literal heading markup
  anywhere is one hierarchy-preserving h2 on /specimen in PR #107 (with its
  locked outline updated in scripts/test-heading-hierarchy.mjs) and one
  standalone h1 in PR #116's new closed-intake page — zero open PR retags
  an existing heading level, so no open PR duplicates the heading fix.
- Main has carried exactly one heading fix since 2026-08-09: the only
  heading-tag change since the merge is 2ae7504's two hierarchy-preserving
  homepage FAQ h3s (PR #102, locked outline updated). npm run check passes
  and npm test passes in full (test:headings 6/6) on current origin/main
  (ad9cee3).
- Site-side verification is current via docs/evidence/heading-hierarchy-2026-08-09.md
  (PR #74) with the 2026-08-12 re-verify in flight as PR #120.

Docs-only change; no code, no deployment.
@nish3451
nish3451 deleted the fix/heading-hierarchy branch September 19, 2026 09:21
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant