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

178 lines
7.4 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.
# 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:
```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.