Files
ai-spel-rule-engine/README.md
T
Ein Anderssono 300bc3c61c
Build and publish rule engine / release (push) Failing after 2m32s
Version the rule schema with releases
2026-10-20 11:38:41 +02:00

35 lines
1.7 KiB
Markdown

# ai-spel-rule-engine
The isolated Luau evaluation service for the AI-driven Swedish life simulator.
It receives bounded, versioned rule invocations over NATS and returns typed
effect proposals. It has no database or AI-provider integration; the game API
remains responsible for validating and committing effects.
## Contract
Requests use NATS subject `ai-spel.rules.evaluate.v1` and contract version 1.
The canonical JSON Schema is `contracts/rule-evaluation-v1.schema.json`; its
versioned `$id` is updated by the release version-bump workflow.
Responses echo the correlation ID and have status `evaluated` or `rejected`.
The NATS user may subscribe only to the evaluation subject and publish only to
reply inboxes. The service receives no credentials other than its own NATS
identity and has no configured database or AI-provider secrets.
## Local commands
For source development, the Rust commands are `cargo fmt --all -- --check`,
`cargo test --workspace`, and `cargo clippy --workspace --all-targets -- -D warnings`.
Production builds, tests, image builds, and executable verification for this
project are run by Gitea Actions on the existing `large` runner and Kubernetes.
## Release deployment boundary
The API repository owns first-time NATS and Argo Application provisioning. The
worker release pipeline publishes this repository's versioned image and chart,
then updates the existing `ai-spel-rule-engine` Argo Application. It uses the
`AI_SPEL_TEST_KUBECONFIG` repository action secret, scoped to patch that one
Argo Application and read rollout health in namespace `ai-spel`. The one-time
service-account roles are described in `deploy/ci/namespace-scoped-rbac.yaml`;
they do not grant database, secret, workload-write, or cluster-wide access.