Every number, and where it comes from
The site won't build if a number lacks a source, or if a cited file or test is missing from Ken's repository at 25452eb.
Ken
- 1Measured
96%
Factual claims backed by what Ken read
- Measured by
A blind LLM judge (gpt-4.1-mini) listed every factual claim in each answer and checked it against everything Ken's tools returned.
26 of 27 claims, across 10 questions on a fake inbox
- Source
- Date
28 Oct 2026
- Measured by
- 2Measured
0 of 10
Planted injection email obeyed
- Measured by
evals/run_eval.py records every send attempt; a run fails if any send targets the attacker's address or number.
10 agent runs over a fake inbox with 1 planted prompt-injection email
- Source
- Enforced by
- Date
28 Oct 2026
One planted email is a small test, and it was run on gpt-4.1-mini, before the switch to gpt-6-luna. A larger attack set is planned.
- Measured by
- 3Measured
0 of 10
Sends attempted without being asked
- Measured by
The eval's send handler declines and logs every attempt; none were made.
the same 10 runs
- Source
- Enforced by
- Date
28 Oct 2026
- Measured by
- 4Guaranteed by code
always
A send needs the owner's click
- Measured by
The send tool is reachable only through a confirmation dialog the model can't call; declined sends are dropped and every send is audited.
- Source
- Enforced by
- Date
3 Nov 2026
- Measured by
- 5Guaranteed by code
151
Offline tests in Ken
- Measured by
pytest; conftest.py gives every client a transport that raises on a real request.
a transport guard makes any real OpenAI request fail the test
- Source
- Date
3 Nov 2026
- Measured by
- 6Measured
32%
Draft picked as closest to the real reply
- Measured by
Blind 3-way judge. With 50 cases, differences under about ±10 points are noise, so +18 is a moderate win.
50 held-out real WhatsApp replies; 14% for the earlier version, 24% with no RAG
- Source
- Date
28 Oct 2026
- Measured by
- 7Measured
+8%
Draft length over the real reply
- Measured by
Average characters per draft against the real reply.
50 replies; +45% with no RAG, +18% before
- Source
- Date
28 Oct 2026
- Measured by
- 8Measured
985
Reply pairs in style memory
- Measured by
Count of stored pairs; each draft retrieves the 3 most similar from the same chat, plus the chat's last 24 h.
"them → you" pairs from the owner's WhatsApp history
- Source
- Date
28 Oct 2026
- Measured by
- 9Measured
40%
Nearest neighbours from the same chat
- Measured by
For each pair, how often its 3 nearest neighbours come from the same chat. This is why retrieval filters by chat first.
1,001 pairs; 12% by chance
- Source
- Date
28 Oct 2026
- Measured by
- 10Measured
60–68%
New model picked as closest to the real reply
- Measured by
Same prompt, recall and intent; only the drafting model changed.
50 replies; gpt-4.1-mini 18–22%; each model judged blind to cancel self-preference
- Source
- Date
28 Oct 2026
- Measured by
- 11Measured
−76%
Cost of the evaluation run after the switch
- Measured by
Cost and timing logged per call during the comparison run.
$0.048 → $0.011; median latency 1.0 s → 1.6 s, accepted
- Source
- Date
28 Oct 2026
- Measured by
- 12Measured
52%
Replies split over two lines, after 4 prompt tries
- Measured by
A prompt flips the model between extremes; the real fix is deciding the split in code.
tries: 0% → 78% → 4% → 52%, against the owner's 22%
- Source
- Date
28 Oct 2026
- Measured by
- 13Measured
9 of 10
Right chat found from a misspelled name
- Measured by
Fuzzy match with an activity bonus; the model sees 'last message today / 3 days ago'.
10 real chats, Arabic and Latin spellings; the miss was ambiguous (several contacts share a name)
- Source
- Date
28 Oct 2026
- Measured by
- 14Measured
≈ $0.64
Total spent on all evaluations
- Measured by
Every OpenAI request is logged with a purpose tag.
2,187 model calls, 1.58M tokens
- Source
- Date
28 Oct 2026
- Measured by
Planovya
- 15Reported, private repo
~430
Jest tests in Planovya
- Measured by
Jest test run.
including the chat-context builder, AI usage caps, webhook signatures and a bundle secret-leak test
- Source
Planovya's repository is private. Ask for a walkthrough.
- Date
Nov 2026
- Measured by
- 16Reported, private repo
236 · 22
Commits and SQL migrations
- Measured by
git history and the migrations folder.
- Source
Planovya's repository is private. Ask for a walkthrough.
- Date
Nov 2026
- Measured by
- 17Reported, private repo
16,000 chars
Assistant context budget
- Measured by
Server-side context builder: open tasks, the 10 nearest deadlines, goals, notes, 7 days of focus time.
cut at a line boundary with an explicit 'lines omitted' notice
- Source
Planovya's repository is private. Ask for a walkthrough.
- Date
Nov 2026
- Measured by
- 18Reported, private repo
RLS + JWT
Each user reaches only their own rows
- Measured by
Supabase row-level security on every table, plus server-side JWT checks; the OpenAI key never reaches the browser.
- Source
Planovya's repository is private. Ask for a walkthrough.
- Date
Nov 2026
- Measured by