Skip to content

feat(website): first-person /about prose, sourced and guarded - #828

Merged
blove merged 1 commit into
mainfrom
blove/about-prose
Aug 24, 2026
Merged

feat(website): first-person /about prose, sourced and guarded#828
blove merged 1 commit into
mainfrom
blove/about-prose

Conversation

@blove

@blove blove commented Aug 24, 2026

Copy link
Copy Markdown
Contributor

Follow-up to #826, which shipped /about as a deliberate skeleton with the connective prose flagged for replacement.

What changed

The page now carries Brian's own account in first person: the arc from Hamilton College → CTO at Webucator → LiveLoveApp → Polaris with Mike Ryan → Azure AI RAG work → Hashbrown → Threadplane, closing with two verbatim paragraphs from his site.

Every biographical claim traces to brianflove.com/about-me (retrieved 2026-08-24). Nothing was inferred or embellished — no years of experience, awards, talks, or clients beyond what he already publishes.

Why the prose lives in a module

about-content.ts carries a provenance comment naming the source, which lets the spec assert the page renders exactly those paragraphs and no others.

That preserves what the original spec was built to do. Its comment says it plainly: this page is an E-E-A-T signal, so it's precisely the surface a fabricated credential would appear on — and structured data makes such a claim durable and machine-readable. The old test tied prose to the author record; since the biography is now sourced externally, the guard moves with it rather than being dropped.

The guard is mutation-tested. Injecting a fake paragraph — "I have twenty years of experience and hold a Google Developer Expert award" — fails the suite:

FAIL  src/app/about/page.spec.tsx > adds no biographical prose beyond the sourced paragraphs
AssertionError: expected 8 to be 7

Two data decisions

bio updated. From "Angular consultant and open-source maintainer" to his current self-description. It feeds every blog byline and the /about meta description, so the site now states one role instead of two that disagree.

knowsAbout deliberately unchanged. It renders as a schema.org expertise claim, and its comment scopes it to subjects with docs and code in this repo. Brian's RAG and Azure AI Search work is real but isn't evidenced here — structured data is the wrong place to assert what the site can't demonstrate.

No Hashbrown → Threadplane relationship claim. Hashbrown is credited to Brian and Mike Ryan; how the projects relate is Brian's to characterise, not mine to infer.

Verification

  • npx vitest run --config vite.config.mts from apps/website: 313 passed, 5 failed — the same pre-existing failures in thanks/page.spec.tsx, PostCard.spec.tsx, Differentiator.spec.tsx, none touched here (308 passed before; 5 added tests account for the delta)
  • nx lint website: 0 errors, 29 warnings (unchanged)
  • nx build website --configuration=production: succeeds
  • Built HTML: meta description updated, Person JSON-LD description matches, knowsAbout unchanged, 0 images (no headshot exists)
  • Rendered in the dev server: one h1, three h2, all seven paragraphs in order, no horizontal overflow

🤖 Generated with Claude Code

The page shipped in #826 as a factual skeleton: a name, a role, and a one-line
bio, with the connective sentences written by an agent and flagged for replacement.
Replace them with Brian's own account, in first person.

Every biographical claim traces to brianflove.com/about-me (retrieved 2026-08-24),
and two paragraphs are verbatim from it. The prose lives in `about-content.ts`
rather than inline in the route for one reason: the module carries a provenance
comment naming the source, and the spec can assert the page renders exactly those
paragraphs and no others. That preserves what the original spec was built to do —
this page is an E-E-A-T signal, so it is precisely the surface a fabricated
credential would appear on, and structured data makes such a claim durable and
machine-readable. The guard is mutation-tested: injecting an invented "twenty
years of experience and a Google Developer Expert award" paragraph fails the suite.

`bio` moves from "Angular consultant and open-source maintainer" to Brian's
current self-description. It feeds every blog byline and the /about meta
description, so the site now states one role rather than two that disagree.

`knowsAbout` is deliberately unchanged. It renders as a schema.org expertise
claim and its comment scopes it to subjects with docs and code in this repository.
Brian's RAG and Azure AI Search work is real but not evidenced here, and
structured data is the wrong place to assert what the site cannot show.

Deliberately absent: any statement of how Threadplane relates to Hashbrown.
Hashbrown is credited to Brian and Mike Ryan; the relationship between the
projects is Brian's to characterise, not something to infer.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@vercel

vercel Bot commented Aug 24, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
threadplane Ready Ready Preview Aug 24, 2026 5:13pm

Request Review

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Automated approval: this PR received an intelligent (AI) code review. See the review comments on this PR.

@github-actions

github-actions Bot commented Aug 24, 2026

Copy link
Copy Markdown
Contributor

Claude finished @blove's task in 0s —— View job


I'll analyze this and get back to you.

@blove
blove merged commit d277715 into main Aug 24, 2026
28 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant