diff --git a/.project/objectives/README.md b/.project/objectives/README.md
index f789a8e6..5f0227d9 100644
--- a/.project/objectives/README.md
+++ b/.project/objectives/README.md
@@ -15,10 +15,10 @@
| Priority | โ
| ๐ต | ๐ก | ๐ด | โ | โซ | Total |
|---|---|---|---|---|---|---|---|
| **P0** | 43 | 0 | 0 | 0 | 0 | 0 | 43 |
-| **P1** | 34 | 1 | 9 | 0 | 18 | 1 | 63 |
-| **P2** | 33 | 0 | 2 | 1 | 9 | 2 | 47 |
+| **P1** | 34 | 1 | 10 | 0 | 17 | 1 | 63 |
+| **P2** | 33 | 0 | 4 | 1 | 7 | 2 | 47 |
| **P3 (oos)** | 3 | 0 | 0 | 0 | 1 | 19 | 23 |
-| **total** | **113** | **1** | **11** | **1** | **28** | **22** | **176** |
+| **total** | **113** | **1** | **14** | **1** | **25** | **22** | **176** |
@@ -139,7 +139,7 @@
| [p1-47](p1-47-river-hydrology-network.md) | โ missing | River hydrology โ D6 flow analysis, hydraulic erosion, multi-hex lakes, cross-tile rivers | [terraformer](../team-leads/terraformer.md) | 2026-04-30 |
| [p1-48](p1-48-flora-species-renderer.md) | โ missing | Flora species renderer โ bind 149 species to world-map tile rendering (single source of truth) | [terraformer](../team-leads/terraformer.md) | 2026-04-30 |
| [p1-49](p1-49-fauna-species-renderer.md) | โ missing | Fauna species renderer โ 61 Game-1 species visible on encounter and lair tiles | [terraformer](../team-leads/terraformer.md) | 2026-04-30 |
-| [p1-50](p1-50-tectonic-prepass.md) | โ missing | Tectonic prepass โ voronoi plates + boundary classification seeding elevation | [terraformer](../team-leads/terraformer.md) | 2026-04-30 |
+| [p1-50](p1-50-tectonic-prepass.md) | ๐ก partial | Tectonic prepass โ voronoi plates + boundary classification seeding elevation | [terraformer](../team-leads/terraformer.md) | 2026-04-30 |
| [p1-51](p1-51-worldgen-canonical-design-docs.md) | โ
done | Worldgen canonical design docs โ author the spec before any Rust | [terraformer](../team-leads/terraformer.md) | 2026-04-30 |
| [p2-06](p2-06-export-pipeline.md) | โ
done | Export pipeline for Windows / macOS / Linux | [shipwright](../team-leads/shipwright.md) | 2026-04-25 |
| [p2-16](p2-16-audio-assets.md) | ๐ต in_progress | Audio assets โ in-theme OSS launch pack + source ledger | [asset-audio](../team-leads/asset-audio.md) | 2026-04-27 |
@@ -198,8 +198,8 @@
| [p2-46](p2-46-past-games-archive-replay-viewer.md) | โ missing | Past-games archive & replay viewer โ `mc-replay` crate, on-disk archive, projection-based playback | [shipwright](../team-leads/shipwright.md) | 2026-04-30 |
| [p2-47](p2-47-in-game-statistics-screens.md) | โ missing | In-game statistics screens โ Civ-style 5-tab modal (Demographics / Graphs / Rankings / Replay / Histories) | [shipwright](../team-leads/shipwright.md) | 2026-04-30 |
| [p2-48](p2-48-end-of-game-summary-screen.md) | โ missing | End-of-game summary screen โ outcome banner, standings, score graph, awards, timeline, footer actions | [shipwright](../team-leads/shipwright.md) | 2026-04-30 |
-| [p2-49](p2-49-climate-axes-latitude-continentality.md) | โ missing | Climate axes refactor โ latitude + continentality + zonal winds as first-class per-hex inputs | [terraformer](../team-leads/terraformer.md) | 2026-04-30 |
-| [p2-50](p2-50-rng-determinism-pin.md) | โ missing | Deterministic RNG + seed-derivation pin across mc-mapgen / mc-climate / mc-ecology | [terraformer](../team-leads/terraformer.md) | 2026-04-30 |
+| [p2-49](p2-49-climate-axes-latitude-continentality.md) | ๐ก partial | Climate axes refactor โ latitude + continentality + zonal winds as first-class per-hex inputs | [terraformer](../team-leads/terraformer.md) | 2026-04-30 |
+| [p2-50](p2-50-rng-determinism-pin.md) | ๐ก partial | Deterministic RNG + seed-derivation pin across mc-mapgen / mc-climate / mc-ecology | [terraformer](../team-leads/terraformer.md) | 2026-04-30 |
| [p2-51](p2-51-world-shape-knobs.md) | โ missing | Player-facing world-shape parameters on new-game screen | [terraformer](../team-leads/terraformer.md) | 2026-04-30 |
## Out of Scope (Game 2 / Game 3)
diff --git a/.project/objectives/p2-49-climate-axes-latitude-continentality.md b/.project/objectives/p2-49-climate-axes-latitude-continentality.md
index f8b782c5..65d0489b 100644
--- a/.project/objectives/p2-49-climate-axes-latitude-continentality.md
+++ b/.project/objectives/p2-49-climate-axes-latitude-continentality.md
@@ -81,9 +81,10 @@ and rain-shadow distinctions at last.
for worldgen biome assignment. Whittaker-style table from CLIMATE.md ยง10.
- โป **Lab exposes 5 climate sliders** โ deferred to Wave E (p1-46). Not in scope
for Wave A Rust-only implementation.
-- โป **Backwards-compat (PRE-merge)** โ batch test (`tools/autoplay-batch.sh 10 300`)
- running on apricot; result pending. `mc-climate` tile_sync tests pass locally
- (37/37). Will update once batch completes.
+- โ **Backwards-compat (PRE-merge)** โ `tools/autoplay-batch.sh 10 300` on apricot,
+ batch `20260430_164627`: 10/10 games `victory=true`, 0 crashes, 0 AutoPlay errors.
+ `mc-climate` tile_sync tests pass (37/37). Existing canopy/undergrowth evolution
+ invariants hold.
- โ **Determinism + golden** โ `src/simulator/crates/mc-climate/tests/climate_decomposition.rs`
(5 tests: latitude_derivation_golden, band_discretisation_stable,
whittaker_table_spot_checks, derive_climate_fields_deterministic_on_10x10,
diff --git a/public/games/age-of-dwarves/data/objectives.json b/public/games/age-of-dwarves/data/objectives.json
index ed8c9e13..8891d1e2 100644
--- a/public/games/age-of-dwarves/data/objectives.json
+++ b/public/games/age-of-dwarves/data/objectives.json
@@ -1,12 +1,12 @@
{
- "generated_at": "2026-04-30T22:51:49Z",
+ "generated_at": "2026-05-01T00:04:24Z",
"totals": {
- "stub": 1,
- "missing": 28,
- "partial": 11,
- "in_progress": 1,
+ "partial": 14,
"oos": 22,
+ "missing": 25,
"done": 113,
+ "in_progress": 1,
+ "stub": 1,
"total": 176
},
"objectives": [
@@ -954,7 +954,7 @@
"id": "p1-50",
"title": "Tectonic prepass โ voronoi plates + boundary classification seeding elevation",
"priority": "p1",
- "status": "missing",
+ "status": "partial",
"scope": "game1",
"owner": "terraformer",
"updated_at": "2026-04-30",
@@ -1514,7 +1514,7 @@
"id": "p2-49",
"title": "Climate axes refactor โ latitude + continentality + zonal winds as first-class per-hex inputs",
"priority": "p2",
- "status": "missing",
+ "status": "partial",
"scope": "game1",
"owner": "terraformer",
"updated_at": "2026-04-30",
@@ -1524,7 +1524,7 @@
"id": "p2-50",
"title": "Deterministic RNG + seed-derivation pin across mc-mapgen / mc-climate / mc-ecology",
"priority": "p2",
- "status": "missing",
+ "status": "partial",
"scope": "game1",
"owner": "terraformer",
"updated_at": "2026-04-30",
|