Delete or formally park the now-unused HeroLoop.svelte (its only import was removed when the loop diagram merged into the hero)
task-prune-unused-heroloop-component
Delete or formally park the now-unused HeroLoop.svelte
The 2026-06-17 landing length/rhythm pass (the second polish round of The marketing landing becomes a tailorable per-client template — a typed LandingContent model rendered by LandingPage.astro; the Dossier render stays byte-for-byte identical; client instances are values of the same type, canonical in the client's own repo, generated by the generate-landing skill) merged the labelled 5-stage loop diagram up into the hero and deleted the standalone "how it works" section. In doing so it replaced the abstract HeroLoop animation with the labelled .loop__diagram (driven by the hero's existing offscreen-pause IntersectionObserver). That removed HeroLoop.svelte's only import from LandingPage.svelte.
The drift
packages/app/src/lib/components/HeroLoop.svelte (~12.4KB) is now present but unreferenced — dead code. It is the high-craft animated learning-loop signature, ported pixel-faithfully from HeroLoop.astro in the Migrate chrome-light app surfaces to SvelteKit; docs stay on Astro/Starlight (two apps, one origin) Phase-4 migration. The FDE deliberately did not delete it in the polish turn for two reasons:
- It is a high-craft component (not casual cruft).
- Four
src/styles/landing.csscomments cite it as the canonical motion-convention reference — lines ~503 (in the spirit of HeroLoop), ~769 (Matches HeroLoop's conventions exactly), ~976 (GATING (mirrors HeroLoop)), ~993 (Same inline-index convention HeroLoop uses). Deleting the file blindly would leave those four comments pointing at nothing.
The resolution (owner's call)
Pick one, intentionally:
- Delete the component and reword the four landing.css comments so each describes its convention on its own terms (the hero
.loop__diagrammotion now embodies the convention the comments reference — so the reference can stand without the file). - Park it: add a header note marking
HeroLoop.sveltean intentionally-retained motion-convention reference (not wired to any surface), so a future reader neither deletes it as accidental cruft nor re-wires it by mistake.
Why a task, not a fix-in-place
Choosing between delete-and-reword-four-comments and formally-park-with-a-note is a small design/curation judgment about a high-craft component and its role as a living style reference — better owned by the Principal SvelteKit Engineer (who owns the @dossier/app landing surface) than swept by the auditor. The auditor's job here was to make sure the dead code does not silently rot — hence this durable, owned home rather than a sentence in a reply. Provenance: surfaced by the log-auditor recording the DEC-0037 length/rhythm pass; confidence: inferred (agent-derived from the FDE's own follow-up note, verified against the filesystem, not human-curated). Board globbed before filing — no open task covered HeroLoop / the unused component.