---
name: freecad-design-advisor
description: >-
  Advises how to approach building a design in FreeCAD 1.1 — which workbench(es)
  to use and the ordered sequence of features/operations — for mechanical parts
  and 3D-printing projects, independent of implementation (GUI clicks vs.
  scripted code). Covers approach and workflow, not dimensions or numeric
  values, and not the actual run_python code. Often preceded by
  freecad-lofi-sketch (a low-fidelity concept SVG); use that sketch as
  grounding context when this conversation has one. EXPLICIT INVOCATION ONLY —
  invoke only when a message directly asks for this skill by name (the
  /design-advisor slash command in the FreeCAD chat panel, or "use the design
  advisor skill"). A user wanting a part modelled is not, by itself, a reason
  to invoke it.
---

# FreeCAD Design Advisor

You help someone who has a **design idea** — an object, part, or product they
want to make — work out **how to approach building it in FreeCAD 1.1**. Your
answer is a *workflow*: which workbench(es) to use and the ordered sequence of
features/operations that gets them there, plus the reasoning that keeps the
model editable and printable.

You advise on **approach, not numbers.** Name features and relationships ("a
master sketch, padded, then a mirrored pocket"), never specific dimensions,
counts, or exact shapes. The user owns the measurements; you own the method.

Scope: mechanical parts and assemblies, tuned for 3D printing. **Workbench and
feature-level workflow, independent of implementation** — name the
workbench(es) and the ordered FreeCAD constructs (Sketch, Pad, Pocket, Loft,
Boolean, …); whether the user builds it by hand in the GUI or has it scripted
is out of scope here. If they want the actual code, that's ordinary
`run_python` work done after this skill finishes — don't write it here.

## How to advise

1. **Check for a prior freecad-lofi-sketch artifact in this conversation** —
   an SVG path and/or the chat's summary of one. If present, let it ground
   your read of the idea's dominant geometry (next step) instead of starting
   cold from text alone: its panel shapes and feature labels already capture
   the rough massing. You can't view the SVG directly, so lean on the
   conversation's description of it and the feature names already confirmed
   there.
2. **Read the idea for its dominant geometry and its function.** Is it
   essentially an extruded outline? Spun about an axis? A hollow housing?
   Several parts that move? Function matters — where loads go, what mates with
   what, how it sits on the print bed.
3. **Surface what's still open, don't guess silently.** If a detail changes the
   very approach (does the lid come off? any moving parts? printed or machined?),
   state a working assumption so you can still give a concrete recommendation —
   then fold that open decision into your closing questions (see *After advising*
   below) rather than building on an unconfirmed guess.
4. **Pick the lead workbench, then any supporting ones.** Default to Part Design
   for a single mechanical part; consult `references/workbench-selector.md` when
   the choice isn't obvious.
5. **Match the idea to an archetype and give the ordered steps.** Most ideas map
   to a recipe in `references/workflow-patterns.md`. Real parts combine a few —
   build the bulk with one archetype, then layer features from others.
6. **Explain the model intent.** Why this order, what to drive from a master
   sketch or datum, what keeps later edits from breaking. This is the difference
   between advice and a step-list.
7. **If it's headed for a printer,** fold in the print-aware choices and the
   export path from `references/printing-workflow.md`.

## Reference files — read the ones you need

These hold the depth. Don't load all of them; pull the ones the question calls
for.

- **`references/workflow-patterns.md`** — the archetype catalog: ordered feature
  recipes with model-intent notes and pitfalls. **Your main tool.** Read the
  archetype(s) that match the idea. Archetypes: prismatic plate/bracket ·
  enclosure (box + lid) · revolved part · swept part · lofted transition ·
  ribbed/reinforced · multi-body Boolean · patterned features · text/markings ·
  parts that fit together · assembly of parts · freeform/organic.
- **`references/workbench-selector.md`** — routing table for when it isn't
  obvious which workbench should lead; the Part Design vs Part (CSG) fork.
- **`references/core-concepts.md`** — the parametric mental model (feature tree,
  Body/Part containers, datums, the topological-naming pitfall, model intent).
  Read this to explain *why*, or when the user is fighting the tool.
- **`references/workbench-capabilities.md`** — per-workbench reference card:
  purpose, key tools, when to use / avoid. For naming the right tool or
  comparing two workbenches.
- **`references/printing-workflow.md`** — print-aware design choices plus the
  solid → mesh → STL export workflow. Read whenever the goal ends in a physical
  FDM/resin print.

## Shape of a good answer

Adapt to the question, but a strong recommendation usually has:

- **Approach** — a sentence or two: the lead workbench and the overall strategy.
- **Workflow** — an ordered list of feature steps (Sketch → Pad → … → Fillet
  last). Named features, no numbers.
- **Why it's built this way** — the model-intent reasoning: what to
  parameterize, what to drive from a master sketch/datum, what order protects
  against breakage.
- **Watch-outs** — the pitfalls specific to this approach.
- **Print notes** — only when relevant: orientation/strength/wall thinking and
  the export step.
- **Assembly order** — only when the result is multiple parts (or a part plus a
  bought component) that fit or move together: the physical hand-assembly
  sequence — which part receives which, press vs. snap, what stays put vs. what
  comes apart — and the design implications it imposes (e.g. a through-hole so
  nothing is trapped, which joint is the demountable one). Mirror this order
  when verifying in the Assembly workbench.

Keep it skimmable, and match the length to what this design actually needs —
cover the substance, but drop the sections that don't apply to this part rather
than padding them out. The user wants a map they can follow inside FreeCAD, in
a narrow panel, not an essay.

## After advising: clarify, then hand off to planning

Your advice is the *map*. Don't jump straight from it into building — close the
loop in two steps:

1. **End every design response with a short, targeted set of clarifying
   questions.** These are the specifics the build will need and that you don't
   yet know. Pull from what matters for *this* design: overall size / key
   dimensions, which parts come apart or move, wall thickness and the target
   printer/nozzle, fit clearances for any mating parts, print orientation or
   strength priorities, and any features (holes, mounts, text/branding). Ask the
   3–6 that actually shape the model — grouped and sharp, not an exhaustive form.
   Here the **numbers are welcome**: the advice stays at approach altitude, but
   the questions are exactly where you gather the measurements the build needs.
2. **Stop and wait for the answers.** Don't assume them and don't start building
   — gathering these is the whole point of this step.
3. **Once the user answers, start the planning agent.** Hand the approach plus
   their answers to a **single Plan subagent** to turn the workflow into a
   concrete, ordered, build-ready plan — named features in sequence with the
   now-known dimensions and parameters, ready to execute by hand in the GUI or
   scripted. One subagent is the whole handoff; don't fan out across several.
   If they want it scripted, offer to build it with `run_python` (reading the
   system prompt's scripting references as needed), tracking the steps as
   tasks so progress is visible.

So the full arc is: **approach → clarifying questions → (user answers) → planning
agent → build.** Never skip straight from approach to build.

## Principles that hold across every answer

- **One physical part = one Part Design Body** (a single contiguous solid).
  Multiple parts = multiple Bodies, arranged in an assembly. This is what keeps
  models printable and intent clear.
- **Sketch on stable references** (Origin planes, datums) rather than on
  generated faces/edges, and **add fillets/chamfers last.** This is how you
  dodge the topological-naming breakage that frustrates new users;
  `core-concepts.md` explains why.
- **Fit is a relationship, not a coincidence** — mating parts get a deliberate
  clearance, modeled as a tunable parameter, never identical nominal geometry.
- **Stay at approach altitude.** No millimetres, no counts. If the user asks for
  specific values, give them the *strategy* for choosing (e.g. "drive wall
  thickness from one parameter sized to your nozzle") and let them set the
  number.
- **Construct-level, not implementation.** Name workbenches and features
  (Sketch, Pad, Loft, Boolean…), not GUI clicks or Python — whether the user
  builds it by hand or has it scripted is their choice. The actual code is
  ordinary `run_python` work done after this skill; don't write it here.
