Agent skill

URDF Robot Description Authoring

by earthtojake in earthtojake/text-to-cad

Guides writing, editing and validating URDF robot description files, with a design ledger, exact frame semantics and computed inertials checked by a validator.

MITAuto-check passedDevelopment

Install URDF Robot Description Authoring

skills CLI
$ npx skills add earthtojake/text-to-cad --skill urdf -a claude-code

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

GitHub CLI
$ gh skill install earthtojake/text-to-cad urdf --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/earthtojake/text-to-cad.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/urdf .claude/skills/urdf && 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
urdf
GitHub stars
19k
Used in
1 other repo
Token cost
~2.3k tokens
SKILL.md length
1,210 words
Files
10 (incl. references)
Skills in repo
12
Repo updated
First seen
Licence
MIT

At a glance

Guides writing, editing and validating URDF robot description files, with a design ledger, exact frame semantics and computed inertials checked by a validator.

  • Works in 8 steps: The .urdf file is the source of truth.… → Before writing or changing URDF XML,… → Use URDF frame semantics exactly. Joint… → …
  • Creating or editing a robot's .urdf file
  • SKILL.md covers Setup, Core Rules, Show the model and Workflow, plus 3 more sections
  • Calls uvx and git

What it does

The skill treats URDF as constrained kinematic modeling rather than plain XML writing, since the main risks are frame placement, joint-axis meaning, units, mesh scale and inertial data. The `.urdf` file stays the source of truth and is edited directly, with no Python generation pipeline, and a ledger of frames, joints, geometry, units and assumptions is embedded as a comment block at the top before any change.

Rules require exact URDF frame semantics, no guessing of transforms, mesh units, handedness or joint signs from vague prose, and computed rather than freehand values for inertia tensors, centers of mass and unit conversions. Links get separate inertial, visual and collision models when needed. Every created or changed file is checked with `cadgen urdf validate` before the work is reported done, and `cadgen` runs through uv, which downloads it on first use. Reference files cover the authoring contract, ledger, frames, inertials, meshes, workflow and validation.

When your agent uses it

  • Creating or editing a robot's .urdf file
  • Validating a URDF and fixing reported errors
  • Debugging wrong joint axes, frames or mesh scale in a robot model
  • Computing inertials for links from their geometry

Example prompts

  • “Write a URDF for a two-link arm with revolute joints and add the design ledger at the top.”
  • “Validate robot.urdf and fix whatever the validator reports.”
  • “The gripper mesh looks ten times too large in the viewer. Check the unit and scale handling.”
  • “Compute inertials for the base link as a box and put them in the file.”

Requirements

  • uv to run `cadgen`
  • Network access on first run to download cadgen

Workflow steps

8 steps, taken from the first numbered list in SKILL.md.

  1. The .urdf file is the source of truth. Author and edit URDF XML directly; do not build a Python generation pipeline for it. There is no…
  2. Before writing or changing URDF XML, establish the robot's frame, joint, geometry, unit, and assumption ledger and embed it as a comment…
  3. Use URDF frame semantics exactly. Joint origins, link frames, joint axes, and visual/collision/inertial origins use different reference…
  4. Do not infer spatial transforms, mesh units, handedness, axes, or joint signs from vague prose. Use CAD transforms, dimensioned drawings…
  5. Never freehand numeric values that are the result of computation — inertia tensors, centers of mass, unit conversions across many links…
  6. For physical links, model inertial, visual, and collision separately when the target consumer needs them. Frame-only links may…
  7. Validate every created or modified .urdf with cadgen urdf validate before reporting completion. See references/validation.md.
  8. Helper scripts are allowed and encouraged for computation, but they are scaffolding, not the artifact's source of truth. For complex or…

What it can do on your machine

Read from SKILL.md and the folder at commit 523ae21. 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:

    • uvx
    • git

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

  • Network

    Links to these hosts (documentation or services it may open):

    • docs.astral.sh

    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

URDF Robot Description Authoring loads about 2.3k tokens when it runs, and up to ~12k if it reads all its reference files. Until then it costs about 115 tokens; SKILL.md has 1,210 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~115
When it runs · the whole SKILL.md, loaded when a task matches
~2.3k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~12k

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 earthtojake/text-to-cad at commit 523ae21, republished under its MIT licence (© earthtojake). 1,210 words, ~2,337 tokens.

