ifc-geometry 0.3.1

IFC semantic views lowered into the format-neutral geometry DAG.
Documentation
# ifc-geometry constraint plan

Status: active scaffold under parent task(s) `GEOM-PLACE`.
Last updated: 2026-08-19

Follow `AGENTS.md`. Claim one local task, leave blockers/decisions beneath it,
and check it off only after the proof runs.

## Work queue

- [x] `CON-LOCAL` - placement links and relative-chain rules
  - Audited (2026-09-05): Placement links and relative-chain rules are implemented with cycle-safe resolution.
  - Proof: focused tests, crate clippy, and relevant declaration/corpus gate.
- [x] `CON-GRID` - axes/intersections and dimensional checks
  - Implemented (2026-09-05): the dimensional checks this task named are now
    in `rules::grid`, which checks both rules the schema declares for
    `IfcGridAxis`. `WR1` keeps an axis curve 2D; `WR2` keeps an axis in
    exactly one U/V/W list, counted from the owning grid because a Part 21
    file carries no inverse attributes.
  - Proof: four focused tests including the silent conforming case, and 2/2
    mutation probes (accepting any dimension, accepting any membership count).
  - Proof: focused tests, crate clippy, and relevant declaration/corpus gate.
- [x] `CON-CONNECT` - connection geometry select coverage
  - Audited (2026-09-05): Connection-geometry select coverage is implemented and tested.
  - Proof: focused tests, crate clippy, and relevant declaration/corpus gate.
- [x] `CON-CYCLE` - adversarial cycles/depth budgets in resolver tests
  - Audited (2026-09-05): Adversarial cycle and depth-budget cases are covered in resolver tests.
  - Proof: focused tests, crate clippy, and relevant declaration/corpus gate.

## Completion log

Append `TASK-ID - proof - material decision`; keep long logs out of this file.