Skip to content

Instantly share code, notes, and snippets.

@swyxio
Last active August 28, 2026 03:38
Show Gist options
  • Select an option

  • Save swyxio/98eccc3bfdb84cbeec1673964951a20c to your computer and use it in GitHub Desktop.

Select an option

Save swyxio/98eccc3bfdb84cbeec1673964951a20c to your computer and use it in GitHub Desktop.

The target: a continuous, source-grounded article pipeline

Each talk produces a readable technical article, supporting media and a compact evidence record. Preparation runs in parallel; completed work is reused; defects get repaired where they originate.

This is the proposed target—not a claim that every change is already active.

1. From recording to article

flowchart TD
    S["Corrected transcript + canonical talk identity"]

    S --> P["Compact chronological plan"]
    S --> M["Retrieve cached metadata<br/>Description, speaker details, companion links"]
    S --> D["Prefetch recording<br/>Bounded download queue"]

    P --> R["Targeted research<br/>Resolve missing references and important uncertainties"]
    M --> R

    P --> F["Extract candidate frame sequences"]
    D --> F
    F --> V["Compare slide builds<br/>Select complete, useful frames"]

    P --> W["Write the technical article"]
    R --> W
    V --> W

    W --> C["Grounding review + lightweight render checks"]
    C -->|Pass| L["Local preview"]
    C -->|Specific defect| X["Repair affected block, metadata or media"]
    X --> C
Loading

The plan is a map, not an early draft. It retains chronological source ranges, essential mechanisms, memorable examples, important measurements and the substantive ending. No fixed section count or paragraph budget.

Research starts informed. Supply the video description and existing verified references before searching. Reuse evidence when identity, version and context match; research genuinely missing information. Cached evidence keeps its original verification date.

Media preparation preserves the story. Compare a short chronological sequence rather than guessing one timestamp. Prefer a useful opening frame within two minutes, but let completeness win. Use before/after pairs when they explain an actual change. Cache candidate sets and selected frames independently of prose.

Writing gets the full corrected source. Compose once, using the plan, research and inspected media. Preserve mechanisms and personality; vary the structure naturally:

  • Comparisons: compact tables.
  • Parallel ideas: bullets with bold topic labels.
  • Procedures: numbered steps.
  • Technical mechanisms: actual-language code, rendered equations or concrete visuals.
  • Attribution: concise qualifications where consequential, without repetitive disclaimers.

2. Continuous execution—not batch barriers

flowchart LR
    Q["Ready model jobs"] --> P["One shared Ultima / low pool"]
    P --> S["Save completed stage"]
    S -->|Next stage ready| Q
    S --> A["Article accepted"]
    A --> N["Admit another talk"]
    N --> Q

    P -.-> T["Measure queues, latency,<br/>accepted throughput and host health"]
    T --> B["Raise, hold or lower capacity"]
    B --> P
Loading
  • One model budget covers planning, research, frame selection, writing and review.
  • Separate download and decoding limits protect network, CPU and disk independently.
  • A bounded ready-work buffer keeps model workers supplied without accumulating unlimited recordings.
  • Finish-ready work gets preference: reviews and writes receive priority, with aging so planning cannot starve.
  • No waiting for the slowest article: each completion immediately frees capacity.
  • No lost inference: interruptions resume from saved successful stages.

Concurrency follows the bottleneck. Local CPU pressure should first constrain expensive local work when appropriate; provider throttling constrains model requests. Memory and disk safety remain hard limits. Higher concurrency stays only when sustained accepted throughput improves without degrading quality.

3. Small checks, small repairs

Finding Correct response
Wrong claim or missing mechanism Replace the affected passage; verify supporting source
Incorrect caption or alt text Repair that metadata field
Incomplete or unsafe screenshot Select another frame or omit that optional frame
Broken equation formatting Correct formatting and rerender
Poor table layout Fix the shared renderer
Reviewer misunderstanding Correct review context; preserve good prose

Illustrative code does not need production certification. Check whether it explains the mechanism faithfully; don’t require dependency installation, compilation or execution merely to publish an explanatory snippet.

Grounding review stays: it catches real errors such as changing a survey’s denominator. Rendering checks stay: they catch broken math, missing images and overflow. Neither should turn an optional style preference into a rewrite.

4. The operating process

  1. Calibrate changes on a few varied upcoming talks. Check a short presentation, a demo and a dense technical talk—not another corpus-wide rewrite.
  2. Freeze each job’s inputs and instructions. Introduce improvements through a controlled version transition; preserve completed outputs.
  3. Inspect representative desktop/mobile previews, plus media exceptions and newly authored visuals. Don’t manually inspect every routine article.
  4. Measure actual end-to-end completion, including pauses and repair time. Keep the operational ETA separate from clean concurrency experiments.
  5. Keep delivery states distinct: source-reviewed → render-checked → browser-sampled where applicable → user-approved → published. Existing approved previews and protected essays remain untouched.

