llm
Technical notes on web development, DevOps, and AI integration.
23 articles
- 16:15security
Closing the Data Leak in an Automated Article Pipeline
Briefs headed to an external chatbot still carried hostnames and real repo names. A three-checkpoint mechanical gateway shut it.
TL;DR: Internal data was leaking to an external LLM, an architecture flaw not a prompt issue. The fix is a three-stage gateway that rewrites real identities to fictional ones before the model sees them, blocks pushes with real tokens, and scans published posts. It uses reserved example domains and doc IPs, and found seven leaks in 564 articles.
#security#prompt-injection#privacy - 14:35seo
Two Route Handlers for llms.txt, Zero Drift
Adding llms.txt route handlers to a bilingual Next.js App Router site and generating the file from the same content modules the pages render.
TL;DR: The author initially assumed llms.txt was a sitemap for LLMs, but it's actually a small curated markdown overview agents fetch on demand, with no SEO payoff today. They added two Next.js route handlers serving it as static plain text with caching. The key takeaway: generate it from the same content modules as your pages to prevent drift.
#nextjs#llms-txt#aeo - 10:01ai
Hidden instructions in media files: prove they stay data
The transcript must carry the hijack sentence verbatim as data. That is exactly how you prove a media file never acted as an instruction.
TL;DR: The author deliberately embedded a prompt-injection sentence into an audio fixture to test a media pipeline's defenses. Counterintuitively, the test requires the hostile transcript to stay verbatim and labeled untrusted, since injection is about text switching from data to instructions. The real defense is a contract proving content never becomes commands, not filtering text or trusting the model's intelligence.
#prompt-injection#llm-security#whisper - 07:42ai
Golden-File Verification Runners: No Self-Grading
A 70/0/0 acceptance run made me think my agent pipeline was deterministic. It was the runner that deserved the credit; temperature 0 was no guarantee.
TL;DR: A flawless 70/0/0 acceptance run looked like proof of a deterministic agent pipeline, but it really validated the harness, not the model. Temperature zero doesn't guarantee reproducibility either; batch invariance and LLM-as-judge studies show outputs and verdicts still flip. Trustworthy results come from test isolation plus byte-level diffs against golden files, never from an agent grading its own work.
#ai-agents#testing#evaluation - 00:15ai
The Claude Code cost brake turned out not to be the turn limit
I thought --max-turns was keeping my delegation costs down. It only counts rounds; the flag that actually holds dollars is --max-budget-usd.
TL;DR: A test revealed Claude Code's --max-turns flag doesn't limit spending; a single-turn task cost $0.045 without ever touching its cap of two. By contrast, --max-budget-usd actually halted a run mid-turn once spending passed $0.01. The takeaway: use budget caps to control costs, keeping turn limits only for stopping endless loops.
#claude-code#cli#llm - 14:23tooling
The Context Guard: Validating What Your Pipeline Sends
A prompt assembly failure can send a naked question to an AI chat and still pass as grounded synthesis. A cheap input-side guard keeps the chain honest.
TL;DR: The pipeline sent a naked question to the AI with zero context, yet the generic answer passed all validation because checks only ran on output, never input. The fix is a cheap context_present() gate requiring either 400 characters or a URL, tagging results as missing or ok. It warns without blocking, since harsh guards get deleted.
#python#automation#llm - 10:43tooling
My Local Token Prices Were Wrong. It Was Just a Name
The token-saver dashboard priced my daily route from the wrong model family because a gateway name matched nothing in the catalog.
#ollama#llm#hermes - 00:36devops
A Loopback Publish in Compose Was Not Enough
I published a proxy port on loopback and a process on the same host still got refused. Docker filters by door, not by who is knocking.
#docker#llm#security - 22:38ai
Why My Internal Prompts Are All in English
Machine prompts on my cron pipeline moved to English for one reason: one control variable across a router of very different models.
#prompt#prompt-engineering#llm