Four-zone template: header, observations, analysis, visit log. Agent workflow for generate and update. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
178 lines
7.4 KiB
Markdown
178 lines
7.4 KiB
Markdown
# Location File Design
|
||
**Date:** 2026-03-25
|
||
**Context:** Extension to the cooking framework for a frequent traveler. Provides a structured workflow for documenting local market conditions and generating meal options from whatever ingredients are available in a given location.
|
||
|
||
---
|
||
|
||
## Goals
|
||
|
||
- Give a single Obsidian note per location that captures both raw observations and agent-generated analysis
|
||
- Support both freeform dump and structured field input — whichever suits the moment
|
||
- Produce five analysis outputs: ingredient role map, profile matches, meal options, regional intelligence, things to look out for
|
||
- Be permanently updatable across multiple visits via a running visit log
|
||
- Invoke via Claude Code conversation: "Process my Bangkok location file"
|
||
|
||
---
|
||
|
||
## File Structure
|
||
|
||
```
|
||
23-Cooking/
|
||
Locations/
|
||
_Location Template.md ← blank template with example entry
|
||
Bangkok, Thailand.md
|
||
Lisbon, Portugal.md
|
||
Oaxaca, Mexico.md
|
||
...
|
||
```
|
||
|
||
Each location file is a single Obsidian note named `City, Country.md`. The `_Location Template.md` underscore prefix keeps it sorted to the top of the folder.
|
||
|
||
---
|
||
|
||
## Zone Architecture
|
||
|
||
Every location file has four clearly-marked zones:
|
||
|
||
```
|
||
ZONE 1: HEADER
|
||
Location name, country/region, date first visited, date last updated
|
||
|
||
ZONE 2: OBSERVATIONS ← user fills in
|
||
Raw notes about what's available at local markets and shops.
|
||
Accepts freeform dump or structured fields.
|
||
Includes "First impressions" freetext field.
|
||
|
||
ZONE 3: ANALYSIS ← agent fills in
|
||
1. Ingredient Role Map
|
||
2. Profile Matches
|
||
3. Meal Options
|
||
4. Regional Intelligence
|
||
5. Things to Look Out For
|
||
|
||
ZONE 4: VISIT LOG ← user appends to
|
||
Dated entries from each visit.
|
||
Agent reads this when updating the analysis.
|
||
```
|
||
|
||
---
|
||
|
||
## Zone 2: Observations
|
||
|
||
Accepts either format — the agent handles both:
|
||
|
||
**Freeform dump:**
|
||
```
|
||
I'm in Chiang Mai. Tons of fresh lemongrass, galangal, kaffir lime leaves.
|
||
Fish sauce is the condiment of choice. Lots of cheap pork cuts. Sticky rice
|
||
everywhere. Coconut milk in every corner shop. Fresh herbs piled high.
|
||
```
|
||
|
||
**Structured fields:**
|
||
```
|
||
Proteins seen: pork (cheap), chicken, eggs, tofu
|
||
Produce seen: bok choy, morning glory, eggplant, long beans
|
||
Starches: sticky rice, rice noodles, glass noodles
|
||
Fats available: neutral oil, coconut milk
|
||
Acids available: lime, fish sauce, tamarind paste
|
||
Aromatics: lemongrass, galangal, shallot, garlic, chili
|
||
Condiments: fish sauce, oyster sauce, fermented soybean paste
|
||
Notables: kaffir lime leaves, pandan, fresh turmeric
|
||
First impressions: [freetext — prices, what's abundant, what's absent]
|
||
```
|
||
|
||
The template includes a worked example using a fictional location (Tbilisi, Georgia) showing both formats side by side, so the expected detail level is clear before the user fills in their own.
|
||
|
||
---
|
||
|
||
## Zone 3: Analysis (Agent Output)
|
||
|
||
Five subsections, all generated from the Observations zone and Visit Log:
|
||
|
||
### 1. Ingredient Role Map
|
||
Observations translated directly into framework roles:
|
||
> **Fat:** Neutral oil, coconut milk (braising only) | **Acid:** Lime, fish sauce | **Aromatic:** Lemongrass + galangal + shallot + garlic + chili | **Starch:** Sticky rice, rice noodles | **Protein:** Pork, chicken, tofu | **Umami:** Fish sauce, oyster sauce, fermented paste
|
||
|
||
### 2. Profile Matches
|
||
Which of the 10 framework profiles are executable here, with a confidence indicator (✦ = partial, ✦✦ = workable, ✦✦✦ = full):
|
||
> Southeast Asian ✦✦✦ · East Asian ✦✦ · South Asian ✦
|
||
|
||
Profiles that score ✦ or less are noted with what's missing.
|
||
|
||
### 3. Meal Options
|
||
3–5 concrete builds using available ingredients. Each formatted as a mini formula fill matching the [[Weekly Planning Template]] structure:
|
||
> *Pork stir-fry with morning glory* — One-Pan Sear · Southeast Asian · pork / morning glory / rice noodles / neutral oil / lime+fish sauce / lemongrass+garlic+chili
|
||
|
||
### 4. Regional Intelligence
|
||
What's culinarily notable about this location — staple ingredients, local cooking patterns, things that differ from the framework defaults:
|
||
> Sticky rice is the starch staple here, not jasmine rice. Kaffir lime leaves are used as an aromatic, not just a garnish. Morning glory (pak boong) is the default green — cheap, fast-cooking, takes high heat well.
|
||
|
||
### 5. Things to Look Out For
|
||
Ingredients or products worth seeking on the next market visit — local specialties, seasonal items, crossover ingredients:
|
||
> Fresh turmeric root, pandan leaves (floral sweetness in rice), fresh tamarind pods (better than paste for acid depth), pla ra (fermented fish paste — extreme umami depth)
|
||
|
||
---
|
||
|
||
## Zone 4: Visit Log
|
||
|
||
Chronological entries, oldest at top, newest at bottom. Each entry is a dated heading + freeform notes:
|
||
|
||
```markdown
|
||
### 2026-03-10 (first visit)
|
||
Settled into the Don Mueang area. Markets open early — 6am is peak
|
||
freshness. Galangal cheaper than ginger here. Sticky rice only at
|
||
street stalls, not supermarkets.
|
||
|
||
### 2026-09-15 (return visit)
|
||
Rainy season — different produce. Lots of young coconut. Found a wet
|
||
market two streets over, much better selection. Fermented fish paste
|
||
(pla ra) available there.
|
||
```
|
||
|
||
When the user asks the agent to update the file, it reads the full visit log and revises the Analysis zone — seasonal shifts, newly discovered ingredients, and price notes all feed back into the output.
|
||
|
||
---
|
||
|
||
## Agent Workflow
|
||
|
||
### First visit (generate)
|
||
1. Copy `_Location Template.md`, rename to `City, Country.md`
|
||
2. Fill in Zone 2 (Observations) — freeform dump or structured fields
|
||
3. Open Claude Code: **"Process my [City] location file"**
|
||
4. Agent reads Zone 2, fills in Zone 3 (Analysis), updates Zone 1 header dates, commits
|
||
|
||
### Return visit (update)
|
||
1. Open the existing location file
|
||
2. Append a dated entry to Zone 4 (Visit Log)
|
||
3. Open Claude Code: **"Update my [City] location file"**
|
||
4. Agent reads Zone 2 + full Zone 4, revises Zone 3, updates last-updated date in Zone 1, commits
|
||
|
||
### Agent context
|
||
When processing, the agent has access to the full framework:
|
||
- [[Flavor Profile Formulas]] — to match observations to profiles
|
||
- [[Role Substitution Logic]] — to understand what roles available ingredients fill
|
||
- [[Flavor Sense]] — to reason about what combinations work and why
|
||
- [[Frameworks]] — to assign techniques to meal options
|
||
|
||
---
|
||
|
||
## Template Structure
|
||
|
||
The `_Location Template.md` file contains:
|
||
|
||
1. **Blank header** with labeled fields for location name, region, first visited, last updated
|
||
2. **Observations zone** with both input formats shown (structured fields as the primary, freeform note above them)
|
||
3. **A complete worked example** using "Tbilisi, Georgia" — showing filled-in structured fields, a freeform dump, and a first impressions note — so the expected detail level is unambiguous
|
||
4. **Analysis zone** with placeholder headings and one-line descriptions of what each subsection will contain (filled by agent)
|
||
5. **Visit Log zone** with one example dated entry
|
||
|
||
---
|
||
|
||
## Implementation Scope
|
||
|
||
1. Create `Locations/` subfolder
|
||
2. Create `_Location Template.md` with blank zones + Tbilisi example
|
||
3. Create `CLAUDE.md` (or update if exists) with agent processing instructions: how to read a location file, what to produce in each Analysis subsection, how to handle freeform vs structured input, how to update vs generate
|
||
|
||
Out of scope: automatic Obsidian plugin integration, location-based reminders, nutrition tracking per location.
|