Backlog, requested 10 August 2026
Everything asked for, written down so none of it is lost. Priority order. Each item has a done when that can be checked, not a vibe.
Three of these need structured data where the repo currently has only prose. That is the real work: once a thing is data, listing it, sorting it, filtering it and giving it its own page are all cheap. While it is a paragraph inside a Markdown file, none of them are.
| # | Item | Needs new data | Status |
|---|---|---|---|
| 1 | Predictions overhaul | extend predictions.jsonl | done |
| 2 | Watch & Listen hub | new watch.jsonl | done |
| 3 | Timeline: multi-tag, filter, detail | migrate to timeline.jsonl | done |
| 4 | Home page: clickable counts, today's lead, tagline | done | |
| 5 | Section index pages (/daily/, /weekly/) | done | |
| 6 | More charts, and actual images | partly done |
1. Predictions
The page is called The Ledger and reads like a compliance document. It is a person making calls and being held to them. Fix the framing, then make it navigable.
- Name. The nav says Predictions; the page must say Predictions. "The Ledger" and the "Accountability" kicker are gone. This is not a betting market.
- Headlines. Each prediction gets a short declarative
title, the claim, stated plainly, no hedge clauses. The full conditional stays in the body where it belongs. Before: "OpenAI's Astra mathematics results survive independent scrutiny without a material retraction or correction of any of the ten headline results." After: "OpenAI's Astra maths results survive independent scrutiny." - Why. Under the headline, the reasoning: why this call, what would have to be true. This already exists as
notesand was buried at the bottom in small grey text. - What counts. Plain language. "Correct if no headline result is retracted or shown false by a credible published critique." Not
RESOLVES CORRECT IF…. The machine-checkable criterion still exists and still gates the build, readers get the sentence, the ledger keeps the contract. - Links. Every prediction points at the issue it came from and any related entry.
- Detail pages.
/predictions/<id>.htmlper prediction. Clickable from the index. - Filter by type. Tech / Business / Finance / Open / Resolved as filters that swap what is displayed, not headings you scroll past.
- Hits and misses. When calls start resolving: a section for what was right, what was wrong, and (the part that matters) why it was wrong.
Done when: the index filters without scrolling, every card links to a detail page, and no prediction on the site is phrased as a legal clause.
2. Watch & Listen hub
Podcasts and videos currently exist only as prose inside each daily brief. They vanish the day after publication.
- One page, every recommendation ever made, newest first.
- Searchable across title, show, person, and the note explaining why it matters.
- Tag filters, multi-select. Picking two tags narrows, it does not widen.
- People filter. Guests and hosts are the main axis: this is how you actually look for an episode. "That Karpathy one."
- Each item keeps its original date, its issue link, and the note from the brief it appeared in.
- The daily's Watch & Listen section is generated from the same data, so adding an episode once puts it in both places and it can never drift.
Done when: a new episode is added to data/watch.jsonl and appears in the daily brief and on the hub with no other edit.
3. Timeline
Tags are there and they work. They just do not do anything yet.
- Multiple tags per entry. Most events are two things at once, a funding round in an lab is
MONEYandMODEL. - Filter by tag, and by more than one at a time.
- Clickable entries. Each event opens to the fuller account: what happened, why it was logged, which issues covered it, any prediction that names it.
Done when: selecting MONEY + INFRA shows only entries carrying both, and every row opens to a detail view.
4. Home page
- The counts are links. Briefs → the daily archive, Weeklies → weekly, Issues → monthly, Open calls → predictions. If it shows a number, it goes somewhere.
- Today is obvious. The newest brief leads the page as the front-page story with its date, not as the first row of an undifferentiated list.
- Tagline → "Daily Intelligence on the AI Landscape". Drop "with every call scored."
5. Section index pages
Implied by making the counts clickable: /daily/, /weekly/, /monthly/ need to exist as archives in their own right, each listing everything of that kind with author and date.
6. Images and charts
Asked directly: why are there so few? Honest answer, because it changes what to build.
- Press photography is not usable. Product shots, headshots and conference photos are licensed. A private site does not make republishing them fine, and "borrow it, it's just for me" is how you end up with a habit that breaks the day the site is shared.
- Generated stock imagery would be decoration. A glowing brain over an article about classifier catch rates adds nothing and costs credibility.
- Charts were built but only used in two reports.
tools/charts.pyhas four types and most of the archive is still prose wrapped around numbers that want to be seen. This is the real gap and it is entirely self-inflicted.
So the plan is: every image on this site is generated from something true.
Shipped:
- The evidence strip (
tools/cover.py), every issue draws its own source-tier mix, one tick per citation. It earned its place immediately: the full report is visibly paler than the daily, because 41 of its 62 citations are tier C. That is a real fact about the issue that no sentence in it states. - Charts on the executive summary and full report. One was cut in review: a donut of the adoption funnel would have rendered "23% report ROI" as 29%, because the slices are a share of the 80% who embedded rather than of all enterprises. A chart that restates a figure incorrectly is worse than no chart.
Still to do:
- Charts across the Top 20 and the rest of Vol. 1, the standing rule is 2–4 per long report, and only two of ten parts have any.
- Video thumbnails on Watch & Listen, fetched once when an episode is added and committed, with generated fallback art where there is none.
- Sparklines in the prediction cards: confidence against time to resolution.
- Entity pages:
data/entities.jsonnow exists and the timeline already resolves against it, so/entities/<slug>.htmlis mostly wiring.
Standing decisions
- Server-render everything, filter on the client. Every item is in the HTML; JavaScript only hides what does not match. Search and filters die gracefully with JS off, and there is no index to keep in sync.
- No dependencies. Still true. No npm, no framework, no external request at runtime.
- One filter component, shared by predictions, watch and timeline. Three pages needing the same interaction is a component, not three implementations.