AdrianLlopart's picture
docs: HF model card for OpenRAL/rskill-playbook-clarify_ambiguity v0.1.0
422a6c8 verified
|
Raw
History Blame Contribute Delete
3.43 kB
---
language:
- en
license: apache-2.0
pipeline_tag: robotics
tags:
- OpenRAL
- rskill
- any
inference: false
---
# rskill-playbook-clarify_ambiguity
A `kind: playbook` rSkill: a symbolic S2 **decision procedure** the
Reasoner reads, not a neural policy. It carries no weights β€” the authored
[`PLAYBOOK.md`](./PLAYBOOK.md) *is* its runtime.
## What this skill does
Resolves an underspecified or ambiguous goal **before** acting. When the request
admits more than one interpretation β€” two candidate bowls, a missing destination,
an unsafe-to-guess choice β€” it disambiguates from spatial memory, then from the
scene, and only then asks the operator a concise question; it **never** guesses on
an irreversible action (placing, pouring, opening). Concrete walkthrough: the
two-bowls example in [`PLAYBOOK.md`](./PLAYBOOK.md).
## How it works
This playbook is **content, not code**. When installed, the reasoner injects
`PLAYBOOK.md` into its system prompt and follows the SOP, composing tools it
already has (`query_scene`, `memory_search`, `recall_object`, `emit_prompt`). It
is `role: s2` and is **never** dispatched through `ExecuteSkill`. It actuates
nothing: its job is to gate the downstream `execute_rskill` β†’ Action chunk β†’ C++
safety kernel with a single unambiguous goal β€” the playbook holds no actuation
authority (CLAUDE.md Β§1.1).
### Observation β†’ action contract
None. A playbook emits no `Action` chunks and requires no actuators
(`actuators_required: []`, `chunk_size: 1`). Its "output" is the sequence of
tool calls the reasoner makes while following the SOP, bounded by
`playbook.max_steps`.
## How it was authored / Upstream provenance
N/A β€” a playbook is **hand-authored**, not trained: it has no weights and no
upstream model. Its provenance is the authoring decision record
(also linked via `paper_url`). To change behaviour, edit `PLAYBOOK.md` and bump
`version`.
## Supported robots
Embodiment-agnostic β€” declares the explicit wildcard `embodiment_tags: ["any"]`
(never an empty list) and an empty `capabilities_required: {}`: resolving an
ambiguous reference is operator interaction plus memory/scene queries, so it
works on **any** robot. The read-only scene/memory queries are gated at runtime by
the composed tools, not by this playbook's flags.
## Sensors required
None directly. The tools it composes declare their own sensor needs.
## Manifest summary
- `kind: playbook`, `role: s2`, `actions: [plan]`, `chunk_size: 1`.
- `playbook.trigger`: the goal is underspecified or ambiguous.
- `playbook.done_predicate`: the goal has a single unambiguous interpretation,
confirmed from memory/scene or by the operator.
- `playbook.max_steps`: 5.
## Quick start
```python
from openral_core.schemas import RSkillManifest
m = RSkillManifest.from_yaml("rskills/clarify-ambiguity/rskill.yaml")
assert m.kind == "playbook" and m.playbook is not None
print(m.playbook.trigger)
```
## Reproduction
Packaging-only: the manifest + SOP are validated by
`tests/unit/test_playbook_rskill_manifest.py`. There is no benchmark number to
reproduce; the playbook's behaviour is exercised by the reasoner integration
tests in later phases.
## Evaluation
N/A β€” no `eval/*.json`; a playbook produces no benchmarkable policy output.
## License
- **Code / content:** Apache-2.0.
- **Weights:** none.
## See also
- [`PLAYBOOK.md`](./PLAYBOOK.md) β€” the decision procedure itself.