Type: test · Executor: coding_agent · Repo: motir-core · ONE PR. The story's end-to-end walk, and — because the deliverable is a surface a person watches — its acceptance receipt.
/explore renders, same host, same chrome, with real project cards./robots.txt and /sitemap.xml from the public host — one of each, allow + the surfaces this host serves./explore with no public projects: the empty state, not a crash.explore/error.tsx renders when the directory read fails.Both hosts must be reachable from one Playwright run. Read the lane's own configuration before writing a line in it: this repository's E2E lanes carry a base URL and a webServer, and a host branch resolved from a request header is drivable per test, while one resolved from a process-wide server-side environment read is NOT — it would have no per-test override, the assertion would pass on unfixed code, and the failure mode is a permanently green guard rather than a red one. Name the exact mechanism in the spec's own comment, and assert the page is on the host it claims before asserting anything about it, so nothing can pass vacuously.
The story's deliverable is user-observable, so this card records and publishes the walk to the story as its acceptance receipt. It is PACED for a human — a reviewer watches it to accept the story — so the spec waits on real signals and does not race. There is no duration cap; the only machine check is a floor, and a clip too fast to watch fails the publish.
/p/* and that no redirect occurred.motir-core/tests/e2e/ — the lane configuration, the fixtures, and the acceptance-video patternmotir-core/docs/decisions/acceptance-video.md — the receipt's contract and its floormotir-core/app/(public)/explore/error.tsx — the error state this drivesmotir-core/CLAUDE.md — the E2E discipline (authoritative waits)blocked_by — the behaviour it walks