mirror of
https://github.com/hanzo-apps/hanzo.ai.git
synced 2026-10-30 14:58:08 +00:00
The first pass fixed 17 of the 33 pages serving the root's title and said the
remaining 16 needed copy written. They did not — each already has an <h1> and a
lede, which is what the fixed 17 were built from. /cookies calls itself "Cookie
Policy", /jin "Text, vision, audio, and 3D in a single model", /operative names
its own framework in a sentence. Reading them was the work; there was nothing to
write. All sixteen now carry their own words.
Then the gate, which found four more that no count of the sitemap could:
/overview — a SERVER page with real metadata whose title was
SITE_TITLE verbatim, so it did not inherit the string, it
claimed it. Its OG url pointed at cloud.hanzo.ai. The
layout generated for it in the first pass was dead weight:
a page's own metadata beats its layout's. Deleted.
/zen/models — wore its parent's title, and the parent wore the CHILD's
/open-source/… ("Zen Models"), so the pair read as one page listed twice.
Neither inherits from the ROOT, so counting against the
root's title cannot see either of them.
/models/zen — "Zen — open-weight model family", true and anonymous. A
tab shows ~20 characters and a search result one line.
CORRECTION to the previous commit: /download's heading is NOT missing a space.
The markup is `<span>Everything you love,</span><br/><span>across every app.</span>`
— my extractor stripped the tags and joined them. Nothing to fix on that page.
The gate reads `out/` and asks `lib/publish`'s own `policy()` which pages a
crawler may index — 578 of the 836 that ship. That scope is the point. 136
pages serve the default title and 135 of them are the signed-in app shell,
`private` or `noindex`, where a per-route title is a feature to build and not a
metadata line to write. A gate red on unscheduled work teaches people to skip
it. Sniffing for a `noindex` tag instead would have called all eleven auth
surfaces indexable — they carry no tag BY DESIGN, since a robots Disallow is
exactly what stops the tag ever being read. The predicate already exists; ask
it.
Five laws, all measured on the bytes and not the source, because `metadata` in
a 'use client' file reads correctly and compiles to nothing: the subject is the
whole public site (an empty derivation would pass every other assertion), no
page inherits the default title, no two pages claim the same title, every title
names the brand, no page inherits the default description.
47 gates green.
Co-authored-by: Hanzo Dev <[email protected]>
9 lines
329 B
TypeScript
9 lines
329 B
TypeScript
import { pageMeta } from '@/lib/page-meta'
|
|
export { default } from '@/lib/meta-layout'
|
|
|
|
export const metadata = pageMeta({
|
|
title: 'Hanzo Insights',
|
|
description: 'Understand user behavior with event analytics, session recording, funnels, and A/B testing. Roll out features safely with feature flags.',
|
|
path: '/insights',
|
|
})
|