{"id":49667800,"url":"https://github.com/jmwright/cadquery-llm-skill","last_synced_at":"2026-06-22T18:03:44.466Z","repository":{"id":359722668,"uuid":"1216066507","full_name":"jmwright/cadquery-llm-skill","owner":"jmwright","description":"A skill to help LLMs understand CadQuery and BRep modelling better","archived":false,"fork":false,"pushed_at":"2026-05-19T13:04:26.000Z","size":5522,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-23T07:03:34.782Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jmwright.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":"docs/roadmap.rst","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-20T14:30:33.000Z","updated_at":"2026-05-20T13:08:21.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/jmwright/cadquery-llm-skill","commit_stats":null,"previous_names":["jmwright/cadquery-llm-skill"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/jmwright/cadquery-llm-skill","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jmwright%2Fcadquery-llm-skill","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jmwright%2Fcadquery-llm-skill/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jmwright%2Fcadquery-llm-skill/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jmwright%2Fcadquery-llm-skill/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jmwright","download_url":"https://codeload.github.com/jmwright/cadquery-llm-skill/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jmwright%2Fcadquery-llm-skill/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34659928,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-22T02:00:06.391Z","response_time":106,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-05-06T18:00:32.272Z","updated_at":"2026-06-22T18:03:44.461Z","avatar_url":"https://github.com/jmwright.png","language":"Python","funding_links":[],"categories":["AI/LLM Integration"],"sub_categories":[],"readme":"# cadquery-llm-skill\n\nA skill that helps LLMs write correct, idiomatic [CadQuery](https://cadquery.readthedocs.io) code.\n\nLLMs regularly get CadQuery wrong - defaulting to Boolean/CSG thinking instead of\nCadQuery's BRep-native approach, misusing selectors, building in global coordinates,\nand reaching for `.union()` / `.cut()` when a workplane operation would be cleaner.\nThis skill gives Claude Code the context it needs to do better.\n\n## What's Included\n\n- **`SKILL.md`** - dense quick-reference: BRep mindset, both APIs, selector cheat sheet, critical anti-patterns\n- **`concepts/`** - deep-dive files on BRep vs CSG, workplanes, selectors, and the Free Function API\n- **`patterns/`** - verified common patterns and anti-patterns with explanations\n- **`examples/`** - annotated runnable scripts\n- **`docs/`** - local snapshot of the CadQuery RST documentation for offline grepping\n- **`Modelfile`** - Ollama model definition with the skill pre-loaded as a system prompt\n- **`scripts/`** - utility scripts, including one to regenerate a full-content Modelfile from the markdown sources\n\n## Installation\n\nClone the repo somewhere accessible on your machine:\n\n```bash\ngit clone https://github.com/jmwright/cadquery-llm-skill.git ~/cadquery-llm-skill\n```\n\n## Usage\n\n### Option 1 - Reference in a prompt (one-off)\n\nPrefix any CadQuery prompt with `@` to load the skill file:\n\n```\n@~/cadquery-llm-skill/SKILL.md\n\nWrite a CadQuery script that creates a flanged pipe fitting.\n```\n\nClaude Code will read `SKILL.md` before responding. For deeper questions, reference\nspecific concept files:\n\n```\n@~/cadquery-llm-skill/SKILL.md\n@~/cadquery-llm-skill/concepts/selectors.md\n\nWhy is my selector not picking the right face?\n```\n\n### Option 2 - Add to a project's CLAUDE.md (persistent)\n\nAdd the following to your project's `CLAUDE.md` file so Claude Code loads the skill\nautomatically for every CadQuery task in that project:\n\n```markdown\n## CadQuery Skill\n\nThis project uses CadQuery. Before writing any CadQuery code, read:\n@~/cadquery-llm-skill/SKILL.md\n\nFor deeper reference:\n- Selectors: @~/cadquery-llm-skill/concepts/selectors.md\n- Workplanes: @~/cadquery-llm-skill/concepts/workplanes.md\n- Free Function API: @~/cadquery-llm-skill/concepts/free-function-api.md\n- Anti-patterns: @~/cadquery-llm-skill/patterns/anti-patterns.md\n\nWhen unsure about a method, grep the local docs:\ngrep -rn \"method_name\" ~/cadquery-llm-skill/docs/\n```\n\nAdjust the path to match where you cloned the repo.\n\n### Option 3 - Global CLAUDE.md\n\nTo enable the skill for all projects, add the same block to `~/.claude/CLAUDE.md`.\n\n### Option 4 - Ollama / Open Models\n\nThe repo includes a `Modelfile` that can be used to create a local `cadquery-coder`\nmodel in Ollama with a focused version of the skill pre-loaded as a system prompt.\n\n```bash\nollama create cadquery-coder -f Modelfile\nollama run cadquery-coder\n```\n\n**Model requirements:** This skill was designed and tested primarily with Claude Code.\nOpen models require at least 14b parameters to follow the BRep constraints consistently -\nsmaller models tend to revert to CSG/Boolean patterns regardless of the system prompt.\nThe `Modelfile` defaults to `qwen2.5-coder:14b`. Responses can take minutes on a CPU-only\nmachine depending on the complexity of the task and the CPU.\n\n**The `Modelfile` is a hand-crafted artifact** optimized for Ollama's use case - it is\nnot generated from the markdown source files. If you want a Modelfile built from the\nfull skill content instead, see `scripts/build_ollama_modelfile.py`.\n\n## Grepping the Docs\n\nThe `docs/` directory is a local snapshot of the CadQuery RST documentation.\nUse it to look up method signatures, selector behaviour, and API details without\na network request:\n\n```bash\n# Find all mentions of a method\ngrep -rn \"\\.shell\\(\" ~/cadquery-llm-skill/docs/\n\n# Look up selector syntax\ngrep -n \"NearestToPointSelector\\|StringSyntaxSelector\" ~/cadquery-llm-skill/docs/selectors.rst\n\n# Check the Free Function API docs\ngrep -n \"def loft\\|def cap\\|def fill\" ~/cadquery-llm-skill/docs/free-func.rst\n```\n\nClaude Code can run these same greps when it needs to verify API details.\n\n## Contributing\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md). All code examples must be verified before submission.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjmwright%2Fcadquery-llm-skill","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjmwright%2Fcadquery-llm-skill","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjmwright%2Fcadquery-llm-skill/lists"}