signalkit-core
The engine behind trendkit, extracted so any counter can be tracked, stored, and scored:
- Subjects/observations: one append-only snapshot model
(
(kind, key)identity, immutable readings). - Velocity:
Δscore/dayclamped to a one-hour minimum window — single-snapshot subjects report zero rather than a fabricated spike. - Deterministic time: timestamps flow through an injected
[
clock_kit::Clock] (MockClockin tests). - Source trait: async collectors write via a shared
CollectCtx; the future is deliberately!Send(sequential pacing by design, SQLite confined to the collecting task).
Integrity analysis (fork-ratio verdicts, org-burst detection, velocity
outliers) lives in signalkit-integrity.