Atlas / Skills / earthtojake / Cad

CadSAFE

skills/earthtojake/cad

Give your agent CAD superpowers.

Verdict
SAFE
Grade
B
Trust score
89 /100
Version
—
Hosts
—
License
MIT
Stars
22,149
01

Overview

Give your agent CAD superpowers.

Read from source at commit a4e76f7a9aeeOBSERVED · 2026-10-21
Advertisement
02

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: cad
description: Create/edit parametric CAD models, organize CAD projects, export STEP/STL/3MF/GLB files, resolve prompt references, and measure geometry with cadgen. Open and visually review existing STEP/STP, STL, 3MF and GLB files in CAD Viewer.
license: MIT
---

# CAD modeling and inspection

Provenance: maintained in [earthtojake/text-to-cad](https://github.com/earthtojake/text-to-cad).
Use the installed local skill files for the current interface.

## Start with the task

Read only the references needed for the request.

| Task | First action | Reference |
| --- | --- | --- |
| **Create or edit a part or assembly** | Find the existing Python model, or create a decorated model below; edit source and run `python <model>.py`. | [Model contract](references/step-generation.md), [shape construction](references/build123d-modeling.md); [positioning](references/positioning.md) for assemblies |
| **Organize a CAD project** | Follow its existing layout; for a new multi-model project use `src/`, format output folders, and a model catalog. | [Project layout](references/project-layout.md), [minimal starters](references/project-template.md) |
| **Export STL, 3MF or GLB** | Add a mesh decorator for a maintained output, or run the format's `build INPUT.step OUT` command for a one-off export. | [Mesh exports](references/supported-exports.md) |
| **Resolve a reference from a prompt** | Identify its saved STEP/STP document, open it with `read_scene`, and call `scene.resolve(ref)` as shown below. | [Reference syntax and inspection](references/inspection-and-validation.md#reference-syntax) |
| **Measure or check geometry** | Write a Python check using native build123d geometry and, where useful, `cadgen.geometry`. | [Inspection and validation](references/inspection-and-validation.md) |
| **Model from an image or drawing** | Extract the specified dimensions and record meaningful assumptions. | [Interpreting the request](references/cad-brief.md) |
| **Open an existing STEP/STP, STL, 3MF or GLB** | Show it to the user. | [Show the model](#show-the-model) |
| **Review appearance or motion** | Snapshot the saved document; use declared kinematics or animation for poses and clips. | [Snapshots](references/snapshot-review.md), [kinematics](references/kinematics.md) |
| **Diagnose a failure** | Read the error and check the relevant model, geometry or command contract. | [Repair loop](references/repair-loop.md), [version migration](references/migrations.md) |
| **A message says to migrate** | Do the migration now; an unmigrated model silently loses kinematics, materials and animation. | [Version migration](references/migrations.md) |

For 2D DXF drawings use `$dxf`; this skill owns any 3D part the drawing projects.
Use the corresponding robot-description skill for URDF, SRDF or SDF.

## Setup and paths

Run cadgen through [uv](https://docs.astral.sh/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.26 cadgen`
- `python` below means `uvx --no-config --managed-python --python 3.13 --from cadgen==0.7.26 python`

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

`cadgen doctor <skill-dir>` reports the installation in use and checks that it is
the one this skill pins, and that the CAD kernel loads; use it for installation or
kernel load errors. Use the relevant
subcommand's `--help` for additional flags.

Run project commands from the CAD project root. CLI input/output paths and
`read_scene`/`read_step` paths are working-directory-relative; decorator `out=`
paths are **relative to the model script**. Anchor file inputs on `__file__`
when the model must run from any directory.

## Create or edit a model

A model is a plain Python script with a parameterless decorated function
returning a build123d shape. Use one model per entrypoint, with the script and
its declared outputs sharing a filename stem. For example, `src/bracket.py`:

```python
from cadgen import build123d as bd
from cadgen import step

WIDTH = 40.0


@step(out="../STEP/bracket.step")
def bracket():
    body = bd.Box(WIDTH, 20, 6)
    body.label = "bracket"
    return body


if __name__ == "__main__":
    bracket()
```

```bash
python src/bracket.py
```

- Edit the model source when it exists, then run it to regenerate its outputs.
  Document export and snapshot commands take saved files and never run source.
- Keep meaningful dimensions explicit. Use millimeters and XY/+Z unless the
  task or project specifies another convention; choose a useful functional datum.
  Prefer closed, positive-volume solids for physical parts, while honoring
  requests for surfaces or construction geometry.
- Put parameterized geometry in ordinary factory functions; a decorated model
  selects a configuration. Keep module bodies cheap: create geometry and read
  CAD inputs inside the model or its helpers. Use the lazy `bd` import above;
  use postponed annotations when annotations mention `bd` types.
- Call child models inside the assembly model. Place their results with
  `.moved()` or `Location * shape` to preserve shared geometry. Use meaningful
  occurrence labels and source-defined placements. Rerun the parent assembly
  to incorporate a changed child.
- Read vendor STEP inputs with `cadgen.read_step`. Every file a build opens is
  an input on its own, whatever reads it (`json.load`, `np.load`,
  `bd.import_step`, a project font): nothing is declared. Never read a model's own
  output as its input. Geometry must not depend on untracked
  time, random values, environment variables or the working directory.
- When named purchasable parts are needed, search `$step-parts` before making
  placeholders. Record an unsuccessful search and any placeholder assumptions.

For unfamiliar dimensions or interfaces, record the assumptions needed to model
and verify them. 
03

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.

LayerWhat it checksResult
L0Provenance & inventoryPASS
L1Static analysis of the codeNA
L2Instruction surface (what it tells the agent)PASS
L3Class-specific surfacePASS
L4Behavioural (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.

Audited 2026-10-21 · audit v0.4.1 · source sha a4e76f7a9aeefull audit observations/trust-audit/skill/earthtojake__cad.json · Report an issue / request a re-scan
04

Audit history

Every audit this skill has had.

DateSourceVerdictGradeScoreChange
2026-10-21a4e76f7a9aeeSAFEB89first audit
05

Questions

What does the cad — earthtojake/text-to-cad skill do?

Give your agent CAD superpowers.

Is cad — 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 cad — earthtojake/text-to-cad access on my machine?

The audit observed no filesystem, network or shell use at all in its source.

How current is this page?

The grade is for one exact copy of the source (a4e76f7a9aee), read on 2026-10-21. 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.

ModelsAtlas audit badge

Markdown
[![ModelsAtlas audit: Cad](https://modelsatlas.com/skills/earthtojake/cad/badge.svg)](https://modelsatlas.com/skills/earthtojake/cad/)

Not your listing, or something out of date? Claim or update your listing.

Advertisement