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 pzfreo/build123d-mcp --skill b123d-repairgit clone --depth 1 https://github.com/pzfreo/build123d-mcpWrote 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/pzfreo/build123d-mcp/b123d-repair)<a href="https://agentmods.dev/skills/pzfreo/build123d-mcp/b123d-repair"><img src="https://agentmods.dev/badge/skills/pzfreo/build123d-mcp/b123d-repair/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/pzfreo/build123d-mcp/b123d-repair"><img src="https://agentmods.dev/badge/skills/pzfreo/build123d-mcp/b123d-repair.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.00000 | $0.06692 |
| Opus 5 | $0.00000 | $0.03346 |
| Sonnet 5 | $0.00000 | $0.01338 |
| Haiku 4.5 | $0.00000 | $0.00669 |
Grade A, and why
b123d-repair 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 12d ago.
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 — 520 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Repair Invalid Geometry with build123d (b123d-repair)
Use this skill when validate() or the export() gate reports FAIL on a shape —
an imported STEP that arrives broken, or a solid your own construction damaged —
and the goal is a watertight, manifold, BRepCheck-valid solid that passes the
export gate without changing the geometry beyond the defect itself.
Every recipe here was proven on a real defective part; each entry says when it
applies, when it fails, and what to try next. Work the ladder in order — the
cheap fixes first — and verify every attempt with the export gate, not
validate() alone (Step 2 explains why).
This skill is deliberately an agent-authored repair workflow, not an automatic healer. The MCP server should help you write better build123d/OCP code by answering:
validate()/export()— is the current or written shape structurally acceptable?locate_gate_defects()— where is the failing face, edge, or mesh defect?find_bored_bosses()— when a failed edit involved extending a bored boss, which bore/cap candidates exist, and whether the cap is split across several faces?repair_advice()— which field-proven, generic repair/edit recipe fits this defect and requested goal, with acceptance checks and stop conditions?- this repair skill — which generic repair pattern fits that defect class?
The geometry-changing repair itself should be explicit code in execute(),
with named variables, printed measurements, save_snapshot() / rollback
points, and a visible volume/bbox/gate audit. Do not delegate the repair to an
opaque MCP tool that silently manipulates the B-rep and returns a shape; that
prevents the agent from reasoning about design intent and makes benchmark
success hard to distinguish from accidental geometry surgery.
Step 0 — Diagnose before cutting
Do not apply repairs blind. First identify the defect class and its location.
- Read the gate output precisely. The FAIL reason names the class, and the
class picks the recipe:
B-rep is not well-formed (BRepCheck failed)→ a malformed face (usually unorientable, zero-area, or reversed) — Step 1, rungs 1-4.N open edge(s) — not watertight→ unsewn/missing faces — rungs 4-5.N non-manifold edge(s)→ an edge shared by 3+ faces — usually a coincident-face construction defect; prefer re-construction (Step 4) over surgery.mesh open edge(s)/mesh non-manifold/face(s) failed to tessellatewithbrep_valid: true→ a mesh-only defect (a ~zero-area unmeshable face, or a self-touch) — rung 5.face(s) failed to tessellate at a finer mesh deflectionwithbrep_valid: true→ a tolerance-sensitive mesh-only defect: the face meshes at the default gate deflection but fails when a downstream consumer asks for a finer mesh — rung 5, using the re-patch/re-sew variant.vertex(es) where a tessellated edge endpoint misses its BREP vertexwithbrep_valid: true→ a mesh-only defect too, but a different one from the two above: a previously-patched/healed face's boundary is topologically closed (so BRepCheck and evenmesh open edge(s)can both read clean) but geometrically off-vertex by a fraction of a millimetre — rung 5, using its re-patch-at-tighter-tolerance variant, not the drop-and-sew one.
- Get coordinates.
locate_gate_defects()returns the failing edge/face's 3D position and B-rep identity — repair that exact spot, never chase the defect blind. Read its top-leveldiagnosisblock too:primary_kind,diagnostic_classes, andrepair_familiestell you which rung to try first, while each defect'snext_stepsays what explicitexecute()repair to write and reminds you to verify the written STEP withexport(). If the defect belongs to a known hard pattern, callrepair_advice()with the gate output aserror_text, the requested edit asgoal, and the defect coordinates ascontext. Use the returned recipe as a checklist for your ownexecute()code; do not treat it as a geometry-mutating tool. - Localize the face when BRepCheck is the failure — build ONE analyzer
over the whole solid, not one per face (
locate_gate_defects()itself runs out-of-process specifically because per-face BRepCheck work "can run for minutes on a complex part"; reconstructing an analyzer per face insideexecute()on a large import risks the same timeout):
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.
- 12d ago First seen · 520 lines · 0 tokens per session scan A 5db6c5254af8
b123d-repair is a skill published in the GitHub repository pzfreo/build123d-mcp (85 stars, last pushed 8d ago), licensed Apache-2.0. It costs nothing until one of its globs matches a file; then it loads 6,692 tokens. 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
exasol-import-export
Exasol IMPORT and EXPORT SQL statements: syntax, file formats (CSV, FBV, Parquet), cloud storage (S3, Azure, GCS), connection objects, error handling, and ETL staging patterns.
aieng-closed-loop-copilot
MCP-first closed-loop CAD/CAE copilot skill for improving an existing solved design against explicit targets. Use when the user asks for bounded design iteration using editable CAD parameters, solver reruns, and evidence-backed comparison.
hmem-release
Pre-publish checklist for hmem: skills synced, version bumped, tests green, nothing forgotten. Use before npm publish or when the user says 'release', 'publish', 'push a release', or 'neue Version'.
gemini-visualize
Generates interactive HTML visualizations (concept maps, evidence networks, knowledge graphs) from Gemini analysis results. Triggers automatically after /gr:video, /gr:research, /gr:analyze.
mlflow-traces
Use when working with MLflow traces: debugging via MCP tools, analyzing performance, logging feedback, writing custom scorers/evaluations, or cleaning up trace data.
video-explainer
Teaches Claude how to use the 15 video explainer tools to create explainer videos from research content. Activates when working with video synthesis, explainer creation, or the video-explainer MCP server.