Import
asgeirtj/system_prompts_leaks
Handle explicit /import requests for read-only transcript recovery and a resume checkpoint, or continue work from other coding agents and unnamed artifacts.
Extend the SDF parse → import → implement pipeline with a new element type.
$ npx skills add lge-ros2/cloisim --skill add-sdf-element -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install lge-ros2/cloisim add-sdf-element --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/lge-ros2/cloisim.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.github/skills/add-sdf-element .claude/skills/add-sdf-element && rm -rf skills-srcUse ~/.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/
Install the "add-sdf-element" agent skill from https://github.com/lge-ros2/cloisim/tree/main/.github/skills/add-sdf-element into .claude/skills/add-sdf-element/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "add-sdf-element", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/lge-ros2/cloisim/tree/main/.github/skills/add-sdf-elementType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add lge-ros2/cloisim --skill add-sdf-element -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install lge-ros2/cloisim add-sdf-element --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/lge-ros2/cloisim.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.github/skills/add-sdf-element .agents/skills/add-sdf-element && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "add-sdf-element" agent skill from https://github.com/lge-ros2/cloisim/tree/main/.github/skills/add-sdf-element into .agents/skills/add-sdf-element/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "add-sdf-element", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add lge-ros2/cloisim --skill add-sdf-element -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install lge-ros2/cloisim add-sdf-element --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/lge-ros2/cloisim.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.github/skills/add-sdf-element .cursor/skills/add-sdf-element && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "add-sdf-element" agent skill from https://github.com/lge-ros2/cloisim/tree/main/.github/skills/add-sdf-element into .cursor/skills/add-sdf-element/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "add-sdf-element", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/lge-ros2/cloisim.git --path .github/skills/add-sdf-element--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add lge-ros2/cloisim --skill add-sdf-element -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install lge-ros2/cloisim add-sdf-element --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/lge-ros2/cloisim.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.github/skills/add-sdf-element .gemini/skills/add-sdf-element && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "add-sdf-element" agent skill from https://github.com/lge-ros2/cloisim/tree/main/.github/skills/add-sdf-element into .gemini/skills/add-sdf-element/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "add-sdf-element", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install lge-ros2/cloisim add-sdf-elementInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add lge-ros2/cloisim --skill add-sdf-element -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/lge-ros2/cloisim.git skills-src && mkdir -p .github/skills && cp -r skills-src/.github/skills/add-sdf-element .github/skills/add-sdf-element && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "add-sdf-element" agent skill from https://github.com/lge-ros2/cloisim/tree/main/.github/skills/add-sdf-element into .github/skills/add-sdf-element/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "add-sdf-element", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add lge-ros2/cloisim --skill add-sdf-element -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install lge-ros2/cloisim add-sdf-element --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/lge-ros2/cloisim.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.github/skills/add-sdf-element .opencode/skills/add-sdf-element && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "add-sdf-element" agent skill from https://github.com/lge-ros2/cloisim/tree/main/.github/skills/add-sdf-element into .opencode/skills/add-sdf-element/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "add-sdf-element", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
add-sdf-elementExtend the SDF parse → import → implement pipeline with a new element type.
Add Sdf Element is an agent skill from lge-ros2/cloisim. Extend the SDF parse → import → implement pipeline with a new element type. Use when: adding support for a new SDF XML element, extending world/model import, creating new Helper MonoBehaviours.
Its SKILL.md is about 2.1k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
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.
7 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit f4c1f0b. It shows what the files ask for, not the result of running them.
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.
No scripts in the folder and no shell commands in SKILL.md (its code samples are csharp).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Add Sdf Element loads about 2.1k tokens when it runs. Until then it costs about 52 tokens; SKILL.md has 401 words of instructions outside code blocks.
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.
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.
The full file from lge-ros2/cloisim at commit f4c1f0b, republished under its MIT licence (© lge-ros2). 401 words, ~2,098 tokens.
.claude/skills/add-sdf-element/SKILL.md (or your agent's skills folder).Procedure for adding support for a new SDF XML element through the full pipeline: Parser → Importer → Implementer → Helper.
<heightmap>, <population>, <atmosphere>)SDFormat package (Parser) → Import.Loader (Importer) → Implement.* (Implementer)
↓ ↓ ↓
C# domain class Unity GameObjects created Components/colliders/renderers
↓
Helper.* MonoBehaviour (runtime state)The parser lives in the external com.lge-ros2.sdformat Unity package. Add or extend a domain class:
// In the SDFormat package:
namespace SDFormat
{
public class MyElement
{
public string Name { get; set; }
public Math.Pose3d RawPose { get; set; }
public string PoseRelativeTo { get; set; }
// Add fields matching SDF XML attributes/children
}
}Ensure the parser populates this class from the corresponding XML element. If the element is a child of <model>, <link>, <world>, etc., add a collection property to the parent:
// In the parent class (e.g., Model):
public IReadOnlyList<MyElement> MyElements => _myElements;Edit Assets/Scripts/Tools/SDF/Import/Import.Base.Common.cs:
protected virtual object ImportMyElement(in MyElement element, in object parentObject)
{
PrintNotImported(MethodBase.GetCurrentMethod().Name, element.Name);
return null;
}If the element needs post-processing (after children are created):
protected virtual void AfterImportMyElement(in MyElement element, in object targetObject)
{
PrintNotImported(MethodBase.GetCurrentMethod().Name, element.Name);
}Edit Assets/Scripts/Tools/SDF/Import/Import.Base.cs — add a batch import method:
private void ImportMyElements(IReadOnlyList<MyElement> items, in object parentObject)
{
foreach (var item in items)
{
var createdObject = ImportMyElement(item, parentObject);
// If the element has sub-elements:
// ImportGeometry(item.Geom, createdObject);
// StorePlugins(item.Plugins, createdObject);
}
}Wire it into the appropriate parent import method (e.g., in ImportLinks(), ImportModels(), or Start()).
Create Assets/Scripts/Tools/SDF/Import/Import.MyElement.cs:
/*
* Copyright (c) 2026 LG Electronics Inc.
*
* SPDX-License-Identifier: MIT
*/
using UE = UnityEngine;
namespace SDFormat
{
using Implement;
namespace Import
{
public partial class Loader : Base
{
protected override object ImportMyElement(in MyElement element, in object parentObject)
{
var targetObject = parentObject as UE.GameObject;
var newObject = targetObject.CreateMyElement(element);
return newObject;
}
}
}
}Create Assets/Scripts/Tools/SDF/Implement/Implement.MyElement.cs:
/*
* Copyright (c) 2026 LG Electronics Inc.
*
* SPDX-License-Identifier: MIT
*/
using UE = UnityEngine;
namespace SDFormat
{
namespace Implement
{
public static class MyElement
{
public static UE.GameObject CreateMyElement(
this UE.GameObject targetObject, in SDFormat.MyElement element)
{
var newObject = new UE.GameObject(element.Name);
newObject.tag = "MyTag"; // Use existing tag or request a new one
newObject.transform.SetParent(targetObject.transform, false);
// Apply SDF pose
if (element.RawPose != null)
{
var (pos, rot) = element.RawPose.ToUnity();
newObject.transform.localPosition = pos;
newObject.transform.localRotation = rot;
}
// Add Helper for runtime state
var helper = newObject.AddComponent<Helper.MyElement>();
helper.Pose = element.RawPose;
helper.PoseRelativeTo = element.PoseRelativeTo;
// Create Unity components (renderers, colliders, etc.)
// ...
return newObject;
}
}
}
}Create Assets/Scripts/Tools/SDF/Helper/MyElement.cs:
/*
* Copyright (c) 2026 LG Electronics Inc.
*
* SPDX-License-Identifier: MIT
*/
using UE = UnityEngine;
namespace SDFormat
{
namespace Helper
{
public class MyElement : Base
{
[UE.Header("SDF Properties")]
public string myProperty;
new protected void Awake()
{
base.Awake();
// Element-specific initialization
}
new protected void Start()
{
base.Start();
// Element-specific startup
}
// Override if this element has runtime state to reset
// public new void Reset()
// {
// base.Reset();
// }
}
}
}Depending on when the element needs to be processed, wire it into the orchestration flow in Import.Base.cs:
Immediate processing (during parent import):
// In ImportLinks() or ImportModels():
ImportMyElements(model.MyElements, newModelObject);Deferred processing (needs other elements to exist first, like joints):
// Store during import:
protected void StoreMyElements(IReadOnlyList<MyElement> items, in object parentObject)
{
foreach (var item in items)
{
_myElementObjectList.Add(item, parentObject);
}
}
// Process later in Start():
private void ImportDeferredMyElements()
{
foreach (var item in _myElementObjectList)
{
ImportMyElement(item.Key, item.Value);
}
}The orchestration order in Base.Start() is:
ImportWorld → ImportModels (creates GameObjects)ImportActorsSpecifyPose (applies all poses)SDF2Unity methods (ToUnity(), Position(), Rotation()) — never manually swap axesImport.Loader is a partial class split across files. Each new element gets its own Import.*.cs fileGameObject in the SDFormat.Implement namespacebase.Awake() and base.Start() — they handle pose control and root model discoveryModel, Link, Visual, Collision, Sensor, Light, Actor, Marker, Props, Geometry, Road). Adding new tags requires editing ProjectSettings/TagManager.assetArticulationBody components are disabled. SpecifyPose() re-enables them after all poses are appliedImport.Base.Common.csImport.Base.csImport.MyElement.cs partial class fileImplement.MyElement.csHelper/MyElement.csSDF2Unity methods© 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
Just SKILL.md in .github/skills/add-sdf-element of lge-ros2/cloisim.
Open the folder on GitHubat commit f4c1f0b
Add Sdf Element 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Add Sdf Element this skilllge-ros2/cloisim | 176 | — | ~2.1k | Automated safety check: Pass | MIT | |
| Importasgeirtj/system_prompts_leaks | 69k | — | ~3.5k | Automated safety check: Pass | CC0-1.0 | |
| Implementsickn33/agentic-awesome-skills | 47k | 5 repos | ~306 | Automated safety check: Pass | MIT | |
| Implementcodewhale-hq/Codewhale | 41k | — | ~190 | Automated safety check: Pass | MIT | |
| Implementing Warehouse SourcesPostHog/posthog | 40k | — | ~22k | Automated safety check: Pass | Custom licence | |
| Incremental Implementationaddyosmani/agent-skills | 103k | 1 repos | ~2.3k | Automated safety check: Pass | MIT |
asgeirtj/system_prompts_leaks
Handle explicit /import requests for read-only transcript recovery and a resume checkpoint, or continue work from other coding agents and unnamed artifacts.
sickn33/agentic-awesome-skills
Implement a piece of work based on a PRD or set of issues. An agent skill from sickn33/agentic-awesome-skills.
codewhale-hq/Codewhale
Carry an authorized, defined request or approved plan through scoped edits and proportionate verification.
PostHog/posthog
Implement and extend PostHog Data warehouse import sources. An agent skill from PostHog/posthog.
addyosmani/agent-skills
Delivers a change in thin vertical slices, each implemented, tested, verified and committed before the next, using vertical, contract-first or risk-first slicing.
bestofjs/bestofjs
Implement a piece of work based on a spec or set of tickets.
lge-ros2/cloisim
Add or modify SDF actors with skeletal animation and waypoint-based navigation.
lge-ros2/cloisim
Add a new compute or surface shader for sensor data processing or visualization.
lge-ros2/cloisim
Import 3D mesh files into CLOiSim via the Assimp pipeline, including collision generation and procedural meshes.
lge-ros2/cloisim
Add a new motor or drive controller for robot locomotion. An agent skill from lge-ros2/cloisim.
lge-ros2/cloisim
Add a new CLOiSimPlugin for bridging a device to the ROS 2 transport layer.
lge-ros2/cloisim
Add a new sensor device to CLOiSim, including the Device subclass, SDF pipeline wiring, and transport plugin.
Extend the SDF parse → import → implement pipeline with a new element type. Add Sdf Element is an agent skill from lge-ros2/cloisim. Extend the SDF parse → import → implement pipeline with a new element type.
Add Sdf Element fits situations like: : adding support for a new SDF XML element; extending world/model import; creating new Helper MonoBehaviours.
Run `npx skills add lge-ros2/cloisim --skill add-sdf-element -a claude-code`. Or copy the skill folder (.github/skills/add-sdf-element in lge-ros2/cloisim) into .claude/skills/add-sdf-element in your project. Claude Code loads it when a task matches its description.
Run `npx skills add lge-ros2/cloisim --skill add-sdf-element -a codex`. Or copy the skill folder (.github/skills/add-sdf-element in lge-ros2/cloisim) into .agents/skills/add-sdf-element in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add lge-ros2/cloisim --skill add-sdf-element -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/add-sdf-element, .gemini/skills/add-sdf-element, .github/skills/add-sdf-element and .opencode/skills/add-sdf-element in your project.
SKILL.md names no scripts, command-line tools or credentials: Add Sdf Element is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
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.
Add Sdf Element is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.1k tokens (SKILL.md is roughly 8.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Add Sdf Element: Import (asgeirtj/system_prompts_leaks, 69k stars), Implement (sickn33/agentic-awesome-skills, 47k stars), Implement (codewhale-hq/Codewhale, 41k stars) and Implementing Warehouse Sources (PostHog/posthog, 40k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
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.