CLAUDE.md · diff
git:20260725.61aa35a to git:20260725.9d401d3
13 added, 0 removed. Audit A to A.
# READ THIS FIRST — ROS 2 verification protocol
Do NOT answer ROS 2 / Gazebo / Nav2 / MoveIt / ros2_control / perception questions from memorized knowledge. Pretrained API details are frequently wrong or outdated for Jazzy.
On every task, before writing code or answering:
1. Load the matching `ros2-*` skill. They route themselves by description; a task spanning several domains loads each one.
2. Verify the specific API / message / parameter against the doc that skill names, or against local `/opt/ros/jazzy/` (`ros2 interface show`, `ros2 topic list -t`, `ros2 pkg prefix`).
3. Resolve any frame/TF question against `ros2-troubleshooting` (REP 103/105) as ground truth.
Never invent message types, API method names, QoS signatures, param names, or TF frames. Look them up.
+ ## Establish before writing (no doc can tell you these)
+
+ Ask when the request doesn't say — guessing one of these and writing 200 lines costs far more than one question:
+
+ - **Real hardware, simulation, or both?** Sets `use_sim_time`, decides whether physical checks apply, and whether any tuning transfers.
+ - **Existing workspace or greenfield?** Match the package layout, naming, and launch conventions already in the repo before inventing your own.
+ - **Who already publishes the topic or TF you're about to add?** Two publishers on one transform is a silent failure that looks healthy in every log.
+ - **Real geometry** — sensor mounting orientation, wheel radius/separation — whenever the task touches them. The robot is not its CAD model.
+
+ ## Done means it ran
+
+ Writing the code is not the deliverable. Report what you actually observed — a build succeeding, `ros2 topic echo` showing data, a check script passing — or state plainly that you could not verify and what you'd need to.
+
Target: **Ubuntu 24.04 LTS / ROS 2 Jazzy Jalisco**. Legacy (Gazebo Classic, pre-Jazzy APIs) is out of scope unless explicitly asked.