Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add hamzabellouch/agent-skills --skill ros2-robotics-navigationgit clone --depth 1 https://github.com/hamzabellouch/agent-skillsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/hamzabellouch/agent-skills/ros2-robotics-navigation)<a href="https://agentmods.dev/skills/hamzabellouch/agent-skills/ros2-robotics-navigation"><img src="https://agentmods.dev/badge/skills/hamzabellouch/agent-skills/ros2-robotics-navigation/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/hamzabellouch/agent-skills/ros2-robotics-navigation"><img src="https://agentmods.dev/badge/skills/hamzabellouch/agent-skills/ros2-robotics-navigation.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00076 | $0.01960 |
| Opus 5 | $0.00038 | $0.00980 |
| Sonnet 5 | $0.00015 | $0.00392 |
| Haiku 4.5 | $0.00008 | $0.00196 |
Grade A, and why
ros2-robotics-navigation scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 8d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 211 lines — stays where its author put it; the contents beside it link to each section on GitHub.
ROS 2 Robotics & Nav2 Autonomous Navigation Guidelines
This skill details node design, DDS Quality of Service (QoS) tuning, coordinate transformation frame trees (tf2), Nav2 architecture configuration, and real-time execution safety for ROS 2 autonomous mobile robots (AMR).
1. ROS 2 Architecture & Node Design
1.1 Lifecycle Node Management (C++)
Managed Lifecycle Nodes transition explicitly through states (Unconfigured, Inactive, Active, Finalized), ensuring hardware drivers and controllers initialize predictably:
#include "rclcpp/rclcpp.hpp"
#include "rclcpp_lifecycle/lifecycle_node.hpp"
#include "sensor_msgs/msg/laser_scan.hpp"
#include "nav_msgs/msg/odometry.hpp"
using CallbackReturn = rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn;
class AutonomousSafetyNode : public rclcpp_lifecycle::LifecycleNode {
public:
explicit AutonomousSafetyNode(const rclcpp::NodeOptions & options)
: rclcpp_lifecycle::LifecycleNode("safety_monitor_node", options) {}
CallbackReturn on_configure(const rclcpp_lifecycle::State &) override {
RCLCPP_INFO(get_logger(), "Configuring Safety Monitor Node...");
// Configure QoS for High Frequency Sensor Data
rclcpp::QoS sensor_qos(rclcpp::KeepLast(5));
sensor_qos.reliability(RCLCPP_RELIABILITY_BEST_EFFORT);
sensor_qos.durability(RCLCPP_DURABILITY_VOLATILE);
scan_sub_ = create_subscription<sensor_msgs::msg::LaserScan>(
"/scan", sensor_qos,
std::bind(&AutonomousSafetyNode::scan_callback, this, std::placeholders::_1));
cmd_vel_pub_ = create_publisher<geometry_msgs::msg::Twist>("/cmd_vel", rclcpp::SystemDefaultsQoS());
return CallbackReturn::SUCCESS;
}
CallbackReturn on_activate(const rclcpp_lifecycle::State & state) override {
LifecycleNode::on_activate(state);
cmd_vel_pub_->on_activate();
RCLCPP_INFO(get_logger(), "Safety Monitor Activated.");
return CallbackReturn::SUCCESS;
}
CallbackReturn on_deactivate(const rclcpp_lifecycle::State & state) override {
LifecycleNode::on_deactivate(state);
cmd_vel_pub_->on_deactivate();
RCLCPP_INFO(get_logger(), "Safety Monitor Deactivated.");
return CallbackReturn::SUCCESS;
}
private:
void scan_callback(const sensor_msgs::msg::LaserScan::SharedPtr msg) {
if (!get_current_state().label().compare("active")) {
// Emergency Brake logic if obstacle closer than threshold
for (const auto & range : msg->ranges) {
if (range < 0.35f && range > msg->range_min) {
RCLCPP_WARN(get_logger(), "EMERGENCY STOP TRIGGERED! Obstacle detected at %.2fm", range);
auto stop_msg = std::make_unique<geometry_msgs::msg::Twist>();
stop_msg->linear.x = 0.0;
stop_msg->angular.z = 0.0;
cmd_vel_pub_->publish(std::move(stop_msg));
break;
}
}
}
}
rclcpp::Subscription<sensor_msgs::msg::LaserScan>::SharedPtr scan_sub_;
rclcpp_lifecycle::LifecyclePublisher<geometry_msgs::msg::Twist>::SharedPtr cmd_vel_pub_;
};
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 8d ago First seen · 211 lines · 76 tokens per session scan A ddbdaf680d37
ros2-robotics-navigation is a skill published in the GitHub repository hamzabellouch/agent-skills (4 stars, last pushed 1mo ago), licensed MIT. It adds 76 tokens to every session and 1,960 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-03.
Other skills, from other repositories
native-modules
When integrating device APIs, bridging to native SDKs, or debugging platform-specific behavior.
aerospace-engineering-technician
Use when a task needs the judgment of an Aerospace Engineering and Operations Technologist/Technician — verifying an installed fastener's preload against a drawing's torque callout via the T=K·D·F relationship, reducing strain-gauge data from a structural proof-load test into stress and checking it against an…
audiovisual-equipment-installer
Use when a task needs the judgment of an audiovisual equipment installer/repairer — diagnosing an EDID or HDCP handshake failure between a source and a display, sizing a display's screen size and brightness for a room's viewing distance and ambient light, specifying an HDMI/HDBaseT/AVoIP signal run against its rated…
auto-glass-installer-repairer
Use when a task needs the judgment of an auto-glass installer/repairer — deciding whether a chip or crack qualifies for resin repair versus full replacement, calculating a safe drive-away time for the adhesive and conditions on a job, determining whether a windshield replacement triggers ADAS camera recalibration, or…
automotive-engineer
Use when a task needs the judgment of an Automotive Engineer — computing weight transfer and tire friction-circle limits for a braking-while-cornering maneuver to set brake-force distribution, sizing a powertrain and gear ratio against a 0-60 mph acceleration target while checking traction versus power limits, sizing…
automotive-engineering-technician
Use when a task needs the judgment of an Automotive Engineering Technician — setting up and instrumenting test equipment (strain-gauge bridges, thermocouples, load/torque sensors) to an engineer's written test plan, selecting DAQ sample rate and an SAE J211 CFC filter class for a vehicle test channel, verifying…