docs: positioning follow-up: home title, cover re-render, README on the four promises, Business Ontology page - #21591
Merged
objectstack-fleet[bot] merged 6 commits intoOct 3, 2026
Conversation
… north-star with the slogan HOME_TITLE on the docs home page now reads "The ontology is the software" (it feeds the document title, the Open Graph and Twitter card titles and the JSON-LD headline); the HERO_COVER alt in lib/site.ts carries the descriptor; the glossary's UI Protocol entry drops Themes, retired at protocol 18; the north-star page gains the one bridge sentence. Claude-Session: https://claude.ai/code/session_011hRnra93sK5Q2gTYYTbdJR Co-authored-by: Claude <noreply@anthropic.com>
… glossary bridge to it content/docs/concepts/ontology.mdx is the authority on what "business ontology" means here: the core (objects and fields, relations, actions, permissions, flows, agent and tool definitions), the projections (views, dashboards, apps, translations), what it is not (a knowledge ontology with inheritance, axioms and a reasoner; the industry's read-only semantic layer; a philosophical ontology), how the runtime derives and enforces it, and how AI writes and operates it. Registered in the concepts meta.json after metadata-driven. The docs landing page opens on the slogan and descriptor and links the page; the glossary's Business Ontology entry shrinks to a six-line definition plus the link, with the semantic-layer distinction beside the existing analytics-dataset sentence. Claude-Session: https://claude.ai/code/session_011hRnra93sK5Q2gTYYTbdJR Co-authored-by: Claude <noreply@anthropic.com>
The hero is the slogan, the descriptor, the Chinese signature line and one proof line; the chip row is the four promises plus the licence. The ontology paragraph with its caveat moves out of the hero into "What we mean by ontology", right before the capability section. Sections are reordered on the slogan's spine: Try it in five minutes, What we mean by ontology, The runtime runs it (was "What one definition gives you"), Agents are the first users (was "Your app is AI-operable, for free", moved up), Why the mistakes don't ship, You own it (the LICENSING sentence and the blog quote consolidated), Ship it, Hack on the framework. No page in content/docs or apps/docs links a renamed README anchor (measured: zero hits). Claude-Session: https://claude.ai/code/session_011hRnra93sK5Q2gTYYTbdJR Co-authored-by: Claude <noreply@anthropic.com>
…e beside it The README hero (docs/screenshots/hero-cover-dark.png, 2400x1200) and the docs site's og:image / video poster (apps/docs/public/hero-cover-dark.webp) now carry the headline "The ontology is the software.", the descriptor and the chips Executable · AI-writable · Agent-operable · You own it · Apache-2.0. There was no design source in the repo; the cover is now a screenshot of docs/screenshots/hero-cover-dark.html taken by docs/screenshots/render-hero-cover.mjs with the preinstalled Playwright Chromium (resolved from the showcase example's @playwright/test), and the webp is derived from that PNG by sharp (quality 80, effort 6, as the HERO_COVER provenance block prescribes; sharp resolved from the docs app's Next dependency). The provenance block records the new bytes (563,953 B PNG, 85,472 B webp) and sharp 0.35.4; the declared 2400x1200 is unchanged and matches the files. Claude-Session: https://claude.ai/code/session_011hRnra93sK5Q2gTYYTbdJR Co-authored-by: Claude <noreply@anthropic.com>
…doc ledger check:docs-audit-scope reds when a hand-written page exists under content/docs/ and the ledger does not list it, because a run that calls itself a full audit would silently skip it. Regenerated with the gate's own --write. Claude-Session: https://claude.ai/code/session_011hRnra93sK5Q2gTYYTbdJR Co-authored-by: Claude <noreply@anthropic.com>
Contributor
📓 Docs Drift CheckNothing in this diff resolved to a documentable surface (no symbol, route or SDK anchor derived from 0 changed package(s)), so this run has no opinion about the docs. What this run could not see
Coarse fallback — 0 page(s) merely mention a changed package (the pre-#9192 predicate, kept for the deliberately-wide backstop): |
The chip row under the docs home page hero sat directly above the re-rendered poster, whose chips are the four promises; the row still read the pre-slogan trio. Same markup, four spans, three separators: Executable | AI-writable | Agent-operable | You own it. Claude-Session: https://claude.ai/code/session_011hRnra93sK5Q2gTYYTbdJR Co-authored-by: Claude <noreply@anthropic.com>
objectstack-fleet
Bot
deleted the
claude/issue-21586-positioning-follow-up
branch
October 3, 2026 14:32
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 #21586
Clause-②: no
What changed
Positioning follow-up after the slogan landed: the four inconsistencies that pass left behind, the README restructured on the four promises, a Business Ontology concept page, and the glossary and north-star bridges. Docs only: no
packages/**, nocontent/docs/references/**, nocontent/docs/releases/**, no CHANGELOG. The only binaries touched are the two cover images.Part A: inconsistencies
apps/docs/app/[lang]/page.tsx:HOME_TITLEis now "The ontology is the software". Measured: one constant, four readers (document title line 56, Open Graph title 67, Twitter card title 76, JSON-LD headline 112), so one edit moved all four.apps/docs/lib/site.ts:HERO_COVER.altis now the descriptor sentence.docs/screenshots/hero-cover-dark.htmlrendered bydocs/screenshots/render-hero-cover.mjswith the preinstalled Playwright Chromium (@playwright/testresolved fromexamples/app-showcase, the one workspace package that declares it; neverplaywright install). The masterdocs/screenshots/hero-cover-dark.pngis 2400x1200, 563,953 B;apps/docs/public/hero-cover-dark.webpis derived from that PNG by sharp 0.35.4 / libwebp 1.6.0 at quality 80, effort 6, as the provenance block prescribes: 2400x1200, 85,472 B, 15.2% of the PNG. The provenance block onHERO_COVERrecords the new bytes and names the template; the declared 2400x1200 is unchanged and matches both files. The dashboard on the right is a simplified CSS card, because the repo holds no standalone dashboard screenshot (the old one was baked into the previous master) and the card allows no new binary. The script refuses to overwrite the committed files when the web fonts (Inter, IBM Plex Mono, from Google Fonts) did not load, so an offline render cannot ship the system fallback silently;--out DIRpreviews without touching them.packages/spec/src/migrations/entries/semantic/18.stack-themes-carrier-retired.ts.Part B: README
本体即软件。as the one Chinese line, and the proof line "Apps small enough for AI to hold whole." The Chinese descriptor sentence is removed per the PM ruling for this card (no README.zh-CN.md).claude mcp addsnippet kept), Why the mistakes don't ship (body unchanged), You own it (the LICENSING sentence from under the video and the blog quote consolidated), Ship it, Hack on the framework.grep -rn "README.md#" content/docs apps/docs README.mdhit 0; agit grepof all six section slugs across the whole tree hit 0. Nothing to update;check:published-readme-linksandcheck:doc-anchorsare green.Part C: docs site
content/docs/index.mdx: the first paragraph is the slogan and the descriptor, with one sentence linking the concept page; the frontmatter description is aligned; the build-loop diagram and the rest are unchanged.content/docs/concepts/ontology.mdx(new): what the ontology is, what the projections are, what it is not, how the runtime executes it, how AI writes it and uses it. Registered incontent/docs/concepts/meta.jsonright aftermetadata-driven, and inscripts/docs-audit/handwritten-docs.json, becausecheck:docs-audit-scopereds on a hand-written page the ledger does not list (regenerated with the gate's own--write; that file is the one path outside the card's named surface).content/docs/concepts/north-star.mdx: the one bridge sentence, nothing else.The four facts are present in every piece of copy that explains the word (README "What we mean by ontology", the ontology page, the glossary entry): no object inheritance, axioms or reasoner; not a semantic layer over existing systems; views, dashboards, apps and translations are projections; code does not disappear, it moves into the runtime. No retained figure was added.
Verification (head 7a49e29, clean tree)
pnpm --filter @objectstack/spec buildunder the verify lock: VERDICT command-exit 0 (97s).pnpm --filter @objectstack/docs build: VERDICT command-exit 0 (173s; "Compiled successfully", "Finished TypeScript in 5.9s";ignoreBuildErrors: false, so the build is the docs app's type check). No tracked generated file moved after the build (git statusclean).check:nul-bytes,check:doc-anchors,check:doc-authoring,check:docs-single-h1,check:docs-transcript-drift,check:published-readme-links,check:docs-redirects,check:docs-locale-catch-all,check:page-declaration-shape,check:docs-audit-scope,check:corpus-claim-drift,check:docs-spec-enumerations,check:role-word,check:published-files,check-docs-nav-label,check-docs-section-name,check-doc-frontmatter,check-doc-route-spelling --advisory,check-section-landing-index,check-undeclared-dep-imports, lintcheck:doc-formula-expressions, lintcheck:doc-security-posture.check:skill-examplesadditionally needed@objectstack/client-reactbuilt):check:docs,check:empty-state,check:liveness,check:skill-examples(260 prose examples type-check),check:strictness-ledger,check:variant-docs,check:yaml-examples, all exit 0.scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstackderived 68 families from the change set; every one was run with its exit captured before any pipe and reconciled with--ran. Three gates first answered exit 3 PREREQUISITE NOT MET (@objectstack/lint/@objectstack/formulanot built) and were re-run green after the build; those first answers are not measurements.pnpm exec eslint --no-inline-config --format jsonover the three changed JS/TS files (render-hero-cover.mjs,site.ts,page.tsx) reports 3 files, 0 errors, 0 warnings; the population is the config's generic blockfiles: ['**/*.{ts,tsx,mts,cts,js,jsx,mjs,cjs}'], which covers all three; the config is not type-aware (noparserOptions.project), so this diff cannot move any untouched file's verdict. The whole-treepnpm lintstays CI's.packages/**is untouched (measured on the diff againstorigin/main), soskip-changesetapplies.Acceptance notes
page.tsx, the threespanelements near line 261: "Fits in an agent's context", "Typed, validated, governed", "Self-host anywhere") still carries the pre-slogan chips, directly above the poster whose chips are now the four promises. The card does not name it, so it is left as is. Carrier: the next positioning pass.examples/app-showcase, not frompackages/qaorapps/docs;HOME_TITLEhad exactly the four readers named.index.mdx's first paragraph carries one link sentence after the slogan and descriptor.Generated by Claude Code