Agent skill

Debug Transport

by lge-ros2 in lge-ros2/cloisim

Debug and troubleshoot the NetMQ transport layer, port allocation, and device communication.

MITAuto-check passedDevelopment

Install Debug Transport

skills CLI
$ npx skills add lge-ros2/cloisim --skill debug-transport -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install lge-ros2/cloisim debug-transport --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/lge-ros2/cloisim.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.github/skills/debug-transport .claude/skills/debug-transport && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
debug-transport
GitHub stars
176
Token cost
~1.4k tokens
SKILL.md length
363 words
Files
1
Skills in repo
18
Repo updated
First seen
Licence
MIT

At a glance

Debug and troubleshoot the NetMQ transport layer, port allocation, and device communication.

  • Works in 8 steps: Check Port Allocation → Check Plugin Startup → Verify Thread Health → …
  • : diagnosing connection failures
  • SKILL.md covers When to Use, Transport Architecture, Diagnostic Steps and Network Debugging Commands, plus 1 more section
  • Calls curl

What it does

Debug Transport is an agent skill from lge-ros2/cloisim. Debug and troubleshoot the NetMQ transport layer, port allocation, and device communication. Use when: diagnosing connection failures, debugging message flow, troubleshooting port conflicts, verifying device registration.

Its SKILL.md is about 1.4k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Development, covering Debugging. The repository describes itself as: Unity 6 based multi-robot simulator for ROS 2, SDFormat/SDF, LiDAR, camera, depth, IMU, GPS, and large-scale robotics simulation. The licence is MIT.

When your agent uses it

  • : diagnosing connection failures
  • Debugging message flow
  • Troubleshooting port conflicts
  • Verifying device registration

Example prompts

  • “/debug-transport”

Workflow steps

8 steps, taken from the step headings in SKILL.md.

  1. Check Port Allocation
  2. Check Plugin Startup
  3. Verify Thread Health
  4. Common Failure Modes
  5. Message Flow Debugging
  6. Port Range
  7. Hash-Based Message Tagging
  8. Cleanup Verification

What it can do on your machine

Read from SKILL.md and the folder at commit f4c1f0b. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • curl

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use curl, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Debug Transport loads about 1.4k tokens when it runs. Until then it costs about 59 tokens; SKILL.md has 363 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~59
When it runs · the whole SKILL.md, loaded when a task matches
~1.4k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from lge-ros2/cloisim at commit f4c1f0b, republished under its MIT licence (© lge-ros2). 363 words, ~1,417 tokens.