The intended result is fewer redundant model calls, less idle capacity, and more attention on the explanation the reader actually sees.

The pipeline is good at producing trustworthy guides to conference recordings. Your revised goal is different: explain a company, then make its talks and people easy to explore. The biggest issue was the brief and evidence we gave the model—not simply its writing ability.

I inspected the current scripts and local page implementation without changing anything. The main task is still editing, so this describes the current local state, not a verified production deployment.

From first principles, an organization page has three jobs:

  1. Orient: What does this company do, sell, and contribute? How does it differ from nearby alternatives?
  2. Connect: Which people and talks in our archive relate to it?
  3. Guide: Where should an interested reader begin?

Those jobs require different evidence. Company websites establish products and launches. Conference records establish appearances and affiliations. Talk content establishes what someone actually discussed. Mixing those sources creates mistakes—for example, treating a former employee’s current biography as evidence of their company’s position.

The existing automated pipeline works like this:

flowchart TD
    A[Public conference corpus] --> C[Resolve organization identities]
    B[Existing speaker bios, talk summaries, essays] --> D[Build evidence packet per organization]
    C --> D
    D --> E[Model writes a structured draft]
    E --> F[Code validates fields, links, and evidence quotes]
    F --> G[Second model call reviews the draft]
    G --> H[Approved checkpoint assembled into JSON]
    H --> I[Website checks source freshness and renders]
    I --> J[Separate deployment and live verification]
Loading

First, we establish which records belong together. Organization aliases are resolved into a canonical identity, and talks and speakers are grouped under it. This is the foundation: beautiful prose cannot repair a mistaken merge between two companies.

Next, we build an evidence packet. Each organization gets its talk titles, summaries, selected essay excerpts, affiliated speakers, and short biography excerpts. We record source versions and checksums—fingerprints that let us detect changed inputs. The packet also distinguishes affiliated speakers from other panelists.

Crucially, this packet does not contain researched company history, product launches, revenue, or valuation.

Then the model writes to a very specific contract. The current prompt explicitly says:

“Lead with concrete AIE subject matter and named affiliated speakers, not generic company history.”

It also forbids web research and outside knowledge. So the introduction you disliked was largely the model following instructions correctly. Asking that same pipeline to “write better” would not solve the underlying mismatch.

The output contains a short introduction, search metadata, up to three themes, up to three recommended talks, and private evidence notes.

Validation happens in two layers. Code checks lengths, identity, allowed talk links, duplicate recommendations, and whether quoted evidence actually appears in the packet. A second call to the same model checks attribution and reasoning.

That second call is useful, but it is another review of the same evidence—not independent fact-checking. Both calls can accept an accurate answer to the wrong question.

Publication is deliberately separate. The assembly script requires pilot approval tied to the source and prompts, verifies the reviewed draft has not changed, and writes the approved JSON. Despite its name, publish-organization-profiles.mjs does not itself deploy the website.

At runtime, the website checks whether that generated profile still matches the archive. If it does not, it omits the stale editorial material while retaining the underlying archive. There is no model generating company prose on each page visit.

The scale of the old pattern is measurable: 598 generated profiles; 443 introductions start with “At AI Engineer” or “At AIE”; 76 use “recorded AIE appearances.” This is a shared brief problem, not an isolated Arize sentence.

Your approved pilot introduces a second path:

Content Current local source
Three-paragraph company introductions Six researched, approved company records
Speaker portraits and short bios A separate set of 46 speaker cards
Talk lists and affiliations Existing conference corpus
Themes and “Start here” Existing generated profiles
Popularity milestones Existing /talks data

That is an effective way to test the design without rebuilding everything. It is not yet one unified editorial pipeline. Two consequences matter before expanding it:

  • The old verifier still expects the old introduction and metadata. It needs to understand the approved company copy; otherwise it will flag intentional improvements as failures.
  • The speaker cards copy information from speaker profiles. If maintained separately indefinitely, biographies and photos can drift.

The broader lesson is to separate facts that change for different reasons. Adding a conference talk should update the archive and perhaps its recommendations. It should not invalidate a company’s founding history. Likewise, a funding announcement should not require regenerating its talk summaries.

