SrdfSAFE
Design physical products with AI
Overview
Design physical products with AI
85af4acd2caeOBSERVED · 2026-10-28Install
Commands as the repository documents them. They are shown, not run.
uvx --no-config --managed-python --python 3.13 --from cadgen==0.8.1 cadgen doctor
Host compatibility
What the documentation claims. We have not run a compatibility test.
| Host | Status | Notes |
|---|---|---|
| claude-code | mentioned | |
| codex | mentioned |
What it tells the agent
The instruction file, verbatim from the audited commit — this is the text the model reads, and the surface the audit's instruction layer examines. Quoted here so you can judge it without cloning anything.
--- 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 --- # 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.1` (`~/.local/bin/cadgen +0.8.1` where `~/.local/bin` is not on your PATH) - `python` below means `cadgen +0.8.1 run` If `cadgen` is not on your PATH, or it says 0.8.1 is not installed, run `uvx --no-config --managed-python --python 3.13 --from cadgen==0.8.1 cadgen doctor` once, outside any sandbox or with its permission: it installs cadgen, registers it, writes the `cadgen` command and starts the engine. With the CAD app's server running, nothing else needs the sandbox's permission: it starts the engine and holds it. Without it, a sandboxed shell cannot start the engine; when a command says no engine is running, run `cadgen server` outside the sandbox once. ## 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
Trust audit
SAFEgrade B · trust 89/100 Nothing in the source contradicts what it says it does. Grade A is reserved for packages that have also passed the behavioural sandbox.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | NA |
| L2 | Instruction surface (what it tells the agent) | PASS |
| L3 | Class-specific surface | PASS |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- none-observed
- Network
- none-observed
- Shell
- none-observed
- Dependencies
- pinned
- Secrets in source
- none-found
Findings (0)
No findings outside the package's declared scope.
Gates applied: no_behavioural_pass.
85af4acd2caefull audit observations/trust-audit/skill/earthtojake__srdf.json · Report an issue / request a re-scanAudit history
Every audit this skill has had.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-28 | 85af4acd2cae | SAFE | B | 89 | first audit |
Questions
What does the srdf — earthtojake/text-to-cad skill do?
Design physical products with AI
Is srdf — earthtojake/text-to-cad safe to install?
The audit found nothing in the source that contradicts what it says it does, and graded it B (89/100). Grade A is held back for packages that have also passed a sandboxed behavioural run, which is why a clean skill reads B.
What can srdf — earthtojake/text-to-cad access on my machine?
The audit observed no filesystem, network or shell use at all in its source.
Which assistants does srdf — earthtojake/text-to-cad work with?
Its documentation mentions claude-code and codex. That is what the text claims, not a compatibility test we ran.
How current is this page?
The grade is for one exact copy of the source (85af4acd2cae), read on 2026-10-28. The repository is watched, and a new audit runs when it changes — this is the first audit.
Add this badge to your README
Shows this page's audit result and links back to it. It updates when the audit does.
[](https://modelsatlas.com/skills/earthtojake/srdf/)
Not your listing, or something out of date? Claim or update your listing.