Lossless Changelog
product

First real splash — four-act narrative, Pagefind, and live deploy

Context Vigilance gets its public face: a dark-default engineer's-clipboard splash that walks readers through Hook → Practice → Proof → Invitation, opens with a Google-style 'what context do you need?' prompt over the 587-doc corpus, and ships to GitHub Pages on every push.

Michael StatonMusic Editoraugmented with Claude Code on Claude Opus 4.7 (1M context)

Why Care?

The kit had a splash before tonight, but it was a v0 — a hero plus a flat catalog dump. No story, no search, no shareable cards, no public face. The narrative brief in ai-labs/context-v/plans/Context-Vigilance-Splash-Page-Narrative.md had been waiting for someone to sit with it.

Tonight it got built. The splash now opens with the central claim — treat context with the same vigilance as code, and the context becomes the parent to the code — followed by a Google/OpenAI-homepage-sized search prompt asking "what context do you need?" over the live corpus of 587 docs. Below it, three acts: a 6-cell matrix of the codified practice (specs / prompts / blueprints / reminders / explorations / issues, color-coded by cognitive mode) plus an honest long-tail row of the surfaces we haven't fit into the matrix yet; a teaser of the most-recently-modified corpus entries; and a three-CTA closer mapped to the three audiences we keep optimizing for (developers, peer practitioners, and the curious public).

The splash also goes live tonight: pushing this commit deploys it via the new .github/workflows/pages.yml to https://lossless-group.github.io/context-vigilance-kit/.

What's New?

  • Four-act homepage narrative at / — Hook (asymmetric hero with the strikethrough-on-"code" headline + prominent search prompt + live stats card), Practice (the 6-cell matrix + long-tail counts), Proof (catalog teaser), Invitation (three audience-mapped CTAs). Each act gets its own .folio section number (§ 01 – § 04).

  • Engineer's-clipboard visual identity — dark default, JetBrains Mono as the display face (not just the chip face), Inter as body, amber + sodium-orange + lime brand spine, hairline borders, slowly drifting dot-grid background, blinking caret on the hero search and 404. Deliberately distinct from sibling Lossless splashes (lfm = bookish-serif, memopop = cyan-radial, content-farm = same family). Codified end-to-end in splash/DESIGN.md.

  • Pagefind search — keyword index built at deploy time, three SearchBox variants (compact for the header, full for /search/, and a cvk-specific hero variant for the homepage prompt). Hidden filter spans on every corpus detail page emit kind:, tag:, and a cvk-specific from:<repo> facet so readers can filter to "everything from <repo>" — natural axis when the corpus pulls from 28 repos.

  • /corpus/ route with the full 587-doc catalog, grouped by source_repo_slug, alpha-sorted (deliberately not "best-first" per the brief — the disorder is part of the proof). SortControls supports Modified / Created / Title / Repo with per-page persisted preferences in localStorage.

  • /corpus/<slug>/ detail pages with data-pagefind-body markers, data-pagefind-ignore on chrome, derived kind labels (specs / prompts / blueprints / reminders / explorations / issues / habits / workflow / plans / journals / etc. + Other bucket), and a from-tag ribbon showing the source repo.

  • /search/ page — full Pagefind panel with autoFocus, kind/tag/from filters.

  • Funny 404 — a blinking amber caret followed by "the agent guessed." The rest of the splash is not funny; the 404 is allowed to be.

  • Live numbers from corpus-manifest.md — a tiny YAML-subset frontmatter parser in splash/src/lib/manifest.ts reads the manifest at build time and feeds the homepage stats (587 docs, 28 projects, 110 worked-on, 263 idea-started, 210 stubs). When the manifest is regenerated, the splash numbers update on the next build.

  • Open Graph cards via Ideogram — four imagekit-hosted variants (banner 1200×630, portrait 1024×1536, square 1024×1024, preferred 1024×1280) saved as a named OG_IMAGES map in splash/src/lib/seo.ts. The 1024×1536 portrait variant is the default, since it renders most prominently in iMessage and WhatsApp share-card previews. Pages can override per-route. The Ideogram creative brief — Style notes / Body / Brand alignment / Negative prompt — lives at the bottom of DESIGN.md.

  • GitHub Pages workflow at .github/workflows/pages.yml — actions/deploy-pages@v4 with enablement: true so the workflow bootstraps Pages on first run. Triggers on master, main, and development plus workflow_dispatch.

  • Custom domain pending — astro.config.mjs is on lossless-group.github.io/context-vigilance-kit/ until DNS for contextvigilance.com lands. Switching is a two-line change (site → the domain, base → '/').

How the splash stays consistent

Everything lives in splash/ at the repo root. pnpm install --ignore-workspace && pnpm build from there produces splash/dist/, which the workflow uploads as a Pages artifact. No backend, no database, no runtime — the corpus is read at build time as plain file IO from ../corpus/, the manifest is parsed at build time, and Pagefind walks the rendered HTML. Search runs entirely client-side from the static index.

The corpus is committed to git (8.8 MB across 587 markdown files) — necessary because the source repos that the collator pulls from aren't available in the CI checkout. When the user re-runs the collator locally, the diff in corpus/ gets committed alongside whatever changed.

What this splash deliberately is not

A marketing site for a SaaS product. The CTAs are intentionally low-commitment: Browse the corpus, Read the spec, Fork the kit, Get in touch. The audience we expect — engineers who have been burned by coding agents that "almost" worked — bounces fast on Sign-Up walls and lingers on receipts. The receipts are the corpus.

A literary site. lfm/splash gets the manuscript-flavored aesthetic; this one is its operator-toned counterpart. Same architectural shape (Astro, two-tier tokens, three-mode contract, Pagefind, lenient schemas, sort controls, from-tag provenance), different voice.

Open follow-ups

  • First deploy — push to a triggering branch and verify the Pages source is set to "GitHub Actions" in repo settings. The workflow uses enablement: true so it'll bootstrap, but the source toggle is one-time-manual.

  • Custom domain — contextvigilance.com (primary, no hyphen); context-vigilance.com registered defensively to 301 to primary. When DNS lands: update astro.config.mjs, redeploy.

  • OG card iteration — first Ideogram run produced a Fallout-style bot scene that's on-message but filled the canvas edge-to-edge, leaving no clean zone for a future SVG title overlay. The DESIGN.md Ideogram brief has been tightened twice; the next round needs the empty-half rule respected.

  • Semantic search via local Chroma — aspirational v1+ per the narrative brief. The Chroma setup work has been started (scripts/, requirements.txt); the splash will gain a second SearchBox variant when it's ready.

  • More OG variants — banner/square/portrait/preferred are wired but pages don't yet differentiate (all default to the portrait variant). Per-corpus-entry cards generated at content-publish time would be a nice escalation.

See also

  • The narrative brief: ai-labs/context-v/plans/Context-Vigilance-Splash-Page-Narrative.md

  • The skill: lossless-monorepo/context-v/skills/maintain-splash-pages/SKILL.md

  • The reference splash: lfm/splash/ (sibling, bookish-serif counterpart)

  • The design system: splash/DESIGN.md