georgeguimaraes/arcana
63.4
Adequate · 3 October 2026
33.9k
lines of production code
Elixir
primary language
2
measurements over time
What this system is
Arcana is an Elixir library that provides a comprehensive framework for building Retrieval Augmented Generation (RAG) applications, featuring document ingestion, hybrid search, and GraphRAG capabilities. It exposes a unified API for managing document collections, executing complex query pipelines with context retrieval, and interacting with LLMs for question answering. The system includes a suite of CLI tools for evaluation and knowledge graph management, along with an optional Phoenix LiveView dashboard for monitoring and administration.
How it got here
2025 — Initial release and RAG feature expansion
17 changes.
This period marks the initial public release of Arcana 4.0.2, establishing the core RAG library with a comprehensive API, database schema for GraphRAG, and a Phoenix LiveView dashboard. The work focused on defining the project's architecture, including the Pipeline orchestration module and evaluation tooling, while simultaneously building extensive test coverage and documentation to stabilize the new codebase.
2026 — comprehensive test coverage expansion
8 changes.
This period focused on establishing robust test suites across the Arcana codebase, targeting core modules such as graph processing, file parsing, grounding, and pipeline orchestration. The work ensured reliable behavior for complex features like community detection, PDF extraction, and LLM-based judgment, while also verifying data integrity in Ecto vector storage and chunking logic.
Features
Initial project scaffolding and documentation
The repository is initialized with the Apache 2.0 license, a comprehensive README describing the library's architecture and usage, and a detailed CHANGELOG tracking versions up to 4.0.2. Development tooling is configured via Credo for code quality, release-please for automated versioning, and a docker-compose file for local PostgreSQL setup. Internal issue-tracking files (AGENTS.md) are removed in favor of standard Git workflows.
(repo-wide) · high confidence
Introduce optional Phoenix LiveView dashboard with scoped routing and background task management
The Arcana dashboard is now available as an optional feature that compiles only when Phoenix LiveView is present, allowing users to embed a self-contained, purple-themed UI into their existing Phoenix applications. The dashboard is mounted via the \arcana\_dashboard/2\ macro, which supports host-provided collection scoping to restrict data access per user or tenant, and registers a dedicated \ArcanaWeb.TaskSupervisor\ to manage async operations like evaluation runs and maintenance tasks. The UI is split into separate LiveView pages for documents, collections, search, ask, evaluation, maintenance, and info, replacing the previous monolithic structure.
_lib/arcana\web · high confidence
New Arcana dashboard with LiveView-based pages and components
The Arcana dashboard is now implemented as a set of Phoenix LiveView pages (Ask, Documents, Collections, Graph, Evaluation, Maintenance, Info) and shared components (ChunkResults, DashboardLayout). This introduces a real-time, interactive web interface for managing collections, ingesting documents, exploring the knowledge graph, running evaluations, and performing maintenance tasks, replacing the previous non-interactive or missing UI. The dashboard is optional and only compiles when Phoenix LiveView is available.
_lib/arcana\web/live · high confidence
New Arcana tutorial livebook for RAG development
A new comprehensive tutorial livebook (\arcana\_tutorial.livemd\) has been added, providing a hands-on guide to building Retrieval Augmented Generation (RAG) applications. It demonstrates core capabilities including document ingestion, semantic and keyword search, collection management, and agentic pipeline construction using the in-memory vector store and local embeddings.
livebooks · high confidence
New mix tasks for retrieval evaluation and knowledge graph management
This update introduces several new CLI tasks to support retrieval evaluation and GraphRAG operations. Users can now generate synthetic test cases and run retrieval evaluations with \mix arcana.eval.generate\ and \mix arcana.eval.run\, which support vector, keyword, and hybrid search modes and output metrics like Recall@5. Additionally, new tasks allow for managing the knowledge graph: \mix arcana.graph.detect\_communities\ uses the Leiden algorithm to cluster entities, \mix arcana.graph.summarize\_communities\ generates LLM-based summaries for these clusters, and \mix arcana.graph.rebuild\ reconstructs the graph from documents. The update also includes \mix arcana.graph.embed\_entities\ for entity embeddings, \mix arcana.graph.install\ for setting up GraphRAG tables, and \mix arcana.gen.embedding\_migration\ for handling vector dimension changes.
lib/mix · high confidence
Behavioural changes
Configurable test environment with mock services and database optimizations
The application now uses a structured configuration system that loads environment-specific settings, introducing a dedicated test environment. This setup replaces real external dependencies with deterministic mocks for the embedding and entity extraction processes to ensure stable, fast tests. Additionally, the test database configuration is tuned to prevent flaky search results by disabling index scans during test runs, addressing issues where stale index data caused incorrect zero-result queries.
config · high confidence
Database schema expansion for GraphRAG, evaluation, and collections
The application's database schema has been significantly expanded to support new capabilities. New tables have been introduced for GraphRAG (entities, relationships, entity mentions, and communities with vector search support via the \vector\ extension), an evaluation system (test cases, test case chunks, and runs), and document collections. Additionally, the schema has been updated to link documents to collections, add reference answers to evaluation test cases, and enforce data integrity in graph entity mentions and relationship evidence through new unique indexes and provenance tracking.
priv · high confidence
Introduce Arcana.Pipeline and deprecate Arcana.Agent
The core RAG orchestration module has been renamed from \Arcana.Agent\ to \Arcana.Pipeline\ to better reflect its role as a configurable processing pipeline. The original \Arcana.Agent\ module is now a deprecated facade that delegates all calls to \Arcana.Pipeline\ and emits compile-time warnings, providing a migration path for existing code. Users should update their code to use \Arcana.Pipeline.new/2\, \Arcana.Pipeline.search/2\, and \Arcana.Pipeline.answer/2\ instead of the \Arcana.Agent.\\ functions, and update any custom behavior modules to implement \Arcana.Pipeline.\\ behaviors.
lib/arcana · high confidence
Major API overhaul and expanded documentation for Arcana
The \Arcana\ module has been completely rewritten to serve as the central public API for the library, replacing the previous minimal implementation. It now delegates core functionality to specialized sub-modules (\Arcana.Ingest\, \Arcana.Search\, \Arcana.Ask\, \Arcana.Documents\) and exposes a comprehensive set of functions for document ingestion, hybrid search, RAG-based question answering, and document management. The module also provides configuration accessors for embedders and chunkers, and includes extensive documentation detailing the behavior of operations like \delete/2\, including its interaction with GraphRAG orphan sweeps and transaction handling.
lib · high confidence
Test coverage
Added comprehensive test suite for the Arcana.Pipeline module; Added end-to-end tests for Arcana's LLM integration and GraphRAG features; Added test coverage for graph community detection, summarization, and entity extraction; Added test coverage for vector store backends and search configurations; Added tests for Arcana.Chunker.Custom module; Added tests for GraphStore Ecto and Memory backends; Added tests for LLMJudge grounding and JSON parsing; Added tests for PDF parsing via Poppler and the PDF parser registry; Added tests for background tasks, dashboard LiveViews, and router configuration; Added tests for grounding attribution and input formatting; Added tests for vector equality and changeset dirty tracking; Comprehensive test coverage for Arcana Web LiveView pages; Comprehensive test coverage for Arcana core components; Expanded test suite for Arcana.ask and stabilized test infrastructure; New test support infrastructure for async and integration testing.
Dependencies
Initial release of Arcana 4.0.2 RAG library
This entry marks the initial commit of the Arcana project, establishing version 4.0.2 of the RAG (Retrieval Augmented Generation) library for Elixir. The change introduces the core dependency manifest (mix.exs) and lockfile (mix.lock), defining the project's foundation with required libraries such as Ecto SQL, Postgrex, Nx, and Text Chunker, alongside optional integrations for LLMs (Req.LLM), vector stores (HNSWLib), and a LiveView dashboard. It also configures the package metadata for Hex.pm publication, including Apache-2.0 licensing and documentation extras.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Score
- CAI 63 → 63 (+0.6)
- Rubric changed (rubric-2026.09.15 → rubric-2026.10.1) — scores are not directly comparable.
Lenses
- Code Health 98 → 97 (-0.0)
- Architecture 99 → 87 (-11.7)
- Maturity 67 → 67 (+0.0)
- Readiness 47 → 50 (+2.3)
- Security 76 → 79 (+2.9)
Resolved (6)
- Documentation: no installation or build instructions (README.md)
- Duplicated block (6 lines × 2) (lib/arcana/evaluation.ex)
- Outdated: hnswlib
- Outdated: leidenfold
- Outdated: phoenix_live_view
- Outdated: stephen
New (10)
- Duplicated block (13–14 lines × 2) (lib/arcana/graph/graph_store/ecto.ex)
- Duplicated block (5 lines × 3) (lib/arcana.ex)
- Duplicated block (8 lines × 2) (lib/arcana/evaluation.ex)
- Medium CVE: EEF-[CVE redacted] (mix.lock)
- Medium CVE: EEF-[CVE redacted] (mix.lock)
- Outdated: bumblebee
- Outdated: emlx
- Outdated: lazy_html
- Outdated: mdex
- Projects may be oversized for their cohesion
Changes since last survey
- 6 commits — 6 feature/other, 0 fixes
By area
- (root) — 6 commits
Notable commits
- change: chore(deps): bump hnswlib from 0.1.7 to 0.1.10 (#199)
- change: chore(deps): bump leidenfold from 0.3.2 to 0.4.3 (#198)
- change: chore(deps): bump pgvector from 0.4.0 to 0.4.1 (#200)
- change: chore(deps): bump phoenix_live_view from 1.2.11 to 1.2.12 (#203)
- change: chore(deps): bump req_llm from 1.23.0 to 1.24.0 (#202)
- change: chore(deps): bump stephen from 1.0.0 to 1.0.1 (#201)
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
georgeguimaraes/arcana was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 3 October 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 6f05fe5f834ccf043601ce880b2d7d58bdf9406d — the exact code this score is about.
- Scored under rubric-2026.10.1 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-24c657e50118.