Skip to content

Latest commit

 

History

History
85 lines (75 loc) · 5.51 KB

File metadata and controls

85 lines (75 loc) · 5.51 KB

Iseriser Roadmap

Phase 0: Scaffold (COMPLETE)

  • ✓ RSR template with full CI/CD (17 workflows)

  • ✓ Rust CLI with init/validate/generate/build/run/info subcommands

  • ✓ Manifest parser (iseriser.toml via TOML + serde)

  • ✓ Codegen stubs (generate_all, build, run placeholders)

  • ✓ ABI module stubs (Rust-side type mirrors)

  • ✓ Idris2 ABI template files (Types.idr, Layout.idr, Foreign.idr)

  • ✓ Zig FFI template files (build.zig, main.zig, integration_test.zig)

  • ✓ README with architecture, use cases, and -iser family table

  • ✓ Machine-readable governance (STATE, META, ECOSYSTEM, contractiles)

Phase 2b: BoJ-server cartridge skeleton (COMPLETE — 2026-05-20)

  • iseriser cartridge subcommand — scaffolds a complete boj-server cartridge for an -iser

  • ✓ Emits 13 files: cartridge.json, mod.js, panels/manifest.json, top-level README.adoc

  • ✓ Idris2 ABI: <iser>-mcp.ipkg + <Iser>Mcp/Safe<Iser>.idr (exposure-gate contract + tool enum)

  • ✓ Zig FFI: ADR-0006 5-symbol C ABI (boj_cartridge_init/deinit/name/version/invoke) via cartridge_shim

  • ✓ Unified gated adapter: REST + SSE + GraphQL + gRPC-compat behind the transaction gate

  • ✓ End-to-end verified: idris2 --build on emitted ipkg, zig build test on ffi/ (4/4) and adapter/ (5/5)

  • ✓ Documented: examples/cartridge-skeleton/README.adoc

  • ✓ Implements standards#89 sub-issue 1, scaffold side

Note
Estate-wide fan-out of the regeneration-cartridge pattern across the 28 existing -isers is OWED, but is correctly gated on standards#91 (http-capability-gateway tier-2 production-wiring). Until #91 lands, the unified core stays internal/loopback.

ABI verification harness (standards#92 Phase 1 + 1b — COMPLETE — 2026-05-20)

  • abi-verify subcommand — diffs an Idris2-derived ABI manifest against a cartridge’s Zig FFI; reports drift across five categories. Phase 1.

  • abi-emit-manifest subcommand — emits the manifest from Safe*.idr so the Idris2 source is the single authority. Phase 1b.

  • ✓ Zig reserved-word converter (iseriser#15)

  • ✓ GADT-style data … where declarations skipped in the emitter (iseriser#20)

  • ✓ Multi-cap acronym variants accept the runtogether form (iseriser#21)

  • ✓ Non-canonical Zig switch arms (false shorthand) tolerated (iseriser#22)

  • ✓ Documented: examples/abi-manifests/README.adoc

Phase 1: Language Model Parser

  • ❏ Define LanguageDescription struct: name, type system features, compilation target, key primitives, calling convention

  • ❏ Parse language descriptions from iseriser.toml [language] section

  • ❏ Validate language descriptions against known feature sets

  • ❏ Map language features to template variables (e.g., has_dependent_types → ABI proof depth)

  • ❏ Support language feature composition (e.g., "like Chapel but with linear types")

  • ❏ Unit tests for language model parsing and validation

Phase 2: Template Engine

  • ❏ Integrate Handlebars templates for all generated artifacts

  • ❏ Create master template set: Cargo.toml, main.rs, lib.rs, manifest/mod.rs, codegen/mod.rs, abi/mod.rs

  • ❏ Create Idris2 ABI templates with language-aware type mappings

  • ❏ Create Zig FFI templates with language-aware calling conventions

  • ❏ Create CI/CD workflow templates (parameterised by language features)

  • ❏ Create documentation templates (README.adoc, ROADMAP.adoc, TOPOLOGY.md)

  • ❏ Create RSR governance templates (.machine_readable/ hierarchy)

  • ❏ Template validation: verify all placeholders are resolved before output

Phase 3: Bespoke Codegen Generation

  • ❏ Generate manifest parsers with language-specific fields (e.g., Chapel [locale], Julia [type-dispatch])

  • ❏ Generate codegen engines with language-specific template expansion

  • ❏ Generate ABI modules with language-appropriate type mappings

  • ❏ Generate example manifests and test fixtures per target language

  • ❏ End-to-end test: iseriser generates chapeliser, chapeliser passes cargo test

  • ❏ End-to-end test: iseriser generates julianiser, julianiser parses a Julia manifest

Phase 4: Self-Hosting

  • ❏ Iseriser generates iseriser — the meta-framework can regenerate itself

  • ❏ Generated iseriser passes all tests of the hand-written iseriser

  • ❏ Diff analysis: hand-written vs. generated, converge to zero diff

  • ❏ Bootstrap CI: iseriser regenerates itself on every commit, verifies no regressions

Phase 5: Idris2 Proofs of Template Correctness

  • ❏ Prove that template expansion preserves type safety (no ill-typed Rust output)

  • ❏ Prove that generated ABI layouts match Zig FFI expectations

  • ❏ Prove that generated manifest parsers accept valid TOML and reject invalid

  • ❏ Prove that generated CI/CD workflows reference correct file paths

  • ❏ Integration with proven library for shared proof infrastructure

Phase 6: Ecosystem Integration

  • ❏ PanLL panel: "New -Iser" wizard panel for interactive language description

  • ❏ BoJ-server cartridge: iseriser.generate MCP tool for bot-driven -iser creation

  • ❏ VeriSimDB backing store: persist language models and generation history

  • ❏ Batch generation mode: regenerate all 28 -iser repos from updated templates

  • ❏ Publish to crates.io as iseriser CLI

  • ❏ Shell completions (bash, zsh, fish)

  • ❏ Error messages and diagnostics for template expansion failures