Thanks for your interest. ActantDB is in Phase 0 (specification). The code surface does not exist yet — contributions during this phase are to the specs in specs/.
- Open an issue first for any non-trivial change. Use the issue template under
.github/ISSUE_TEMPLATE/. - One concern per PR. A PR that touches
02-data-model.sqlshould not also rewrite05-security-model.mdunless the change is genuinely linked. - Keep specs internally consistent. Every command in
03-command-spec.mdmust reference tables that exist in02-data-model.sqland emit events listed in01-architecture.md. The verification checklist at the bottom of each spec file lists the cross-references. - Prefer explicit invariants. Specs should state what cannot happen, not just what happens.
- Cite prior art. If a design choice is borrowed from SpacetimeDB, Temporal, Datomic, EventStore, OpenPolicyAgent, NIST AI RMF, etc., link the source. ActantDB is clean-room but not invented in a vacuum.
- Schema changes that close gaps in the data model
- New invariants for the security or privacy model
- Replay correctness arguments
- Threat-model entries
- Worked examples for the alpha demo
- Edge cases for the effect protocol (idempotency, retries, partial failure)
- Code that anticipates Phase 1+
- Vendor-specific bindings (Postgres-only schema, etc.)
- New product surface area beyond the four products listed in the README
- Aesthetic-only formatting churn
- Markdown: 100-column soft wrap. ATX headers (
#). Fenced code blocks with language hints. - SQL:
snake_case,TEXTfor IDs,TEXT NOT NULLfor required strings, ISO-8601 strings for timestamps until we move off SQLite alpha. - Names:
actant_*for crate names,Actant*for types in code, lowercaseactantdbfor the product when written as one word.
See CODE_OF_CONDUCT.md. Be respectful. Argue about designs, not people.
By submitting a contribution you agree it is licensed under Apache 2.0 (the project license). See LICENSE.