DJ Von Frank AI Implementation

Client build · July 2026 · Generation 3

Homeowner Insights

A Florida reserve-study firm run by one person, paying a marketing agency a thousand dollars a month for work he was largely doing himself. This is the build where prose rules became executable gates.

$1,000+
per month saved
3 → 15
team size it now performs like
110
line constitution
12
installed skills
What is real here

Published with the principal’s permission, branding intact. What is not shown: anything belonging to his clients. A reserve study contains a community’s finances and property condition, and none of that appears here or in any material the system produces without recorded written consent. This engagement is pro bono. The saving is his, not my revenue.

Click any folder to open it, any file to see what it holds and why it exists. This is the real structure, with the contents described rather than reproduced.

Eight sections, 110 lines. Longer than the build before it because the reader needed it to be.

§1

Who this brain serves

The firm, the credential behind it, the services, and the rule that the reader is always the hero and we are the guide.

It also states plainly that the owner is new to AI, that explanations should avoid jargon, and that an ambiguous request should produce two or three multiple-choice questions rather than a guess.

§2

Load order

Constitution, behavior, hard limits, then only what the task needs. A prompt-enhancer runs silently before all of it.

§3

The folders

One line each, as a table.

§4

Trust order

Approved beats facts beats drafts. Anything not in an approved source is UNKNOWN, never guessed.

§5

Routing

Request type to exact file list, including which skill handles which deliverable.

§6

Hard rules

Never invent a fact, price, statute or credential. Never claim service beyond the state the firm actually serves. No fear-selling of any kind. Client confidentiality is absolute. And a scope rule: any request reaching outside this engagement stops and says so rather than answering.

§7

Output checklist

Nine checks, ending in the scanner rather than in a person promising they looked.

§8

Governance

One approver. Draft, review, approve, archive. Both deploy targets are git-connected, so a push rebuilds and republishes, with the QA gate inside the build.

The guardrails, framed the way they actually work: as things the system refuses to do.

NO

Invent a fact, price, statute or credential.UNKNOWN over guess, placeholder over fabrication. In a regulated field this is not a style preference.

NO

Claim service outside the state.The firm serves one state. The system refuses to write copy implying otherwise, however tempting the market.

NO

Fear-sell.No collapse imagery, no disaster references, no ticking-clock language. It would convert, and it is forbidden.

NO

Answer outside this engagement.A request that reaches beyond this firm stops immediately and says so, rather than producing something plausible for a question it was never given the facts for.

NO

Publish anything about a client.No client name, finances or property condition leaves the system without recorded written permission.

NO

Deploy with a violation.The QA gate runs inside the build. A missing meta description or an em dash in visible copy fails the deploy.

NO

Invent a local fact.The location-page generator verifies against live search and refuses to fill a gap with something plausible.

NO

Let the generated twin drift.The agent-neutral copy of the constitution is regenerated by script, never hand-edited.

The deploy gate, copied out of the client repository as it stands. Two sections are trimmed and both are marked. One of them is trimmed for a reason worth stating plainly: it names a company this client’s own rules forbid mentioning anywhere, including here.

Website/homeowner-insights/qa.mjs Homeowner Insights brain · 135 lines total, excerpted

This is the build where prose rules became executable gates. In the first system, no em dashes was item seven on a checklist, which is asking a model to mark its own homework. Here it is a regular expression with a non-zero exit behind it.