Download SKILL.mdSave it as .claude/skills/debug-transport/SKILL.md (or your agent's skills folder).
name
debug-transport
description
Debug and troubleshoot the NetMQ transport layer, port allocation, and device communication. Use when: diagnosing connection failures, debugging message flow, troubleshooting port conflicts, verifying device registration.

Debug Transport Issues

Reference guide for diagnosing and fixing issues in CLOiSim's NetMQ transport layer.

When to Use

  • Plugin fails to start or register its transport ports
  • External ROS 2 bridge cannot connect to a device
  • Messages are not being received or published
  • Port allocation conflicts
  • Device appears in device_list but data doesn't flow

Transport Architecture

CLOiSimPlugin                    External Bridge (cloisim_ros)
    ↓                                      ↓
 Transporter                          connects to
    ├── Publisher  (PUB, bind)  ←─── Subscriber (SUB, connect)
    ├── Subscriber (SUB, bind) ←─── Publisher  (PUB, connect)
    ├── Responsor  (REP, bind) ←─── Requestor  (REQ, connect)
    └── Requestor  (REQ, bind) ←─── Responsor  (REP, connect)

All CLOiSim sockets bind on tcp://*:{port}. The bridge connects.

Diagnostic Steps

1. Check Port Allocation

Via WebSocket API:

bash
# Get all registered devices and ports
echo '{"command":"port_list"}' | websocat ws://localhost:8080/control

# Get device map (grouped by model/plugin/parts)
echo '{"command":"device_list"}' | websocat ws://localhost:8080/control

Via code (Unity Console):

csharp
// BridgeManager logs all allocations after world load:
BridgeManager.PrintAllocatedHistory();

// Check if a specific port is allocated:
var port = BridgeManager.SearchSensorPort(hashKey);

Port hash key format: {modelName}{partsName}{subPartsName}{controlKey}

2. Check Plugin Startup

Every plugin fires a Started event. If a plugin doesn't start:

  1. Check PluginStartTracker — it logs which plugins haven't started
  2. Verify SDF <plugin filename="ClassName"> matches the actual C# class name exactly
  3. Check Unity Console for "[Plugin] No plugin(xxx) exist" warnings
  4. Verify OnStart() coroutine completes (must yield return null at the end)
3. Verify Thread Health
csharp
// In a plugin, check if threads are running:
// CLOiSimPluginThread manages background threads
// Each thread has a 50ms timeout join during cleanup

// Thread naming convention:
// Threads are added via AddThread(port, threadFunction, device)
// Thread functions: SenderThread, ReceiverThread, ServiceThread
4. Common Failure Modes
SymptomCauseFix
"Failed to Bind" in ConsolePort already in useKill previous CLOiSim instance; check ss -tlnp | grep 49152
Plugin not in device_listfilename doesn't match class nameFix SDF <plugin filename=""> to match C# class name exactly
TX data not flowingDevice Mode mismatchEnsure device Mode matches plugin thread type (TX_THREAD for SenderThread)
RX data not receivedHash mismatchVerify subscriber hash matches publisher hash
Service timeoutHandleCustomRequestMessage not handling requestAdd case for the request type in the plugin
NullReferenceException in threadDevice component not foundCheck GetComponent<>() in OnAwake(), ensure device is on same GameObject
Show full SKILL.md (113 more words)Show less
5. Message Flow Debugging

TX (publishing) flow:

Device.GenerateMessage() or Device.EnqueueMessage()
  → DeviceMessageQueue.Enqueue()
  → SenderThread: DeviceMessageQueue.Dequeue()
  → Publisher.Publish(data, hash)
  → NetMQ PUB socket send

RX (receiving) flow:

NetMQ SUB socket recv
  → ReceiverThread: Subscriber.Subscribe()
  → Device.ProcessReceivedDeviceMessage()

Service (request/reply) flow:

NetMQ REP socket recv
  → ServiceThread: Responsor receives request
  → CLOiSimPlugin.HandleCustomRequestMessage()
  → Responsor sends response
6. Port Range
  • Range: 49152–65535 (ephemeral ports)
  • Allocation: sequential scan from 49152, checks IPGlobalProperties.GetActiveTcpConnections()
  • Each device port is unique per CLOiSim instance
7. Hash-Based Message Tagging

Each transport connection uses a ulong hash for message routing:

csharp
// Hash is computed from the device path:
// StdHash.Hash64(modelName + partsName + subPartsName + controlKey)

// Publisher tags each message with hash
// Subscriber filters by matching hash
// If hashes don't match, messages are silently dropped
8. Cleanup Verification

On OnDestroy(), plugins automatically:

  1. Join all threads (50ms timeout per step, up to 500ms total)
  2. Dispose Transporter (closes all NetMQ sockets)
  3. Deallocate ports from BridgeManager

If ports aren't freed, check:

  • _thread.Dispose() is being called
  • DeregisterDevice() runs (logs removed hash keys)
  • No orphaned CLOiSimPlugin instances (destroyed GameObjects should trigger OnDestroy)

Network Debugging Commands

bash
# Check which ports CLOiSim is binding:
ss -tlnp | grep -E '4915[2-9]|49[2-9][0-9]{2}|[5-6][0-9]{4}'

# Check WebSocket service:
curl -s http://localhost:8080/

# Test WebSocket commands:
echo '{"command":"fps"}' | websocat ws://localhost:8080/control
echo '{"command":"reset"}' | websocat ws://localhost:8080/control

Adding Debug Logging to a Plugin

csharp
protected override IEnumerator OnStart()
{
	if (RegisterTxDevice(out var portTx, "Data"))
	{
		Debug.Log($"[{name}] TX registered on port {portTx}");
		AddThread(portTx, SenderThread, _sensor);
	}
	else
	{
		Debug.LogError($"[{name}] Failed to register TX device");
	}

	yield return null;
}

© lge-ros2, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .github/skills/debug-transport of lge-ros2/cloisim.

Open the folder on GitHubat commit f4c1f0b

Compare with similar skills

Debug Transport next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Debug Transport compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Debug Transport this skilllge-ros2/cloisim176—~1.4kAutomated safety check: PassMIT
Trellis Session Insightmindfold-ai/Trellis15k4 repos~1.7kAutomated safety check: PassAGPL-3.0
Native Data FetchingCherryHQ/cherry-studio-app4k6 repos~2.9kAutomated safety check: NotesMIT
Debugging Executionsn8n-io/n8n207k—~2.6kAutomated safety check: PassCustom licence
Aoti Debugpytorch/pytorch104k1 repos~1.7kAutomated safety check: PassCustom licence
Herdr Throwaway Reproductionherdrdev/herdr43k—~2.4kAutomated safety check: PassApache-2.0

Similar skills

  • Trellis Session Insight

    mindfold-ai/Trellis

    Reach into past AI conversation history through the trellis mem CLI.

    15k GitHub starsUsed in 4 repos~1.7k tokens
    DevelopmentAuto-check passed
  • Native Data Fetching

    CherryHQ/cherry-studio-app

    A skill your agent uses when implementing or debugging ANY network request, API call, or data fetching.

    4k GitHub starsUsed in 6 repos~2.9k tokens
    DevelopmentAuto-check: notes
  • Official

    Debug failed or wrong-output workflow executions using executions tools.

    207k GitHub stars~2.6k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Aoti Debug

    pytorch/pytorch

    Debug AOTInductor (AOTI) errors and crashes. An agent skill from pytorch/pytorch.

    104k GitHub starsUsed in 1 repo~1.7k tokens
    DevelopmentAuto-check passed
  • Runs a disposable, uniquely named Herdr session inside an existing one so runtime, pane, terminal or API bugs can be reproduced without touching the main session.

    43k GitHub stars~2.4k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Systematic Debugging

    ultralisp/ultralisp

    A skill your agent uses when encountering any bug, test failure, or unexpected behavior, before proposing fixes

    258 GitHub starsUsed in 51 repos~2.4k tokens
    DevelopmentAuto-check passed

More from lge-ros2/cloisim

All 18 skills in this repo
  • Add Actor Animation

    lge-ros2/cloisim

    Add or modify SDF actors with skeletal animation and waypoint-based navigation.

    176 GitHub stars~2.4k tokensUpdated 3 days ago
    Auto-check passed
  • Add Compute Shader

    lge-ros2/cloisim

    Add a new compute or surface shader for sensor data processing or visualization.

    176 GitHub stars~2.1k tokensUpdated 3 days ago
    Auto-check passed
  • Add Mesh Import

    lge-ros2/cloisim

    Import 3D mesh files into CLOiSim via the Assimp pipeline, including collision generation and procedural meshes.

    176 GitHub stars~2k tokensUpdated 3 days ago
    Auto-check passed
  • Add Motor Controller

    lge-ros2/cloisim

    Add a new motor or drive controller for robot locomotion. An agent skill from lge-ros2/cloisim.

    176 GitHub stars~1.4k tokensUpdated 3 days ago
    Auto-check passed
  • Add New Plugin

    lge-ros2/cloisim

    Add a new CLOiSimPlugin for bridging a device to the ROS 2 transport layer.

    176 GitHub stars~1.5k tokensUpdated 3 days ago
    Auto-check passed
  • Add New Sensor

    lge-ros2/cloisim

    Add a new sensor device to CLOiSim, including the Device subclass, SDF pipeline wiring, and transport plugin.

    176 GitHub stars~1.6k tokensUpdated 3 days ago
    Auto-check passed

Categories

Questions about Debug Transport

What does Debug Transport do?

Debug and troubleshoot the NetMQ transport layer, port allocation, and device communication. Debug Transport is an agent skill from lge-ros2/cloisim. Debug and troubleshoot the NetMQ transport layer, port allocation, and device communication.

When should I use Debug Transport?

Debug Transport fits situations like: : diagnosing connection failures; debugging message flow; troubleshooting port conflicts; verifying device registration.

How do I install Debug Transport in Claude Code?

Run `npx skills add lge-ros2/cloisim --skill debug-transport -a claude-code`. Or copy the skill folder (.github/skills/debug-transport in lge-ros2/cloisim) into .claude/skills/debug-transport in your project. Claude Code loads it when a task matches its description.

How do I install Debug Transport in Codex?

Run `npx skills add lge-ros2/cloisim --skill debug-transport -a codex`. Or copy the skill folder (.github/skills/debug-transport in lge-ros2/cloisim) into .agents/skills/debug-transport in your project. Codex loads it when a task matches its description.

Can I use Debug Transport in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add lge-ros2/cloisim --skill debug-transport -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/debug-transport, .gemini/skills/debug-transport, .github/skills/debug-transport and .opencode/skills/debug-transport in your project.

What does Debug Transport need to run?

Going by SKILL.md and its folder, Debug Transport needs the command-line tools its instructions call (curl).

Does Debug Transport access the network?

SKILL.md contains no URLs. Its commands use curl, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Debug Transport safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Debug Transport use?

Debug Transport is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Debug Transport use?

About 1.4k tokens (SKILL.md is roughly 5.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Debug Transport?

Skills that share tags, products or a category with Debug Transport: Trellis Session Insight (mindfold-ai/Trellis, 15k stars), Native Data Fetching (CherryHQ/cherry-studio-app, 4k stars), Debugging Executions (n8n-io/n8n, 207k stars) and Aoti Debug (pytorch/pytorch, 104k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Debug Transport?

lge-ros2 (a GitHub organization) maintains it in lge-ros2/cloisim, which has 176 GitHub stars. The repository holds 18 skills in this directory. The repository was last updated on October 6, 2026.

Source: lge-ros2/cloisim on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.