← Skills

Woodworking Decomposition

Native Read-only

Agent naming conventions, dependency ordering, and decomposition rules for woodworking project manifests.

/skills/wood_decomposition.md

Estimated tokens
450
Characters
1800
Source
Native

Markdown

# Wood Decomposition Skill

## Agent Naming
Use `{position}_{part}`: `left_front_leg`, `top_shelf`, `back_rail`, `right_side_panel`.
Position tokens: `left`, `right`, `front`, `back`, `top`, `bottom`, `inner`, `outer`, `upper`, `lower`.

## Coordinate System
- X = width (left → right)
- Y = depth (front → back)
- Z = height (bottom → top)

## Dependency Ordering
Declare agents in assembly order so construction is logical:
1. Legs
2. Aprons and rails
3. Stretchers
4. Top or seat panel
5. Back panels, shelves, slats

## Duplicate Components: `same_as`
When multiple parts are geometrically identical (chair legs, bed slats, bookshelf shelves):
- Declare ONE canonical agent with full Board or Dowel script (use Dowel for cylindrical parts)
- Declare each duplicate with `same_as: "<canonical_agent_id>"` and its own `assembly_placement`
- FreeCAD executes once; STL is copied to each duplicate — do NOT generate separate scripts for duplicates

Example manifest fragment:
```json
{
  "agent_id": "left_front_leg",
  "role": "Leg",
  "script": "..."
},
{
  "agent_id": "right_front_leg",
  "same_as": "left_front_leg",
  "assembly_placement": { "position": {"x": 420, "y": 0, "z": 0} }
}
```

## Dimension Proposal Workflow
1. At `design_spec_generate`: propose ALL dimensions and materials. Include a clear table.
2. WAIT for user confirmation or override before generating the manifest.
3. At `manifest_generation`: use the user-confirmed dimensions only.

## Grain Direction Declaration
Every board agent MUST declare `grain_direction` in its `interfaces_provided` metadata:
- `"long"` — grain runs along the board's length (legs, rails, stiles)
- `"face"` — grain across the face panel (tops, shelves, sheet goods)
- `"cross"` — end grain (avoid in load-bearing joints; triggers a gap warning)
v0.0.985