Clarify or decouple GableRoof axis from long-span bridge height
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 5
- Forks
- 1
- Avg merge
- 1h 3m
- Merged PRs (30d)
- 3
Description
Production finding
MinePilot's coverage-batch review found that a long covered bridge cannot
express the expected transverse gable roof without a structural axis rewrite.
This is a CraftDAG API/expressiveness issue, not a MinePilot deterministic
review bug.
Minimal shape
A bridge plan used a long RoomShell:
{
"placement": {
"anchor": { "x": 1, "y": 4, "z": 2 },
"size": { "width": 43, "height": 4, "length": 7 }
}
}
With GableRoof { over: "covered_span", direction: "x", overhang: 1 },
the plan compiles within a 45 × 14 × 11 bound, but MinePilot's live 3D review
reads as long parallel roof/rail strips rather than a conventional covered
bridge roof.
Changing only the roof direction to "z" gives the visually expected
transverse orientation, but compilation fails:
GableRoof "gable_cover" exceeds ComponentPlan height bounds.
The height calculation treats the 43-block long span as the roof-height-driving
span. The only current workaround is to rewrite the whole bridge around the
other axis, including entry walls, window walls, deck, truss/rail components,
and metadata dimensions.
Why this matters
For a normal coverage candidate, that is not a low-risk targeted repair. It
forces authors either to publish an implausible roof silhouette or abandon a
useful, common structure family. Similar RoomShell-only compositions also make
natural mine entrances read as rectangular boxes, but this issue intentionally
focuses on the deterministic GableRoof axis contract.
Requested investigation
- Document the exact
GableRoof.directionsemantics and height calculation. - Determine whether a gable can specify ridge/slope axis independently from
the authored room's width/length orientation. - If current behavior is intentional, expose a clearer orientation option or
provide a recommended bridge-oriented helper/primitive. - Add a small regression fixture for a 43 × 7 covered bridge asserting the
intended transverse gable stays in bounds and compiles.
No change to MinePilot or CraftDAG is proposed by this report; this is a
production reproduction and API/expressiveness investigation request.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing the GableRoof direction semantics and height calculation in the ComponentPlan path, using the 43 × 7 RoomShell reproduction as the entry point. Determine whether ridge and slope axes can be decoupled from authored width and length; done means the contract is documented or clarified and a regression fixture confirms the intended transverse gable compiles within bounds.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- backend-api-design, compilers
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100