Download SKILL.mdSave it as .claude/skills/urdf/SKILL.md (or your agent's skills folder). This skill also uses 9 other files; get the full folder from GitHub.
name
urdf
description
URDF robot description authoring and validation. Use when creating, editing, inspecting, validating, or debugging `.urdf` files, robot links, joints, limits, inertials, visual/collision geometry, mesh references, frame conventions, or robot-description artifacts. Use the SRDF skill for MoveIt2 semantic groups and IK/path-planning semantics; use the CAD skill for STEP/STL/3MF/DXF/GLB outputs. Open and visually review existing URDF files in CAD Viewer.
license
MIT

URDF

Provenance: maintained in earthtojake/text-to-cad. Use the installed local skill files as the runtime source of truth; the repository link is only for provenance and release review.

Use this skill for URDF robot-description outputs. Treat URDF work as constrained kinematic modeling, not just XML writing. The main correctness risks are frame placement, joint-axis semantics, unit consistency, mesh scale, and inertial data.

Setup

Run cadgen through uv, so this skill's commands share one installation, and its warm build daemon, with the CAD app's server:

  • cadgen below means uvx --no-config --managed-python --python 3.13 --from cadgen==0.7.19 cadgen
  • python below means uvx --no-config --managed-python --python 3.13 --from cadgen==0.7.19 python

The first run downloads that installation and the first snapshot its headless browser; later runs reuse both.

Core Rules

  1. The .urdf file is the source of truth. Author and edit URDF XML directly; do not build a Python generation pipeline for it. There is no gen_urdf() contract.
  2. Before writing or changing URDF XML, establish the robot's frame, joint, geometry, unit, and assumption ledger and embed it as a comment block at the top of the .urdf file. See references/design-ledger.md.
  3. Use URDF frame semantics exactly. Joint origins, link frames, joint axes, and visual/collision/inertial origins use different reference frames. See references/frame-semantics.md.
  4. Do not infer spatial transforms, mesh units, handedness, axes, or joint signs from vague prose. Use CAD transforms, dimensioned drawings, measured values, existing source data, or explicit documented assumptions.
  5. Never freehand numeric values that are the result of computation — inertia tensors, centers of mass, unit conversions across many links, mirrored transforms. Compute them: closed-form formulas for primitives, or a throwaway helper script for mesh-derived values. See references/inertials.md.
  6. For physical links, model inertial, visual, and collision separately when the target consumer needs them. Frame-only links may intentionally omit mass and geometry.
  7. Validate every created or modified .urdf with cadgen urdf validate before reporting completion. See references/validation.md.
  8. Helper scripts are allowed and encouraged for computation, but they are scaffolding, not the artifact's source of truth. For complex or genuinely parametric models it is reasonable to keep a model-local helper script on disk next to related source code (for example STEP generator sources) and note it in the ledger; this is optional, and the checked-in .urdf remains canonical.

Show the model

Show the user each file you create or change, and any they ask to see. Snapshots and validation don't replace this.

  • If your tools include cad_show (your host may prefix it), use it with the file's absolute path, and follow its description for when to call it again. cad_view reads what the user selected; cad_screenshot shows you what they see. Neither is a review of your own work.

  • Otherwise run the CAD Viewer, from any folder:

    bash
    cadgen viewer --host 127.0.0.1 --json --detach

    --detach returns once the viewer answers requests and leaves it running in the background: always pass it, since a foreground viewer never exits (and piping its output through tail can hide the URL for good). It starts this machine's one viewer, or reuses it. Read url from its one JSON line (never guess the port), and for each file return url?file=<its URL-encoded absolute path>. If it fails to launch, say so.

Review mesh scale and placement, then sweep every movable joint against the design ledger. A link alone does not complete the viewer sweep; report any checks you could not perform.

Workflow

  1. Identify the target .urdf file and its consumers: RViz, robot_state_publisher, Gazebo/Ignition, MoveIt, a real robot driver, or another simulator.
  2. Read or create the design ledger before editing frames, origins, axes, mesh scale, limits, or inertials. Keep the ledger as a comment block in the .urdf itself.
  3. Prepare mesh assets first when links reference meshes: one mesh per link, exported in that link's frame by the owning CAD/mesh workflow. See references/meshes.md.
  4. Author or edit the URDF XML directly, following references/authoring-contract.md for structure, ordering, and naming.
  5. Compute — never guess — inertials and other derived numbers. See references/inertials.md.
  6. Validate with cadgen urdf validate; fix findings and re-validate until clean.
  7. Run the verification recipe in references/validation.md: external tools when available (check_urdf), then a viewer review sweeping every joint.
  8. Report remaining assumptions, unchecked spatial data, and validation gaps.
Show full SKILL.md (512 more words)Show less

Commands

Run cadgen as Setup defines it. cadgen doctor <skill-dir> reports the installation in use and checks that it is the one this skill pins — docs drift silently on another. Validation itself needs nothing beyond the Python standard library; only snapshots need the browser. Use cadgen <verb> --help for the complete current interface.

The validator shape is:

bash
cadgen urdf validate path/to/robot.urdf
cadgen urdf validate path/to/robot.urdf --strict
cadgen urdf validate path/to/robot.urdf --json
cadgen urdf validate path/to/robot.urdf --packages robot_description=/path/to/pkg
cadgen urdf snapshot path/to/robot.urdf review.png

The validator collects all findings in one pass (severity, code, XML path) across XML structure, tree topology, joint semantics (limits, mimic, dynamics), geometry, mesh references, materials, inertial physics, and misspelled elements, and prints a summary. One run validates ONE file: --strict treats warnings as failures; --json prints one line of {"ok", "path", "issues": [{"severity", "code", "message", "element", "hint"}], "summary"}, where element is the XML path; --packages NAME=PATH resolves package:// mesh URIs and repeats for several roots. It exits nonzero if the target fails. Relative targets resolve from the current working directory; run from the workspace that owns the files.

Validation is a guardrail, not spatial proof: a URDF can pass every structural check while placing a joint in the wrong spot. The ledger and viewer sweep exist for that reason.

Snapshot Tool

cadgen urdf snapshot renders the robot to a PNG still, using the same shared CLI and headless browser runtime every rendering skill uses — so a snapshot matches what the CAD Viewer shows.

bash
cadgen urdf snapshot path/to/robot.urdf review.png

It accepts .urdf only. Pose the robot with --joint-values — {joint: degrees} JSON, joints you do not name staying at their defaults, where the CAD Viewer opens the robot (the "jointValues" job field is the same thing in a packet). The snapshot draws the robot with the viewer's own scene, so it shows what the viewer shows, and a link mesh that cannot be loaded fails it rather than leaving the link out. Robots are authored in metres and are framed on the robot scene scale automatically.

A normal snapshot uses the Solid preset and Light appearance; omitted groups inherit preset defaults. Pass --display render for the shared photographic scene. Inline display JSON and JSON files use grouped settings such as lighting, background, and floor; appearance is light (default) or dark. Projection and focal length belong in display.camera. Top-level --camera and --joint-values remain active in every display mode. The display modes are solid and render: edges, clip, exploded, the xray, hidden-line and wireframe modes and the hidden/off surface styles describe a STEP model's CAD edges, parts and solids, and are refused by name here.

Link meshes are resolved relative to the description, so they must be present: an unhydrated Git LFS pointer fails as "No link mesh loaded for robot". Run git lfs checkout <mesh dir> first.

The grammar is cadgen urdf snapshot TARGET [OUT] [flags], the same one every format door uses. Use cadgen urdf snapshot --help for the complete current interface — the flags a robot cannot act on are absent from it, not refused by it.

References

  • Authoring contract (structure, ordering, golden skeleton): references/authoring-contract.md
  • Design ledger: references/design-ledger.md
  • Frame semantics: references/frame-semantics.md
  • Mesh preparation and references: references/meshes.md
  • Inertials (formulas, scripts, sanity gates): references/inertials.md
  • URDF edit workflow: references/urdf-workflow.md
  • Validation and verification recipe: references/validation.md

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

Files

SKILL.md and 9 other files (references) in skills/urdf of earthtojake/text-to-cad.

  • SKILL.md
  • LICENSE
  • agents/openai.yaml
  • references/authoring-contract.md
  • references/design-ledger.md
  • references/frame-semantics.md
  • references/inertials.md
  • references/meshes.md
  • references/urdf-workflow.md
  • references/validation.md

Open the folder on GitHubat commit 523ae21

Used in 1 other repository

We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in earthtojake/text-to-cad, which our catalogue first saw on October 7, 2026.

Compare with similar skills

URDF Robot Description Authoring 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.

URDF Robot Description Authoring compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
URDF Robot Description Authoring this skillearthtojake/text-to-cad19k1 repos~2.3kAutomated safety check: PassMIT
Code Review ChecklistshareAI-lab/learn-claude-code78k5 repos~1.1kAutomated safety check: PassMIT
Minimizing Ty Ecosystem Changesastral-sh/ruff50k—~4.6kAutomated safety check: PassMIT
Merge Dependabot PRsonyx-dot-app/onyx32k1 repos~2.2kAutomated safety check: PassMIT
Summarise Ecosystem Resultsastral-sh/ruff50k—~2.2kAutomated safety check: PassMIT
Senior Architect Toolkitmaslennikov-ig/claude-code-orchestrator-kit2608 repos~1.2kAutomated safety check: NotesCustom licence

Similar skills

  • Code Review Checklist

    shareAI-lab/learn-claude-code

    Reviews code against a five-part checklist covering security, correctness, performance, maintainability and testing, and reports findings in a fixed format.

    78k GitHub starsUsed in 5 repos~1.1k tokens
    DevelopmentAuto-check passed
  • Official

    A skill your agent uses when a user says "minimize this ty ecosystem change", "reproduce this ecosystem result", "investigate a primer difference", "investigate a mypyprimer difference"…

    50k GitHub stars~4.6k tokensUpdated today
    DevelopmentAuto-check passed
  • Merge Dependabot PRs

    onyx-dot-app/onyx

    Triages and lands a batch of open Dependabot PRs in the Onyx repo, where main is gated exclusively by GitHub's merge queue: approves and enqueues green PRs, closes superseded duplicates, fixes…

    32k GitHub starsUsed in 1 repo~2.2k tokens
    DevelopmentAuto-check passed
  • Official

    A skill your agent uses when a user says "summarise ecosystem results", "summarize this ty ecosystem report", "what changed in this ecosystem run?", or asks to summarise or summarize ty ecosystem…

    50k GitHub stars~2.2k tokensUpdated today
    DevelopmentAuto-check passed
  • Senior Architect Toolkit

    maslennikov-ig/claude-code-orchestrator-kit

    Comprehensive software architecture skill for designing scalable, maintainable systems using ReactJS, NextJS, NodeJS, Express, React Native, Swift, Kotlin…

    260 GitHub starsUsed in 8 repos~1.2k tokens
    DevelopmentAuto-check: notes
  • Kedro Babysit

    kedro-org/kedro

    Run Kedro's local lint / format / type-check / tests on changed files (uses the project's pre-commit hooks, ruff, mypy, pytest, lint-imports, detect-secrets, Make targets — in the right venv), or…

    11k GitHub stars~4k tokensUpdated today
    DevelopmentAuto-check passed

