File size: 2,165 Bytes
000b008
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# Verification

## What actually works

Honest status, regenerated from the run logs — not a wish list. A task counts as **passing** only
when its numeric conditions pass **and** the rendered contact sheet was inspected and agrees.

The numeric checks are deliberately strict, and three of them were caught *lying* during
development (see [`DIAGNOSTICS.md`](DIAGNOSTICS.md)): a pour that reported success with a failed
grasp, and two joints that "moved" on gravity alone. Each was tightened rather than worked
around, so several tasks moved from green to red on purpose.

Run `python scripts/status.py` to regenerate the table below from `outputs/tasks/*.log`.

### Agent-in-the-loop verification

The numeric check only inspects final object poses. It will happily pass an episode where the cup
landed upside-down, a gripper hung empty in the air, or a vessel was carried over the target
without ever tipping — all three of those actually happened here. So every task is also reviewed
visually, and only `numeric=SUCCESS` **and** `visual=CONFIRMED` counts as done.

```bash
python scripts/contact_sheet.py outputs/tasks/*.mp4   # episode -> one strip of frames
python scripts/yam_agent_loop.py evaluate             # contact sheets + per-task review prompts
python scripts/yam_agent_loop.py update               # verdicts -> concrete parameter fixes
python scripts/yam_agent_loop.py propose              # uncovered skill axes from the asset library
```

`evaluate` renders a sheet per episode and emits a prompt naming what to look for in that
specific task (is the cup upright? is anything actually in the gripper? did the lid come off
*before* the food went in?). `update` maps a verdict onto a fix through a symptom→cause table
built from the failures in [`DIAGNOSTICS.md`](DIAGNOSTICS.md) — e.g. *"jaws closed on nothing"* →
measure the mesh origin offset, not the clamp force. `propose` reads the converted asset library
and suggests skills not yet covered.

Reviewing this way is what caught the three false positives described above; the fix in each case
was to tighten the numeric condition, so the visual pass and the numeric pass now agree.