BNL · Built in Collaboration with AI
Claude Opus · Claude Sonnet · Codex · Triple-checked on BNL open-weight

Built with AI.
Directed by humans. Every step.

Not vibe coding. Not AI run wild. Every architectural decision was made by a human. Every output reviewed. Every deployment approved. Claude and Codex wrote most of the code — a human decided what to build, why it matters, and when it was ready to ship.

Coming Soon
BNL Open-Weight Model Release — The domain fine-tuned models built for these corpora will be publicly released. Run them yourself. No API. No dependency. Your infrastructure, your weights.
Join early access →

Credit Where It's Due

Honest accounting of who did what.

We're proud of how this got built. Here's the real split.

Anthropic Claude Opus
~65%

The Brains

The master plan. Architecture decisions, strategic technical design, the corpus pipeline blueprint, fine-tuning strategy, the RAG architecture, the Knowledge Registry concept, and the high-level decisions that determined how every other piece fits together. Opus set the direction — everything else followed.

Anthropic Claude Sonnet
~25%

The Executor

Followed the master plan. PHP implementation, frontend pages, API wiring, deployment scripts, DNS configuration, server setup, and the bulk of the session-by-session build work — including this page. Sonnet operated within the architecture Opus defined, executing fast and iterating in dialogue with a human at every step.

OpenAI Codex / GPT-4o
~10%

The Cross-Check

Python scraper scaffolding, SQL migration validation, and specific data transformation scripts. Also used as an independent second opinion on complex logic — a useful sanity check when you want a different model's read on the same problem.

The honest version: A human directed every step — vision, product decisions, prompt design, output review, and every deployment call. Opus designed the system. Sonnet built it. Every output was reviewed by a human before it shipped — and then triple-checked against BNL's own open-weight models running on bare metal. That last step is what we do for clients too: your answers verified on your infrastructure, not just trusted from a frontier API.

This is not vibe coding. Not AI run wild.

AI-generated without human judgement is a liability. Every output in this system passed through human review before it shipped. Here's what that looks like in practice.

Step 01 — Direction
A human defines the problem
Every task starts with a human decision: what to build, why, for whom, and what good looks like. Claude doesn't decide what matters. It executes once the human has.
Step 02 — Execution
Claude builds the thing
Code, architecture, content, data pipelines — Claude produces the output in dialogue. Not a one-shot prompt. A back-and-forth that's more like pair programming than autocomplete.
Step 03 — Review
A human reviews every output
Before anything is deployed, committed, or sent — a human reads it. Architecture decisions get challenged. Code gets read. Copy gets edited. Nothing ships unreviewed.
Step 04 — Deploy
A human approves every deployment
No autonomous pushes to production. Every git commit, every server change, every database migration — approved by a human who understands what it does and why.
Step 05 — Accountability
Humans own the outcomes
When something ships, a person is accountable for it — not the model. The AI is a tool. The professional using it carries the responsibility. That's not a caveat. It's the whole model.
The BNL Standard
What we deploy for clients
Every BNL engagement includes human review gates at each stage of the AI pipeline. We don't build systems that run without oversight. That's not a feature — it's a requirement for anything we're willing to put our name on.

The Proof Case — Do Better Norge

4,754 documents. All AI-assisted. Live in production.

Do Better Norge is the proof that the whole system works. Everything from document ingestion to the fine-tuned legal model to the research tools — built in collaboration with Claude.

Do Better Norge — Norwegian Family Law Platform
ai.dobetternorge.no · tools.dobetternorge.no
Live · Daily Use
Corpus Size
4,754 documents
Court decisions, legislation, ECHR case law, Supreme Court precedent
Scrapers Built
80+ sources
Lovdata, CJEU, ECHR, Datatilsynet, Statsforvalteren, Barneombudet
Fine-Tuned Model
Domain-specific LLM
QLoRA fine-tuned on Claude-generated Q&A dataset from the corpus
Research Tools
6 tools
Timeline analysis, redaction, confidence scoring, cross-jurisdiction search, citation graph
What Claude specifically built for Do Better Norge
Corpus Pipeline
The entire 80+ source scraper fleet
Every scraper — CJEU case law, ECHR decisions, Norwegian government portals, legal databases — was written in dialogue with Claude. Each handles rate limiting, deduplication, text extraction, and incremental updates. Claude designed the abstract base class and then wrote each specialised subclass.
Fine-Tuning Dataset
Q&A generation from raw legal corpus
Claude generated thousands of question-answer pairs directly from the Norwegian legal documents — simulating the questions real users ask, with citations grounded in the actual text. These Q&A pairs became the training dataset for the domain fine-tuned model. A teacher-student distillation strategy, orchestrated by Claude.
Research Tools
Timeline analysis, redaction engine, cross-jurisdiction search
The tools.dobetternorge.no research platform was built in Claude Code — the same session, the same context, the same model. Temporal analysis of case law evolution, document redaction for privacy, and parallel search across Norwegian, ECHR, and CJEU jurisdictions.
RAG Architecture
The retrieval and citation pipeline
Heading-aware chunking, 768-dimensional semantic embeddings via nomic-embed-text, Qdrant vector storage, hybrid vector + keyword search with reciprocal rank fusion, and the citation extraction that surfaces the exact paragraph that answers each question — all designed and implemented with Claude.

