idea41-monoidalscheduler-ca.../AGENTS.md

1.8 KiB

MonoidalScheduler AGENTS

Architecture overview

  • Language: Python 3.x
  • Core abstractions modeled as a small, type-safe DSL: Objects (resources/types) and Morphisms (data channels).
  • Monoidal structure: support for tensor (parallel) composition and sequential composition of subsystems.
  • Planner/optimizer layers provide hooks to reduce compositional constraints to convex/MIQP problems via a backend placeholder.
  • Prototyping adapters: sensor_feed and actuator_control stubs demonstrate bidirectional data flow and fault tolerance patterns.
  • Real-time guarantees: compositional bounding demo showing how latency bounds propagate through tensor/compose operations.

Tech stack

  • Python 3.11+ (portable and production-friendly)
  • No external heavy dependencies for the initial skeleton; ready for integration with avionics-grade solvers later.
  • Packaging: pyproject.toml with setuptools build backend.

Testing and tooling

  • Tests: pytest-based unit tests validating core DSL and optimizer skeleton.
  • Build verification: test.sh runs pytest and python -m build to ensure packaging metadata compiles.
  • Linting/formatting: basic, with room for later integration (ruff/black).

How to extend

  • Implement concrete solver backends (cvxpy, or MIQP solvers) for LocalProblem optimization.
  • Expand the DSL to include Limits/Colimits and a TimeMonoid for real-time bounds.
  • Add a registry for adapters to plug into EnergiBridge-like registries.

Repository rules

  • Do not publish until READY_TO_PUBLISH is present and all tests pass.
  • Tests must pass locally before code is merged or published.
  • Changes should be small and well-scoped, with accompanying tests.

Usage notes

  • Run tests: ./test.sh
  • Run a quick local example: python -c 'import idea41_monoidalscheduler_category_theoretic as ms; print(ms.all if hasattr(ms, "all") else dir(ms))'