47 lines
2.2 KiB
Markdown
47 lines
2.2 KiB
Markdown
**Architecture**
|
|
|
|
MetaCA Studio is a small Python-first toolkit to prototype federated evolutionary cellular automata. The repository's current scope is a well-focused, test-covered core providing:
|
|
|
|
- CARule: rule representation with deterministic fingerprinting for deduping across federated agents.
|
|
- CAGrid: 2D toroidal grid with Moore and Von Neumann neighborhoods and a step operator applying CARule transition tables.
|
|
- TournamentSelector: an evolutionary selection primitive exposing top-k shares for gossip-style federated exchange.
|
|
|
|
This agent/design follows a layered architecture:
|
|
|
|
- metaca.py: core domain objects and algorithms (kept small and well-tested).
|
|
- pyproject.toml: packaging metadata to allow building sdist/wheel.
|
|
- test.sh: unified test driver used by CI and contributors.
|
|
|
|
Future work should add separate modules for differentiable simulators (JAX/PyTorch), federation registry (Graph-of-Contracts sketch), adapters (NumPy/JAX/torch), and a lightweight governance ledger.
|
|
|
|
**Tech stack**
|
|
|
|
- Python 3.8+ (core language)
|
|
- Packaging: setuptools + wheel via PEP 517/518 (pyproject.toml)
|
|
- Tests: simple shell-driven assertions (test.sh). Replace with pytest as codebase grows.
|
|
|
|
**Testing commands**
|
|
|
|
Run the project's test suite and build verification with:
|
|
|
|
```
|
|
./test.sh
|
|
```
|
|
|
|
test.sh will run a packaging build (python3 -m build) to verify pyproject metadata and then execute the unit-style tests included in the script.
|
|
|
|
**Contribution rules**
|
|
|
|
- Keep changes minimal and well-scoped. Prefer small, reviewable patches over large rewrites.
|
|
- Add tests for every new feature or bugfix using the pattern in test.sh. If you introduce dependencies, add them to pyproject.toml.
|
|
- Do not modify files authored by other contributors without discussion.
|
|
- Run `./test.sh` locally before opening PRs.
|
|
|
|
**Release & publishing**
|
|
|
|
This repository is not marked READY_TO_PUBLISH in this iteration. When claiming readiness:
|
|
|
|
- Ensure README.md contains a complete project summary and packaging metadata references.
|
|
- Ensure pyproject.toml contains accurate metadata and licensing information.
|
|
- Add an empty file READY_TO_PUBLISH to the repository root only when the project fully implements the published specification and all tests pass.
|