More from earthtojake/text-to-cad

All 12 skills in this repo
  • DfAM Printability Check

    earthtojake/text-to-cad

    Measures STL, OBJ, PLY or 3MF mesh files against additive manufacturing design limits and reports printability findings for each print process.

    19k GitHub starsUsed in 2 repos~1.5k tokens
    Auto-check passed
  • Step Parts

    earthtojake/text-to-cad

    Find, evaluate, and download common purchasable CAD parts from step.parts, including named off-the-shelf actuators, servos, motors, electronics boards, connectors, screws, bolts, nuts, washers…

    19k GitHub starsUsed in 1 repo~1.5k tokens
    Auto-check passed
  • Design for Manufacturing Review

    earthtojake/text-to-cad

    Guided DFM review of a part for sheet metal, CNC machining or injection molding, covering bends, tool access, draft and undercuts, with evidence-first measurement rules.

    19k GitHub stars~1.4k tokensUpdated today
    Auto-check passed
  • DXF Drawing Generation

    earthtojake/text-to-cad

    Generates, regenerates and validates 2D DXF drawings from Python build123d sources for profiles, gaskets, panels and cut layouts, and reviews them in CAD Viewer.

    19k GitHub starsUsed in 1 repo~4.3k tokens
    Auto-check passed
  • OrcaSlicer G-code Slicing

    earthtojake/text-to-cad

    Slices STL, 3MF or OBJ models into printer-ready G-code with OrcaSlicer, either headless from the command line or by opening the model in the app.

    19k GitHub stars~989 tokensUpdated today
    Auto-check passed
  • SDFormat Model and World Authoring

    earthtojake/text-to-cad

    Authors, validates and reviews SDFormat XML for simulator models and worlds, with explicit frames, SI units and a design ledger.

    19k GitHub stars~2.6k tokensUpdated today
    Auto-check passed

