Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add w1ne/kernelCAD-web --skill kernelcad-assembliesgit clone --depth 1 https://github.com/w1ne/kernelCAD-webWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/w1ne/kernelcad-web/kernelcad-assemblies)<a href="https://agentmods.dev/skills/w1ne/kernelcad-web/kernelcad-assemblies"><img src="https://agentmods.dev/badge/skills/w1ne/kernelcad-web/kernelcad-assemblies/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/w1ne/kernelcad-web/kernelcad-assemblies"><img src="https://agentmods.dev/badge/skills/w1ne/kernelcad-web/kernelcad-assemblies.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00050 | $0.17383 |
| Opus 5.5 | $0.00020 | $0.06953 |
| Sonnet 5.5 | $0.00010 | $0.03477 |
| Haiku 4.5 | $0.00005 | $0.01738 |
Grade A, and why
kernelcad-assemblies scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured today.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 874 lines — stays where its author put it; the contents beside it link to each section on GitHub.
kernelCAD — assemblies
Use assembly() when the model needs named mechanical parts, connector frames, and joint metadata that a human or agent can inspect later. Call .model() after adding parts to return a Scene with per-part bodies; iterate .parts for per-part rendering / export, call .toCompound() to group bodies without booleaning (keeps color, name, and identity; default for STEP), or .toUnion() for one fused solid (lossy on color/name — antipattern except when downstream truly needs a single Shape). Connector and joint records remain metadata for now; .model() does not solve motion (use .solvedModel(poses) for that). Use MCP inspect({ of: 'assemblies', file? code? }) to inspect the captured assembly intent without recomputing topology.
Assembly validity
kernelcad validate <file.kcad.ts> runs the assembly validator over the script's Scene. Three checks today:
assembly.part.floating/mechanism.orphan-part— disconnected body/component (no mate/joint into the graph). Fix: connectors + mates — shafts/hinges/gears usetype: 'axis'+arm.mate(..., 'revolute'); rigid mounts usetype: 'frame'+mate(..., 'fastened'); orarm.fixed/.revolute/.prismatic/.ball. Connector types are onlyframe|axis|planar|ball. Only a mechanism (any mate, joint, transmission or.solvedModel()) must be fully linked: a plain multi-part assembly with no mates (enclosure base + lid, print layout) is valid as-is. Don't invent mates for a deliberately free part next to a mechanism — passskipMechanismCheck: truetoevaluate_script.assembly.part.orphan— a part is in a sub-assembly disconnected from the main mechanism (same connector/mate fix as floating).assembly.mate.connector-not-found/assembly.pose-envelope.connector-unresolved— mate ref did not resolve. DeclarepartRef.connector(...)on each part beforearm.mate(...), use'partName.connectorName'refs, and prefer numeric{ kind: 'vec3', value: [x,y,z] }origins (topology origins often stay unresolved).assembly.interference.overlap/mechanism.interpenetrationafter an edit — often stale duplicate/orphaned overlapping bodies from an in-place workaround. Keep only the intended connected mechanism graph; delete leftover copies before tweaking geometry.assembly.interference.overlap— two parts share volume (promoted fromkernelcad interference).assembly.structure.unstructured-bodies(info) — a multi-body model returns loose top-level bodies with noassembly().part(...)structure, so the parts carry no identity forinspect --focus,inspect({ of: 'part-stats' }), or per-part review. The fix: wrap each distinct body in a namedassembly().part(name, shape).
What ships with it
2 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- today Changed · +25 lines 991edc5f2b5d
- yesterday Changed · -2 lines 970e9ce6b703
- 5d ago Changed · +23 lines af7fb41d831d
- 10d ago Changed · +13 lines c9c720abcc22
- 13d ago Changed · +27 lines 613ac69f668c
- 16d ago Changed 08eae3ebb234
- 24d ago Changed 8b70a58560e0
- 26d ago Changed e12a4f9b75c8
- 1mo ago Changed · +2 lines 5cb123f881d1
- 1mo ago First seen · 786 lines · 50 tokens per session scan A 954be873597c
kernelcad-assemblies is a skill published in the GitHub repository w1ne/kernelCAD-web (33 stars, last pushed today), licensed MIT. It adds 50 tokens to every session and 17,383 once invoked, about $0.0002 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
opengis-skills
Use when AI coding assistant needs GIS/CAD/C#/AI/IoT/3D domain expertise. Index of 96 skills across 8 categories: gis (32), cad (21), csharp (9), ai (14), iot (2), 3d (6), demos (4), others (8). Tag-based search and on-demand loading for GDAL, GeoServer, MapServer, Leaflet, PROJ, PostGIS, JTS, CesiumJS, FreeCAD…
cad-skills
Use when doing parametric 3D modeling, 2D drafting, geometric kernel development, BIM/IFC processing, PCB design, or AutoCAD .NET development. Index of 21 skills: FreeCAD, OpenSCAD, OCCT, CadQuery, Blender, KiCad, SolveSpace, QCAD, xBIM, Clipper2, TongWen and more.
cadquery-modeling
Generate CAD models with CadQuery using an adaptive CAD Compiler workflow: plan-mode skill constraint handoff, focused iteration scopes, fail-first challenge review, compact review packets, real-product reference fidelity, visual/functional audits, source-first repair, and STEP/STL export. Use for CadQuery, CQ, 建模…
solidworks-mcp
Build, edit, inspect and export native SolidWorks models through solidworks-mcp. Use for CAD modeling, raster-to-sketch work and SolidWorks COM/MCP diagnostics. Read before calling a SolidWorks MCP tool.
urdf
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…
step-parts
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, bearings, standoffs, and other catalog components. Use when Codex needs to search the hosted step.parts catalog before…