lakehouse/docs/AUDITOR_CONTEXT.md
profit 7c1745611a Audit pipeline PR #9: determinism + fact extraction + verifier gate + KB stats + context injection (PR #9)
Bundles PR #9's work for the audit pipeline:

- N=3 consensus on cloud inference (gpt-oss:120b parallel) with qwen3-coder:480b tie-breaker
- audit_discrepancies.jsonl logs N-run disagreements
- scrum_master reviews route through llm_team fact extraction; source="scrum_review"
- Verifier-gated persistence: drops INCORRECT, keeps UNVERIFIABLE/UNCHECKED; schema_version:2
- scrum_master_reviewed flag on accepted reviews
- auditor/kb_stats.ts: on-demand observability script
- claim_parser history/proof pattern class (verified-on-PR, was-flipping, the-proven-X)
- claim_parser quoted-string guard (mirrors static.ts fix)
- fact_extractor project context injection via docs/AUDITOR_CONTEXT.md
- Fixed verifier-verdict parser to handle multiple gemma2 output formats

Empirical: 3-run determinism test on unchanged PR #9 SHA showed 7/7 warn findings stable; block count oscillation eliminated; llm_team quality scores 8-9 on context-injected extract runs.

See PR #9 for full run-by-run commit history.
2026-04-23 05:29:38 +00:00

3.3 KiB

Auditor Context — project preamble for fact extraction

This file is read by auditor/fact_extractor.ts and prepended to the extract-facts prompt sent to llm_team. The goal: give the extractor + verifier enough grounding to ground domain-specific facts instead of marking them UNVERIFIABLE by default.

Keep this short (< 400 words). Verifier only reads the first ~4KB of the prompt alongside the facts. Longer = noise, not signal.

Update when: a new Phase lands, a crate is added/removed, the project's primary domain shifts (e.g. staffing → DevOps).


What Lakehouse is

Lakehouse is a Rust-first data platform over S3-compatible object storage. Primary use: a staffing company ingesting legacy CRM data for AI-powered worker matching, contract fulfillment, and playbook-driven coordination.

Architecture: 13 Rust crates + a Python sidecar (Ollama) + TypeScript sub-agents (auditor, scrum_master, bot). Runs on a single server (Nvidia A4000, 128GB RAM). All services on localhost: gateway :3100, sidecar :3200, UI :3300, MCP :3700, observer :3800, MinIO :9000.

Key crates (each maps to a responsibility)

  • shared — types, Arrow helpers, PII utilities, SecretsProvider
  • proto — gRPC definitions
  • storaged — S3/MinIO I/O, AppendLog, ErrorJournal
  • catalogd — metadata authority (manifests, views, tombstones)
  • queryd — DataFusion SQL, MemTable cache, compaction
  • ingestd — CSV/JSON/PDF/Postgres/MySQL ingest
  • vectord — embeddings, HNSW index, playbook_memory meta-index (Phase 19+)
  • vectord-lance — Lance 4.0 firewall crate (separate Arrow version)
  • journald — append-only mutation event log
  • aibridge — Rust↔Python sidecar bridge, context budget + continuation
  • gateway — Axum HTTP :3100 + gRPC :3101 (Phase 38+ adds /v1/chat)
  • ui — Dioxus WASM (stale, pre-Phase-9)
  • lance-bench — standalone benchmark

Current architectural direction (Phase 38-44)

Universal AI Control Plane: a /v1/chat OpenAI-compatible API that routes all LLM traffic through one layer for token accounting + provider fallback. Truth Layer + Validation Pipeline enforce staffing-domain invariants (worker eligibility, PII, contract rules). The Auditor (Phase A of cohesion plan) hard-blocks PR merges on placeholder code.

Auditor sub-agent role

auditor/ (TypeScript, Bun runtime) polls Gitea every 90s for open PRs. For each fresh head SHA it runs 4 checks in parallel: static (grep-style placeholder detection), dynamic (runs the hybrid fixture), inference (gpt-oss:120b cloud review with N=3 consensus + qwen3-coder:480b tie-breaker), and kb_query (reads data/_kb/*.jsonl for prior evidence). Verdicts post to Gitea as commit status + review comment. Findings append to data/_kb/audit_lessons.jsonl (path-agnostic signatures for dedup). Curated scratchpads from tree-split get routed through this extract-facts pipeline to populate audit_facts.jsonl — which is what you (the extractor) are currently producing.

Things that are NOT the auditor

  • The LLM Team UI at /root/llm_team_ui.py (devop.live:5000) — a separate product for human-facing multi-model experimentation
  • The scrum_master pipeline at tests/real-world/scrum_master_pipeline.ts — reviews files, not claims
  • The bot at bot/ — will apply fixes, doesn't audit