Files
LorenEteval_Furious/Furious/Interface/AGENTS.md
T
2026-08-20 20:14:22 +08:00

1.3 KiB

Interface contract guidance

  • This package defines small, low-level contracts shared across layers. Keep imports cheap and avoid depending on UI, controllers, services, repositories, or concrete backends.
  • Abstract methods state observable behavior, ownership, mutation, and failure contracts; concrete implementations may add detail but must not weaken them.
  • CoreRuntime is the canonical mechanism-neutral lifecycle contract. Preserve its semantic exit codes, startError(), callback order, serialization behavior, and bounded stop expectations.
  • Do not introduce mechanism-specific aliases for CoreRuntime or mistake the semantic runtime contract for an operating-system process.
  • Serialization uses the shared Furious.Models encoders. Preserve supported dict subclasses such as CoreConfiguration; return/raise behavior must be documented and failures must retain useful diagnostics.
  • Storage contracts intentionally expose live mutable collections. State that explicitly—do not label them copies—and keep persistence/ordering semantics in concrete repositories.
  • Editor bindings translate between widgets and configuration but do not decide process/runtime policy.

Verification

  • Contract tests cover representative implementations, serialization failures, lifecycle/error behavior, mutable-storage semantics, and import independence.