Five Ways to Use CaveauAI

Not just a chat interface. An integration platform.

CaveauAI is designed to be used however your workflow demands — from the browser to the API to an active Claude Code session.

01 · Platform UI
Browser — the human interface
The full CaveauAI platform at ai.bluenotelogic.com — corpus management, chat, research tools, scraper management, analytics. Everything a team needs to operate a private knowledge base without touching the API.
platform → corpus → chat → research
Upload · Scrape · Search · Ask · Cite
02 · REST API
Developer integration — any stack
The v2 REST API lets any application query your corpus, upload documents, and stream answers. X-API-Key auth, JSON responses, streaming chat via SSE. Works from Python, Node, PHP, curl — anything that can make HTTP requests.
POST /api/v2/chat.php
X-API-Key: your-key
{ "query": "...", "stream": true }
03 · MCP Server
Claude Code / Claude Desktop integration
A Python-based MCP (Model Context Protocol) server exposes corpus search directly inside Claude Code and Claude Desktop. Ask Claude about your knowledge base from your IDE — the corpus answers, Claude synthesises. This is how BNL builds: Claude Code + CaveauAI corpus, live in the same session.
search_corpus("GDPR Article 17")
ask("What does the EDPB say about consent?")
ingest_text(content, metadata)
04 · Agentic Pipelines
Automated agents — scheduled or triggered
CaveauAI agents can run on a schedule or be triggered by events — new document published, form submission, webhook. An agent can scrape a source, ingest the document, cross-reference existing corpus, and send a digest. The Do Better Norge scraper fleet runs this way: 80+ sources, auto-ingested, auto-embedded, always current.
scraper → ingest → embed → notify
webhook → search → summarise → send
05 · BYOK + Multi-Engine
Your key, your model, your rules
Bring your own API key for Anthropic, OpenAI, Azure OpenAI, AWS Bedrock, Cohere, or Mistral — or use BNL open-weight models on bare metal. Assign a different model to each corpus. Legal corpus on a domain fine-tuned model. Customer FAQ on GPT-4o. Internal policies on sovereign bare-metal. Mix and match, no lock-in.
legal-corpusdomain-fine-tuned
customer-faqanthropic/claude
hr-policiesbnl-bare-metal
06 · Knowledge Registry
Install a pre-built corpus in one click
Instead of sourcing, chunking, and embedding documents yourself — install a pre-packaged corpus from the Knowledge Registry directly into CaveauAI. Norwegian Family Law is live and free. EU AI Act + GDPR and EU Climate corpora coming. One click, immediately searchable alongside your private documents.
bnl/norwegian-family-law ✓ installed
bnl/eu-ai-act-gdpr ◦ coming soon
bnl/eu-co2-regulations ◦ coming soon

The Corpus Pipeline — No Secrets

How a document becomes a source-cited answer.

The same pipeline powers every corpus in the registry — from Norwegian court decisions to EU climate regulations. Here's what happens between "source URL" and "here's your answer, with citations."

01
Source
Web scraper, PDF upload, API feed, or RSS. 80+ scrapers for Do Better Norge. Rate-limited, deduplicated, incremental.
02
Extract
PDF text extraction, HTML cleaning, structure preservation. Metadata: title, date, source, document type, jurisdiction.
03
Chunk
Heading-aware semantic chunking: ~600 words, 75-word overlap. Preserves section context for accurate citation.
04
Embed
768-dimensional semantic embeddings via nomic-embed-text. Each chunk becomes a vector in the corpus.
05
Store
Qdrant vector DB (self-hosted, tenant-isolated). Metadata stored in MariaDB. Full-text fallback index.
06
Search
Hybrid: vector similarity + keyword. Reciprocal rank fusion. Private corpus boosted 1.5× over shared packages.
07
Answer
Retrieved chunks → LLM context window → grounded answer with paragraph-level source citations on every response.

The Meta Point

We built CaveauAI using CaveauAI.

The MCP server that connects Claude Code to the corpus — that's how the Do Better Norge legal corpus was consulted while writing the platform's own legal compliance documentation. The tool used itself to build itself. We think that's worth being explicit about.

Self-Reference
Opus planned it. Sonnet built it.
Claude Opus defined the architecture and set the direction. Claude Sonnet executed session by session — including writing this page — reviewed and approved by a human before every deploy. Claude Code handled the server operations. Human in the loop: every prompt.
Triple-Checked
Verified on BNL open-weight models
Every significant output — corpus answers, legal responses, generated content — was cross-verified against BNL's own domain fine-tuned models running on bare metal. Not just trusted from a frontier API. Checked on sovereign infrastructure before it shipped.
Speed of Build
3 subdomains in one session
knowledge, euai, and co2 — DNS, Virtualmin vhosts, Let's Encrypt certs, three full marketing pages — deployed in a single Claude Code session. Faster than writing a spec.
The Real Lesson
AI doesn't replace the vision
A human decided what to build, who it's for, and why it matters. Opus designed the system. Sonnet built it. That division — human direction, AI execution, human review — is what BNL deploys for every client.

Want this for your organisation?
We built it. We can build yours.

CaveauAI + Claude Code + your domain knowledge. The same pipeline that built Do Better Norge, deployed on your documents, in your language, on your infrastructure.

Try CaveauAI free → Talk to BNL about a build ← Back to Registry