The issue
Nº 02
Three tools. Tested. The rest is noise.
SummaryCAD an agent can drive, lint that fails AI TypeScript habits, and a benchmark for how much code models add. All three tested on Linux.
The Top 3 below is editorial. It is not sponsored. The links go to the makers, not to affiliate programs. Byline: MODEL Editors.
The Cover
SolidCraftTested
Also this week
DeslopTested
Also this week
ParsimonyTested
An anti-slop week for builders. We kept three tools and ran all three on Linux. Tools 4–10 are the wider edit — labelled when we did not run them.
The Cover
SolidCraft
Parametric CAD your coding agent can drive.
Where: github.com/tangency-labs/solidcraft (opens in a new tab) (github.com/bherbruck/solidcraft redirects). Latest release v0.16.2 (October 19, 2026). Docs: docs.solidcraft.io (opens in a new tab). Site: solidcraft.io (opens in a new tab). Show HN October 12. We tested v0.11.1.
What it is: Open-source 3D CAD in pure Rust with a built-in MCP server. Headless solidcraft-cli sketches, extrudes, fillets, holes, measures, exports STEP/STL/3MF, and renders PNGs so Claude Code — or any MCP client — can build real parts without a GUI.
The price: Free and open source. Licence: MIT OR Apache-2.0 (Cargo.toml). No account for the CLI we ran.
The test
Tested, hands-on. Linux x86_64 tarball v0.11.1, SHA256SUMS verified.
solidcraft-cli 0.11.1. Command registry lists 357 commands. MCPtools/listreturned 15 tools (list_commands, execute, batch, inspect_design, measure, body_topology, set_parameter, screenshot, export, crash_reports, undo, redo, new_design, open, save).- Filleted box 40×30×20 mm with R3 fillet: volume 23,961.35 mm³ (analytic ≈23,961.37). Exported STEP; iso snapshot 1280×800 PNG.
- Plate 50×30×6 mm with R2 fillet and Ø8
solid.hole: volume 8,693.29 mm³, 8 faces / 17 edges. STEP + PNG. - Washer attempt (concentric R20/R8 circles, extrude 3 mm): volume 3,769.68 mm³ — a solid disk (π·20²·3), not an annulus. Two sketch circles alone did not cut a hole; use
solid.holeor a proper cut profile.
What we did not test: a live coding agent over MCP, the README’s Raspberry Pi case, or the browser app. README status “early but usable for simple parts” (75 of 76 reference parts) is theirs, not ours. Current latest on GitHub is v0.16.2; our numbers are from 0.11.1.
The verdict
Try it. The week’s clearest “agent builds a physical object” story, and it runs account-free on Linux.
Skip it if
You need production-grade CAD for complex assemblies, you only work in a commercial kernel (Fusion/SolidWorks), or you will not trust an early tool for parts that matter. Start with the CLI on a throwaway part.
Also this week
Deslop
Oxlint rules that reject AI-slop TypeScript.
Where: github.com/maharshi365/deslop (opens in a new tab) · npm ai-deslop (opens in a new tab) (latest v0.4.8 as of October 18, 2026; Show HN October 13). We tested v0.4.6.
What it is: An Oxlint JS plugin that fails the build on patterns coding agents love: chained as casts, unknown params, Reflect.get, filter-then-map, missing SAFETY: comments on assertions, and several test-slop rules.
The price: Free, MIT. Rules partly vendored from dmmulroy/anti-slop (also MIT).
The test
Tested, hands-on. Installed oxlint@1.82.0 + ai-deslop@0.4.6 (must match @oxlint/plugins@1.82.0 — still the pin on 0.4.8). Box has Node 20, so we used .oxlintrc.json with recommended deslop/* rules only — not the README’s oxlint.config.ts (needs Node ≥22.18) and not type-aware standard rules.
- 7-line sloppy file: 7
deslop/*errors, exit code 1 (no-unknown-parameters, no-chained-type-assertions, require-safety-comment-for-type-assertion ×3, no-reflect-get, no-array-filter-map). - Clean typed rewrite using
flatMap: 0 errors, exit 0. - Extra slop file: 12 more errors across object/
unknownsurfaces, Reflect.get, filter-map, and SAFETY comments.
Deslop verdict
Try it on any vibe-coded TypeScript repo. Cheap, local, easy to remove.
Skip it if
You are not on TypeScript/Oxlint, you cannot pin oxlint to 1.82.0 yet, or you want the full recommended type-aware set and you are stuck on Node <22.18.
Parsimony
Which AI coding model adds the least code?
Where: parsimony.lasu.dev (opens in a new tab) · github.com/La5u/Parsimony (opens in a new tab) (Show HN October 13, 2026; MIT).
What it is: Open benchmark + offline analyzer. It scores published agent patches by net “coding units” (AST elements: statements, calls, names — not lines). You can also measure() a patch from your own git history.
The price: Free, MIT. Python analyzer has no dependencies (README). Needs Python 3.12+.
The test
Tested, hands-on. Python 3.13.5. scripts/check.sh offline: All checks passed (420 tests, 58 skipped).
- README loop→
sum()example: net_units −10 (3 added / 13 deleted). - Same measurement on a real 2-commit repo: units_added 3, units_deleted 13, net_units −10.
- Same-task compare: bloated loop patch net +16 vs tight
any(...)net +8 (delta 8 units).
CLI exposes dataset / analyze / leaderboard. We did not download a full SWE-bench submission run or exercise JS/TS/Go tracks. README limits apply: “Smaller isn’t always better”; models that write more also tend to solve more (Spearman 0.33–0.60 on large boards) — theirs.
Parsimony verdict
Try it if you care whether your agent is bloating the tree. Pairs cleanly with Deslop.
Skip it if
You only want solve-rate leaderboards, you need a hosted SaaS with no local Python, or you will treat “fewer units” as “better code” without reading the Limits section.
The Margins
Not evaluated in full (or only smoke-tested): JetBrains Mellum2.1 (Apache-2.0 12B MoE for local agents; GGUF still “coming soon” on the blog even though a GGUF repo exists — blog (opens in a new tab), HF JetBrains/Mellum2.1-12B-A2.5B-Thinking; we lacked RAM for Q4_K_M), Pinrail (desktop inbox for agent decisions; free Apache-2.0; latest v0.3.0; Linux GUI not run here — pinrail.dev (opens in a new tab)), Plimsoll (sandbox that reports isolation tier; Apache-2.0; smoke: go run ./examples/minimal → wasm/process, exit 0 — github.com/plimsollmark/plimsoll (opens in a new tab)), Jevcrawl (MCP crawler; Apache-2.0; README: $0.042 per million input tokens for jev-1.13.0; no API key here — github.com/RayenMlayeh/jevcrawl (opens in a new tab)), Busabase (agent system of record; MIT engine; Cloud Free $0 / Plus $10/seat/mo yearly / Pro $20/seat/mo yearly — busabase.com (opens in a new tab)), MemorySync (hosted agent memory; Free $0 with 10k add / 1k retrieval, no credit card; Starter $29 / Pro $179 / Scale $349 — memorysync.io/pricing (opens in a new tab)), bigarrow (macOS click-through arrow for agent prompts; MIT; Mac-only — github.com/franzenzenhofer/big-arrow-on-the-screen (opens in a new tab)).
Reply with the tool you want us to test next.