srdf
MoveIt2 SRDF authoring, validation, and planning-semantics workflow.
Skill by earthtojake
Chalk Labs
Need help deploying srdf?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/earthtojake-srdf
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: writing, productivity, code-generation
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/srdf
What's inside
- Skill name
srdf- Description
- MoveIt2 SRDF authoring, validation, and planning-semantics workflow. Use when creating, editing, inspecting, or validating `.srdf` files, MoveIt planning groups, virtual joints, passive joints, end effectors, group states, disabled collisions, URDF-paired planning semantics, or SRDF handoff for live review. Use the URDF skill for robot structure and the SDF skill for simulator descriptions. Open and visually review existing SRDF files in CAD Viewer.
- License
- MIT
- Instructions
- 146 lines in SKILL.md · view on GitHub
Files (9)
- LICENSE
- SKILL.md
- openai.yaml · agents/
- authoring-contract.md · references/
- disabled-collisions.md · references/
- end-effectors.md · references/
- planning-ledger.md · references/
- srdf-workflow.md · references/
- validation.md · references/
SKILL.md (first lines)
# SRDF
Provenance: maintained in [earthtojake/text-to-cad](https://github.com/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 MoveIt semantic robot descriptions on top of an existing valid URDF. SRDF defines planning semantics; it does not define physical robot structure. The `.srdf` file is the source of truth: author and edit the XML directly.
SRDF correctness is a **planning semantics** problem. The common failure is not invalid XML; it is a plausible SRDF that gives MoveIt the wrong planning group, wrong tool link, wrong default state, unsafe disabled-collision matrix, or wrong joint units. Because language models are weak at spatial and kinematic reasoning, derive planning groups, end effectors, group states, and disabled collisions from the URDF topology, MoveIt Setup Assistant output, sampled collision analysis, or explicit user data. Do not infer them from visual theme alone — and do not type any link or joint name from memory: extract the URDF's link/joint table first and copy names from it.
## Setup
Run cadgen through the `cadgen` command its installation writes, so this skill's commands
share one installation, and its engine server, with the CAD app's:
- `cadgen` below means `cadgen +0.8.4` (`~/.local/bin/cadgen +0.8.4` where `~/.local/bin` is not on your PATH)
- `python` below means `cadgen +0.8.4 run`
For first-time setup or an update, a missing `cadgen` command, a release it says is not
installed, an engine that is not running, or an installation or kernel load error, read
[Setup and troubleshooting](references/setup.md).
## Format boundary
- **URDF** owns physical robot structure: links, joints, geometry, inertials, limits, mimic joints, transmissions, and robot-state publishing.
- **SRDF** owns MoveIt semantics: virtual joints, passive joints, planning groups, group states, end effectors, and disabled collision pairs.
- **SDF** owns simulator/world semantics: physics, sensors, lights, plugins, worlds, and simulation-specific metadata.
Do not place geometry, inertials, joint origins, link poses, mesh references, physical joint limits, transmissions, or `ros2_control` interfaces in SRDF.
## Show the model
Show the user each model you create or change, and any model or file they ask to see.
A file you export is a download: give its path, do not open it.
Snapshots and validation don't replace this. Never screenshot the viewer to confirm your
own work; review with `cadgen snapshot`.
- If your tools include `cad_show` (your host may prefix it), call it with the model's id
or the file's absolute path, and follow its description for when to call it again.
The other tools depend on the host. A host that draws CAD cards or tabs (Claude
Desktop, the Codex app) also has `cad_view`, which reads what the user selected, and
`cad_screenshot`, which shows you what they see, both of a card or tab that is open, for
when they ask about it. A text host (Claude Code in a terminal, `codex exec`) draws
nothing: its `cad_show` opens the model's page in the user's browser and answers with
the URL to give them, and it has no view to read. `cad_inspect`, `cad_snapshot` and
`cad_export` are on every host. Call only the tools you have, and never say a card
shows a model when your host drew none.
- Otherwise give the user the page's link once: a model's page is the `view:` line its
run prints. For a file, run the CAD Viewer, from any folder:
```bash
cadgen viewer --json FILE [FILE ...]
```
The command ensures this installation's engine, registers each file and prints
its page, `/<id>`, then exits. Read each file's `url` from `documents` in its one
JSON line (never guess the port); the URL carries its token query. A page follows
every later run of its model and every rewrite of its file, so share it once.
Return that link to the user. If it fails to launch, say so.
An `.srdf` you write is the robot's model, not an export: show it. Keep the SRDF
beside its uniquely matching URDF (same robot name). Review
planning groups, named states and joints; visual review does not prove planning
correctness.
## Required workflow
1. **Start from a valid URDF.** Author or fix the URDF first with `$urdf` and validate it. The SRDF pairs with that URDF by colocation and robot name, and every name in the SRDF must exist in it.
2. **Extract the URDF table.** Before writing any SRDF XML, list the URDF's robot name, links, joints (with type, parent, child, limits, mimic flags). Copy names from this table only; never type them from memory. See `references/srdf-workflow.md`.
3. **Identify the planning task.** Record whether the goal is arm IK, gripper control, mobile base planning, dual-arm planning, tool use, or local smoke testing.
4. **Create or update the planning ledger.** Use `references/planning-ledger.md` before writing XML; keep a compact copy as a comment block in the `.srdf`.
5. **Pair with the URDF by colocation.** Save the `.srdf` in the same folder as its `.urdf`, with the same `<robot name>` — that is the only linking mechanism. The validator and the viewer both resolve the pairing by scanning the folder for the URDF whose robot name matches; exactly one URDF per robot name per folder. No metadata element links the files. See `references/authoring-contract.md`.
6. **Define virtual and passive joints deliberately.** Use them when needed by the robot model.
7. **Define planning groups from URDF topology.** Prefer chain groups for serial manipulators when base/tip form a real parent-to-child path in the URDF tree (the validator verifies this). Use joint/link/subgroup definitions only when they are deliberate.
8. **Define end effectors after group membership is known.** Avoid overlap between an end-effector group and its parent group. Record the actual target/TCP link.
9. **Define group states in URDF-native units.** Revolute and continuous values are radians; prismatic values are meters. Do not store degrees in SRDF. Values must lie within URDF limits and must not set fixed or mimic joints.
10. **Generate disabled collisions from evidence.** Use adjacency derived from the URDF joint table, MoveIt Setup Assistant sampling, or explicit user-provided collision matrices. Do not invent broad disable lists. See `references/disabled-collisions.md`.
11. **Validate every created or modified `.srdf`** with `cadgen srdf validate`; it cross-validates all names, chains, states, and pairs against the paired URDF. Fix findings and re-validate until clean.
12. **Run MoveIt smoke tests when available.** Use MoveIt Setup Assistant or a project MoveIt launch directly.
13. **Report assumptions and skipped checks.** Include incomplete validation, missing MoveIt environment, manually reasoned collision disables, and inferred target links.
## 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; a snapshot draws with the CAD kernel. Use `cadgen <verb> --help` for the complete current interface.
The validator shape is:
```bash
cadgen srdf validate path/to/robot.srdf
cadgen srdf validate path/to/robot.srdf --strict
cadgen srdf validate path/to/robot.srdf --json
```
The validator parses the SRDF, resolves the paired URDF (the same-folder `.urdf` whose robot name matches; none, several, or an invalid one is an error), and cross-validates: group/joint/link/subgroup name existence, chain path resolvability, subgroup cycles, virtual/passive joints, end-effector topology, group-state membership/limits/completeness, disabled-collision pairs (including Adjacent-reason truthfulness), and misspelled elements. Each phase collects all its findings in one pass (severity, code, XML path), but a structural error stops the cross-file phase — re-run after every fix. One run validates ONE file: `--strict` treats warnings as failures and `--json` prints one line of `{"ok", "path", "issues": [{"severity", "code", "message", "element", "hint"}], "summary"}`, where `element` is the XML path. It exits nonzero if the target fails. Relative targets resolve from the current working directory.
## Hard rules
- The SRDF lives in the same folder as its URDF and shares its `<robot name>`; that colocation-plus-name match is the only pairing mechanism, and exactly one URDF per robot name may exist in the folder.
- Every link, joint, group, and subgroup name must come from the URDF table or a group defined in the same file.
- Group states use URDF-native units: radians for revolute/continuous, meters for prismatic.
- Disabled collision pairs require truthful reasons and provenance.
- End-effector groups should not share links with their parent planning group.
- Visual rendering review is useful but cannot prove planning correctness.
## Snapshot Tool
`cadgen snapshot` draws the robot to a PNG still, as the CAD Viewer shows it,
rendered by OCCT:
```bash
cadgen snapshot path/to/robot.srdf review.png
cadgen snapshot path/to/robot.srdf review.png --pose arm/ready
cadgen snapshot path/to/robot.srdf review.png --pose '{"shoulder_pitch": 30}'
```
Hand it the `.srdf`: it draws the paired URDF's geometry, the same-folder `.urdf`
whose `<robot name>` matches, exactly as `cadgen srdf validate` pairs them. No match,
or more than one, is refused before anything renders, naming the robot name it
looked for and the `.urdf` files it found.From earthtojake/text-to-cad, MIT.
More from earthtojake/text-to-cad
- 0.871score
dfam-check
earthtojake
Measure mesh files against Design for Additive Manufacturing (DfAM) rules and report printability findings per process (FDM, SLS, SLA/DLP, metal PBF, MJF).
SkillAFreshness: A★ 22.9KClaude Code +9 - 0.871score
gcode
earthtojake
Slice 3D models into printer-ready G-code with OrcaSlicer, the open-source slicer with built-in profiles for most FDM printers (Prusa, Bambu Lab, Creality…
SkillAFreshness: A★ 22.9KClaude Code +9 - 0.871score
urdf
earthtojake
URDF robot description authoring and validation.
SkillAFreshness: A★ 22.9KClaude Code +9 - 0.871score
sendcutsend
earthtojake
Review DXF and STEP/STP uploads for SendCutSend.com orders using its ordering guide, catalog, and specs.
SkillAFreshness: A★ 22.9KClaude Code +9 - 0.871score
sdf
earthtojake
SDFormat/SDF model and world authoring, validation, and simulator handoff.
SkillAFreshness: A★ 22.9KClaude Code +9 - 0.871score
engineering-drawing
earthtojake
Make an engineering drawing of a part as a PDF - orthographic views with hidden lines and centre marks, real dimensions, hole callouts, notes and a title…
SkillAFreshness: A★ 22.9KClaude Code +9 - 0.871score
dxf
earthtojake
Generate, regenerate, and validate 2D DXF drawings from Python build123d sources.
SkillAFreshness: A★ 22.9KClaude Code +9 - 0.871score
dfm
earthtojake
Design-for-manufacturing review of a part for sheet metal, CNC machining, or injection molding - bends, reliefs and flat patterns; machining access, internal…
SkillAFreshness: A★ 22.9KClaude Code +9 - 0.868score
cad
earthtojake
Create/edit parametric CAD models, organize CAD projects, export STEP/STL/3MF/GLB files, resolve prompt references, and measure geometry with cadgen.
SkillAFreshness: A★ 22.9KClaude Code +9 - 0.861score
bambu-labs
earthtojake
Send prints to Bambu Lab printers through Bambu Connect, Bambu Lab's official app for printing from other software, or Bambu Studio.
SkillAFreshness: A★ 22.9KClaude Code +9 - 0.733score
step-parts
earthtojake
Find, evaluate, and download common purchasable CAD parts from step.parts, including named off-the-shelf actuators, servos, motors, electronics boards…
SkillAFreshness: A★ 22.9KClaude Code +9 - 0.695score
AGENTS.md · earthtojake/text-to-cad
earthtojake
AGENTS.md from earthtojake/text-to-cad: 300 lines covering Branch First, Release Workflow, Repo Map, Repo Rules and more.
TemplateAFreshness: A★ 22.9KCodex +5
Signals
- Stars
- 22,902
- Forks
- 2,229
- Open issues
- 4
- Last commit (this folder)
- Oct 20, 2026 (10 days ago)
- Last release
- Oct 20, 2026 (10 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/earthtojake/text-to-cad
- Website
- www.texttocad.dev
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from earthtojake
- 0.871score
dfam-check
earthtojake
Measure mesh files against Design for Additive Manufacturing (DfAM) rules and report printability findings per process (FDM, SLS, SLA/DLP, metal PBF, MJF).
SkillAFreshness: A★ 22.9KClaude Code +9 - 0.871score
gcode
earthtojake
Slice 3D models into printer-ready G-code with OrcaSlicer, the open-source slicer with built-in profiles for most FDM printers (Prusa, Bambu Lab, Creality…
SkillAFreshness: A★ 22.9KClaude Code +9 - 0.871score
urdf
earthtojake
URDF robot description authoring and validation.
SkillAFreshness: A★ 22.9KClaude Code +9 - 0.871score
sendcutsend
earthtojake
Review DXF and STEP/STP uploads for SendCutSend.com orders using its ordering guide, catalog, and specs.
SkillAFreshness: A★ 22.9KClaude Code +9 - 0.871score
sdf
earthtojake
SDFormat/SDF model and world authoring, validation, and simulator handoff.
SkillAFreshness: A★ 22.9KClaude Code +9 - 0.871score
engineering-drawing
earthtojake
Make an engineering drawing of a part as a PDF - orthographic views with hidden lines and centre marks, real dimensions, hole callouts, notes and a title…
SkillAFreshness: A★ 22.9KClaude Code +9
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get srdf running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
srdf skill. Agent Mart. https://agentmart.dev/skills/earthtojake-srdf (last updated 2026-10-24)