Files
AILang/experiments/2026-05-12-cross-model-authoring/render/Cargo.toml
T
Brummel a8c29d130b iter cma.1: master mini-spec + render binary for cross-model authoring experiment
New top-level experiments/2026-05-12-cross-model-authoring/ (out of
root Cargo workspace; nested-crate standalone via empty [workspace]
table per Cargo idiom). The renderer projects one canonical
master/spec.md into two form-specific files (rendered/json.md and
rendered/ailx.md) by walking three directive forms ({form-only:
json}, {form-only: ailx}, {example: <id>}) and emitting per-example
fenced blocks sourced from 13 curated .ail.json fixtures.

Four test gates green (10/10 total):
- splitter_unit (7) — directive parser, malformed inputs panic
- spec_completeness (1) — AST-variant visitor lifted verbatim from
  schema_coverage.rs; 34/34 variants covered by the curated subset
- example_roundtrip (1) — every fixture roundtrips through
  ailang_surface::{print, parse} to identical canonical bytes
- token_balance (1) — form-only block totals balanced to 3.22% under
  tiktoken-rs::cl100k_base (gate is ±5%)

Six of the 34 variants did not have a dedicated fixture topic in the
plan and were absorbed into the closest existing fixture per the
plan's Step 4.14 escape hatch (Let/Clone → fn_calls_prelude; LetRec
→ data_with_match; If → match_literal_pattern; ReuseAs →
data_simple; Const → floats). Surfaced as a journal note, not a
plan revision.

Two ancillary additions vs. plan, both structural Cargo necessities,
spec-compatible: render/Cargo.toml carries an empty [workspace] table
so the nested crate refuses parent-workspace discovery, and
render/.gitignore drops /target + Cargo.lock. Both surfaced inline
in the per-iter journal's Concerns section.

cma.2 (harness) and cma.3 (live IONOS run + DESIGN.md addendum +
journal + roadmap edits) remain out of scope per the spec.
2026-05-12 11:43:10 +02:00

31 lines
823 B
TOML

# Empty `[workspace]` table declares this crate as a standalone
# Cargo workspace of its own, so it is NOT auto-discovered as a member
# of the root workspace at /home/brummel/dev/ailang/Cargo.toml. The
# spec (`docs/specs/2026-05-12-cross-model-authoring-form-test.md`
# §Architecture lines 90-95) requires this experiment to live outside
# the root workspace; the root Cargo.toml is intentionally not modified.
[workspace]
[package]
name = "xmodel-render"
version = "0.0.1"
edition = "2021"
publish = false
[[bin]]
name = "xmodel-render"
path = "src/main.rs"
[lib]
name = "xmodel_render"
path = "src/lib.rs"
[dependencies]
ailang-core = { path = "../../../crates/ailang-core" }
ailang-surface = { path = "../../../crates/ailang-surface" }
serde_json = "1"
anyhow = "1"
[dev-dependencies]
tiktoken-rs = "0.6"