What problem does it solve? Recording and replaying ROS2 topic data for debugging, testing, and analysis requires boilerplate code around rosbag2 APIs, and doing it inside a Clean Architecture codebase adds interface design overhead. This Skill provides ready-made patterns for programmatic bag recording and reading in both Python and C++. ## Core Features & Use Cases - Programmatic Recording: Start and stop rosbag2 recording from code using rosbag2_py or rosbag2_cpp with configurable topic lists and storage options. - Clean Architecture Structure: Defines a domain-layer IDataRecorder interface so recording logic stays decoupled from ROS2 infrastructure. - Bag Reading in C++: A BagReader helper built on rosbag2_cpp::Reader for iterating recorded messages offline. - Use Case: During an autonomous driving test run, record only the camera, lidar, and control topics to a sqlite3 bag, then replay it later to reproduce a perception failure without rerunning the vehicle. ## Quick Start Ask the AI to implement a ROS2 bag recorder node in C++ that records selected topics to a sqlite3 bag following the Clean Architecture interface pattern.