# Alfworld Object Storer

> Use when the agent is holding an object and needs to place it into a target receptacle in ALFWorld. This skill checks receptacle suitability, opens closed containers if needed, and executes the `put` command to store the object. It handles both open surfaces (countertops, beds) and closed containers (drawers, cabinets).

- Skill: `zjunlp/alfworld-object-storer` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds add zjunlp/alfworld-object-storer`
- Raw SKILL.md: https://api.skillmd.com/api/skills/zjunlp/alfworld-object-storer/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: zjunlp (https://skillmd.com/u/zjunlp)
- Updated: 2026-09-10
- Page: https://skillmd.com/skills/zjunlp/alfworld-object-storer

---

# Skill: Object Storer

## When to Use
Trigger this skill when:
1. The agent is holding the target object (optionally cleaned/heated/cooled as required)
2. A suitable storage receptacle has been identified
3. The agent needs to execute the final placement step

## Core Workflow

### 1. Validate Prerequisites
- Confirm the agent is holding `{object_name}` (check inventory)
- Confirm the agent is at the location of `{target_receptacle}`
- If not at the receptacle, navigate there first: `go to {target_receptacle}`

### 2. Check Receptacle State
Evaluate the receptacle before placing:

| Receptacle State | Action |
|-----------------|--------|
| Open and empty/suitable | Proceed with `put` |
| Closed (drawer, cabinet, safe) | `open {target_receptacle}` first, then `put` |
| Unsuitable (wrong type, full) | Abort and search for alternative receptacle |

### 3. Execute Storage
- Run: `put {object_name} in/on {target_receptacle}`
- Check the observation for confirmation

### 4. Verify Placement
- A successful placement updates the receptacle contents in the observation
- If the observation confirms the object is now in/on the receptacle, storage is complete

## Example

**Task:** "Clean the knife and put it in a drawer."

```
> go to drawer 1
The drawer 1 is closed.
> open drawer 1
You open the drawer 1. The drawer 1 is open. In it, you see nothing.
> put knife 1 in/on drawer 1
You put the knife 1 in/on the drawer 1.
```

**Result:** `knife 1` is now stored in `drawer 1`. Task complete.

**Example 2 — Open surface:**

```
> go to bed 1
On the bed 1, you see a pillow 1.
> put cellphone 2 in/on bed 1
You put the cellphone 2 in/on the bed 1.
```

## Error Handling
- **"Nothing happened"**: The agent may not be holding the object, or the receptacle name is incorrect. Verify with `inventory` and re-check the receptacle identifier.
- **Receptacle unsuitable**: If the receptacle is not appropriate for the object, search for an alternative using the object-locator skill.
- **Agent not at receptacle**: Navigate to the receptacle with `go to {target_receptacle}` before attempting `put`.

