← garnet-lang.org  ·  Install  ·  GitHub ↗

Conversion Policy

The full policy behind "Migrate at Your Pace". The homepage shows the three tiers as a table; this page is the unabridged reasoning. No claims differ between the two — this is the same policy with room to breathe.

What garnet convert is

The garnet convert tool is a migration assistant, not a full transpiler: it reads four deterministic source lanes and emits sandboxed Garnet with lineage, metrics, and a human migration checklist.

Why the surface is split

The broader converter surface is honest by design: active conversion for the languages with deterministic frontends, advisory planning for broader source, native boundaries where low-level fidelity matters, and future Garnet-to-Wasm/LLVM-style lowering when backend evidence exists.

Active languages are low-friction migration lanes with stable frontends. Advisory languages get risk-first planning until deterministic support lands. Native-boundary languages are best represented as explicit modules or FFI with CapCaps and sandbox policy.

The direct-conversion fit rule

Do not convert before a deterministic frontend and checker contract exists for source, parser edges, and capability-preserving lowering. Advisory planning is acceptable only when migration risk is explicit and gated by a human review handoff.

The three tiers

Adoption surface & LLM-advisory path

Adoption surface truth is machine-readable through scripts/garnet_adoption_surface_status.py.

LLM advisory work uses the provider-neutral prompt pack and a machine-readable provider-option registry. Provider-backed conversion remains inactive; each future provider candidate is advisory-only, no-source by default, privacy-reviewed, and human-approved before any handoff can matter. The reviewable path is: source classifier → risk inventory → Garnet context → advisory plan → review handoff → human-approved candidate → garnet check/test/dogfood.

© 2026 Island Development Crew · Garnet is dual-licensed MIT OR Apache-2.0 · garnet-lang.org