;; SPDX-License-Identifier: PMPL-1.0-or-later
;; Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) <j.d.a.jewell@open.ac.uk>
;; STATE.a2ml — Current project state for anvomidaviser

(state
  (metadata
    (version "0.1.0")
    (last-updated "2026-03-21")
    (author "Jonathan D.A. Jewell"))

  (project-context
    (name "anvomidaviser")
    (description "Convert ISU notation and choreographic intent to formal figure skating programs via Anvomidav")
    (status "phase-1-complete")
    (priority "—")
    (ecosystem "-iser family (https://github.com/hyperpolymath/iseriser)"))

  (current-position
    (phase "phase-1-complete")
    (completion-percentage 45)
    (milestone "Phase 1: scaffold, bespoke ABI/FFI, CLI, manifest parser, codegen stubs, RSR compliance, documentation — all complete"))

  (route-to-mvp
    (step 1 "DONE — Project scaffold from rsr-template-repo")
    (step 2 "DONE — Bespoke Idris2 ABI type definitions")
    (step 3 "DONE — Bespoke Zig FFI implementation stubs")
    (step 4 "DONE — CLI with subcommands (init, validate, generate, build, run, info)")
    (step 5 "DONE — Manifest parser (anvomidaviser.toml)")
    (step 6 "DONE — Codegen engine stubs")
    (step 7 "DONE — RSR compliance (17 workflows, governance, contractiles)")
    (step 8 "DONE — Bespoke documentation (README, ROADMAP, CONTRIBUTING, CHANGELOG)")
    (step 9 "Implement core domain logic (source analysis, pattern detection)")
    (step 10 "Implement codegen passes (target-language-specific output)")
    (step 11 "Write Idris2 formal proofs for domain invariants")
    (step 12 "End-to-end integration tests with real inputs")
    (step 13 "BoJ cartridge and PanLL panel integration")
    (step 14 "Performance benchmarks and optimisation"))

  (blockers-and-issues
    (none "Phase 1 complete — no blockers. Phase 2 requires domain logic implementation."))

  (critical-next-actions
    (action "Implement core domain logic in src/core/")
    (action "Write first end-to-end example with real input")
    (action "Begin Idris2 formal proofs for domain-specific invariants")))
