Scope
Problem
docs/index.html is the bootstrap placeholder.
docs/index.html is the bootstrap placeholder. First-time visitors at vibesift.com see 'No sessions yet' and zero context about the project — no description, no Scope→Sift→Ship explainer, no link to the GitHub repo, no list of actual sessions. The placeholder shipped because v0.1 used the bootstrap template as a stub; the landing page is now its own feature.
Constraints
Static HTML at docs/index.html, no build step or framework — matches the zero…
Static HTML at docs/index.html, no build step or framework — matches the zero-runtime-deps philosophy of the rest of the project.First-30-seconds test: a visitor must learn what vibesift is, what the three …
First-30-seconds test: a visitor must learn what vibesift is, what the three verbs (Scope, Sift, Ship) mean, and where to find sessions, without scrolling past the fold on a phone.Must list actual sessions present in docs/sessions/, not the placeholder 'No …
Must list actual sessions present in docs/sessions/, not the placeholder 'No sessions yet' string. Auto-generation can be v0.2; for now the list can be hand-maintained alongside the canonical dogfood session.Must link to the GitHub repo (neurot1cal/vibesift), npm package (when publish…
Must link to the GitHub repo (neurot1cal/vibesift), npm package (when published), and the canonical dogfood session at /sessions/v0-1-launch/.Must match the existing dark/light theme variables already defined in src/tem…
Must match the existing dark/light theme variables already defined in src/template.js so the landing and the session pages feel like one product, not two sites.Must NOT be clobbered by 'vibesift bootstrap' — verified that cli.js:304 uses…
Must NOT be clobbered by 'vibesift bootstrap' — verified that cli.js:304 uses {flag:'wx'} so existing index.html is preserved. Don't regress that guarantee.
Decision
Ship a hand-written static landing at docs/index.html with a hero, a three-verb explainer (Scope, Sift, Ship — what + when), a sessions list seeded with the dogfood session, and a footer with repo + license links. Defer auto-generated session listing to a v0.2 'vibesift index' command. Keep the page under 200 lines of HTML+CSS — this is a status broadcaster, not a product site.
2026-05-09 19:02 UTCSift
Options considered
Chose
2026-05-09 19:02 UTC
Option A. Hand-written static landing at docs/index.html. Auto-generation deferred to v0.2 with explicit queue note in CHANGELOG.
Option A for v0.1.
Option A for v0.1. Ship the hand-written landing now; the sessions list has exactly one entry today and adding the second entry is a one-line patch. Option B is queued as a v0.2 task — once the project has 5+ sessions, the maintenance cost of A flips and we add a 'vibesift index' command. Option C is rejected: client-side rendering for a problem solvable at write-time violates the zero-runtime-deps brand promise.
Ship
Tasks
- ✓ Read src/template.js — copy the exact :root and [data-theme=light] CSS variables so the landing and session pages share one design system.
- ✓ Write docs/index.html: hero (one-sentence pitch + tagline), three-verb explainer (Scope/Sift/Ship as a 3-column grid on desktop, stacked on mobile), sessions list (linking to v0-1-launch and vibesift-com-landing), footer (GitHub repo, license, brand mark).
- ✓ Inline a tiny dark/light theme toggle script — same pattern as src/template.js so the toggle persists in localStorage and respects prefers-color-scheme on first paint.
- ✓ Verify locally: 'python3 -m http.server 8788 -d docs' then curl localhost:8788 and confirm hero text, all three verbs, and both session links render. Astro preview is blocked here so http.server is the correct tool.
- ✓ Open PR (linear-history squash-merge per ruleset), watch CI matrix + CodeQL + Dependency Review, merge, then curl https://vibesift.com to confirm new landing replaces the placeholder.
Decision log
- Scope Ship a hand-written static landing at docs/index.html with a hero, a three-verb explainer (Scope, Sift, Ship — what + when), a sessions list seeded with the dogfood session, and a footer with repo + license links. Defer auto-generated session listing to a v0.2 'vibesift index' command. Keep the page under 200 lines of HTML+CSS — this is a status broadcaster, not a product site. 2026-05-09 19:02 UTC
- Sift Option A. Hand-written static landing at docs/index.html. Auto-generation deferred to v0.2 with explicit queue note in CHANGELOG. 2026-05-09 19:02 UTC