Blame

e23584 Dan Alexander 2026-09-14 10:46:55
Add company wiki standards and VoxelCore docs This change establishes the shared company knowledge structure, governance, engineering, security, and incident/change standards. It also adds the VoxelHorizons product tree with a complete VoxelCore documentation set covering architecture, operations, authoring, version support, resource pack compilation, runtime reloads, and testing/release workflows.
1
# Engineering Standards
2
3
This page establishes baseline expectations for Soatrix-maintained software. Individual products may impose stronger requirements.
4
5
## Design
6
7
- Prefer explicit interfaces and dependency direction over cross-module reach-through.
8
- Keep stable identity separate from presentation/rendering identifiers.
9
- Validate external or authored input at the boundary before it enters runtime state.
10
- Prefer immutable published state where practical; publish replacements atomically rather than mutating a live registry piecemeal.
11
- Make compatibility claims explicit and testable. A version range is not equivalent to a validated exact-version matrix.
12
13
## Changes
14
15
A change is ready to merge when its behavioural contract is understood, relevant tests are added or updated, and operations/documentation are changed where needed. Compatibility changes should include regression coverage at the boundary they introduce.
16
17
## Failures
18
19
- Fail startup when continuing would publish corrupt or unsupported state.
20
- For reloadable systems, build and validate candidate state before replacing known-good state.
21
- Error messages should identify the invalid input or dependency chain rather than masking it with a generic failure.
22
23
## Dependencies
24
25
- Pin or constrain dependencies deliberately.
26
- Isolate platform/version-specific APIs behind adapters when multiple runtime generations are supported.
27
- Avoid leaking implementation-specific APIs into common modules unless the common contract genuinely depends on them.
28
29
## Testing
30
31
Use multiple layers where appropriate: unit tests for rules, integration tests for component boundaries, and real-runtime smoke tests for compatibility claims that mocks cannot establish.