solidcraft-checking
Skill15k starsChanged 18 days agoApache-2.0View on GitHub
Use alongside solidcraft-modeling and solidcraft-editing whenever you build, change or port a SolidCraft design. Checks for errors SolidCraft does not report (parameter ranges, every allowed value, exact STEP comparison), regression tests, designs kept in git, porting from build123d, CadQuery, OpenSCAD or STEP.
2 other projects use a version of this, 1 of them edited.
Adopted by
Steady: 0 new projects took it in the last 4 weeks, none the 4 weeks before.thin data
Most recently taken up by
- bherbruck/solidcraftword for word, first seen Nov 8, 2026
- randomonkey05/SolidCraft-Agent-Skillsedited, first seen Nov 1, 2026
Who's talking about tangency-labs/solidcraft
- Der Druckt Schon Wieder“SolidCraft bekommt einen neuen Kernel – und Fusion-Teile kommen per Prompt rüber”YouTube · Nov 4, 2026 · 59k views
- Optimal Printing Solutions 3D“SolidCraft: A FREE Fusion 360 Rival? Hands-On First Look”YouTube · Oct 19, 2026 · 14k views
- Evolution with AI“SolidCraft: Free Fusion 360 Alternative, Open-Source CAD in Your Browser”YouTube · Oct 19, 2026 · 11k views
- Sorovisk“TESTE O CLONE DO SOLIDWORKS”YouTube · Oct 17, 2026 · 10k views
- Elite Engineers“SolidCraft – First Touch! 🚀”YouTube · Oct 23, 2026 · 5.9k views
The biggest 5 of 84 mentions linking to the repository that our crawl found. Each line is their own headline.
See all 84
Talked about on GitHub, YouTube and Bluesky (84 times).
On GitHub · 50
- Oct 13, 2026solidcraft: init at 0.30.1 — NixOS/nixpkgs3 reactions · 12 comments
- Oct 29, 2026Bug: SolidCraft 0.26.1 has no download for MacOS — storytold/craft-launcher2 reactions · 2 comments
- Oct 21, 2026[Feature Request] [App Launcher] Allow external repositories to be added and monitored — storytold/craft-launcher1 reaction · 2 comments
- Oct 20, 2026[Feature] Allow adding apps from different sources (non-storytold) — storytold/craft-launcher1 reaction · 2 comments
- Nov 10, 2026Add SolidCraft CAD guide to Guides & Learning — syntaxslicer/3d-print-toolbox0 reactions
45 more on GitHub
- Nov 9, 2026● relit: tangency-labs/solidcraft — Packaging lint — fitzyracing1/darks0 reactions · 1 comment
- Nov 8, 2026feat(desktop): recommend SolidCraft 0.40.0-rc.3 — PartBuddy/partbuddy0 reactions
- Nov 8, 2026Fetch SolidCraft through the API when downloads fail, and cache it — dutchman-cad/dutchman0 reactions
- Nov 7, 2026fix: four #483 status sites take the fork's soft failure by default; retire their flags (#2009) — tangency-labs/solidcore0 reactions · 1 comment
- Nov 6, 2026SolidBOM: show the engineering, manufacturing and cost review panel — kaeli-byte/solidcraft0 reactions · 1 comment
- Nov 6, 2026SolidBOM: keep imported geometry read-only while it is reviewed — kaeli-byte/solidcraft0 reactions · 1 comment
- Nov 6, 2026fix: a circular round's section is the ball's exact circle by default; retire fillet_exact_arc_sections and fillet_exact_arc_spans (WR-708, WR-711, #2330) — tangency-labs/solidcore0 reactions · 6 comments
- Nov 5, 2026Report SolidCraft refusals as their own category — dutchman-cad/dutchman0 reactions · 1 comment
- Nov 5, 2026● relit: tangency-labs/solidcraft — Kernel rig — fitzyracing1/darks0 reactions · 2 comments
- Nov 5, 2026Add Solidcraft? — olafkfreund/nix-craftapps0 reactions
- Nov 4, 2026Kernel-case replay mutates retained inputs of copied offset operations (#2722) — tangency-labs/solidcore0 reactions
- Nov 2, 2026agent-skills.github.tangency-labs.solidcraft: 0.30.0 → 0.30.1 — sudosubin/agents.nix0 reactions
- Nov 2, 2026chore: update `solidcraft` from `0.30.0` to `0.30.1` — Glatzel/demon-forge0 reactions
- Nov 2, 2026Solidcore-only blend fix: keep features sweeps a boss's walls in a body of their own (fillet_keep_features, WR-703) — tangency-labs/solidcore0 reactions · 1 comment
- Nov 2, 2026Boolean: joining two tubes with a 1e-6 or 1e-7 gap gives edges whose trim interval doesn't match when WR-575 is on — tangency-labs/solidcore0 reactions · 2 comments
- Nov 2, 2026Boolean: with WR-79 (sphere_small_circle_not_touching) on, a sphere poking a hair through a box face gives volume 0 or an open body — tangency-labs/solidcore0 reactions · 2 comments
- Nov 2, 2026agent-skills.github.tangency-labs.solidcraft: 0.29.0 → 0.30.0 — sudosubin/agents.nix0 reactions
- Nov 2, 2026chore: update `solidcraft` from `0.29.0` to `0.30.0` — Glatzel/demon-forge0 reactions
- Nov 1, 2026agent-skills.github.tangency-labs.solidcraft: init at 0.29.0 — sudosubin/agents.nix0 reactions
- Nov 1, 2026chore: update `solidcraft` from `0.28.0` to `0.29.0` — Glatzel/demon-forge0 reactions
- Oct 31, 2026chore: update `solidcraft` from `0.27.1` to `0.28.0` — Glatzel/demon-forge0 reactions
- Oct 30, 2026Investigation: SolidCraft + FieldCraft — Open-Source CAD and Engineering Simulation on Linux (source : Chatgpt on 10-30-2026) — stellardreams/asi.surge.sh0 reactions · 3 comments
- Oct 30, 2026Studio: replace the GUI with a native research workbench, Eqi editor and equation explorer — eqiora/eqiora0 reactions
- Oct 30, 2026chore: update `solidcraft` from `0.26.1` to `0.27.1` — Glatzel/demon-forge0 reactions
- Oct 29, 2026Sketch: hide constraint glyphs when zoomed out (#8980) — ReDead/solidcraft0 reactions · 1 comment
- Oct 29, 2026chore: update `solidcraft` from `0.26.0` to `0.26.1` — Glatzel/demon-forge0 reactions
- Oct 29, 2026Feature: send selected parts directly to a local slicer — rvdende/cadrs0 reactions · 5 comments
- Oct 29, 2026Sketch: diameter box appears for a second concentric circle (#8899) — ReDead/solidcraft0 reactions · 1 comment
- Oct 29, 2026● relit: tangency-labs/solidcraft — External corpus — fitzyracing1/darks0 reactions · 9 comments
- Oct 29, 2026chore: update `solidcraft` from `0.25.1` to `0.26.0` — Glatzel/demon-forge0 reactions
- Oct 28, 2026Fusion assemblies: arrive with the timeline grouped into folders per design — dutchman-cad/dutchman0 reactions
- Oct 28, 2026[PATCH 1/2] truck-geometry: keep seam points on the hinted side of a revolved surface's period — ricosjp/truck0 reactions
- Oct 28, 2026Growth leads — 2026-10-28 — pahadiji/star-catcher0 reactions · 1 comment
- Oct 28, 2026chore: update `solidcraft` from `0.25.0` to `0.25.1` — Glatzel/demon-forge0 reactions
- Oct 27, 2026chore: update `solidcraft` from `0.24.1` to `0.25.0` — Glatzel/demon-forge0 reactions
- Oct 27, 2026chore: update `solidcraft` from `0.24.0` to `0.24.1` — Glatzel/demon-forge0 reactions
- Oct 27, 2026[ Proposal ] Porting more apps to Android — MostafaXS1/artcraft-android0 reactions · 6 comments
- Oct 27, 2026chore: update `solidcraft` from `0.23.1` to `0.24.0` — Glatzel/demon-forge0 reactions
- Oct 27, 2026nix flake build as in solidcraft — tangency-labs/fieldcraft0 reactions
- Oct 27, 2026SolidCraft-Werkzeugsymbole und Umbau nach SolidCraft-Vorbild — Kai46419/Pencil-CAD0 reactions
- Oct 26, 2026chore: update `solidcraft` from `0.23.0` to `0.23.1` — Glatzel/demon-forge0 reactions
- Oct 26, 2026chore: update `solidcraft` from `0.22.1` to `0.23.0` — Glatzel/demon-forge0 reactions
- Oct 25, 2026chore: update `solidcraft` from `0.22.0` to `0.22.1` — Glatzel/demon-forge0 reactions
- Oct 25, 2026chore: update `solidcraft` from `0.21.0` to `0.22.0` — Glatzel/demon-forge0 reactions
- Oct 24, 2026Homepage Download button opens the download section on GitHub — tangency-labs/website0 reactions · 1 comment
On YouTube · 25
- Nov 4, 2026SolidCraft bekommt einen neuen Kernel – und Fusion-Teile kommen per Prompt rüber — Der Druckt Schon Wieder59k views · 188 comments
- Oct 19, 2026SolidCraft: A FREE Fusion 360 Rival? Hands-On First Look — Optimal Printing Solutions 3D14k views · 9 comments
- Oct 19, 2026SolidCraft: Free Fusion 360 Alternative, Open-Source CAD in Your Browser — Evolution with AI11k views · 6 comments
- Oct 17, 2026TESTE O CLONE DO SOLIDWORKS — Sorovisk10k views · 12 comments
- Oct 23, 2026SolidCraft – First Touch! 🚀 — Elite Engineers5.9k views · 6 comments
20 more on YouTube
- Oct 24, 2026SolidCraft CAD – Kick Off! 🔥 — Elite Engineers5.2k views · 5 comments
- Oct 17, 2026SolidCraft: Open Source Parametric CAD in Rust — Tech Lead Corner5.2k views
- Oct 18, 2026SolidCraft: parametric CAD in Rust, with an MCP server — SkipCI4.4k views
- Oct 19, 2026SolidCraft — Free Fusion 360 Alternative, Runs in Your Browser — Evolution with AI3.7k views · 2 comments
- Nov 2, 2026無料の3D CAD「SolidCraft」と Fusion 360 を比べてみた|共通点と違い・どこまで追いついた? — タクのロボット実験室2.4k views · 7 comments
- Oct 20, 2026SolidCraft: Free Open-Source Fusion 360 Alternative (Runs in Your Browser!) — The Daily Commit2.3k views
- Nov 7, 2026𝗙𝗿𝗲𝗶𝗲𝘀 𝗖𝗔𝗗 𝗮𝘂𝗰𝗵 𝗶𝗺 𝗕𝗿𝗼𝘄𝘀𝗲𝗿 – 𝗛𝗜𝗭𝟲𝟮𝟬 — Heinz Schmitz1.6k views · 2 comments
- Oct 18, 2026solidcraft - free open source tool — RepoDrop1k views
- Oct 19, 2026SolidCraft(v0.16.2)と Fusion 360 を比べてみた|共通点と違いをやさしく解説【3D CAD】 — タクのロボット実験室900 views · 2 comments
- Oct 31, 2026SolidCraft: parametric 3D CAD built in pure Rust — Prosper Flow IO632 views
- Nov 8, 2026I Replaced Fusion 360 With SolidCraft - No Subscription, Runs in a Browser — SelfHost Pilot522 views
- Nov 8, 2026How to Install SolidCraft on Windows tutorial (Free 3D CAD) — Dexter Tutorials521 views
- Nov 5, 2026SolidCraft GitHub Overview: How AI Agents Work with Parametric CAD — Alex Hitt515 views
- Oct 24, 2026solidcraft is trending on GitHub #Shorts — codeExplainedBadly349 views
- Oct 28, 2026solidcraft: SolidCraft: an open-source parametric 3D CAD application built in pure Rust. Deskto — Best Saturday Night Songs334 views
- Nov 2, 202613K ⭐ Your AI Agent Can Design a 3D Part | SolidCraft Open Source CAD — Github God Eng293 views · 1 comment
- Oct 20, 2026A free 3D CAD that rebuilds itself — TERABIOTECH283 views · 1 comment
- Oct 25, 2026A Free Rust CAD App That Agents Can Drive: SolidCraft Deep Dive — Github Trending Repos245 views
- Oct 21, 2026【SolidCraft】アセンブリの方法|部品を組み立てて動かす(コンポーネント・空間固定・ジョイント)無料の3D CAD v0.16.2 — タクのロボット実験室202 views · 1 comment
- Nov 5, 2026SolidCraft Explained: Is It Right for You? (Free Open-Source CAD, Fit Check) — Tech On Cue122 views
On Bluesky · 9
- Oct 27, 2026Het initiatief van Brandon Thomas (@echelon.bsky.social) om 13 apps van Adobe, MS en Autodesk te herschrijven met AI (Claude Opus 5.5) in… — @stevenrogge.bsky.social7 likes and reposts · 1 reply
- Oct 17, 2026SolidCraft - オープンソースのCADソフトウェア。コーディングエージェントの進化で何を作ればいいかはっきりしているものはものすごいスピードで実現できるようになりました。Rustで実装、Windows/Linux/Macのマルチプラットフォームで動く、というのが今の流行… — @gakuueda.bsky.social7 likes and reposts · 1 reply
- Oct 17, 2026😍 github.com/tangency-lab... — @dwbmb.wsocial.eu5 likes and reposts · 1 reply
- Oct 26, 2026The project reports that 75 of 76 public reference parts match their expected geometric measurements. It’s still early, but this is a… — @vicky-grok.bsky.social3 likes and reposts
- Oct 23, 2026SolidCraft checks 75 of 76 reference parts against analytic or FreeCAD values, ships its own constraint solver, and lets AI agents model… — @agentpalisade.bsky.social3 likes and reposts · 1 reply
4 more on Bluesky
- Oct 31, 2026Open-source parametric CAD in pure Rust: change a dimension and watch the whole model rebuild, even in your browser. 🔗… — @prosperflowio.bsky.social2 likes and reposts
- Oct 17, 2026NOW INSTALLING: github.com/tangency-lab... — @normalguy.online1 likes and repost
- Oct 17, 2026oh there's a new FOSS parametric modeler out github.com/tangency-lab... — @barredspirals.comint.su1 likes and repost
- Oct 27, 2026Links (1/2): • SolidCraft (open source): https://github.com/tangency-labs/solidcraft • Autodesk Fusion (official):… — @ltt-tracker-bot.bsky.social0 likes and reposts · 1 reply
Other versions2 projects use a version of this.
Word for word · 1
- bherbruck/solidcraft★ 15k100% same
Edited · 1
- randomonkey05/SolidCraft-Agent-Skills★ 1287% same
Wrote their own version · 0
None found.
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository19 other files it gives its agents.
- AGENTS.mdAGENTS.md
- assets/AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- solidcraft-agent-toolsSkill
- solidcraft-commandsSkill
- solidcraft-contributingSkill
- solidcraft-crash-safetySkill
- solidcraft-editingSkill
- solidcraft-file-formatsSkill
- solidcraft-ground-rulesSkill
- solidcraft-mechanismsSkill
- solidcraft-modelingSkill
- solidcraft-packagingSkill
- solidcraft-performanceSkill
- solidcraft-preferencesSkill
- solidcraft-reportingSkill
- solidcraft-testsSkill
- solidcraft-uiSkill
- solidcraft-ui-textSkill
The file
We split this skill into the rules it gives an agent
2 rules. About 0 are common, 0 are distinctive, and 2 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈0
Distinctive · estimate
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 28
Exact check: when a port has a reference, or a volume gap leaves doubt: export STEP (file.export {path, bodies}) and run compare_step.py.
- Very specific: line 47
When a timeline feature fails, solidcraft-cli run writes nothing and the error names the feature.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
SolidCraft checking
solidcraft-modeling and solidcraft-editing cover the commands, plane axes, ids, edge picks and the MCP workflow: load the one that fits first. This skill adds checks for errors SolidCraft does not report, and the work around a design kept in a repo.
$SKILL below is the folder this file is in (~/.claude/skills/solidcraft-checking for a user install). Checked against SolidCraft 0.21.0. scripts/tests/test_facts.py checks every trap and convention below, and the facts behind the corrections in solidcraft-modeling. After a SolidCraft upgrade, run the tests and fix the text where they fail:
PYTHONDONTWRITEBYTECODE=1 uv run --no-project --with pytest --with build123d pytest -p no:cacheprovider $SKILL/scripts/tests
Scripts
An MCP batch and a command script ({"commands": [...]}, run by solidcraft-cli run) take the same command list. Build with a script when the design goes into a repo or must be rebuilt later: a script rebuilds the design from scratch on every run. Subagents share the session's one MCP design, so agents that run in parallel use solidcraft-cli only.
In $SKILL/scripts/:
python3 $SKILL/scripts/run.py script.json [--in <design>] [--save <name>.json]runs a script and printsFAIL, aWARNline per feature warning, aSKETCHline per sketch above dof 0 and aBODYline per body, for the end state and for eachdocument.inspectinside the script.scb.pygives a generator aScriptwith sketch helpers that come out at dof 0 (hexagon,circle,rounded_rectangle,place) andcmdfor any other command. It rejects repeated sketch, feature and body names. Import it withsys.path.insert(0, "<$SKILL>/scripts").uv run --no-project --with build123d python $SKILL/scripts/compare_step.py actual.step expected.stepgives the exact volume of the difference between two STEP files and where it sits. It and the tests run OpenCASCADE through build123d as a separate tool, the waytools/freecad-oracleruns FreeCAD: SolidCraft does not use, link, vendor or ship any of it.solidcraft-cli snapshot <design or script> --out shot.png --view isorenders a PNG to look at.
Steps to add
- Parameters and features. Each parameter comment states the allowed range ("whole number, 4 or more"): the user reads it in the Parameters table, and SolidCraft enforces no range. Derive sizes from measured values, so that a count parameter changes how many features there are, not how big they are. An expression that more than one sketch or feature uses becomes a named parameter. Add the derived numbers the user needs (parts to print) and mark the driving parameters favourite (
parameters.favorite). Give each thing the user thinks of (a port, a row of standoffs) its own feature, named after it, so it can be found and changed on its own. Choose the origin so that no sketch dimension reaches 0 for any allowed value (trap 1). - Every sketch at dof 0. A sketch with dof left can solve to a different shape after a parameter change, without an error.
run.pylists them. - Every allowed value. One script of
parameters.changecommands walks each driving parameter to both ends of its range, one change after another, and back to the default, as edits in the app do: trap 1 fails only on the change after the one that reaches 0. Put adocument.inspect {measure: true}after each end of a range and run the walk withrun.py walk.json --in <design>. Every state must be clean: noFAIL, noSKETCH, andBODYvolumes and centres of mass that match the values you compute for that state. A boolean retry can leave the geometry wrong with only aWARNline, and the volume shows it (trap 4); a mirrored sketch (trap 1) keeps the volume and moves the centre of mass. - Exact check when a port has a reference, or a volume gap leaves doubt: export STEP (
file.export {path, bodies}) and runcompare_step.py. Before porting, in SolidCraft's own chat or any MCP client, callskill_reference {"skill":"solidcraft-checking","file":"reference/porting.md"}. Elsewhere, read$SKILL/reference/porting.md. - Kept in a repo. Save as
<name>.jsonwithrun.py build.json --save <name>.json: a.jsondesign stays plain JSON when it is saved again, so git diffs stay readable. Saving over a file leaves<name>.json.bak, so ignore*.bak. From then on the design file is the source, and changes go into it with--in <design> --save <design>. Copy$SKILL/templates/test_design.pynext to the design, fill in its cases, set its tolerance as its comment says, and run it until it passes. Expected values come from an exact reference when porting, from hand calculation for simple shapes, or from a build the user has reviewed. After a change, update frozen values only where the change is meant to change them.
Traps
- Zero dimension. A sketch dimension driven to 0 loses its side: the point it measures has no direction left, so the solver may leave it anywhere on the axis. On the next parameter change it either fails with
its constraints would conflict(a point placed by dimensions from the origin) or, with no error, moves it: a slot that other constraints also held slides to the origin when the distance reaches 0 and, the solver taking the shortest step that fits, keeps the side it was drawn on when the value comes back. Check every distance expression against the whole allowed range of each parameter in it, counts included; the walk in step 3 catches the failure, and only the volume or the position catches a point that ended up on the other side. For a point on an axis, passx=Noneory=Nonetoplace: it aligns the point instead of dimensioning it. For a position that does reach 0, such as the first of a centred row of one, dimension it from a sketch point placed outside the part: a point at x = -100 mm, then the distance100 mm - (n - 1) / 2 * pitchfrom it. - Counts. Solid patterns take counts 1..1000; a count that reaches 0 fails the rebuild. A fractional count rounds to the nearest whole number without an error (6.5 gives 7 copies), while every other expression uses the exact value, so a centred row shifts. Nothing in SolidCraft enforces a parameter range during a parameter change (configuration rules apply only when a configuration row is activated): choose a range that keeps every count at 1 or more, write "whole number" and the range in the comment, and use
round(n)wherever the count also positions something. - Circumscribed polygons.
sketch.polygon.circumscribedwith a size dimension and one vertical side still has 1 dof: its corners can alternate in and out.sketch.constraint.polygonmakes it regular;scb.hexagonadds it. - Boolean retries. A
Boolean retry: ...warning means the result may be wrong (see "Boolean warning" in thesolidcraft-modelingreference), so check the volume of that state.temporary coincident-face separationcomes from faces that coincide. A tapered tool whose start or end lies on a face of a plain block, or a straight cylinder joined onto the floor of a filleted, shelled box, does not log it; atool displacementwarning shows up when a join and a cut share one location, as in a standoff built as a joined cylinder with a cut pilot hole, patterned together. That case reports the warning but its volume agrees with the analytic growth, and a single ring profile removes the warning. Starting cutters about 1 mm past the faces they pierce and sinking joins about 1 mm into the body remain good practice on a single feature. Check the volume of every state either way. - Measurement accuracy. The
solidcraft-modelingreference gives how far measured volumes stray from computed ones. Centre of mass and bounding box come out up to about 5e-5 of the part size off. Set test tolerances as the template says. - Expressions. They have
+ - * / ^ %,sin cos tan asin acos atan atan2 sinh cosh tanh asinh acosh atanh sqrt abs min max floor ceil round mod trunc exp ln log log10 pow sign hypot(logis base 10; the hyperbolic ones take and give unit-less numbers),piand units; noifand no comparisons. Build steps fromfloor,mod,min,maxandsign, which gives 1 at 0.asin acos atan atan2return angles, so a unitless parameter cannot hold them. - Snapping. A point created exactly on an existing point or the origin becomes coincident with it (
connectdefaults to true). - Repeated body names. A repeated
body_nameis renamed (Body1) without an error, sotargetsreach only the first body.
Conventions
taperpositive widens along the extrude direction, negative narrows it, also withdirection: negative.sketch.polygon.circumscribedwith 6 sides andangle: 0puts vertices up and down and flat sides facing ±x.- A pattern of a join or cut feature repeats that join or cut. Put every join before the cuts that must stay open: a later join fills them.
- When a timeline feature fails,
solidcraft-cli runwrites nothing and the error names the feature.run --inandsnapshotalso accept a command script in place of a design. - To build in the user's open app, see the bridged mode in docs/mcp.md: the app and the server both start with extra flags, so ask the user.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

