Files
Inanis_Vault/23-Cooking/docs/superpowers/specs/2026-03-25-location-file-design.md
Spencer Grimes 5402ab02e9 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>
2026-03-25 17:13:07 -05:00

7.4 KiB
Raw Permalink Blame History

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

35 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:

### 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:


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.