You already know what a bad clause looks like. You just won't remember in June. Freelance Guardian reads every contract against your standing rules and every clause that has burned you — then marks it up and drafts the reply.
Read live from CockroachDB when this page loaded.
Read at different moments, written by different code. Collapsing them into one vector store is what makes agents feel amnesiac.
Your rules, and the clauses that burned you. Searched once per clause.
guardian_memory–One durable thread per client, replayed on every review.
guardian_chat_history–State written after each node. Killed mid-run, it resumes.
checkpoints4 nodesEach boundary is a checkpoint persisted to CockroachDB.
Pattern matching sees clauses that are present. It cannot see a protection nobody wrote. So the whole rule set is checked against the document.
Same contract, same client, twice. Every number below is asserted by the test suite — not described.
Don't take the page's word for it — run a review against the live agent now.
Fig. 3 — output of
scripts/test_graph.py run twice. The test fails if
any of these stops growing.
It's a missing term in your own contract. No single review can reach that conclusion — it exists only because every decision was written somewhere queryable.
SELECT f->>'clause' AS clause,
count(*) AS times_flagged,
count(DISTINCT client_name) AS clients
FROM agent_audit_log,
jsonb_array_elements(decision->'findings') AS f
GROUP BY 1
ORDER BY times_flagged DESC;
Real output from the audit log. Run it yourself over the CockroachDB Cloud MCP Server — the audit-memory Agent Skill ships in the repo with every query pre-written.
By default, no — and that is the point. The analyser is a deterministic
clause engine, so the same contract always yields the same verdict and the demo needs no API
key. Because it matches with re.search it knows the exact character offsets of
every offending phrase, which is what makes the redline possible at all. Set
MOCK_MODE=false and a real LLM runs through the same interface. The subject of
this project is the memory, not the model.
RAG is the semantic layer alone. Here memory is split three ways, read at different moments and written by different code. The episodic thread is why the agent knows what it already conceded to a client; the procedural checkpoints are why it can be killed mid-review and resume.
Yes, and you should. Connect to the CockroachDB Cloud MCP Server and query
agent_audit_log yourself. Every query in the shipped Agent Skill was run against
a live cluster before it was written down.
No. A fair contract scores 0 / accept with zero findings.
sample_data/clean_contract.md exists in the repo for exactly that reason — a
reviewer that only ever rejects tells you nothing.
No. It flags commercial risk against rules you wrote, and drafts a counter-offer. It is not a lawyer, and the scoring weights are hand-tuned — marked as such in the source rather than dressed up as science.
Nothing. CockroachDB Basic, AWS Lambda, S3, API Gateway and CloudFront all sit inside their free tiers, and the default analyser makes no paid API calls.
The sample has eleven traps planted in it. The clean one has none. Same agent, opposite verdicts, no key and no signup.