This is the v1 specification of the Escurel knowledge-base service. Read it in the order below.
contract/agent-interface.md— the agent ↔ KB contract: twelve MCP tools, the mandatoryescurelmeta-skill, and the behavioural promises both sides depend on. The spec underspec/is the implementation of this contract. 1a.contract/agent-orchestration.md— proposal (post-v1): event-driven agent-harness orchestration. A standaloneescurel-agent-runnertriggers a harness (Claude Code, Codex, Google ADK) on each new inbox element to project events into instance documents, with cascading + loop controls, keeping the gateway automation-free.spec/README.md— architecture overview, locked design decisions, crate layout, configuration, the v1 cut-line.spec/protocol.md— wire protocols (MCP-over-HTTP, WebSocket), full tool schemas, admin endpoints.spec/storage.md— per-tenant filesystem layout, the single DuckDB store withvss+fts+ CRDT op log, markdown as the source of truth, S3 driver, audit / rebuild.spec/platform.md— OIDC auth, tenancy resolution, admin & lifecycle API, quotas, observability.spec/roadmap.md— milestones, v1 cut-line, deferred items, dependency license audit.spec/dx.md— downstream-app integration contract. Read this if you are consuming escurel from another application and need to wire it (plus, optionally, triton) into your test harness.adr/0001-duckdb-only-storage.md— the single architectural decision the v1 storage shape rests on, plus the pre-deployment empirical gate that must pass before any production rollout.deploy/substrate.md— deployment binding for the DataZoo Hetzner substrate (Kamal + ghcr + GCP); the image is the repo-rootDockerfileand the Kamal deploy contract lives in the substrate repo.
- Not the Rust implementation. The implementation will land alongside the spec in this repo; today there is no code.
- Not a tutorial. This is the spec a Rust implementer or a substrate operator works from, not an end-user manual.