What Happened
On April 4, 2026, Anthropic cut off third-party Claude API wrappers from Claude subscription plans. That included OpenClaw — the AI agent platform I'd been running under the name Victor Yuk to help build Sorted3D.
The workflow had been working. OpenSCAD designs for ice fishing gear, web research to pull real product dimensions before designing inserts and mounts, Etsy listing copy, keeping the whole project moving. Describe what I want, iterate on the .scad file, generate previews, work through it together.
After April 4, OpenClaw stopped working on the subscription. Anthropic gave a $100 extra usage credit — appreciated — but the platform itself was still broken. Waited a week to see if it would get sorted out. It didn't.
So today we migrated.
What We Set Out to Do
Move the entire Sorted3D project from the OpenClaw workspace directory into ~/Documents/Sorted3D, get Claude Code configured to understand the business context, and verify the OpenSCAD toolchain still works by running a multi-angle preview render of the tip-up holder design.
Not building anything new today. Just making sure the foundation is solid before picking up where Victor left off.
What We Actually Did
Moved the project. Copied everything from the OpenClaw workspace into ~/Documents/Sorted3D — all the .scad source files, versioned STL exports, Testing/ photos, everything. Project structure stayed the same.
Wrote a CLAUDE.md. This is Claude Code's equivalent of giving your agent a briefing document. Full business context: what Sorted3D is, the active designs, the full product roadmap, design conventions, Etsy shop status, blog format. This replaces the persistent memory Victor had accumulated over weeks of sessions in OpenClaw. It's not perfect — Victor knew things from conversations that haven't been fully reconstructed — but it's a solid starting point.
Installed an OpenSCAD skill. Claude Code has a skill system where you can drop workflow scripts into .claude/skills/. Grabbed one from mcp.directory. The zip only contained the skill definition file — the actual scripts weren't there. Rebuilt them from scratch: validate.sh, preview.sh, multi-preview.sh, export-stl.sh, extract-params.sh.
Ran the first preview render. Test target: tipup_holder_v1.scad, the two-piece adjustable sled clamp with tip-up arm storage tubes. Three things broke before the previews came out right.
What Broke and How We Fixed It
1. Bash 3.2 compatibility. The multi-preview script used declare -A for associative arrays — a bash 4+ feature. macOS ships with bash 3.2 (it's been 3.2 since 2007; Apple won't upgrade it due to GPLv3). Rewrote the angle/camera mapping using colon-separated strings and shell parameter expansion.
2. --imgsize format. The script passed the image size as 800x600. OpenSCAD 2021.01 wants comma-separated: 800,600. One character fix, reveals itself at runtime with "Need 2 numbers for imgsize."
3. Camera framing. Default camera distance put the lens inside the model. Increasing the distance helped but the model wasn't centered at world origin, so it was still cropped. The wrong fix would have been hardcoding the model's center coordinates into a general-purpose script. The right fix: OpenSCAD's --autocenter and --viewall flags. Works for any model regardless of where it sits in world space.
After those three fixes, all 6 angles rendered clean.
What the Previews Show
The tip-up holder is a two-piece adjustable clamp — an outside piece with a vertical leg and two rectangular tubes that hold tip-up arms (3" wide × 1" thick), and an inside piece that slides along bolt slots to clamp onto different sled rail widths. The two pieces bolt together with M5 hardware.
Geometry looks correct across all angles. Tube bores open at the top. Wide front slots cut into the tube faces. Bolt slot cutouts visible in the inside piece flange from the top view. The L-clamp profile reads clearly from the side. No missing geometry, no obvious boolean operation errors.
What We Lost and Gained
- Victor's accumulated session context
- Reasoning behind specific dimension choices
- History of what we tried that didn't work
- Platform-specific workflow integrations
- No third-party platform dependency
- Forced documentation via CLAUDE.md
- Scripted OpenSCAD preview workflow
- Direct-to-API — survives policy changes
The main loss is accumulated context. After weeks of sessions, the prior setup understood nuances that aren't fully captured in a CLAUDE.md file — the things we tried that didn't work, the reasoning behind specific choices. Some of that is in the git history and design comments, but not all of it.
The main gain is independence. Claude Code runs locally in the terminal. If Anthropic changes API policies again, the tool itself still works — it's a CLI against the API, not a third-party platform's business decisions.
The muscle memory your agent had is in your head more than you realize. Spend an hour writing a briefing document — your project goals, active designs, conventions, roadmap, anything non-obvious. You'll reconstruct context faster and it'll be useful regardless of what tool you land on.
It's a terminal CLI, not a GUI agent platform, so the UX is different. But it's direct-to-API, supports project-level context via CLAUDE.md, and can run shell scripts — which makes it practical for a design workflow like this one.
Don't calculate camera coordinates manually. OpenSCAD has flags that handle centering and framing automatically for any model, regardless of where it sits in world space.
Apple ships bash 3.2 and won't update it due to licensing. declare -A associative arrays, mapfile, and other bash 4+ features will silently fail or error. Either write POSIX-compatible shell or invoke /opt/homebrew/bin/bash explicitly.