# Alfworld Object State Modifier

Uses an appliance to change the state of an object (cooling, heating, or cleaning).

- Repository: https://github.com/zjunlp/SkillNet (1441 stars)
- Category: Engineering
- License: MIT
- Last updated: 2026-10-13
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add zjunlp/SkillNet --skill alfworld-object-state-modifier -g -a claude-code -y`
Codex: `npx skills add zjunlp/SkillNet --skill alfworld-object-state-modifier -g -a codex -y`
Cursor: `npx skills add zjunlp/SkillNet --skill alfworld-object-state-modifier -g -a cursor -y`
Gemini CLI: `npx skills add zjunlp/SkillNet --skill alfworld-object-state-modifier -g -a gemini-cli -y`

## Description

Uses an appliance to change the state of an object (cooling, heating, or cleaning). Use when the task requires altering an object's temperature or cleanliness using a specific device (e.g., cooling with a fridge, heating with a microwave, cleaning with a sinkbasin). Takes the object, target state, and appliance as inputs and executes the corresponding modifier action.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Instructions

Change an object's state (cool, heat, or clean) using a household appliance. You must be holding the target object before executing the state change.

## Workflow
1. **Navigate to appliance:** `go to {appliance}` (e.g., `go to fridge 1`)
2. **Prepare if closed:** If observation says appliance is closed, execute `open {appliance}` -- verify it opens
3. **Execute state change:** `{action} {obj} with {appliance}` -- verify observation confirms the change
4. **Proceed:** Continue with the next task step (e.g., placing the modified object)

## Action Mapping
| State Change | Action | Typical Appliance |
|---|---|---|
| Cool | `cool {obj} with {appliance}` | `fridge 1` |
| Heat | `heat {obj} with {appliance}` | `microwave 1`, `stoveburner 1` |
| Clean | `clean {obj} with {appliance}` | `sinkbasin 1` |

## Error Recovery
- "Nothing happened": Check (1) you are holding the object, (2) appliance is open/ready, (3) object and appliance names are correct
- Appliance occupied: remove existing items first with `take {item} from {appliance}`

## Example

**Scenario:** You need to cool a tomato using the fridge.

```
Thought: I'm holding tomato 1 and need to cool it. I'll go to the fridge.
Action: go to fridge 1
Observation: The fridge 1 is closed.
Action: open fridge 1
Observation: You open the fridge 1. The fridge 1 is open. In it, you see a lettuce 1.
Action: cool tomato 1 with fridge 1
Observation: You cool the tomato 1 using the fridge 1.
```

**Result:** The tomato is now in a cooled state. Proceed with the next task step (e.g., placing it on a countertop).

