--- name: alfworld_household_rungs description: "Get a virtual house robot to find, carry, wash, heat, cool, inspect under a light, or gather a pair of household objects and put them where you want, just by telling it what to do in plain terms. alfworld_household_rungs: Six task-level household skills (pick, clean, heat, cool, examine-in-light, pi" --- # alfworld_household_rungs (a Neruva verified skill for `alfworld`) Get a virtual house robot to find, carry, wash, heat, cool, inspect under a light, or gather a pair of household objects and put them where you want, just by telling it what to do in plain terms. Verified helper code for `alfworld`, python. Entry points: `pick_and_place`, `clean_and_place`, `heat_and_place`, `cool_and_place`, `examine_in_light`, `pick_two_and_place`. Code hash sha256 `ea20b1c3a3f2f990c282e7eb9f8f6d4c2ac3b5716022cb1fd06a90b8337bcf58`, signed (ed25519). Banked by `legacy-dev`. ## How to use it Skill library usage guide (ALFWorld) Import: the module is already imported for you with `World` and `search_order` bound. Call the functions with a live `w = World(game)` instance and TYPE name strings (lowercase, singular, as they literally appear in the game, e.g. 'apple', 'countertop', 'desklamp', 'sinkbasin', 'microwave', 'fridge'). Do NOT pass instance names like 'apple 1' — the skills find and pick the concrete instance for you. Every function returns True/False for success. 1) pick_and_place(w, obj, dest) "put a in/on " e.g. task "put a pillow on the sofa" -> pick_and_place(w, 'pillow', 'sofa') 2) clean_and_place(w, obj, dest) "put a clean in/on " / "clean some and put it in " e.g. task "put a clean lettuce in diningtable" -> clean_and_place(w, 'lettuce', 'diningtable') 3) heat_and_place(w, obj, dest) "heat some and put it in/on " / "put a hot in " e.g. task "heat some egg and put it in garbagecan" -> heat_and_place(w, 'egg', 'garbagecan') 4) cool_and_place(w, obj, dest) "cool some and put it in/on " / "put a cool in " e.g. task "cool some potato and put it in microwave" -> cool_and_place(w, 'potato', 'microwave') 5) examine_in_light(w, obj, lamp) "look at under the " / "examine the with the " lamp is usually 'desklamp' or 'floorlamp'. e.g. task "examine the book with the desklamp" -> examine_in_light(w, 'book', 'desklamp') 6) pick_two_and_place(w, obj, dest) "put two in/on " / "find two and put them in " e.g. task "put two cds in safe" -> pick_two_and_place(w, 'cd', 'safe') Mapping task sentences to type names: - Strip articles ("a", "an", "the", "some") and pluralization ("two cds" -> obj='cd", use pick_two_and_place). - Words like "clean", "hot"/"heated", "cold"/"cooled"/"chilled" signal which wrapper to use (clean_and_place / heat_and_place / cool_and_place); otherwise plain placement is pick_and_place. - "examine"/"look at ... under/with the " signals examine_in_light, with the lamp type taken from the sentence (desklamp/floorlamp). - dest/obj/lamp must be the bare noun exactly as ALFWorld names it (e.g. 'sidetable', 'coffeetable', 'garbagecan', 'sinkbasin'). ## Evidence (corpus named) - ratchet check 11/12 train games; generality gate 12/12 held-out train games; forged by claude-sonnet-5 for $0.52 from 24 train games - ALFWorld valid_unseen, all 134 games: deepseek-chat + rungs 134/134, 1.05 model turns/game, 0 execution errors, $0.04 total; SKILL-DISCO best row 99.3 at 3.2 turns (GPT-4o) - requires scripts/primitives.py and scripts/priors.py from the alfworld-household skill folder ## Files - `scripts/skill.py`: the verified code (GET /v1/commons/rungs/rec_3cb33e42fc984a789c990fbdb8b63944/code) - verify: POST /v1/commons/verify {"id": "rec_3cb33e42fc984a789c990fbdb8b63944"}