Engineering · architecture

One agent. Two guarantees kept in code.

Lunaris is a fully agentic application: a deep-agent harness plans and executes a course build by calling capabilities as tools, over a conventional web + API + Supabase surface. The model makes most of the judgment calls, but the two things that must never be wrong are kept in deterministic code.

prerequisite order · proven grounding · claim-level
The pipeline

Topic in, verified course out.

The planner runs the relevance front, then calls the two moats as tools. Each stage is observable in the live transcript.

input Topic You name what you want to learn. PROMPT
front Relevance front Scopes the build to your goal & level. SCOPED
harness Deep-agent planner Plans & executes by calling tools. AGENT
moat 01 Prerequisite graph Acyclic, topologically ordered. DETERMINISTIC
moat 02 Grounding verifier Every claim checked vs. evidence. DETERMINISTIC
output Reader + Map Verified course you can read. PUBLISHED
Deterministic moats

What we refuse to leave to the model.

Moat 01 · order Prerequisite graph ACYCLIC

The topic is decomposed into knowledge components, each linked to the concepts it depends on. The result is validated as a directed acyclic graph and a topological order is computed, so a concept is never presented before its prerequisites.

  • Cycle detection rejects circular dependencies before authoring.
  • Nodes carry a difficulty tier (1–5) that colors the Map.
  • Edges carry a strength; weak links can be pruned from the path.

Key takeaway

A concept is never taught before its prerequisites, the order is proven, not prompted.
Moat 02 · truth Grounding verifier CLAIM-LEVEL

Every factual sentence is extracted as a claim and checked against retrieved evidence. A claim that no source supports is cut before publish, the lesson stays, but the unsupported assertion never ships.

  • Each claim stores a verifierStatus and the source it was matched to.
  • Every source carries a trust tier and a credibility score.
  • Without enough evidence, the build still produces a right-level course, and says so.

Insight

Authority emerges from agreement across sources, not from a single label.
Source trust

Five tiers. Every citation is one of them.

Trust is a property of the source, surfaced on the claim it supports. Color reinforces the tier, the word always carries the meaning.

TierWhat it meansOn a citation
official Primary / authoritative source, standards, original papers, official docs. official 94%
reputable Well-regarded secondary source with editorial standards. reputable 86%
open Community / open-web source, useful, weighted lower. open 61%
vouched Promoted after corroboration by higher-tier sources. vouched
blocked Disqualified, never used to support a claim. blocked 18%
The surface

An agent harness over a conventional stack.

Nothing exotic underneath, the intelligence is in the harness and the moats, not the plumbing.

clientWeb studioA single canvas: name a topic → watch the build → read the course. Run-history rail + Reader + Map.
serverAPI + harnessThe deep-agent planner orchestrates capabilities as tools, streaming each step to the transcript.
dataSupabaseAuth, run history, and the course object, graph, modules, lessons, claims, and their sources.

Bring your own keys

You bring your own provider keys after signing in. Every build is metered against a per-build search budget and a wall-clock ceiling.
Build a course

Read the source, or just build one.

The harness, the prerequisite graph, the grounding verifier, and the relevance pipeline are all in the open.