ros2-engineering-skills
Health Pass
- License — License: Apache-2.0
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Community trust — 39 GitHub stars
Code Fail
- rm -rf — Recursive force deletion command in scripts/skill_validate_hook.py
Permissions Pass
- Permissions — No dangerous permissions requested
This is a knowledge module (Agent Skill) that provides AI coding assistants with specialized, production-grade expertise for ROS 2 development. It guides AI agents in generating robust robotics code covering topics like quality-of-service (QoS), lifecycle nodes, Nav2, and deployment.
Security Assessment
Overall risk: Low. The tool acts primarily as a static knowledge base rather than executing active software. It does not request dangerous permissions, does not make external network requests, does not access sensitive data, and contains no hardcoded secrets. However, the automated scan flagged a recursive force deletion command (`rm -rf`) inside a validation script (`scripts/skill_validate_hook.py`). This poses a potential risk if the script is executed blindly on a local machine, as it could accidentally delete directories. Users should review the script's path variables before running it.
Quality Assessment
The project demonstrates strong quality and health. It is licensed under the standard and permissive Apache-2.0. It is actively maintained, with repository updates pushed as recently as today. The repository has accumulated 39 GitHub stars, indicating a fair level of community trust and interest from robotics developers.
Verdict
Use with caution (Safe to run as an AI knowledge base, but review the validation script before executing it locally).
Agent skill for production-grade ROS 2 development. Progressive-disclosure SKILL.md covering workspace, nodes, executors, QoS, ros2_control, Nav2, MoveIt 2, real-time, and deployment. Works with Claude Code, Codex, Cursor, Gemini CLI.
ros2-engineering-skills
Agent skill for production-grade ROS 2 development — from first workspace to fleet deployment.
Works with Claude Code, Codex, Cursor, Gemini CLI, and any agent supporting the Agent Skills standard.
Before / After
Prompt: "My ROS 2 subscriber isn't receiving any sensor messages. Help me fix it."
| Without this skill | With this skill loaded |
|---|---|
Generic advice — misses the real issue. |
Identifies the root cause, explains DDS Request-vs-Offered semantics, and applies the correct |
Prompt: "Create a C++ driver package for my LiDAR sensor."
| Without this skill | With this skill loaded |
|---|---|
Bare |
LifecycleNode with managed transitions, launch file with auto-activation, gtest scaffolding, modern CMake ( |
What this is
A SKILL.md-based knowledge module that gives AI coding agents deep ROS 2 engineering expertise. Instead of a shallow cheat sheet, it provides:
- Decision frameworks — when to use rclcpp vs rclpy, which QoS profile, lifecycle vs plain node
- Progressive disclosure — compact routing in
SKILL.md, detailed patterns inreferences/ - Full spectrum — workspace setup through real-time tuning, Nav2, MoveIt 2, ros2_control, DDS configuration, cross-compilation, and CI/CD
- Distro-aware — explicit Humble / Jazzy / Kilted / Rolling differences with migration paths
- Anti-pattern documentation — what breaks in production and why
How it differs from existing ROS 2 skills
| Aspect | Typical ROS 2 skill | This project |
|---|---|---|
| Depth | Basic QoS + lifecycle intro | DDS vendor tuning, custom executors, intra-process zero-copy, type adapters |
| Scope | Single SKILL.md file | 20 reference files via progressive disclosure |
| Hardware | Mentioned in passing | ros2_control hardware interface patterns, serial/CAN/EtherCAT, controller chaining |
| Real-time | Not covered | PREEMPT_RT, realtime_tools, memory allocation, callback group strategies |
| Simulation | Mentioned in passing | Gazebo version matrix, gz_ros2_control, Isaac Sim, sim-to-real |
| Security | Not covered | SROS2, DDS security plugins, certificate management, supply chain |
| Embedded | Not covered | micro-ROS, rclc, XRCE-DDS, ESP32/STM32/RP2040 |
| Multi-robot | Not covered | Open-RMF, fleet adapters, DDS discovery at scale, NTP/PTP sync |
| Testing | "Use pytest" | launch_testing, gtest, industrial_ci, simulation-in-the-loop CI |
| Deployment | Not covered | Docker multi-stage, cross-compile, fleet OTA, Zenoh routing |
Installation
Claude Code
# From plugin marketplace (terminal)
claude plugin marketplace add dbwls99706/ros2-engineering-skills
claude plugin install ros2-engineering@ros2-engineering-skills
# Or use slash commands (inside Claude Code)
/plugin marketplace add dbwls99706/ros2-engineering-skills
/plugin install ros2-engineering@ros2-engineering-skills
# Or clone directly
git clone https://github.com/dbwls99706/ros2-engineering-skills.git ~/.claude/skills/ros2-engineering-skills
Codex / Gemini CLI / OpenCode
git clone https://github.com/dbwls99706/ros2-engineering-skills.git ~/.agents/skills/ros2-engineering-skills
Cursor
git clone https://github.com/dbwls99706/ros2-engineering-skills.git
# Add to .cursor/rules/ros2-engineering-skills
Any project (symlink)
ln -s /path/to/ros2-engineering-skills .claude/skills/ros2-engineering-skills
Structure
ros2-engineering-skills/
├── SKILL.md # Entry point — decision router + core principles
├── references/ # 20 reference files (13,000+ lines)
│ ├── workspace-build.md # colcon, ament_cmake, package.xml, overlays
│ ├── nodes-executors.md # rclcpp/rclpy nodes, executors, callback groups
│ ├── communication.md # Topics, services, actions, QoS, type adapters, DDS tuning
│ ├── lifecycle-components.md # Managed nodes, component loading, composition
│ ├── launch-system.md # Python launch API, conditions, events, large systems
│ ├── tf2-urdf.md # Transforms, URDF, xacro, robot_state_publisher
│ ├── hardware-interface.md # ros2_control, HW interfaces, controller chaining, EtherCAT
│ ├── realtime.md # RT kernel, realtime_tools, jitter, deterministic execution
│ ├── navigation.md # Nav2, SLAM, costmaps, BT navigator, collision monitor
│ ├── manipulation.md # MoveIt 2, MTC, planning scene, grasp pipelines
│ ├── perception.md # image_transport, PCL, cv_bridge, depth, Isaac ROS
│ ├── simulation.md # Gazebo, Isaac Sim, gz_ros2_control, sim-to-real
│ ├── security.md # SROS2, DDS security plugins, certificates, supply chain
│ ├── micro-ros.md # micro-ROS, rclc, XRCE-DDS, ESP32/STM32/RP2040
│ ├── multi-robot.md # Fleet management, Open-RMF, DDS discovery at scale
│ ├── testing.md # gtest, pytest, launch_testing, industrial_ci, CI/CD
│ ├── debugging.md # ros2 doctor, tracing, Foxglove, MCAP, rosbag2
│ ├── deployment.md # Docker, cross-compile, fleet management, Zenoh routing
│ ├── message-types.md # Message conventions, units, covariance, diagnostics
│ └── migration-ros1.md # ROS 1 → ROS 2 strategy, ros1_bridge
├── scripts/
│ ├── create_package.py # Scaffold a package with best-practice structure (cpp/python/interfaces)
│ ├── qos_checker.py # Verify QoS compatibility between pub/sub pairs with fix suggestions
│ └── launch_validator.py # AST-based static analysis for Python launch files
├── tests/
│ ├── test_create_package.py # 40 tests — scaffolding, validation, copyright, direct + CLI
│ ├── test_launch_validator.py # 38 tests — AST visitors, patterns, CLI, main()
│ ├── test_qos_checker.py # 46 tests — parsing, compatibility, presets, CLI, main()
│ ├── test_qos_property.py # 13 tests — Hypothesis property-based DDS RxO verification
│ └── Dockerfile.ros2-test # Multi-stage Docker test (build + validate across distros)
├── setup.cfg # flake8 + mypy configuration
├── pytest.ini # pytest configuration
├── LICENSE
└── README.md
Current status
Complete & Verified. 20 reference files, 13,000+ lines of production-grade guidance, 3 utility scripts — all tested and validated on live ROS 2 Jazzy environments.
| 398 tests | Unit + property-based (Hypothesis) + CLI + integration |
| 94% coverage | All scripts verified with flake8 + mypy clean |
| Real-world Evals | Validated on WSL (Ubuntu 24.04 + ROS 2 Jazzy) for SROS2, micro-ROS rclc, and Multi-robot fleet scenarios |
| 4 CI jobs | Lint, unit-tests, ros2-integration, lint-scripts |
Supported ROS 2 distributions
- Jazzy Jalisco (LTS, recommended) — primary target
- Kilted Kaiju (non-LTS, May 2025) — Zenoh Tier 1, EventsExecutor stable
- Humble Hawksbill (LTS) — fully supported
- Foxy Fitzroy (LTS, EOL June 2023) — referenced for legacy migration
- Rolling Ridley — latest features, noted where they diverge
Contributing
Contributions welcome. Please:
- Keep
SKILL.mdunder 500 lines — add depth inreferences/ - Include working code examples, not pseudocode
- Document anti-patterns alongside correct patterns
- Note which ROS 2 distros your change applies to
- Run
flake8 scripts/ tests/andmypy scripts/before submitting - Ensure
pytest tests/ --cov=scripts --cov-fail-under=90passes - Test with at least one agent (Claude Code, Codex, etc.)
License
Apache-2.0 — see LICENSE.
Reviews (0)
Sign in to leave a review.
Leave a reviewNo results found