1. The Suite at a Glance¶
retritis is not one tool; it is a suite whose pieces share two ideas — code as queryable data and the Model Context Protocol (MCP) — and otherwise do one job each, well. This chapter is the map. Each later chapter is a tool.
The components¶
Tool |
One line |
Layer |
|---|---|---|
fledgling |
SQL macros over a DuckDB-parsed AST + full-text index |
engine |
pluckit |
a CSS-like selector language over the AST |
engine |
squackit |
the code-intelligence MCP server the agent actually calls |
interface |
blq |
run builds/tests and query their captured logs |
workflow |
jetsam |
git as a confirmable workflow, not raw plumbing |
workflow |
kibitzer |
modes, coaching hooks, and policy enforcement for the agent |
governance |
umwelt |
author policy as a CSS-like cascade, compile it to a database |
governance |
lackpy |
turn natural-language intent into a restricted, runnable program |
generation |
agent-riggs |
learn across sessions: turns, trust, promoted “ratchets” |
memory |
nsjail |
sandbox untrusted execution |
safety |
The two unifying ideas¶
Code as queryable data. Parsing source into an AST and loading it (plus git history, docs, and chat logs) into DuckDB means every question about the code is a query, not a file walk. “Find the definition,” “who calls this,” “what changed structurally,” “rank these matches” all become SQL over typed tables — fast because the index is built once and reused. fledgling provides the engine; pluckit provides a friendlier selector syntax; squackit packages the useful queries as tools. (Chapter 2 develops this.)
MCP everywhere. Each capability is exposed as an MCP server, so any compatible agent gets the tools without bespoke glue. The servers are independent processes with a small, typed tool surface — which is why the suite composes and why a missing server degrades gracefully instead of breaking the others.
How data flows¶
source tree ─► tree-sitter AST ─┐
git history ───────────────────┤─► DuckDB (fledgling) ◄── pluckit selectors
docs (markdown) ───────────────┤ │
chat/session logs ─────────────┘ ▼
squackit tools ─────► the agent
build/test runs ─► blq DuckDB (.bird) ─► the agent
policy (.umw) ─► umwelt ─► policy.db ─► kibitzer (enforces) / lackpy (restricts)
session turns ─► agent-riggs (.riggs) ─► promoted ratchets ─► kibitzer (surfaces)
The recurring shape: a producer parses something into a DuckDB file; a consumer reads it. That seam — the schema is the contract — is deliberate, and it is where the suite’s versioning discipline lives (Chapters 3, 8, 10, 11).
Reading order¶
If you are the agent, you already read the Preface; come back here when a tool surprises you. If you are building or operating the suite, read straight through: Part I (this and the next chapter) gives the philosophy, Part II the engine and the agent’s main interface, Part III the verify/persist/govern loop, Part IV generation, memory, and policy.