Skip to content

I3008 — A homepage link with a fragment resolves to an element its page carries

Hold the homepage navigation rule (site-check 13d) on a fixture: a hero or navigation link with a #fragment resolves when its page exists and carries that id, fails naming the element when the page lacks it, and a link to an absent page fails as unresolved. The rule becomes one function, run by the full site-check and alone through `site-check --nav PUBLIC_DIR CONFIG_TOML`.

DONE wave 0 · p1 · implementation profile · parallel safe

Part of surfaces-never-disagree — Every surface projects the same state, says when it was observed, and keeps no list of its own.

Objective

Hold the homepage navigation rule (site-check 13d) on a fixture: a hero or navigation link with a #fragment resolves when its page exists and carries that id, fails naming the element when the page lacks it, and a link to an absent page fails as unresolved. The rule becomes one function, run by the full site-check and alone through `site-check --nav PUBLIC_DIR CONFIG_TOML`.

Why

On 2026-10-18 the 0.30.0 top's site job and suite shards 1 and 3 failed on /roadmap/#delivery: the rule looked for the file site/public/roadmap/#delivery/index.html although /roadmap/ carried id=\"delivery\". The fix that split the fragment off landed with the top, without a test.

Current state

Rule 13d splits the fragment and requires the id, inline in the full site-check, held by no case.

Desired state

The rule is a function a case runs on a fixture, and case 3401 fails if the fragment split or the id check is removed.

Scope

  • scripts/site-check
  • test/cases/3401_a_hero_link_with_a_fragment_resolves_to_its_id.sh
  • .ai/repo/project
  • docs
  • site

Out of scope

  • Any other site-check rule

Dependencies

None. This issue is a root of the graph.

Acceptance criteria

  • A hero link to /roadmap/#delivery passes when /roadmap/ carries id=\"delivery\", and fails naming the element when it does not
  • A hero link to an absent page fails as unresolved
  • Removing the fragment split or the id check each turns case 3401 red

Validation

  • majordomus plan validate
  • bash test/run.sh 3401_a_hero_link_with_a_fragment_resolves_to_its_id

Evidence

None recorded. Every token above needs a command or an artifact behind it before this issue can be completed; narrative is refused.

Timeline

started
2026-10-20T16:17:02Z
verified
—
completed
2026-10-20T16:31:39Z

Those three fields, the evidence above and the state of the dependencies are all the status is made of. There is no status field to disagree with them.

Canonical record: .ai/repo/project/issues/I3008.yaml. Read it back with majordomus plan show I3008.

Searches the titles and descriptions of every page this site publishes.