solidcraft-ground-rules
Installation
SKILL.md
Independence, licences, assets and the name
The rules that cannot be broken in a PR. AGENTS.md lists them in one line each; the reasons are in CONTRIBUTING.md, "Rules that aren't negotiable".
Independent
- Behaviour comes from public documentation, general CAD conventions and user feedback. File formats come from public specifications.
- Never copy another product's code, icons, artwork, help text, tooltips, templates or materials.
- Reference tests use analytic values (
tools/oracle-analytic/) or open-source tools. Expected values never come from a commercial CAD product. - Do not drive, script, automate or extract data from commercial CAD products (Fusion, SolidWorks, Onshape, ...) for this project: no test data, measurements, command lists, ids or files produced with them.
- Command ids are our own: dotted, lower-case
<area>.<thing>[.<variant>], never another product's id.
No GPL, LGPL or AGPL code
- Do not read, copy or link OpenCASCADE, FreeCAD (including planegcs), SolveSpace, CadQuery/OCP, LibreCAD or QCAD. Do not even read their sources.
tools/freecad-oracle/runs FreeCAD as a separate program through its public scripting API to compute reference values. Nothing from FreeCAD is linked, vendored or shipped. The sketch solver and the blend operations are our own.- Permissive dependencies are fine: say which one you add and why in the PR.
THIRD-PARTY-LICENSES.txtis regenerated onmain; never edit it in a PR (cargo xtask licences --checkonly reports). - Code adapted from other permissive projects (MIT OR Apache-2.0) is noted in ATTRIBUTION.md. Projects published by storytold can serve as references for implementation conventions.