My recommendation is a small revision of the existing workflow, not a new platform:

  1. Keep identity resolution, source records, resumable jobs, and publication checks. They prevent real errors.
  2. Add a small company-evidence section to each packet: official product sources, selected dated milestones, and sources for any comparison.
  3. Change the writing and review brief together. Products first; relevant history second; scale and differentiation where useful. Three paragraphs are a budget, not an obligation to fill space.
  4. Store approved company copy once. Use the speaker system for portraits and bios, and the talk system for recordings and popularity.
  5. Separate company-copy freshness from archive freshness. A changed talk roster should not erase a valid company introduction.
  6. Update verification to test the intended page: accurate metadata, complete lists, valid images, correct canonical URLs, and approved copy.

For comparisons, the durable rule is: compare a specific dimension, not whole companies. Hosted versus self-managed, model provider versus deployment platform, or transport versus workflow execution can teach something concrete. “Better,” “leading,” and “first” demand substantially stronger evidence.

The highest-impact next step is therefore fixing the shared brief, evidence packet, and verifier before another bulk rewrite. More reviewers or a more elaborate orchestration system would mostly make us more efficient at repeating the old mistake.

Yes—there are meaningful gains available without cutting grounding or screenshots. I’d fix wasted preparation and unnecessary regeneration before raising concurrency further.

Latest read: 213/987 articles batch-accepted, 12 active model requests. That is pipeline acceptance, not user approval or publication. I haven’t changed the running job.

Biggest opportunities, in order

  1. Give research the video description it is currently missing.
    All 220 completed low-reasoning research calls I inspected received an empty description. The controller populates it only after downloading the video, but launches research immediately. Fetch/reuse metadata first and download the recording concurrently with planning. This supplies the speaker’s project, slides and notebook links before research starts—potentially faster and better research.

  2. Shorten the intermediate plan, not the article.
    Median model-call durations are approximately:

    Stage Median
    Planning 74 sec
    Research 97 sec
    Frame selection 17 sec
    Writing 133 sec
    Source review 39 sec

    Planning and research account for 45% of measured model time. The median plan is already 10,400 characters. Keep source ranges, concrete mechanisms, important numbers and the substantive ending; remove duplicated explanations and repeated generic cautions. Preserve full-source access for writing and review. This is a stronger target than trimming the relatively cheap frame-selection step.

  3. Make repairs genuinely small.
    “Targeted repair” currently still asks the model to return the entire article; its median duration is 135 seconds, essentially another write. Request replacement blocks or specific metadata fields instead, then validate the assembled result.

    Concrete example: the Barr Yaron article’s only blocker is alt text confusing respondents reporting write access with agents writing data. Its prose and coverage passed. Correct that field; don’t regenerate the essay. Likewise, isolate an optional extraction-window failure rather than abandoning every useful frame.

  4. Keep media preparation ahead of writing.
    Recent downloads spent roughly 2–4 minutes queued, sometimes before a download lasting only seconds. Start bounded prefetch earlier, keep a small ready-media buffer, and give ready reviews/writes some priority over new planning calls—with starvation protection. Rolling admission already exists; this is about feeding it better, not adding another scheduler framework.

  5. Make concurrency respond to the bottleneck it can actually relieve.
    Host CPU load repeatedly drove model concurrency 12 → 4 → 12, while memory stayed normal. That doesn’t prove the reductions were unnecessary, but the current policy cannot distinguish local decoding pressure from unrelated machine load. Measure owned CPU and decode queues; throttle CPU-heavy preparation first when appropriate, while retaining hard memory/disk safeguards. Don’t blindly increase everything together.

  6. Fix measurement before trusting the ramp or ETA.
    The displayed 16.5-hour ETA still uses an older finite-batch baseline. Report a recent, pause-inclusive completion rate separately from clean scaling experiments. Also distinguish fresh downloads from resumed/cached files. “First output” currently means a completed assistant item, not first-token latency. These distinctions matter when choosing the next concurrency level.

Quality changes I’d make alongside those

  • Reduce repetitive cautionary narration. The two recent articles I read still repeatedly say variants of “not a universal result.” Use natural attribution and retain qualifications where they change the interpretation.
  • Keep screenshot selection and source review. All 211 outputs inventoried had screenshots; saved desktop/mobile captures showed readable bold-topic bullets and useful source diagrams. These aren’t the obvious place to cut.
  • Reuse research selectively. Most repeated URLs were our own conference pages. Only 109 of 1,649 external-link uses were duplicates, so caching helps but won’t eliminate research. Preserve original verification dates and check applicability.
  • Don’t shorten timeouts indiscriminately. Two successful writes took 12 and 17 minutes. A blanket eight-minute cutoff would have discarded valid work.

My first patch would bundle metadata-first preparation, compact plans and field/block repairs into one revision. Then measure an uninterrupted interval before touching concurrency again—not another succession of stop/restart cycles.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment