Files
raykholo 309eda87a2 Agent skill for reproducible bug reports (#3983) (#3984)
* claim: #3983

* Agent skill for reproducible bug reports (#3983)

skills/solidcraft-reporting has an agent gather the version, steps and
exact error, reproduce the problem in a fresh design (a command script or
one batch with rollback off), shrink it while it still fails, check the
numbers with measure and a screenshot, keep private designs out, search
for duplicates, and write the report in one shape: Reproduced on, Steps
with a minimal script, Expected, Actual, Attachments.

Listed in skills/README.md and docs/mcp.md; the bug template's steps
field points agents to it. The skill-name check now covers its files.

* Reporting skill: GitHub takes a design only as a .zip
2026-10-25 17:56:18 +00:00

1.9 KiB
Raw Permalink Blame History

Report template

Fill in every section and delete the hints in angle brackets. Keep it short: the script and the numbers say most of it.

**Reproduced on:** SolidCraft <version> (<release, or built from source at commit …>), <OS and version>, <GPU, for a display problem>
<or: **Only in my design:** <what was tried: its history as a script rebuilds fine / fails the same way>>

### Steps
1. <app step, in the app's words: Sketch → Rectangle on the XY plane, 20 × 20 mm>
2. <…>
3. <the step that fails>

Minimal script (`solidcraft-cli run repro.json`):

```json
{"commands":[
  <the smallest command list that still fails>
]}
```

### Expected
<what should happen, with the number you computed>

### Actual
<what happens, with the measured numbers>

```text
<the error text or command output, copied as it is>
```

<how often: every time / 3 of 5 runs; the boundary if you found one>

### Attachments
<screenshot of the failure; the crash report id if there is one; no private designs unless the user agreed>

Example

The shape filled in, for a command that fails with an error. (This one is expected behaviour; a real report would be one where Actual differs from Expected.)

**Reproduced on:** SolidCraft 0.18.2 (release), Linux x86_64

### Steps
1. Box, 20 × 20 × 10 mm, corner at the origin.
2. Fillet the top front edge, radius 12 mm.

Minimal script (`solidcraft-cli run repro.json`):

```json
{"commands":[
  {"command":"solid.box","params":{"length":20,"width":20,"height":10}},
  {"command":"solid.fillet","params":{"edges":[[10,0,10]],"radius":12}}
]}
```

### Expected
The fillet fails and names the largest radius that fits: 10 mm, the box's height.

### Actual
```text
error: step 2 (solid.fillet): not supported yet: the blend is larger than the neighbouring faces; the largest radius that fits is 10 mm
```
Every time. Radius 2 works: volume 3982.8 mm³, as computed by hand (4000 − 20 × 2² × (1 − π/4)).