29 lines
1.2 KiB
Plaintext
29 lines
1.2 KiB
Plaintext
---
|
|
description: Core coding standards and module boundaries for FusionAGI
|
|
alwaysApply: true
|
|
---
|
|
|
|
# FusionAGI Coding Standards
|
|
|
|
## General
|
|
|
|
- Use type hints for all function signatures and public attributes.
|
|
- Use docstrings (Google or NumPy style) for public modules, classes, and functions.
|
|
- Prefer Pydantic models for all structured data (tasks, messages, config).
|
|
|
|
## Module Boundaries
|
|
|
|
- **core/** — Orchestrator, event bus, state manager only. No LLM or tool logic.
|
|
- **agents/** — Agents depend on schemas and core; they receive adapters/tools by injection.
|
|
- **adapters/** — LLM provider code only; expose a single abstract interface.
|
|
- **schemas/** — Single source of truth for Task, Message, Plan, etc. No business logic.
|
|
- **tools/** — Tool definitions and safe runner; governance may wrap invocation.
|
|
- **memory/** — Storage interfaces; no agent logic.
|
|
- **governance/** — Guardrails, rate limits, access control; called by orchestrator/tools.
|
|
|
|
## Conventions
|
|
|
|
- Agents communicate only via structured message envelopes (from schemas).
|
|
- Replaceable components: use abstract base classes or protocols; inject implementations.
|
|
- Log decisions and state transitions for determinism and replay.
|