site: rename the blast-wall position — "Never Let Your Agent Touch the Database"#98
Merged
Conversation
…e Database"
Huayin's terminology-collision ruling. The homepage says "data model" three times and "the model"
three times, eleven lines apart, so a stranger could coherently read the entrance as a rule about
Columna's OWN Manifold — inverting the pitch at the exact block designed to convert. Zero external
links point at the piece, so the rename is free.
RENAMED ACROSS EVERY SURFACE THE STRING TRAVELS TO (grep list in the PR):
· the piece's H1 (corpus) and its <BaseLayout title> metadata
· the /positions index entry
· the homepage entrance block (link title) AND the ordered-path rung
· /learn's Positions group
· the Latest rail (data/latest.ts)
· llms-full — the H1 flows through by import (verified in built output, not assumed)
· PrecisionRecallFigure's header comment — WHICH MY FIRST GREP MISSED, because the title is
line-wrapped there. Found on the follow-up sweep; a line break defeats a fixed-string grep.
SLUG: /positions/never-let-your-agent-touch-the-database, with a PATH redirect in astro.config.mjs.
A path is exactly the case Astro's `redirects:` handles — unlike #exhibit-b, where the fragment never
reaches the server and only a client-side shim could work. Verified: the old path emits a static stub
with http-equiv refresh to the new URL.
ENTRANCE ONE-LINER re-ratified: "Why your agent should never hold database credentials — and what to
put between them. Three minutes."
DISAMBIGUATION SWEEP. The body's first "the model" (line 13) already sits in a sentence opening "an
LLM with database credentials", so that use was never ambiguous. The real exposure was the OPENING
two lines, which named no actor at all — a reader landing there had nothing to anchor on. The opening
now reads "...for three different reasons — the one where an AI agent holds your database credentials
and writes its own queries." The title stays clean; the first sentence does the disambiguating work.
Verified: build green (29 pages); prose-coherence green; the new title on all five HTML surfaces plus
llms-full; the old title absent from dist except the redirect stub (which carries no title); the
ordered ladder unchanged with the argument still at rung 4.
Co-Authored-By: Claude <noreply@anthropic.com>
Huayin's pull-quote ruling: change the BODY, not the display. The thesis line is the piece's quotable claim — it gets excerpted into the index, the channels, and other people's screenshots — and a quotable line must survive separation from its context. Fixing only the display surface would have left the collision live in every future quotation. was: "The model never touches the database. Not directly, not through generated SQL, ..." now: "Your agent never touches the database. Not directly, not through generated SQL, ..." The /positions index pull follows the body and remains a VERBATIM quote of it. Verified on all three surfaces (the piece, the index, llms-full); the old wording is absent from dist entirely. NO SWEEP, as ruled. The body's six other uses of "the model" stay: they sit inside established context and several are precise as written — line 85's "the model holds no database credentials" is exactly right, because it is the model specifically, not the agent process, that holds no credentials. BUILD-DOC LINE — the wrapped-grep proverb, promoted to #4 (the sentinel proverb becomes #5): "A fixed-string grep cannot see a LINE-WRAPPED occurrence. Sweep for a distinctive SHORT partial, never the full phrase, whenever the target is prose that may wrap." It earned the entry by biting TWICE in one turn: the full-title grep missed PrecisionRecallFigure's comment (title wrapped mid-phrase), and then a grep for "the model holds no database credentials" missed line 85, where the line breaks after "no" — and even the shortened "holds no database" still spanned the wrap. Same failure family as name/path/package/tree-state, in a fifth disguise: the probe did not match the referent's actual shape. Also recorded: the disambiguation placement correction — line 13 was already anchored by "an LLM with database credentials", so the real gap was the opening two lines naming no actor at all. Checking the text rather than applying the instruction literally is what found it. Build green (29 pages); brace-balance verified on the stylesheet. Co-Authored-By: Claude <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Huayin's terminology-collision ruling. The homepage says "data model" three times and "the model" three times eleven lines apart, so a stranger could coherently read the entrance as a rule about Columna's own Manifold — inverting the pitch at the exact block designed to convert.
The grep list — every surface the string travels to
corpus/position_never_let_the_model_v1_1.md:1positions/never-let-your-agent-touch-the-database.astro:26<BaseLayout title>metadatapositions/index.astro:16index.astro:50index.astro:23learn.astro:39data/latest.ts:44llms-full.txt.ts:60PrecisionRecallFigure.astro:2On #9: the title is line-wrapped in that comment (
"Never Let the Model Touch/the Database"), so a fixed-string grep for the full title could not see it. Found on the follow-up sweep for the partial string. Worth recording: a grep for a multi-word string silently misses every wrapped occurrence — the same referent-probe failure mode, in a new disguise.Slug + redirect
/positions/never-let-your-agent-touch-the-database, with a path redirect inastro.config.mjs. This is precisely the case Astro'sredirects:handles — unlike#exhibit-b, where the fragment never reaches the server and only a client-side shim could work. Verified: the old path emits a static stub withhttp-equiv="refresh"to the new URL. (Live verification follows the deploy.)The disambiguation sweep — the exposure wasn't where it looked
The body's first
the model(line 13) already sits in a sentence opening "an LLM with database credentials" — so that use was never ambiguous. The real exposure was the opening two lines, which named no actor at all: a reader landing there had nothing to anchor on.The opening now reads: "…for three different reasons — the one where an AI agent holds your database credentials and writes its own queries." Title stays clean; the first sentence does the disambiguating work, exactly as ruled.
Entrance one-liner, re-ratified
"Why your agent should never hold database credentials — and what to put between them. Three minutes."
🟡 One thing the screenshot exposed — flagging, not changing
The
/positionsindex pull quote is still the piece's own thesis sentence, quoted verbatim: "The model never touches the database…" It's ratified copy and it's inside the piece, so I left it — but on the index it now sits directly under the new title, and that adjacency reproduces the collision in miniature: "Your Agent" in the heading, "The model" in the line beneath.Options: (a) leave it (the body legitimately says "the model" once context is set); (b) re-quote from the piece's later, unambiguous thesis line; (c) ratify a one-word change in the body. Your call — I won't edit a verbatim pull quote unasked.
Gates
Build green (29 pages) · prose-coherence green · new title on all five HTML surfaces + llms-full · old title absent from
distexcept the redirect stub · ordered ladder unchanged, argument still at rung 4 · screenshots of the entrance and the positions index.🤖 Generated with Claude Code