for (const file of files) {  const html = await readFile(file, "utf8");  const route = routeForFile(file);  const title = html.match(/<title>(.*?)<\/title>/s)?.[1] ?? "";  const description = html.match(/<meta name="description" content="(.*?)">/s)?.[1] ?? "";  const h1Count = (html.match(/<h1\b/g) ?? []).length;  const body = html.match(/<body>([\s\S]*?)<\/body>/)?.[1] ?? "";  const text = stripTags(body);   if (h1Count !== 1) errors.push(`${route}: expected one H1, found ${h1Count}`);  if (!html.includes('name="robots" content="noindex,nofollow"')) errors.push(`${route}: draft noindex guard is missing`);  if (!html.includes('type="application/ld+json"')) errors.push(`${route}: JSON-LD is missing`);  if (!html.includes('rel="canonical"')) errors.push(`${route}: canonical link is missing`);  if (!html.includes('property="og:title"') || !html.includes('property="og:description"') || !html.includes('property="og:url"')) errors.push(`${route}: Open Graph metadata is incomplete`);  if (title.length > 60) errors.push(`${route}: title is ${title.length} characters`);  if (description.length < 120 || description.length > 160) warnings.push(`${route}: meta description is ${description.length} characters`);   // ... 2 lines trimmed: a comment carrying the owner's name and an internal  // path inside his private repository ...   if (/[—–]/.test(text)) errors.push(`${route}: client-facing em or en dash found`); // ... 71 lines trimmed: the remaining name and brand-token gates, the JSON-LD// graph checks, the duplicate-paragraph ledger across the city pages, and the// image and link checks. One of the trimmed gates is specific to this client// and is not quoted ... if (warnings.length) console.log(`Warnings:\n- ${warnings.join("\n- ")}`);if (errors.length) {  console.error(`Errors:\n- ${errors.join("\n- ")}`);  process.exit(1);} console.log(`QA passed for ${files.length} pages with ${warnings.length} warning(s).`);

Twelve skills. Four generate deliverables, the rest keep the system honest.

proposal

Full proposals, with the final fee gated as the owner's decision.

one-pager

Strictly one page. The constraint is the feature.

email

Outreach and follow-up in the owner's captured voice.

board-leave-behind

The document left on the table after a board meeting.

new-blog-post

SEO-planned posts from the keyword research in the facts layer.

add-city-page

Location pages, live-search verified, refusing invented local detail.

pre-delivery-scan

381 lines. Runs the output checklist as code before handover.

competitor-refresh

Re-runs the competitive research method on a schedule.

file-answer

Files an answer from the owner: fact recorded, placeholder cleared, open item closed.

quality-control

Regenerates the constitution twin and audits for stale references.

deploy-preview

The manual fallback path, for when the git-connected build is not the right tool.

prompt-enhancer

Scores every incoming request before anything else runs.

No agent fleet on this build. It did not need one, and adding it would have been architecture for its own sake. What it has instead is a deployment pipeline that refuses to ship bad work.

QA inside the build

The site build and the quality gate are the same command. There is no path where a deploy happens and the checks did not run, because the checks are not a separate step someone could skip.

Structure, metadata, JSON-LD, house style, and a duplicate-content ledger across location pages. Any failure exits non-zero.

Generated twin sync

The constitution has an agent-neutral mirror. Two hand-maintained copies of the same rules diverge within a month, so this one is generated and the post-change checklist regenerates it.

The open-questions register

Everything the system needs and does not have, numbered, with an owner. Gaps get a file rather than a guess, and the client gets one place where ten minutes of their attention is genuinely useful.

Brand system v1.0. Every token carries its measured contrast ratio, and the failures are published as rules rather than nudged away.

Deepwater
#041E42
Brand navy. Ink on light, primary dark surface. 16.6:1 on Paper.
Harbor
#005F61
Links, labels and primary buttons in both contexts. 7.6:1 on white.
Paper
#F2F6F7
The light ground.
Spark
#FA4616
The insight. Dark grounds only. 3.2:1 on Paper, so never text on light, at any size.
Shoal
#99D9D9
Accent on dark only. 10.3:1 on Deepwater.
Seawall
#355464
Secondary text on light. 8.2:1.

Every change is logged with its reason. A change is not done until the system agrees with it.

2026-07-31Push-to-deploy on both targets

Both Cloudflare projects connected to git. Every push rebuilds and republishes, with the QA gate inside the build. Manual upload still works but is no longer the normal path.

2026-07-30Brand system v1.0

Tokens with measured contrast in every context, a pattern library, and a logo suite. Proposed pending the owner's approval.

PathWhat it holdsSize

Next

What came next

Generation four took the executable-gate idea further: verification became multi-agent, and the constitution itself became build output.

The layer under it

How every one of them runs.

The operating loop, the guardrails, the agent roster and the rest of the machinery, in one place.