CONTRIBUTING.md
before opening a pull request.
Local setup
Validation levels
release:check is the canonical release
acceptance command; coverage and the complete reference benchmark corpus are
part of it rather than optional follow-up steps.
The canonical support policy,
governance model,
and Code of Conduct
describe the project’s current single-maintainer boundaries and community
process.
Protocol changes
Document, topology, kernel, cache, artifact, and native-facade protocols are versioned separately. A protocol change should include a precise invariant and failure semantics, hostile-input bounds, frozen compatibility tests, cancellation and cleanup tests, serialization impact, documentation, and a migration decision. Never silently widen a frozen document version.Backend changes
Construction tests are not enough for topology-aware features. Add tests for capability metadata, geometry, topology roles/source, complete versus partial history, failure rollback, resource ceilings, and disposal.Documentation changes
The Mintlify source lives in/docs. Every navigated page needs title and
description frontmatter. Keep examples compilable, distinguish tested from
planned behavior, and link to one canonical support matrix.
Selected complete fences are synchronized from strict TypeScript regions under
examples/docs/. The
manifest.json
lists every canonical TypeScript module, the public workflows it covers, and
each synchronized placement. Edit the canonical source rather than content
between docs-example markers, then run pnpm docs:generate.
pnpm docs:check verifies exact synchronization, manifest-complete TypeScript
coverage, and source-mapped public imports without starting native runtimes.
pnpm test:docs-examples independently checks that no canonical module is
missing from the manifest, imports every listed module, runs its Manifold or
OCCT workflow, and requires all named behavioral checks to pass.
The current executable matrix covers portable parametric modeling and STL,
sketch/extrude plus exact STEP, fixed assemblies with configurations and BOMs,
canonical document migration and hashing, persistent topology
capture/resolution/explanation, and bounded parsing with structured
diagnostics. Unmarked fences are intentionally illustrative fragments: keep
them accurate and type-aligned, but do not imply that they are independently
compiled or executed.