~ $ axon.recall("context")
booting memory graph ... all regions online
synapses reached. memory returned.
context restored.
~ $ Sammy Junior_← back to the ecosystem

// part of the AXON ecosystem

rpg-master-ai

Production-grade RAG in Java 21 and Spring AI: ingests RPG rulebooks and answers rules questions in English and Portuguese, every answer attributed to a source page. Hexagonal architecture, Qdrant for vectors, Postgres for metadata, Ollama for the zero-cost local dev loop. 14 ADRs.

github.com/sammyjdev/rpg-master-ai· the one project here that's a real product, not infrastructure.

// measured, not vibes

Retrieval that works, and a bug found in the tool measuring it.

Retrieval baselinedocs/eval-results-matrix.md · 2026-06-19
1.000recall@k at k = 3, 5, 8, 10 (the golden set, not a cherry-picked slice)
N = 45 casesMRR 0.948

// the floor this project stands on, not the differentiator: the next card is.

Caught GNOMON lying to itselfdocs/eval-baseline.md:140-143 · 2026-06-22
0.810 vs 0.843context_precision, two judges scoring the SAME generated answers: real agreement, not generator noise
gnomon_batch_two_judges.pyN = 45, 8 runs each

// GNOMON's default runner re-generates answers on every judge pass, so a two-judge comparison was silently judging two different answer sets. Fixed by generating once, judging the same output twice.