Repository navigation
docs: SEO titles for the 67 English pages whose title tag was two words or fewer - #309
Merged
Merged
Conversation
…ds or fewer Adds a `seoTitle:` frontmatter line to every English page whose built `<title>` read as one or two words plus the ` | ObjectOS` suffix, so the tab/result title carries the terms a reader searches for while the H1, sidebar and breadcrumb keep the short noun (#166's mechanism). - 67 pages: each gains exactly one line; no `title`, `description` or body line changes. - Every title leads with the page's own specific term, lifted from its description and headings, and renders at 52–60 characters including the suffix (measured on the built HTML). - The three duplicated titles (Approvals, Dashboards, Notifications — each used by a build/configure page and a use page) are now distinct. - English only. Locale siblings are translation artifacts that a non-translator commit may not modify (AGENTS.md, Translation workflow; check-translation-ownership.mjs); the translation pass carries the new key over, and the output report lists the 163 siblings now missing it. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FeA1nwBz1ohH65dvffUGKr
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.
Fixes #167
What
A
seoTitle:frontmatter line on the 67 English pages whose built title tag read as one or two words plus the| ObjectOSsuffix (measured on the built HTML at601bb37: 67 of 79 pages). The H1, sidebar and breadcrumb keep the shorttitle; only the title tag,og:title,twitter:titleand the TechArticle JSON-LD headline change, which is what #166's mechanism was built for.title,descriptionor body line changes (git diff --numstat: 67 files, every one1 0; every added line is aseoTitle:line).Before and after, on the built HTML
content/docs/architecture.mdxcontent/docs/build/agents.mdxcontent/docs/build/ai-builder.mdxcontent/docs/build/automation/approvals.mdxcontent/docs/build/automation/index.mdxcontent/docs/build/automation/workflows.mdxcontent/docs/build/data/formulas.mdxcontent/docs/build/data/index.mdxcontent/docs/build/data/relationships.mdxcontent/docs/build/data/validation-rules.mdxcontent/docs/build/index.mdxcontent/docs/build/interface/actions.mdxcontent/docs/build/interface/apps.mdxcontent/docs/build/interface/dashboards.mdxcontent/docs/build/interface/forms.mdxcontent/docs/build/interface/index.mdxcontent/docs/build/interface/pages.mdxcontent/docs/build/interface/views.mdxcontent/docs/build/marketplace.mdxcontent/docs/build/packages.mdxcontent/docs/build/templates.mdxcontent/docs/configure/ai.mdxcontent/docs/configure/api-access.mdxcontent/docs/configure/authentication.mdxcontent/docs/configure/data-sources.mdxcontent/docs/configure/email.mdxcontent/docs/configure/index.mdxcontent/docs/configure/localization.mdxcontent/docs/configure/notifications.mdxcontent/docs/configure/permissions/field-level-security.mdxcontent/docs/configure/permissions/index.mdxcontent/docs/configure/permissions/managing-access.mdxcontent/docs/configure/permissions/permission-sets.mdxcontent/docs/configure/permissions/positions.mdxcontent/docs/configure/permissions/record-access.mdxcontent/docs/configure/runtime.mdxcontent/docs/configure/storage.mdxcontent/docs/configure/system-settings.mdxcontent/docs/configure/webhooks.mdxcontent/docs/deploy/air-gapped.mdxcontent/docs/deploy/docker.mdxcontent/docs/deploy/index.mdxcontent/docs/deploy/kubernetes.mdxcontent/docs/index.mdxcontent/docs/operate/audit-logs.mdxcontent/docs/operate/index.mdxcontent/docs/operate/observability.mdxcontent/docs/operate/production.mdxcontent/docs/operate/troubleshooting.mdxcontent/docs/quickstart.mdxcontent/docs/reference/cel.mdxcontent/docs/reference/cli.mdxcontent/docs/reference/environment-variables.mdxcontent/docs/reference/field-types.mdxcontent/docs/reference/objectql.mdxcontent/docs/reference/rest-api.mdxcontent/docs/reference/runtime-capabilities.mdxcontent/docs/reference/skills-cli.mdxcontent/docs/resources/faq.mdxcontent/docs/resources/glossary.mdxcontent/docs/resources/support.mdxcontent/docs/use/approvals.mdxcontent/docs/use/dashboards.mdxcontent/docs/use/index.mdxcontent/docs/use/notifications.mdxcontent/docs/use/views.mdxcontent/docs/why.mdxLocales: English only, by rule
The card asked to propagate
seoTitleinto existing locale files. That conflicts with the repository's rules, which win:AGENTS.md, Translation workflow: "You edit English. You do not edit translations. Every*.LOCALE.mdxfile is a derived artifact" and "Don't hand-edit a*.LOCALE.mdxfile, and don't 'just fix' one while you're in there.".github/scripts/check-translation-ownership.mjs: a non-translator PR may delete a locale artifact and "never add or modify one". The gate is dormant today only becauseTRANSLATION_BOT_LOGINis unset (The ownership check is inert on main until TRANSLATION_BOT_LOGIN is set #68, ruled letter A: enforce); run with the variable set, this diff still passes because it touches no locale file.docs/TRANSLATION.mdrule 1 and thefrontmatterfidelity rule: locale frontmatter keys must match the English keys, and the translation pass is what writes them.So this PR writes English only. The locale gap it leaves for the translation pipeline: 163 locale siblings of these pages now lack
seoTitle(check-translation-output.mjs --reportlists them asfrontmatter: missing key(s): seoTitle; reported, not gating), and the English sha change puts them on the translation worklist as stale (zh-Hans 39 to 49, the other five 24 to 26). TranslatedseoTitlevalues must be written against local search vocabulary, andzh-Hantregenerates fromzh-Hans.Gates (worktree
objectos-issue-167, commit7b4fd19, rebased ontocec227a)pnpm turbo run type-check --continue --force: exit 0 (✓ Types generated successfully, tsc clean).NEXT_PRIVATE_STANDALONE=true pnpm turbo run build --force(CI shape): exit 0,✓ Compiled successfully in 83s,✓ Generating static pages using 3 workers (1052/1052). The 351Failed to load dynamic fontlines are the OG-card font fetch refused by the container proxy's certificate chain; the baseline build of601bb37prints the same 351.pnpm turbo run test --force: exit 0 (all ten--self-testsuites inrun-self-tests.mjsgreen).check-locale-surface.mjs:✓ every advertised URL has a source file and every source file is advertised; both llms bodies carry every en-only page title ...check-positioning.mjs:✓ positioning: 4 copies equal their constants; the brand is right in 659 pages and 2 llms bodies; no stale sentence in 79 English sources ...check-search-locales.mjs:✓ search locales: all 8 locales answer 200, find "permissions", find every own page by its title, and find nothing for a noncecheck-translations.mjs:✓ translations gate passed.check-translation-output.mjs --files(CI PR scope):✓ translation output gate passed (261 pre-existing finding(s) reported), blocking on 0 changed translations.check-translation-ownership.mjs --actor 'objectstack-fleet[bot]' --files changed.txt(workflow argv,--name-status --no-renames): dormant runtouches 0 translation artifact(s) and 67 other file(s); withTRANSLATION_BOT_LOGIN=objectos-translator:✓ 67 file(s) changed, no translation artifacts touched.gen-zh-hant.mjs --check:✓ zh-Hant: 61 generated file(s) match the zh-Hans sources byte for byte.Acceptance notes
content/docs/index.mdx(/docs, wasIntroduction) is included. Comment 6010721523 on Author SEO titles for the 42 English pages whose title tag is a single word #167 reads as leaving index metadata to Docs metadata: the index share card prints a 511-character description over its title, /privacy and /terms ship no metadata, and an internal MDX note leaks into llms-full.txt and Copy Markdown #299, but docs: a short /docs description, legal-page metadata, share cards that fit, no MDX comments in llms bodies #304 (which closed Docs metadata: the index share card prints a 511-character description over its title, /privacy and /terms ship no metadata, and an internal MDX note leaks into llms-full.txt and Copy Markdown #299) set its description only and left the title atIntroduction; this card's scope is every page at two words or fewer, so it getsDocumentation: Quickstart, Build, Deploy, Operate. Dropping that one line restores the previous title if the seat reads the comment the other way.docs/TRANSLATION.mdnamestitleanddescriptionas the frontmatter values a translation pass translates;seoTitleis not named. A pass reading that literally could carry the EnglishseoTitleinto a locale file, which would render an English title tag on a translated page. Noted for the translation pipeline owner; not changed here (out of this card's scope).llms.txt,llms-full.txtand the sitemap still readtitle; that is by design (generateMetadatareturns four fields: docs pages ship no SEO title, no Open Graph, and no structured data #166) andcheck-locale-surfacepins the llms bodies totitle.cec227a(fix(docs): mark English fallbacks, localize the docs chrome, copy the page shown #306) with app code only; this branch is rebased onto it with nocontent/docsoverlap (67 files, each still1 0).Generated by Claude Code