Repository navigation
v1.6.0
The site assistant now knows about the writing.
Before this it answered from the resume and case studies only, so
"has he run Rust under load?" — the subject of four thousand words and a
deliberate database-murder load test — got a resume bullet.
The system prompt is rebuilt every ten minutes and sent with EVERY
message. The module-scope cache saves database queries, not tokens.
Anything added is therefore paid for on every turn, and would grow
without limit as posts accumulate: fine for a resume, which is bounded;
wrong for a blog, which is unbounded by design.
Every post contributes title, excerpt and section headings. Only the
newest three contribute their full body.
full body ~2,337 tokens/post
title + excerpt + headings ~145 tokens/post
A 16:1 ratio, and that ratio is the entire design. Headings are the
load-bearing part — "Act III: The Execution", "A Database Designed to
Survive the Firehose" describe the territory precisely enough for the
model to answer specifically and cite the path.
Projected total prompt:
posts | this design | every post in full
2 | 11,362 | 11,073
10 | 14,855 | 29,765
100 | 27,860 | 240,050
Two honest notes, both in the doc. This is linear with a smaller slope,
not flat. And at two posts it is marginally WORSE than sending
everything, because both are already full and now pay for headings too —
it starts paying off around four posts.
With full text, asked whether Sumit had tested Rust under load: correct
figures, correct slug, nothing invented.
With full text disabled, asked for an exact p99 it had not been shown:
it declined to guess, pointed at the post and offered the contact form.
That is the failure mode that matters, since summarised posts are the
ones it could confabulate about.
Written to be read cold. Measurements, the three options considered and
why retrieval was not built yet, the projection, the trigger for
switching to it, the two cheaper optimisations that come first (the
projects section is 70% of the base prompt), and the failure modes.
Read it before changing FULL_POSTS_IN_PROMPT.
- The active tag chip on the blog index measures 3.93:1, below AA.
- The contact page still says "I write on Twitter" and links there —
a CMS edit, not code. - The home page links to no post.
- Production still requires a manual "Promote to Production" in Vercel.