gridverse-open-low-code-pla.../AGENTS.md

2.0 KiB

GridVerse Open Low-Code Platform for Cross-Domain Energy Optimization

Architecture outline and testing rules for the MVP

  • Scope

    • Lightweight core: Objects, Morphisms, Functors (core graph-contract primitives)
    • Registry: Graph-Contract Registry for versioned contracts
    • Adapter Marketplace: Starter adapters, conformance tests, and a simple registry
    • Minimal Delta-Sync/ADMM-lite solver plumbing (already present as DeltaSync and adapters)
  • Core primitives (already in codebase)

    • Object: local problem with id, name, data
    • Morphism: data-exchange channel with src, dst, optional transform
    • Functor: mapping adapter with map_object and map_morphism hooks
    • DeltaSync: lightweight state container for deltas and reconciliation
  • Registry and marketplace (current MVP)

    • registry.py: ContractRegistry stores contract schemas (name, version, schema)
    • adapters directory contains StarterDERAdapter as a minimal example adapter
  • MVP Plan (8-12 weeks)

    • Phase 0: Protocol skeleton and two starter adapters; TLS transport; ADMM-lite local solver; delta-sync with reconciling logs
    • Phase 1: Global constraints layer (Limits/Colimits), governance ledger scaffolding, offline simulations
    • Phase 2: Adapter marketplace onboarding, minimal codegen path, simple DSL sketch for LocalProblem/SharedVariables/PlanDelta
    • Phase 3: Cross-domain demo with a simulated domain; extended HIL with Gazebo/ROS in later iterations
  • Testing and conformance

    • Lightweight conformance harness for adapter schemas and message shapes
    • End-to-end tests for LocalProblem -> SharedVariables -> PlanDelta mappings
    • Auditable logs for governance and reconciliation steps
  • Security and governance

    • TLS transport, short-lived certs for adapters, secure aggregation for shared signals
    • Governance ledger scaffolding and auditable reconciliation records
  • Contributing

    • PRs should include tests for new contracts/adapters
    • Tests should run via test.sh (pytest) and the packaging check (python -m build)