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

34 lines
1.8 KiB
Markdown

# 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))'