Communicate with evidence
Lead with the decision or finding. Show the mechanism, then the smallest chart that makes the evidence clear. Put detailed settings, records, and caveats in agent notes. A reader should understand the question before opening a technical appendix.
Choose the picture that answers the question
| Question | Visual form | Required context |
|---|---|---|
| How does an approach work? | StrategyFigure animated SVG | Mechanism, readable resting frame, concise caption |
| Which ideas should I explore? | StrategyAtlas with filtering | Linked study briefs, explicit proposal status |
| When does a social override become attractive? | PliabilityLab | Toy equation, assumptions, unchanged search reference |
| Did an arm win more often? | ResearchChart with intervals | Run ID, planned/completed counts, interval definition |
| How does a value change with time or budget? | ResearchPlot line chart | Units, ordered x values, source, evidence class |
| What is the tradeoff between two outcomes? | ResearchPlot scatter plot | Units, comparable cohorts, point meanings |
| Where are the weak matchups? | ResearchPlot heatmap | Full lineup definitions; cell-level evidence in the linked report |
| What happened in one actual game? | GameReplay | Public observations, sampling notice, game ID |
The examples below are deliberately synthetic formatting fixtures. They show how to communicate a future study. Their values are not estimates from the arena and must never be cited as strategic results.
Curves: show what changes
Example: prediction error through a session
Illustrative · syntheticScroll the chart horizontally to inspect all values.
Synthetic values. A real learning curve should use held-out predictions and report session-level uncertainty. Lower error would mean more accurate predictions under the stated scoring rule.
Source: Hand-authored formatting fixture; six fictional observations per series; no run or participants.
View data table
| Series | Interaction index | Illustrative Brier score |
|---|---|---|
| Fixed model | 0 | 0.32 |
| Fixed model | 1 | 0.31 |
| Fixed model | 2 | 0.34 |
| Fixed model | 3 | 0.3 |
| Fixed model | 4 | 0.32 |
| Fixed model | 5 | 0.31 |
| Updating model | 0 | 0.34 |
| Updating model | 1 | 0.29 |
| Updating model | 2 | 0.25 |
| Updating model | 3 | 0.23 |
| Updating model | 4 | 0.21 |
| Updating model | 5 | 0.2 |
Use curves for calibration, build timing, cost sweeps, or changes through a session. If measurements are noisy, publish intervals in the accompanying table or add a reviewed interval-capable design component. The current generic line plot does not draw uncertainty bands. Do not imply that a smooth line supplies uncertainty information.
Scatter plots: show the price of an improvement
Example: a concession has a price
Illustrative · syntheticScroll the chart horizontally to inspect all values.
Synthetic values. Each real point would represent a frozen policy and a retained cohort. This example supplies no error bars and establishes no improvement.
Source: Hand-authored formatting fixture; three fictional policy configurations, no games.
View data table
| Series | Mean foregone heuristic value per decision | Completed-game win rate (fraction) |
|---|---|---|
| Reference | 0 | 0.25 |
| Small cap | 2 | 0.3 |
| Large cap | 8 | 0.22 |
A win-versus-concession plot can reveal whether social gains require costly departures from the fixed reference. Compare equivalent compute budgets or label their differences. A point needs a retained cohort behind it before it can be marked measured.
Heatmaps: show where an approach fails
Example: strength depends on the table
Illustrative · syntheticScroll the chart horizontally to inspect all values.
Darker cells mean higher win fraction: 0–0.5. Blank cells have no value.
Synthetic values, not a ranking. Columns stand for full frozen lineups: all builders, all reciprocal traders, and all skeptics. The absent lower-right cell illustrates missing evidence.
Source: Hand-authored formatting fixture; eight fictional cells; no evaluation was run.
View data table
| Series | Full opponent lineup | Focal policy | win fraction |
|---|---|---|---|
| Fictional win fraction | Builders | Adaptive | 0.3 |
| Fictional win fraction | Reciprocal | Adaptive | 0.32 |
| Fictional win fraction | Builders | Social | 0.24 |
| Fictional win fraction | Reciprocal | Social | 0.4 |
| Fictional win fraction | Skeptics | Social | 0.18 |
| Fictional win fraction | Builders | Reference | 0.25 |
| Fictional win fraction | Reciprocal | Reference | 0.25 |
| Fictional win fraction | Skeptics | Reference | 0.25 |
A four-player cell must identify all three opponents. Link a measured heatmap to a report carrying planned, completed, incomplete, and invalid counts, uncertainty, and the exact lineup for each cell. Blank cells mean unmeasured, never a zero win rate. This compact component displays recorded cell values; the report owns their statistical interpretation.
Write an approach page
Use the authoring template. Every idea gets a matching registered SVG near the top, one concrete decision, a mechanism, a falsifiable study, an appropriate visual outcome to collect, and an explicit evidence status. Keep an approach as a proposal until a retained result supports an update.
For a new animation, design a specific explanatory sequence. A tradeoff frontier should look different from a belief update or an expansion race. Use a gentle loop that stays readable throughout. Respect reduced-motion preferences and omit animation pause buttons. Captions should describe the mechanism in one short sentence.
Asset and component contract
Rich MDX accepts literal string attributes only. No JavaScript, imports, ad hoc HTML, styles, or remote embeds. Visual implementations live in the design Storybook, exported through @settlers/design/research; web loads and validates the data. The same registered figures are available in agent notebook rendering.
<StrategyFigure approach="reputation" />
<StrategyAtlas asset="strategy-atlas" />
<PliabilityLab />
<ResearchPlot asset="example-tradeoff" />
Store small JSON exhibits in content/assets/. Plot fields include schema: 1, kind: "plot", variant, title, caption, evidence, source, labelled x and y domains, and up to five named series of points. Variants are line, scatter, and heatmap. A heatmap uses integer cell coordinates, category tick labels, and a color domain with a unit label. The checked-in examples are complete schemas to copy and replace.
Use illustrative for synthetic teaching data, derived for an exact calculation with its formula, and measured only for retained observations. Include a run or artifact reference and denominator in a measured source/caption and link the evidence report nearby. Schema validation checks the data shape; it cannot establish that a claimed source is true. Evidence review remains required.
Agent notes
ResearchChart remains the existing interval-capable win-rate component. ResearchPlot adds trajectories, scatter plots, and heatmaps; it does not replace statistical analysis. The data table below each plot makes exact values available to keyboard and screen-reader users. Values outside axis/color bounds, duplicate heatmap cells, missing provenance, and unordered line points are rejected.
Run just check in research and npm run check:research in web. The latter compiles every page, checks every asset, and verifies that each atlas item links to its own matching figure page. For new components also run design’s typecheck, lint, Storybook tests and build, plus web’s architecture check, typecheck, lint, tests, production build, and research browser checks. Inspect desktop, mobile, keyboard interaction, empty filters, and reduced motion.