Initial sync: memory, agents, commands, and gitignore
Syncs project memory, custom agents, and commands across machines. Excludes secrets (settings.json), session state, and runtime files. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,5 @@
|
||||
- [User profile](user_profile.md) — CNC domain expert, strong spatial reasoning, builds ShaperSlicer
|
||||
- [Be direct](feedback_be_direct.md) — Grasp geometry concepts immediately, don't over-clarify
|
||||
- [Design before code](feedback_design_first.md) — First-principles algorithm design before reading existing code
|
||||
- [Silhouette cookie cutter](project_silhouette_cookie_cutter.md) — Cumulative silhouette splits layers into boundary vs interior
|
||||
- [Shaper Origin concepts](project_shaper_origin_concepts.md) — SVG fill colors, cut types, BenchPilot behavior, tab semantics
|
||||
@@ -0,0 +1,11 @@
|
||||
---
|
||||
name: Be direct about geometry concepts
|
||||
description: User gets frustrated when spatial/geometry concepts need repeated explanation
|
||||
type: feedback
|
||||
---
|
||||
|
||||
User has strong spatial reasoning and expects the same. When they describe a geometry operation (e.g., "cookie cutter" = use the silhouette to split shapes), grasp it immediately and act on it. Don't ask clarifying questions about concepts they've already explained clearly.
|
||||
|
||||
**Why:** User expressed frustration: "I'm struggling with patience here because this seems like a straightforward problem to solve to me."
|
||||
|
||||
**How to apply:** When user describes a geometry operation in plain language, translate it directly to boolean ops and implement. Don't over-complicate or second-guess their spatial intuition.
|
||||
@@ -0,0 +1,11 @@
|
||||
---
|
||||
name: Design before code
|
||||
description: User prefers first-principles algorithm design before reading existing code
|
||||
type: feedback
|
||||
---
|
||||
|
||||
When tackling complex geometry/algorithm problems, design the ideal approach from first principles BEFORE reading the existing code. Then compare the ideal to what's implemented to find bugs.
|
||||
|
||||
**Why:** User explicitly asked for this workflow — "I'd rather have you think of how you'd recommend doing it FIRST, then compare to the existing code." Jumping straight to code reading led to patches that missed the root cause.
|
||||
|
||||
**How to apply:** For non-trivial algorithm bugs, start with a clean-room design of what the correct approach should be, then diff against the implementation.
|
||||
@@ -0,0 +1,17 @@
|
||||
---
|
||||
name: Shaper Origin cut type semantics
|
||||
description: How Shaper Origin interprets SVG fill colors and cut types — critical for correct SVG output
|
||||
type: project
|
||||
---
|
||||
|
||||
Shaper Origin SVG semantics:
|
||||
- White fill (#FFFFFF) = inside cut (vector follow along the path — faster, used for boundary/cutout)
|
||||
- Gray fill (#808080) = pocket cut (area removal — raster/spiral clearing, used for interior cavities)
|
||||
- Black fill (#000000) = outside cut
|
||||
- `shaper:cutDepth` attribute sets depth per path
|
||||
- BenchPilot mode may cut layers in ANY order (not necessarily top-down), so each layer must only contain material not already removed by other layers
|
||||
- Tabs are bridges in the boundary trough that hold the piece in stock — they should NEVER affect interior/model geometry
|
||||
|
||||
**Why:** These semantics drive the entire SVG generation logic. Getting fill colors wrong means the machine uses the wrong cut strategy.
|
||||
|
||||
**How to apply:** Always verify boundary paths get white fill and interior paths get gray fill. Tabs only subtract from boundary.
|
||||
@@ -0,0 +1,17 @@
|
||||
---
|
||||
name: Silhouette cookie cutter approach
|
||||
description: The cumulative model silhouette is used to split every layer into boundary vs interior
|
||||
type: project
|
||||
---
|
||||
|
||||
The correct way to separate boundary (cutout ring) from interior (model cavities) in each layer:
|
||||
|
||||
1. `cumulativeCross` = union of all cross-sections across all depths = the model's full silhouette from the cutting direction
|
||||
2. For each layer's pocket geometry:
|
||||
- Boundary = pocket MINUS silhouette (material outside the model outline)
|
||||
- Interior = pocket INTERSECT silhouette (cavities within the model outline)
|
||||
3. This silhouette is constant across all layers — it's the "cookie cutter"
|
||||
|
||||
**Why:** Previously used per-layer model outline which changed shape at every depth and failed for solid shapes without holes. The silhouette approach works universally.
|
||||
|
||||
**How to apply:** If boundary/interior separation needs changes, the silhouette (cumulativeCross) is the dividing line. Filter boolean sliver artifacts with area < 0.01mm².
|
||||
@@ -0,0 +1,7 @@
|
||||
---
|
||||
name: User profile
|
||||
description: CNC/woodworking domain expert building ShaperSlicer, strong spatial reasoning about geometry operations
|
||||
type: user
|
||||
---
|
||||
|
||||
User is the developer of ShaperSlicer. Has deep domain knowledge of CNC routing, specifically the Shaper Origin (handheld and BenchPilot/gantry modes). Understands how the machine interprets SVG cut types (pocket, inside, outside), depth ordering, and Autopass behavior. Thinks in terms of physical machining operations — "cookie cutter", "trough", "air cutting". Can identify geometry bugs visually from 2D layer previews.
|
||||
Reference in New Issue
Block a user