i365dev / i365dev/CraftDAG

Clarify or decouple GableRoof axis from long-span bridge height

Open
#109 0 comments 0 reactions 0 assignees View on GitHub

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

  1. Document the exact GableRoof.direction semantics and height calculation.
  2. Determine whether a gable can specify ridge/slope axis independently from
    the authored room's width/length orientation.
  3. If current behavior is intentional, expose a clearer orientation option or
    provide a recommended bridge-oriented helper/primitive.
  4. 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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.