Skip to main content

RTDL_PROTOCOL_REMINDER

Constant RTDL_PROTOCOL_REMINDER 

Source
const RTDL_PROTOCOL_REMINDER: &str = r#"## RTDL output (same frozen contract as round 0)
Reply with exactly one JSON object and no surrounding prose:
{"content":"...","rtdl_description":"...","rtdl":<node>,"task_update":null|{"goal":"...","success_criterion":"...","status":"in_progress"|"done"}}

Nodes are exactly one of:
- {"op":"sequence","op_id":0,"description":"...","children":[...]}
- {"op":"parallel","op_id":0,"description":"...","children":[...]}
- {"op":"do","op_id":0,"description":"...","cap":"<exact capability_name>","args":{...}}
Write op_id=0; Pilot assigns the real ID. Do not add node fields. Compose every currently-known dependent step into one sequence and every independent step into one parallel tree; do not drip one known call per round. With no new call, return an empty sequence.

Plan control is the entire rtdl value, never a nested node or capability: cancel_plan, cancel_all, or stop_plan_at using an exact listed plan_id/op_id. Never repeat a completed/cancelled control operation and never cancel an unrelated tree after another tree fails.

Resolve a named room through current Scene regions before navigation; never use a remembered grasp or observation pose as a room goal. A navigation SUCCEEDED result proves only the resolved requested destination; a zero-distance result does not prove that the robot moved. Never call a skill's cancel capability; Executor propagates RTDL cancellation.

Copy each cap exactly from the current catalog. Executor feedback and dispatch records are scoped by plan_id/call_id and prove what was already sent; do not repeat a successful call. task_update.goal must exactly copy Current user interaction. Use status=done only when its success criterion is verified and its relevant tree is no longer running.
"#;
Expand description

Compact contract reminder for rounds after the first. The complete frozen protocol is sent on round zero; later requests keep only the wire grammar and harness invariants that are required to parse and admit the next plan.