← all entries
miso
chat scoped to this ingredient — agent can read the corpus, propose changes, you ApplyYou
Just to be transparent: I'm scoped to **miso paste** in this conversation, so I can only stage changes on this entry, not on "miso." You'd need to action this in the "miso" entry's session.
That said, the alias to add is clear — here's exactly what needs to be staged on the **"miso"** entry:
- **Alias:** "miso paste"
- **Kind:** synonym (it's the same product, just a more explicit name common in UK/Australian English)
Take that to the "miso" conversation and stage `add_alias` with alias `"miso paste"`, kind `"synonym"`. Once applied, lookups for "miso paste" will resolve to the "miso" canonical. You'd also want to flag the "miso paste" entry for deletion to avoid the duplicate.
Agent
Let me read the current state of the miso entry first before staging anything.
→ get_entry()
tool results (1 call)
{"name": "miso", "pillars": ["salt"], "role": "Seasons and builds umami depth through fermentation. Dissolves into liquids, sauces, and batters, or works as a paste or rub. White miso is mild and sweet; red miso is bolder and more pungent — intensity varies, so taste before adding.", "substitutions": [{"name": "Soy sauce (use ½ the amount)", "note": "Closest pantry match — fermented, umami-rich, and salty. Much thinner and saltier by volume, so start with half and adjust.", "base_name": "soy sauce", "qty_text": null, "modifier": "use ½ the amount", "kind": "substitution", "companions": [], "linked_name": "soy sauce"}, {"name": "Fish sauce (use ¼–½ the amount)", "note": "Delivers fermented umami and saltiness in concentrated form. Pungent and liquid — use sparingly and skip for vegetarian applications.", "base_name": "fish sauce", "qty_text": null, "modifier": "use ¼–½ the amount", "kind": "substitution", "companions": [], "linked_name": "fish sauce"}, {"name": "Anchovy paste (use ½–1 tsp per tbsp miso)", "note": "Pasty texture and strong fermented umami make it a reasonable stand-in. Not vegetarian; flavor is fishier and saltier, so adjust carefully.", "base_name": "anchovy paste", "qty_text": null, "modifier": "use ½–1 tsp per tbsp miso", "kind": "substitution", "companions": [], "linked_name": "anchovy paste"}], "has_subs": true, "has_classification": true, "aliases": []}
Agent
Good — I can confirm I **am** in the "miso" session, and the aliases array is currently empty, so "miso paste" isn't there yet. The stage is clean.
Before staging, quick sanity check — let me verify "miso paste" isn't its own separate canonical in the corpus.
→ search_corpus(query="miso paste")
tool results (1 call)
[{"name": "miso paste", "pillars": ["salt"], "role_preview": "Seasons with far more complexity than plain salt. Miso delivers umami alongside its salinity, building savory depth in b"}]
Agent
Good find — "miso paste" **does** exist as a separate canonical. That confirms the duplicate situation you described. Here's what I'll do: stage the alias on **miso** now.
→ stage_add_alias(alias="miso paste", kind="synonym", reason="Same product \u2014 \"miso paste\" is the common label in UK/Australian English and on many Western supermarket jars. Adding as a synonym ensures lookups resolve here rather than to the duplicate canonical.")
add alias
staged change #2
Add alias
miso paste
(synonym)
why: Same product — "miso paste" is the common label in UK/Australian English and on many Western supermarket jars. Adding as a synonym ensures lookups resolve here rather than to the duplicate canonical.
tool results (1 call)
{"ok": true, "staged_change_id": 2, "kind": "add_alias", "summary": "Add alias 'miso paste' → 'miso'", "status": "pending — awaiting Apply/Reject from the human"}
Agent
**Staged:** alias `"miso paste"` (synonym) → `miso`.
Once you apply this, lookups for "miso paste" will resolve to the miso canonical. The next step — separately — is flagging the `miso paste` standalone entry for deletion so the corpus doesn't have two competing entries. That's a corpus-admin action outside what I can stage, so you'll want to handle that through whatever deletion workflow your team uses.
Apply failed for change #2 (add_alias): 'miso paste' is itself a classified ingredient — merge instead
You
ok how do I merge?
Agent
I don't have a merge or delete tool available to me — I can only stage changes on individual entries (role, pillars, subs, aliases).
For the actual merge/deletion of the `miso paste` canonical, you'd need to:
1. **Check what `miso paste` has** that `miso` doesn't — subs, role text, aliases of its own — so nothing useful gets lost before deletion.
2. **Delete/retire `miso paste`** through whatever corpus-admin interface your team uses (looks like that's outside the staging system entirely).
Want me to pull up the `miso paste` entry right now so you can see if there's anything worth porting over to `miso` before it gets deleted?
You
yes
Agent
→ get_other_entry(other_name="miso paste")
tool results (1 call)
{"name": "miso paste", "pillars": ["salt"], "role": "Seasons with far more complexity than plain salt. Miso delivers umami alongside its salinity, building savory depth in broths, dressings, glazes, and sauces. Avoid boiling it — add miso off the heat to preserve its nuanced, fermented flavor.", "substitutions": [{"name": "soy sauce", "note": "The most universal swap — same fermented-soybean umami and salinity. Use about 1 tbsp soy sauce per 1 tbsp miso, but expect a thinner consistency and slightly less body.", "base_name": "soy sauce", "qty_text": null, "modifier": null, "kind": "substitution", "companions": [], "linked_name": "soy sauce"}, {"name": "fish sauce", "note": "Deep fermented umami in liquid form — use about 1 tsp per 1 tbsp miso. Adds comparable savory complexity but brings a funky, briny note; not suitable for vegetarian dishes.", "base_name": "fish sauce", "qty_text": null, "modifier": null, "kind": "substitution", "companions": [], "linked_name": "fish sauce"}], "has_subs": true, "has_classification": true, "aliases": []}
Agent
Here's what `miso paste` has vs. `miso`:
**Role text** — `miso paste` has one useful detail `miso` lacks: *"Avoid boiling it — add miso off the heat to preserve its nuanced, fermented flavor."* That's genuinely useful cooking guidance worth adding to `miso`'s role.
**Subs** — same soy sauce and fish sauce, just slightly different notes. `miso`'s versions are better (more precise ratios, vegetarian caveat on fish sauce). Nothing to port.
**Anchovy paste sub** — only on `miso`, not on `miso paste`. No action needed.
**Aliases** — both empty.
So the only thing worth rescuing is that heat warning. Want me to stage an update to `miso`'s role that folds it in?
You
yes
Agent
Here's the proposed new role, folding in the heat warning naturally:
→ stage_change_role(new_role="Seasons and builds umami depth through fermentation. Dissolves into liquids, sauces, and batters, or works as a paste or rub. White miso is mild and sweet; red miso is bolder and more pungent \u2014 intensity varies, so taste before adding. Avoid boiling it \u2014 add miso off the heat to preserve its nuanced, fermented flavor.", reason="Folds in the heat warning from the miso paste duplicate entry, which is genuinely useful cooking guidance absent from the current role.")
tool results (1 call)
{"ok": true, "staged_change_id": 3, "kind": "change_role", "summary": "Rewrite role of 'miso'", "status": "pending — awaiting Apply/Reject from the human"}
Agent
Staged. The only addition is that last sentence about heat — everything else is unchanged. Once you apply that, `miso paste` has nothing left worth keeping and is safe to delete.
Applied: rewrote role of 'miso' — Seasons and builds umami depth through fermentation. Dissolves into liquids, sau…