Skip to content
Slow ThinkerDocumentation
Technical reference
Documentation/Technical reference

Technical reference / Rendering & development

HTML rendering

How saved evidence becomes report pages, charts, navigation and analysis history.

01

From storage to pages

#

load_run() reads a task, proposals, votes, selected plan and all analyses through Storage. The newest assessment becomes the default. Malformed/unreadable runs caught by the loader are reported and skipped so other runs can still render.

generate_reports() renders requested run reports, but rebuilds the complete indexes and prompt histories. Each historical analysis gets its own page. build_run_view() joins the trace with deterministic diffs, origins, graphs, contributions, timing, costs and compatible analyst fields. Jinja2 templates then embed the resulting content and SVG.

Output Implementation
Detailed reportReviewed R 0.1.16 build_run_view, run.html.j2, shared macros/process template and base.
Run indexReviewed R 0.1.16 build_index_view, index.html.j2, history.css.j2.
Prompt catalogueReviewed R 0.1.16 read_task_files, build_prompts_view, prompts.html.j2.
One prompt's historyReviewed R 0.1.16 group_runs, build_compare_view, compare.html.j2.
Older analysis pageReviewed R 0.1.16 Same execution view with another analysis record and cross-links from About.
02

Dependency layout

#

Steps are numbered in saved order. Dependencies become directed edges; duplicates are removed, unknown/self references counted as unusable, and depth-first search identifies cycle-closing back edges. Back edges are excluded from the acyclic layout and drawn as warnings.

Edges implied by longer paths are classified as redundant and hidden initially. Nodes are layered by longest path from an entry. Long edges receive layout waypoints; ordering/positioning sweeps reduce crossings and align related nodes. SVG Bézier paths connect them. Geometry is a presentation heuristic, not a scheduling optimizer.

The controls, colours, origin labels, warnings and counts are fully described in Plans. The Process diagram uses different semantics: proposal lanes and attributed step transfers across rounds, with real vote arrows at the end.

03

Text and browser behavior

#

Raw model strings are escaped by the templates; prose helpers render Markdown with raw HTML disabled. The report has inline CSS, JavaScript and SVG, and no client-side model or analysis service. Browser interactions switch already-rendered tabs/panes, open popovers, pan/zoom graphs and sort/filter histories.

Fragment navigation opens the target tab and section. Proposal detail panes keep their own local selected view. Popovers support hover/focus, click-to-pin and dragging. Fullscreen uses the browser API. These interactions do not modify the underlying trace.

04

Prompt and model aggregation

#

Task files are matched to recorded runs by prompt content key, so catalogue metadata can name an older run whose original label was missing. A prompt without runs appears in the catalogue but has no generated history page. Word count is a whitespace split of the prompt.

The model statistics view groups by displayed model label and settings text. Cost aggregation instead groups by provider/model. Neither grouping is a controlled comparison of models. A title/name change can affect one grouping without representing a model capability change.

05

Versioned presentation

#

Every generated page receives the current renderer version and generation timestamp. Run reports also expose original executor and selected analyst versions when recorded. Indexes cannot represent one executor version for all included runs; each row supplies its own provenance.

The renderer currently supports analysis schemas 2–5. Unsupported content is flagged instead of passed to current narrative views. Missing optional fields trigger legacy/not-generated notices. Deterministic views remain available where the saved proposals provide enough information.

Source files used for this reference

Reviewed at 7361ea0b71a5.

← Documentation homeFind a report element →
Reference edition 2026-09-21Versions & compatibilityChangelogCHANGELOG.md ↓
Search documentation

Search both guides, report elements and the changelog.

Report screenshot