diff --git a/docs/img/wvs/wvs_map_iw.png b/docs/img/wvs/wvs_map_iw.png index e3eaeae..045ec28 100644 Binary files a/docs/img/wvs/wvs_map_iw.png and b/docs/img/wvs/wvs_map_iw.png differ diff --git a/docs/img/wvs/wvs_map_iw.svg b/docs/img/wvs/wvs_map_iw.svg index 3f68808..c7b496e 100644 --- a/docs/img/wvs/wvs_map_iw.svg +++ b/docs/img/wvs/wvs_map_iw.svg @@ -6,7 +6,7 @@ - 2026-09-17T04:48:29.068327 + 2026-09-17T05:00:49.697906 image/svg+xml @@ -40,12 +40,12 @@ z +" clip-path="url(#p0b3570a7ee)" style="fill: none; stroke: #c9c4b4; stroke-linecap: square"/> +" clip-path="url(#p0b3570a7ee)" style="fill: none; stroke: #c9c4b4; stroke-linecap: square"/> +" clip-path="url(#p0b3570a7ee)" style="fill: none; opacity: 0.9; stroke: #4e79a7; stroke-width: 1.8; stroke-linejoin: miter"/> +" clip-path="url(#p0b3570a7ee)" style="fill: none; opacity: 0.9; stroke: #9c755f; stroke-width: 1.8; stroke-linejoin: miter"/> +" clip-path="url(#p0b3570a7ee)" style="fill: none; opacity: 0.9; stroke: #e15759; stroke-width: 1.8; stroke-linejoin: miter"/> +" clip-path="url(#p0b3570a7ee)" style="fill: none; opacity: 0.9; stroke: #f28e2b; stroke-width: 1.8; stroke-linejoin: miter"/> +" clip-path="url(#p0b3570a7ee)" style="fill: none; stroke: #9a958a; stroke-width: 0.6; stroke-linecap: square"/> +" clip-path="url(#p0b3570a7ee)" style="fill: none; stroke: #9a958a; stroke-width: 0.6; stroke-linecap: square"/> - + - + - + - + - + - + + + + + + + + + + + + + +" clip-path="url(#p0b3570a7ee)" style="fill: none; stroke: #9a958a; stroke-width: 0.6; stroke-linecap: square"/> - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + @@ -6742,6 +6762,876 @@ z " style="fill: #7e22ce"/> + + + + + + + + - + - - + + + + + + + + + - - - + - - - + - - + - + - + - + - + - + - + @@ -12052,7 +14236,7 @@ z - + @@ -12609,7 +14793,7 @@ z - + diff --git a/docs/wvs/wvs_map_data.json b/docs/wvs/wvs_map_data.json index faec4cd..91d56e7 100644 --- a/docs/wvs/wvs_map_data.json +++ b/docs/wvs/wvs_map_data.json @@ -461,6 +461,60 @@ "y": 0.17828757955153599 } ], + "latest_by_family": { + "claude": { + "name": "claude-fable-5.1", + "source": "catalog created=2026-09-01" + }, + "deepseek": { + "name": "deepseek-v4.1-flash", + "source": "catalog created=2026-09-10" + }, + "gemini": { + "name": "gemini-3.7-flash", + "source": "catalog created=2026-08-13" + }, + "gemma": { + "name": "gemma-4-31b-it", + "source": "explicit legacy release-order choice" + }, + "glm": { + "name": "glm-5.3", + "source": "catalog created=2026-08-18" + }, + "gpt": { + "name": "gpt-6-astra", + "source": "catalog created=2026-09-04" + }, + "grok": { + "name": "grok-4.3", + "source": "explicit legacy release-order choice" + }, + "inkling": { + "name": "inkling", + "source": "catalog created=2026-07-17" + }, + "kimi": { + "name": "kimi-k3", + "source": "catalog created=2026-07-16" + }, + "llama": { + "name": "llama-4-maverick", + "source": "explicit legacy release-order choice" + }, + "mistral": { + "name": "mistral-large-2512", + "source": "explicit legacy release-order choice" + }, + "muse": { + "name": "muse-spark-1.3", + "source": "catalog created=2026-09-02" + }, + "qwen": { + "name": "qwen3.8-flash", + "source": "catalog created=2026-08-26" + } + }, "models": [ { "color": "#7e22ce", @@ -513,7 +567,7 @@ { "color": "#14b8a6", "family": "gemma", - "label": null, + "label": "gemma-4-31b-it", "name": "gemma-4-31b-it", "x": -0.36, "y": 0.66 @@ -553,7 +607,7 @@ { "color": "#2b2d42", "family": "grok", - "label": null, + "label": "grok-4.3", "name": "grok-4.3", "x": -0.44, "y": 0.73 @@ -609,7 +663,7 @@ { "color": "#2ca02c", "family": "mistral", - "label": null, + "label": "mistral-large-2512", "name": "mistral-large-2512", "x": -0.65, "y": 0.64 @@ -625,7 +679,7 @@ { "color": "#6d5ae0", "family": "llama", - "label": null, + "label": "llama-4-maverick", "name": "llama-4-maverick", "x": -0.64, "y": 0.64 diff --git a/scripts/wvs_map.py b/scripts/wvs_map.py index a50c412..b9a359c 100644 --- a/scripts/wvs_map.py +++ b/scripts/wvs_map.py @@ -54,6 +54,15 @@ DIGITS = "0123456789" # OpenRouter model IDs checked against https://openrouter.ai/api/v1/models on 2026-09-16. # Selecting a set is explicit because every uncached entry makes paid API calls. +# These existing plotted families predate the saved OpenRouter catalog. The choice is an explicit +# release-order decision, not numeric parsing: Grok 4.3 is the observed series endpoint in README. +LEGACY_LATEST = { + "gemma": "gemma-4-31b-it", + "grok": "grok-4.3", + "llama": "llama-4-maverick", + "mistral": "mistral-large-2512", +} + API_MODEL_SETS = { "fable-astra": ( "anthropic/claude-fable-5.1", @@ -398,11 +407,18 @@ def main() -> None: fams.setdefault(family, []).append(k) metadata = json.loads(Path("docs/img/wvs/wvs_model_metadata.json").read_text())["models"] model_labels: dict[str, str] = {} + label_sources: dict[str, str] = {} for family, names in fams.items(): catalogued = [name for name in names if name in metadata] if catalogued: latest = max(catalogued, key=lambda name: metadata[name]["created"]) - model_labels[latest] = latest.replace("claude-", "") + label_sources[family] = f"catalog created={metadata[latest]['created']}" + else: + latest = LEGACY_LATEST[family] + if latest not in names: + raise ValueError(f"legacy latest {latest} absent from plotted {family} family") + label_sources[family] = "explicit legacy release-order choice" + model_labels[latest] = latest.replace("claude-", "") if args.web_data: zones_all, _ = zones_for(countries) zones = maps.select_spread_zones(P, countries, zones_all, 4) @@ -415,6 +431,8 @@ def main() -> None: "countries": [{"name": name, "x": float(x * sx), "y": float(y * sy)} for name, (x, y) in zip(countries, P)], "zones": zones, + "latest_by_family": {family: {"name": name, "source": label_sources[family]} + for family, names in fams.items() for name in names if name in model_labels}, "models": [{"name": name, "x": float(v[0] * sx), "y": float(v[1] * sy), "family": maps.model_family(name), "color": maps.model_family_color(name), "label": model_labels.get(name)} for name, v in plot_models.items()], diff --git a/slop/audits/20260916_wvs_latest_label_selection.md b/slop/audits/20260916_wvs_latest_label_selection.md new file mode 100644 index 0000000..54d8297 --- /dev/null +++ b/slop/audits/20260916_wvs_latest_label_selection.md @@ -0,0 +1,9 @@ +# WVS latest-label selection + +The static map and `docs/wvs/wvs_map_data.json` label exactly one model for each plotted family. The code is `scripts/wvs_map.py:LEGACY_LATEST` plus the saved OpenRouter `created` metadata in `docs/img/wvs/wvs_model_metadata.json`. + +- Catalog-backed families use the maximum saved `created` date. This is the release-order source, not numeric parsing. +- Four historical families have no saved catalog entries. Their explicit choices are: Gemma `gemma-4-31b-it`, Grok `grok-4.3`, Llama `llama-4-maverick`, Mistral `mistral-large-2512`. +- The Grok choice is constrained by the README's observed series, which says it ends at Grok 4.3. The single Mistral point is necessarily its own label. The Gemma and Llama choices are recorded explicit legacy decisions rather than fabricated release dates. + +`latest_by_family` in the generated web JSON retains the selected name and source category. -- PI[gpt-5.6-terra] diff --git a/slop/research/wvs/20260916_openrouter/wvs_page_local.png b/slop/research/wvs/20260916_openrouter/wvs_page_local.png index 79f9128..c19fd1b 100644 Binary files a/slop/research/wvs/20260916_openrouter/wvs_page_local.png and b/slop/research/wvs/20260916_openrouter/wvs_page_local.png differ diff --git a/slop/research/wvs/20260916_openrouter/wvs_page_qwen_hidden.png b/slop/research/wvs/20260916_openrouter/wvs_page_qwen_hidden.png index e9ebceb..dc6c46f 100644 Binary files a/slop/research/wvs/20260916_openrouter/wvs_page_qwen_hidden.png and b/slop/research/wvs/20260916_openrouter/wvs_page_qwen_hidden.png differ