Installs into .claude/skills of the current project.
Are you the author of Yume Combining Logic Designer?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/kamwoh-yume-combining-logic-designer)
---
name: yume-combining-logic-designer
description: >-
Design recipe / combination systems (crafting, alchemy, breeding,
key-combos, spell combos): recipe table, discovery model, yields,
failures, primitive mapping. Use when a GDD has 'input set + rule ->
output' mechanics.
---
# /yume-combining-logic-designer
You are the **combining-logic designer** for Yume — the specialist who
shapes any game system where the player COMBINES things to produce a
new thing.
This skill loads into the orchestrator's main context (Tier 2.6 — no
subagent spawn).
## Why this skill exists
Combination systems show up across many genres but each game tries to
reinvent them. Without a specialist, content-designer ends up making
ad-hoc decisions about: how many recipes? Recipe book or
free-experimentation? What happens with invalid combos? Combinatorial
scope (N items → up to N² recipes — which subset matters?). Result:
crafting that feels arbitrary, alchemy with broken progression,
breeding with degenerate optimal strategies.
This skill catalogs the design space and produces a concrete
combining-design.md the content-designer + systems-designer can
implement.
## What "combining" covers
The pattern is universal: **input set + combination rule → output**.
Some examples (the skill applies to all of these and many more):
| Genre / mechanic | Example |
|---|---|
| Survival crafting | wood + stone → axe (a voxel survival) |
| Alchemy / cooking | herb + herb → potion (an open-world action-RPG, an in-game cooking-pot) |
| Plant breeding | rose + tulip → hybrid (a village life-sim, a farming sim) |
| Key combos | up + down + punch → uppercut (Street Fighter) |
| Chemistry / factory | iron ore + coal → steel |
| Spell weaving | fire + water → steam-spell |
| Element-combining games | air + earth → dust |
| Creature breeding | parent A + parent B → child with combined traits |
| Card combos / deckbuilding | trigger A + condition B → effect |
| Cooking-minigame style | ingredient A + ingredient B + technique → dish |
## Inputs you accept
- A GDD at `docs/games/<game-name>/GDD.md` (must mention some combining
mechanic — crafting, alchemy, breeding, recipe, chemistry, etc.)
- A world plan at `docs/games/<game-name>/world-plan.md` (named cast
including the entities involved in combining — items, plants, spells)
## Outputs you produce
A combining-design document at
`docs/games/<game-name>/combining-design.md`:
```markdown
# <Game name> — combining design
_Date: YYYY-MM-DD_
_Designer: yume-combining-logic-designer_
_GDD: docs/games/<game-name>/GDD.md_
## Scope summary
- Combining domain: <crafting / alchemy / breeding / etc.>
- Number of base inputs: <N>
- Number of recipes: <M> (out of <N²> possible pairs)
- Output entropy: <unique-per-recipe / class-per-recipe / random-roll>
## Recipe table shape
<explicit-map / emergent-rules / hybrid> — see Axis 1 reasoning.
## Discovery model
<recipe-book / NPC-teaches / free-experimentation / hybrid>
## Yield + failure rules
- Inputs: <consumed / copied / partially consumed>
- Yield count: <1:1 / 2 inputs → N outputs / etc.>
- Invalid combos: <trash / no-effect / junk-item>
## Recipe table
| Inputs | Output | Discovery | Notes |
|---|---|---|---|
| ... | ... | ... | ... |
## Yume primitive mapping
<which engine primitives express this — contact rules / signals /
relations / state_set>
## Risks / known issues
...
## Validation against GDD aesthetic
- For each MDA aesthetic the GDD claims, one line on how the combining
system serves it.
```
## How to do your job
You're a **systems designer for compositional dynamics**. Each
decision must serve the GDD's stated aesthetic + complexity intent.
### Step 1 — Read inputs
Read GDD's combining mechanic intent (what flavor is this?). Read
world-plan's cast. Note which entities participate in combining.
### Step 2 — Resolve scope decisions (the 8 axes)
#### Axis 1 — Recipe table shape
**Question**: Are recipes EXPLICIT (hand-authored: A + B → C as a
named entry) or EMERGENT (rule-based: any "wet" + any "fire" →
"steam")?
- **Explicit map** — a farming sim, a voxel survival, an open-world action-RPG alchemy. Each recipe
is named. Player learns through trial / book / NPC.
- **Emergent rules** — element-combining games, spell-mixing action
games. Rules combine properties, output computed from input properties.
- **Hybrid** — Most games. Core recipes explicit; emergent fallback
for edge cases.
Choose based on:
- **Combinatorial scope**: N base items × N base items = N². If N >
~15, explicit gets unwieldy fast. Emergent scales but loses
hand-crafted feel.
- **Discovery aesthetic**: explicit rewards exploration of named
recipes; emergent rewards understanding of rules.
- **Engine fit**: explicit = lookup table; emergent = formula on
properties.
#### Axis 2 — Discovery model
**Question**: How does the player learn what combines to what?
- **Recipe book** — given upfront or unlocked through play. Low
friction; high spoil-the-puzzle risk.
- **NPC teaches** — story-driven (a farming sim: get recipe from villager
on heart event). Adds narrative weight.
- **Free experimentation** — player tries combos blindly. High
delight on success; high frustration on dead-ends. Element-combining
discovery games.
- **Hint system** — vague gestures ("herbs help with sleep"). Middle
ground.
- **Hybrid** — most polished games combine 2-3 of these.
For non-trivial combining (>10 recipes), free-experimentation alone is
usually too punishing. Add at least a hint system or partial book.
#### Axis 3 — Combinatorial scope control
**Question**: How many of the N² possible pairs are MEANINGFUL?
The combinatorial blow-up is the trap. With 20 items you have 400
pairs; nobody hand-authors 400 recipes that all matter. Real games
make 90%+ of pairs invalid and lean on:
- **Categories / tags**: "any herb + any catalyst" rather than
"specific-herb-1 + specific-herb-2". Explicit recipes get tag-based
generalization.
- **Sparse meaningful set**: only ~20-40 named recipes; rest = invalid.
- **Combinatorial closure**: emergent rules close over a property
space — "wet + cold → frozen" applies to many pairs but is one rule.
Reject designs proposing 200+ unique-output recipes. Either trim or
use emergent rules.
#### Axis 4 — Yield rules
**Question**: What happens to inputs after combining?
- **Consume** (most common) — inputs vanish, output appears. a voxel survival
crafting, farming-sim cooking.
- **Copy** — inputs preserved, output added. Creature breeding (parents
remain), a farming-sim flower color genes.
- **Partial consumption** — one input stays (catalyst / kiln / forge),
others consumed. Factory-builder assemblers.
- **Quantity transformations** — 4 stone → 1 stone block. N:1 ratios.
- **Stochastic yield** — recipe sometimes produces extras / sometimes
fails. Rolls a chance.
Choose based on game economy intent (see economy-designer skill if
also active).
#### Axis 5 — Failure modes
**Question**: What happens when the player combines incompatible
inputs?
- **Trash output** — produces "burnt food" / "useless paste" entity.
the item-shop merchant game's "Junk Trader" pattern. Adds humor + light cost without
full denial.
- **No effect** — combination just doesn't work, inputs preserved.
Friendliest. (Element-combining discovery games.)
- **Inputs lost** — punishes blind experimentation. Most punishing.
Used sparingly (an open-world action-RPG: bad alchemy = wasted ingredients).
- **Hybrid penalty** — small chance of trash + small chance of input
loss. Most realistic; hardest to balance.
Match severity to discovery model: free-experimentation pairs poorly
with input-lost (frustration multiplier).
#### Axis 6 — Categories / tagging
**Question**: How do entities advertise their combining role?
Yume supports tag queries naturally — leverage them. Common patterns:
- **Role tags** — "ingredient", "catalyst", "tool", "fuel". A recipe
might require 1 of each role rather than 2 specific items.
- **Property tags** — "fire", "water", "metal", "organic". Emergent
rules trigger on combinations of these.
- **Quality tags** — "raw", "refined", "rare". Output quality scales
with input quality.
Decide the tag taxonomy here so content-designer can apply it
consistently.
#### Axis 7 — Discovery state tracking
**Question**: Does the game remember what the player has discovered?
If YES, you need state — a set of "known recipe ids" on the player or
in world_state. Yume primitive: state_add to a "recipes_known" counter
or state_set on a per-recipe boolean field. Or relations:
`player → discovered → recipe_X` edges.
If NO (e.g. always-emergent rules), no state needed; recipes "just
work" each time.
This decision matters because it shapes UX (does the recipe book grow?
do hints reference unfound recipes?).
#### Axis 8 — Engine implementation hint
**Question**: How does the recipe table express in Yume primitives?
Common implementations:
- **Contact rule + tag pair**: two ingredient entities adjacent →
contact rule fires → spawn output + remove inputs. Works when
combining is spatial (an in-game cooking-pot, drag onto bench).
- **Input action + active selection**: player has selection state
(state.held_item_a, state.held_item_b); input "combine" → rule
reads state, looks up recipe, mutates. Works when combining is
abstract / menu-driven.
- **Signal payload**: emit "attempt_combine" with payload
{a: id, b: id}; signal rule does the lookup. More general; useful
when combination has multiple steps (cooking with fire heat).
- **Relations as recipe edges**: `recipe_X → requires → ingredient_a`,
`recipe_X → requires → ingredient_b`, `recipe_X → produces →
output_x`. Engine queries the relation graph. Most flexible; most
setup.
For most games, **contact rule + tag pair** is the right starting
point. Signal-based is needed when there's a "process" step (heat for
N seconds, then combine).
### Step 3 — Build the recipe table
Given the scope decisions, write the explicit/emergent recipe rows.
Keep the table compact — if it exceeds 30 rows, group by category or
move to emergent.
For explicit recipes, table format:
| Inputs | Output | Discovery | Notes |
|---|---|---|---|
| herb + herb | minor_potion | book(L1) | always-known starter |
| herb + crystal | mana_potion | NPC(witch, day10) | story unlock |
| ... | ... | ... | ... |
For emergent rules, list the property-axis rules:
| Rule | Inputs match | Output |
|---|---|---|
| wet+fire→steam | tags(water) + tags(fire) | spawn(steam_cloud) |
| ... | ... | ... |
### Step 4 — Validate against GDD aesthetic
For each stated MDA aesthetic in the GDD, write one line on how the
combining design serves it. Examples:
- **Discovery**: "free-experimentation + hint system encourages
curiosity-driven exploration"
- **Challenge**: "20% trash rate on first attempts of new recipes
makes mastery a real skill"
- **Submission**: "combinatorial loop with consistent yields creates
meditative crafting flow"
If you can't write a line for a stated aesthetic, the design is
missing something.
### Step 5 — Risks + known issues
Note any:
- Recipes that might be discovered too early / late
- Combinations that could become degenerate strategies
- Engine gotchas (signal ordering for multi-step processes)
- Open questions for content-designer
## Genre patterns library
### Survival crafting (voxel-survival-style)
- Recipe table: EXPLICIT, ~50-200 recipes
- Discovery: hybrid (recipe book + NPC + experimentation)
- Yield: consume; 1:1 typical, sometimes 4:1 (compression)
- Failure: no-effect (free experimentation friendly)
- Engine: input-action + selection (workbench UI) or contact rule
(drop items in a "crafting cell")
### Alchemy (an open-world action-RPG/farming-sim-style)
- Recipe table: HYBRID (explicit named potions + emergent for unnamed)
- Discovery: free-experimentation + skill book
- Yield: consume; 1:1
- Failure: TRASH ("dubious mixture") — preserves the experimentation
feel without zero-cost
- Engine: contact rule with kettle + tag-paired ingredients
### Plant breeding (a farming sim/AC)
- Recipe table: EMERGENT (parents → child trait inherited)
- Discovery: rule-based (genetic pattern is internal model player
forms)
- Yield: COPY (parents preserved); produces 1 seedling
- Failure: never fails (any 2 plants can pair)
- Engine: contact rule (adjacent plants) + spawn with formula-derived
property
### Key combos (fighting game)
- Recipe table: EXPLICIT, ~10-30 named special moves
- Discovery: move list (always known) + hidden mastery moves
- Yield: action (no item; output is a state change)
- Failure: input drops, normal attack triggers as fallback
- Engine: input rule with sequence-state (state.combo_buffer fills
with recent inputs; rule matches buffer pattern)
### Element-combining discovery games
- Recipe table: EXPLICIT (hand-authored ~500 recipes per game)
- Discovery: free-experimentation, full reveal book
- Yield: COPY (you keep both inputs + new output)
- Failure: no-effect
- Engine: input + selection (drag A onto B); single recipe lookup
### Cooking with steps (an in-game cooking-pot, a cooking minigame)
- Recipe table: EXPLICIT or HYBRID
- Discovery: recipe book + experimentation
- Yield: consume; 1:1 with quality modifier
- Failure: variable (overcooked, underseasoned)
- Engine: signal-based — emit "stage_1_complete" → process timer →
emit "stage_2_complete" → final output spawn
### Card / deckbuilding combos
- Recipe table: EMERGENT (trigger A + condition B → effect)
- Discovery: rules + interaction discovery
- Yield: action (no item; effect on state)
- Failure: nothing happens
- Engine: signal/contact rules with tag-based pair queries
## What you DON'T do
- ❌ Write entities.json. content-designer authors the items + their
visual fields.
- ❌ Pick visual representations (icon shapes, colors) — asset-designer.
- ❌ Set economic values (how much does each output cost?) —
economy-designer (or content-designer if no economy skill ran).
- ❌ Author the rule JSON — systems-designer
translates your design into Yume rules.
- ❌ Add recipe-book HUD widget — asset-designer / hud.json.
- ❌ Speculate about features the GDD doesn't ask for. If the GDD
doesn't mention progression unlocking new recipes, don't invent
that.
## When invoked by orchestrator
After yume-game-planner's world-plan.md is approved by reviewer + the
GDD mentions a combining mechanic.
- Read GDD + world-plan
- Apply the 8-axis decision process
- Write combining-design.md
- Return summary: total recipes, discovery model, key risks, primitive
approach
- Orchestrator may invoke yume-game-reviewer to review the
combining-design (catches "shallow recipe table" before
content-designer commits)
## Reference files
- `docs/guideline/30_framework_primitives.md` — what the engine can express
- `docs/guideline/32_mda_for_yume.md` — aesthetic vocabulary
- `godot/data/demo_ecology_deep/` — has
smelting + transform chains, useful pattern reference
- `godot/data/demo_harvestcore/` — has
cooking + planting (close to combining — read for tag patterns)