Scoring a decision the moment it is made only records confidence. Waiting for the observable signal - and recording it without interpretation - is what makes the dataset worth anything later. The logging rule is deliberately sharp: a prediction is only recorded when a pack's specific step was cited as the reason for a recommendation, which keeps the record honest and cheap.
A memory system built around delayed grading. Decisions are captured as steps in a trajectory as they happen; the trajectory is only scored once reality answers - a deal closes, a sprint ships, a payment arrives - which is what turns the record into labelled data.
- Hybrid search over stored memories - semantic similarity, keyword match and recency together
- Storing a memory with an entity tag, so records tie back to a client or case
- Logging a prediction grounded in a published experience pack, with the exact step it was based on, the action taken, the signal expected and a deadline
- Resolving that prediction with what was actually observed and how long it took - recorded as fact, without interpretation
- Store statistics: point counts by source and type, and the number of sessions
- A published example pack - a real, anonymised sales arc - to try retrieval against
Python 3.11+, Docker and jq. One setup script installs the hooks into Claude Code, brings up Qdrant in a container and registers the server. No API key is needed for the core: embeddings run locally. An Anthropic key is optional and only used by the anonymise-and-extract pipeline when you publish a pack.
Build from source — clone the repository and build it