Works with

Categories

Questions about URDF Robot Description Authoring

What does URDF Robot Description Authoring do?

Guides writing, editing and validating URDF robot description files, with a design ledger, exact frame semantics and computed inertials checked by a validator. The skill treats URDF as constrained kinematic modeling rather than plain XML writing, since the main risks are frame placement, joint-axis meaning, units, mesh scale and inertial data.urdf` file stays the source of truth and is edited directly, with no Python generation pipeline, and a ledger of frames, joints, geometry, units and assumptions is embedded as a comment block at the top before any change.

When should I use URDF Robot Description Authoring?

URDF Robot Description Authoring fits situations like: creating or editing a robot's .urdf file; validating a URDF and fixing reported errors; debugging wrong joint axes, frames or mesh scale in a robot model; computing inertials for links from their geometry.

How do I install URDF Robot Description Authoring in Claude Code?

Run `npx skills add earthtojake/text-to-cad --skill urdf -a claude-code`. Or copy the skill folder (skills/urdf in earthtojake/text-to-cad) into .claude/skills/urdf in your project. Claude Code loads it when a task matches its description.

How do I install URDF Robot Description Authoring in Codex?

Run `npx skills add earthtojake/text-to-cad --skill urdf -a codex`. Or copy the skill folder (skills/urdf in earthtojake/text-to-cad) into .agents/skills/urdf in your project. Codex loads it when a task matches its description.

Can I use URDF Robot Description Authoring 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 earthtojake/text-to-cad --skill urdf -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/urdf, .gemini/skills/urdf, .github/skills/urdf and .opencode/skills/urdf in your project.

What does URDF Robot Description Authoring need to run?

Going by SKILL.md and its folder, URDF Robot Description Authoring needs the command-line tools its instructions call (uvx and git). Our summary lists: uv to run `cadgen`; Network access on first run to download cadgen.

Does URDF Robot Description Authoring access the network?

SKILL.md names 1 domain. As links in the text: docs.astral.sh. This is read from the text; nothing was executed.

Is URDF Robot Description Authoring 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 URDF Robot Description Authoring use?

URDF Robot Description Authoring is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does URDF Robot Description Authoring use?

About 2.3k tokens (SKILL.md is roughly 9.3k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 9.4k tokens, read only when the agent opens those files.

What are the alternatives to URDF Robot Description Authoring?

Skills that share tags, products or a category with URDF Robot Description Authoring: Code Review Checklist (shareAI-lab/learn-claude-code, 78k stars), Minimizing Ty Ecosystem Changes (astral-sh/ruff, 50k stars), Merge Dependabot PRs (onyx-dot-app/onyx, 32k stars) and Summarise Ecosystem Results (astral-sh/ruff, 50k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains URDF Robot Description Authoring?

earthtojake (a GitHub user) maintains it in earthtojake/text-to-cad, which has 18,560 GitHub stars. The repository holds 12 skills in this directory. The repository was last updated on October 9, 2026.

Source: earthtojake/text-to-cad on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.