add location file design spec
Four-zone template: header, observations, analysis, visit log. Agent workflow for generate and update. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,177 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user