| # rSkill manifest β find-object (kind: playbook) | |
| # | |
| # A symbolic S2 *decision procedure* the Reasoner reads (not a neural policy): | |
| # locate a named object, falling back to bounded commonsense active search and | |
| # finally human handoff. Composes existing read-only + actuating reasoner tools; | |
| # carries no weights and never actuates directly (every motion it triggers is an | |
| # ExecuteRskill β Action chunk β C++ safety kernel). | |
| schema_version: "0.1" | |
| name: "OpenRAL/rskill-playbook-find_object" | |
| version: "0.1.0" | |
| license: "apache-2.0" | |
| role: "s2" | |
| kind: "playbook" | |
| # Embodiment-agnostic β a playbook is gated by capabilities_required, not by a | |
| # specific embodiment. Declared explicitly with the "any" wildcard (never an | |
| # empty list, which the manifest validator rejects). | |
| embodiment_tags: ["any"] | |
| # Real RobotCapabilities flag: locating an object requires a camera. The loader's | |
| # capability gate (openral_rskill.loader.check_capability_flags) raises | |
| # ROSCapabilityMismatch on any robot that does not declare `has_vision: true`, | |
| # or on an unknown flag name β so only real capability fields belong here. The | |
| # navigation / container-opening the SOP performs is gated at runtime by the | |
| # composed tools' own requirements, not by this playbook's flags. | |
| capabilities_required: | |
| has_vision: true | |
| # A playbook actuates nothing itself. | |
| actuators_required: [] | |
| # Required field; pinned to 1 like the perception kinds (no Action rows). | |
| chunk_size: 1 | |
| # S2 planning budget (~0.2 Hz tick). CI enforces on the reference host. | |
| latency_budget: | |
| per_chunk_ms: 5000.0 | |
| description: > | |
| S2 decision procedure: locate a named object, falling back to bounded | |
| commonsense active search and finally human handoff. Composes recall_object, | |
| resolve_place, locate_in_view and NAVIGATE/OPEN skills. | |
| # RSkillAction.PLAN β registry/discovery metadata only (a playbook is role s2, | |
| # never an ExecuteSkill dispatch verb). | |
| actions: | |
| - "plan" | |
| objects: | |
| - "open-vocabulary object" | |
| scenes: | |
| - "kitchen" | |
| - "indoor" | |
| # Provenance citation (a playbook has no weights / upstream model repo, so a | |
| # citation is still required for publish-readiness β CLAUDE.md Β§6.4). The | |
| # The authoring decision record is private (OpenRAL/management); this points at | |
| # the public stub that explains where it lives. | |
| paper_url: "https://github.com/OpenRAL/openral/blob/master/docs/decisions.md" | |
| # The playbook decision-procedure contract. | |
| playbook: | |
| trigger: "the goal names a physical object whose location is not given" | |
| body_uri: "./PLAYBOOK.md" | |
| composes_tools: | |
| - "recall_object" | |
| - "resolve_place" | |
| - "locate_in_view" | |
| - "execute_rskill" | |
| - "memory_search" | |
| done_predicate: "the target object is confirmed in view at a known pose" | |
| max_steps: 12 | |