Separate the public research story from the raw docs tree
The documentation library is useful when you need full implementation detail. The hero CTA on the live homepage needs a cleaner entry point: what the research system does, why it exists, and where each layer fits in the production path.
Explain the pipeline in product terms without sending a first-click visitor into raw markdown or low-level engineering pages.
Show where source collection ends, where AI ranking begins, and where the grounded publish gate decides what can go live.
Keep a direct bridge from this overview into the deeper docs for storage, ingest, benchmarks, object layout and safety boundaries.
The live page is a published artifact, not an on-demand AI answer
The homepage should show already published briefing output. AI runs in scheduled ingest or manual trigger flows. The read path serves a published view from the JDBIN-backed chain and its public snapshot, so page traffic does not regenerate the briefing.
The production path now exposes both publication state and trace metadata
The current implementation does not stop at “AI wrote something.” Each live run now carries enough metadata to verify whether the public snapshot, research snapshot and selected shortlist all refer to the same run, and whether the model output had to be patched before publication.
The trigger response includes a compact operational summary: raw article count, clustered story count, selected candidate count, OpenAI output count, reconciled final count, published signal count and any backfilled ranks.
selectedCandidateCount, openAiSignalCount, reconciledSignalCount, publishedSignalCountactiveRunRowCount, dedupedRowCount, filteredOutCountbackfilledRanksThe public read path exposes how many rows were available in the active run, how many survived dedupe, how many were editorially ready and what finally became published output in the briefing.
sourceRowCount, activeRunRowCount, editorialReadyRowCountpublishedSignalCount, briefingSignalCountpublicSnapshot.key, objectKey, manifestKeyGo deeper from the right layer
Detailed implementation view of research intake, shortlist rules, grounded copy generation and publication.
Storage model, R2 object chain, manifest/pointer control, query path and immutable publish architecture.
How scheduled runs, manual trigger flows and Worker ingest write new publishable rows into the active chain.
How the product decides what can become public output and why read traffic is separated from write-time AI generation.
Use this as the research-facing landing page
Keep the homepage CTA product-oriented here, then let the docs tree handle deeper engineering and architecture reading.