Files
intotheeast-com/docs/working/plans/2026-06-21-entry-enrichment.md
T

328 lines
13 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Entry Enrichment Implementation Plan
> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking.
**Goal:** Enrich all real trip journal entries with location, GPS coordinates, and approximate weather by generating per-trip Markdown review docs, letting the user correct them, then applying changes to YAML frontmatter.
**Architecture:** Three round-trips (one per trip): Claude generates a review table → user edits the doc → Claude applies the approved values to `entry.md` frontmatter. No scripts — all edits via the Edit tool directly. Human review gates between each trip pair.
**Tech Stack:** Grav YAML frontmatter, Markdown tables, OpenStreetMap URLs for coordinates.
## Global Constraints
- Never read `.env`
- Only write to `user/` and `docs/` directories
- `lat`/`lng` must be decimal degree strings (e.g. `'48.8566'`) — not integers
- `weather_temp_c` must be a string integer (e.g. `'22'`)
- `weather_desc` must be a single short phrase (e.g. `sunny`, `partly cloudy`, `rainy`)
- Map Links use OSM format: `https://www.openstreetmap.org/#map=15/{lat}/{lng}`
- All edits committed to the `user/` git repo via `make content-push` after all three trips are done
---
## File Map
| File | Action | Purpose |
|---|---|---|
| `docs/enrichment/central-asia-2023.md` | Create | Review table, 22 rows |
| `docs/enrichment/us-canada-mex-2024.md` | Create | Review table, 12 rows |
| `docs/enrichment/italy-2025.md` | Create | Review table, 2 rows |
| `user/pages/01.trips/central-asia-2023/01.dailies/*/entry.md` | Modify | Update 6 frontmatter fields (22 files) |
| `user/pages/01.trips/us-canada-mex-2024/01.dailies/*/entry.md` | Modify | Update 6 frontmatter fields (12 files) |
| `user/pages/01.trips/italy-2025/01.dailies/*/entry.md` | Modify | Update 6 frontmatter fields (2 files) |
---
## Task 1: Generate central-asia-2023 review doc
**Files:**
- Create: `docs/enrichment/central-asia-2023.md`
- Read: `user/pages/01.trips/central-asia-2023/01.dailies/*/entry.md` (22 files)
- [ ] **Step 1: Read all 22 entry.md files**
Read each file at `user/pages/01.trips/central-asia-2023/01.dailies/{folder}/entry.md`. Extract: folder name, `date`, `title`, `location_city`, `location_country`, body text.
- [ ] **Step 2: Infer location for each entry**
For each entry:
1. Read the title first — most locations are explicit.
2. Fall back to body text if title is ambiguous.
3. If neither reveals a location clearly, leave City/Country blank and put `?` in the Map Link cell.
Known city → approximate coordinates mapping for this trip (use these; do not hallucinate unfamiliar coordinates):
| City | Country | Lat | Lng |
|---|---|---|---|
| Berlin | Germany | 52.5200 | 13.4050 |
| Astana (Nur-Sultan) | Kazakhstan | 51.1801 | 71.4460 |
| Almaty | Kazakhstan | 43.2220 | 76.8512 |
| Karakol | Kyrgyzstan | 42.4900 | 78.3936 |
| Dushanbe | Tajikistan | 38.5598 | 68.7870 |
| Samarkand | Uzbekistan | 39.6542 | 66.9597 |
| Tbilisi | Georgia | 41.6938 | 44.8015 |
- [ ] **Step 3: Estimate weather for each entry**
Use typical daytime high (°C) and one-word description for the city + month. Reference values:
| City | Aug | Sep | Oct |
|---|---|---|---|
| Berlin | 24, sunny | 19, partly cloudy | 13, cloudy |
| Astana | 26, sunny | 17, partly cloudy | 5, cold |
| Almaty | 28, sunny | 21, sunny | 12, partly cloudy |
| Karakol | 24, sunny | 16, partly cloudy | 8, cold |
| Dushanbe | 35, sunny | 28, sunny | 18, sunny |
| Samarkand | 33, sunny | 25, sunny | 16, partly cloudy |
| Tbilisi | 29, sunny | 23, sunny | 14, partly cloudy |
- [ ] **Step 4: Write the review doc**
Create `docs/enrichment/central-asia-2023.md` with this exact structure:
```markdown
# central-asia-2023 Enrichment Review
**Instructions:** Review each row. To correct coordinates, replace the Map Link with a new OSM link (`https://www.openstreetmap.org/#map=15/{lat}/{lng}`) or a Google Maps URL — coordinates are extracted from the link. Edit City, Country, Temp, and Weather cells directly. Leave Map Link blank if no location is known.
| Entry | Date | Title | City | Country | Map Link | Temp °C | Weather |
|---|---|---|---|---|---|---|---|
| 2023-08-28-pixelfed-1.entry | 2023-08-28 | Welcome to My Central Asian Picture Diary | Berlin | Germany | https://www.openstreetmap.org/#map=15/52.5200/13.4050 | 24 | sunny |
...
```
One row per entry, in date order.
- [ ] **Step 5: Commit the generated doc**
```bash
cd /home/mischa/Projects/travel-blog-intotheeast
git add docs/enrichment/central-asia-2023.md
git commit -m "docs: add central-asia-2023 enrichment review doc"
```
- [ ] **Step 6: Prompt user to review**
Tell the user: "Review doc generated at `docs/enrichment/central-asia-2023.md`. Please open it, correct any locations or weather values, and let me know when it's ready to apply."
---
## Task 2: Apply central-asia-2023 enrichment (after user approval)
**Files:**
- Read: `docs/enrichment/central-asia-2023.md`
- Modify: `user/pages/01.trips/central-asia-2023/01.dailies/*/entry.md` (22 files)
**Prerequisite:** User has reviewed and approved `docs/enrichment/central-asia-2023.md`.
- [ ] **Step 1: Read the reviewed doc**
Read `docs/enrichment/central-asia-2023.md`. Parse each data row of the table.
- [ ] **Step 2: Extract coordinates from Map Links**
For each row where Map Link is not blank:
- OSM format `https://www.openstreetmap.org/#map={zoom}/{lat}/{lng}` → split on `/`, take last two values as lat and lng.
- Google Maps format `https://www.google.com/maps/@{lat},{lng},{zoom}z` → extract the `@lat,lng` portion.
- If Map Link is blank or `?`, set lat and lng to `''`.
- [ ] **Step 3: Apply to each entry.md**
For each row, open `user/pages/01.trips/central-asia-2023/01.dailies/{entry}/entry.md` and update these six fields using the Edit tool:
```yaml
location_city: '{City}'
location_country: '{Country}'
lat: '{Lat}'
lng: '{Lng}'
weather_temp_c: '{Temp}'
weather_desc: '{Weather}'
```
Replace the existing (likely empty) values. Keep all other frontmatter untouched.
- [ ] **Step 4: Verify**
For the first 3 and last entry, read back the file and confirm the six fields are set correctly.
- [ ] **Step 5: Commit**
```bash
cd /home/mischa/Projects/travel-blog-intotheeast && git add user/pages/01.trips/central-asia-2023/01.dailies/
git commit -m "content: enrich central-asia-2023 entries with location and weather"
```
---
## Task 3: Generate us-canada-mex-2024 review doc
**Files:**
- Create: `docs/enrichment/us-canada-mex-2024.md`
- Read: `user/pages/01.trips/us-canada-mex-2024/01.dailies/*/entry.md` (12 files)
- [ ] **Step 1: Read all 12 entry.md files**
Read each file at `user/pages/01.trips/us-canada-mex-2024/01.dailies/{folder}/entry.md`. Extract: folder name, `date`, `title`, body text.
- [ ] **Step 2: Infer location for each entry**
Known cities from titles for this trip:
| Title hint | City | Country | Lat | Lng |
|---|---|---|---|---|
| Piran | Piran | Slovenia | 45.5285 | 13.5680 |
| Portland / Amtrak (destination) | Portland | USA | 45.5231 | -122.6765 |
| San Francisco / Golden Gate / Highway 1 | San Francisco | USA | 37.7749 | -122.4194 |
| Los Angeles / burrito / beach | Los Angeles | USA | 34.0522 | -118.2437 |
| Toronto | Toronto | Canada | 43.6532 | -79.3832 |
| Niagara Falls | Niagara Falls | Canada | 43.0896 | -79.0849 |
| Montreal | Montreal | Canada | 45.5017 | -73.5673 |
| Mexico City | Mexico City | Mexico | 19.4326 | -99.1332 |
| Twin Peaks / windmills / craft beer | San Francisco | USA | 37.7749 | -122.4194 |
| Amtrak eighteen hours | (train — use Portland as destination) | USA | 45.5231 | -122.6765 |
Use the title + body together to identify each city.
- [ ] **Step 3: Estimate weather**
Reference values (daytime high °C, description) for this trip's cities + months (MayAug 2024):
| City | May | Jul | Aug |
|---|---|---|---|
| Piran | 21, sunny | — | — |
| San Francisco | — | 18, partly cloudy | 18, partly cloudy |
| Los Angeles | — | 28, sunny | 29, sunny |
| Portland | — | 27, sunny | 27, sunny |
| Toronto | — | — | 27, sunny |
| Niagara Falls | — | — | 26, sunny |
| Montreal | — | — | 26, sunny |
| Mexico City | — | — | 22, partly cloudy |
- [ ] **Step 4: Write the review doc**
Create `docs/enrichment/us-canada-mex-2024.md` with the same structure as the central-asia doc:
```markdown
# us-canada-mex-2024 Enrichment Review
**Instructions:** Review each row. To correct coordinates, replace the Map Link with a new OSM link (`https://www.openstreetmap.org/#map=15/{lat}/{lng}`) or a Google Maps URL — coordinates are extracted from the link. Edit City, Country, Temp, and Weather cells directly. Leave Map Link blank if no location is known.
| Entry | Date | Title | City | Country | Map Link | Temp °C | Weather |
|---|---|---|---|---|---|---|---|
| 2024-05-28-pixelfed-1.entry | 2024-05-28 | Ice Cream and Old Walls in Piran | Piran | Slovenia | https://www.openstreetmap.org/#map=15/45.5285/13.5680 | 21 | sunny |
...
```
- [ ] **Step 5: Commit**
```bash
cd /home/mischa/Projects/travel-blog-intotheeast
git add docs/enrichment/us-canada-mex-2024.md
git commit -m "docs: add us-canada-mex-2024 enrichment review doc"
```
- [ ] **Step 6: Prompt user to review**
Tell the user: "Review doc generated at `docs/enrichment/us-canada-mex-2024.md`. Please open it, correct any locations or weather values, and let me know when it's ready to apply."
---
## Task 4: Apply us-canada-mex-2024 enrichment (after user approval)
**Files:**
- Read: `docs/enrichment/us-canada-mex-2024.md`
- Modify: `user/pages/01.trips/us-canada-mex-2024/01.dailies/*/entry.md` (12 files)
**Prerequisite:** User has reviewed and approved `docs/enrichment/us-canada-mex-2024.md`.
- [ ] **Step 1: Read the reviewed doc and parse rows** — same method as Task 2 Step 1.
- [ ] **Step 2: Extract coordinates from Map Links** — same method as Task 2 Step 2.
- [ ] **Step 3: Apply to each entry.md**
For each row, open `user/pages/01.trips/us-canada-mex-2024/01.dailies/{entry}/entry.md` and update the six frontmatter fields.
- [ ] **Step 4: Verify** — read back first 3 and last entry, confirm fields are set.
- [ ] **Step 5: Commit**
```bash
cd /home/mischa/Projects/travel-blog-intotheeast && git add user/pages/01.trips/us-canada-mex-2024/01.dailies/
git commit -m "content: enrich us-canada-mex-2024 entries with location and weather"
```
---
## Task 5: Generate italy-2025 review doc
**Files:**
- Create: `docs/enrichment/italy-2025.md`
- Read: `user/pages/01.trips/italy-2025/01.dailies/*/entry.md` (2 files)
- [ ] **Step 1: Read both entry.md files.**
- [ ] **Step 2: Infer location.**
Entry 1 (2025-10-11): "600km of Tuscany Begins with an Aperitif" — route starts at Venturina Terme (from GPX filename). City: Venturina Terme, Italy. Lat: 43.0183, Lng: 10.6059.
Entry 2 (2025-10-16): read title + body to determine.
- [ ] **Step 3: Estimate weather.**
Tuscany, October: 18°C, partly cloudy (typical autumn).
- [ ] **Step 4: Write the review doc.**
Create `docs/enrichment/italy-2025.md` with the same structure, 2 data rows.
- [ ] **Step 5: Commit.**
```bash
cd /home/mischa/Projects/travel-blog-intotheeast
git add docs/enrichment/italy-2025.md
git commit -m "docs: add italy-2025 enrichment review doc"
```
- [ ] **Step 6: Prompt user to review.**
Tell the user: "Review doc generated at `docs/enrichment/italy-2025.md`. Please open it, correct any values, and let me know when ready to apply."
---
## Task 6: Apply italy-2025 enrichment (after user approval)
**Files:**
- Read: `docs/enrichment/italy-2025.md`
- Modify: `user/pages/01.trips/italy-2025/01.dailies/*/entry.md` (2 files)
**Prerequisite:** User has reviewed and approved `docs/enrichment/italy-2025.md`.
- [ ] **Step 1: Read the reviewed doc and parse rows.**
- [ ] **Step 2: Extract coordinates from Map Links.**
- [ ] **Step 3: Apply to both entry.md files** — update six frontmatter fields.
- [ ] **Step 4: Verify** — read both files back, confirm fields are set.
- [ ] **Step 5: Commit and sync**
```bash
cd /home/mischa/Projects/travel-blog-intotheeast && git add user/pages/01.trips/italy-2025/01.dailies/
git commit -m "content: enrich italy-2025 entries with location and weather"
make content-push
```
---
## Self-Review Notes
- All 36 entries covered across 6 tasks (3 generate + 3 apply)
- Human review gates are explicit: each "apply" task has a **Prerequisite** line
- Coordinate extraction rules cover both OSM and Google Maps URL formats
- Weather reference tables provide concrete values — no vague "look it up"
- `make content-push` only runs after the final trip to avoid partial syncs
- No test files needed — this is data enrichment; verification steps replace TDD