Repository navigation
docs(blog): publish 'The Ontology Is the Software', give the blog its entry points, bridge the 2024 posts - #21843
Merged
objectstack-fleet[bot] merged 3 commits intoOct 5, 2026
Conversation
The long form of the project's positioning sentence, landed byte-exact from the maintainer-approved copy. Claude-Session: https://claude.ai/code/session_011hRnra93sK5Q2gTYYTbdJR Co-authored-by: Claude <noreply@anthropic.com>
One italic editor's note as the first body paragraph of each, pointing at The Ontology Is the Software; the rest of both posts is unchanged. Claude-Session: https://claude.ai/code/session_011hRnra93sK5Q2gTYYTbdJR Co-authored-by: Claude <noreply@anthropic.com>
- shared nav: a Blog link in baseOptions(), which DocsLayout and every HomeLayout (home page, blog index, blog posts) spread - home closing card: point at /blog/the-ontology-is-the-software instead of the external post - README "You own it": the Read why link targets the new essay Claude-Session: https://claude.ai/code/session_011hRnra93sK5Q2gTYYTbdJR Co-authored-by: Claude <noreply@anthropic.com>
objectstack-fleet
Bot
deleted the
claude/issue-21838-ontology-blog-post
branch
October 5, 2026 08:44
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 #21838
Clause-②: no
Docs only. Publishes the maintainer-approved essay on the blog, gives the blog its entry points (shared nav, home closing card, README), and bridges the two 2024 posts with one editor's note each.
packages/**is untouched.What changed
Part A, the post.
content/blog/the-ontology-is-the-software.mdxis the card's fenced block, byte-exact: sha256e760438e91b318fd854606ecb897c06b841c3af3c864846671bc8dfdb697631cfor the card extract, the container copy and the committed blob, all three equal. MDX compiled as-is, so the copy has no edits (no compiler message to report).date: 2026-10-05is kept. If this lands on a later day, the card says to setdateto the landing day so the index order anddatePublishedstay honest.Part C, the 2024 posts.
metadata-driven-architecture.mdxandprotocol-first-development.mdxeach get one italic editor's note as the first body paragraph, right after the frontmatter. The text is the card's Part C, verbatim (checked as an exact line match against the card). It is one added line per file, in the blank-line gap that was already there. Nothing else in either post changes.Part B1, shared nav.
apps/docs/lib/layout.shared.tsxaddslinks: [{ text: 'Blog', url: '/blog', active: 'nested-url' }]tobaseOptions(). I read the shape from the installed fumadocs-ui 16.14.4dist/layouts/shared/index.d.ts:BaseLayoutProps.linksisLinkItemType[], andMainItemTypeneedstextandurl, withactiveone ofurl,nested-urlornone. Four layouts spreadbaseOptions():DocsLayout(app/[lang]/docs/layout.tsx, sidebar menu items)HomeLayouton the home pageHomeLayoutin both branches of the blog route (index and post), header nav itemsBecause the home page uses the shared header, the hero button row is unchanged.
Part B2, home closing card.
apps/docs/app/[lang]/page.tsx: the external "Read why" anchor becomesRead the long form:followed by anext/linkto/blog/the-ontology-is-the-software, with the essay title as the link text. The slogan and the positioning sentence are unchanged. The home page no longer links the external post (0 occurrences in the builten.html).Part B3, README. The "Read why" link under "You own it" now targets
https://objectstack.ai/blog/the-ontology-is-the-software. That one line is the only README change.Verification (every reading below is at HEAD
92eda4bd)pnpm --filter @objectstack/docs buildthrough the shared verify lock:VERDICT command-exit 0. The route list includes/en/blog/the-ontology-is-the-software. Before it, the dependency closure was built (pnpm --filter '@objectstack/docs^...' build, VERDICT 0). The tree was clean afterwards, so the build'sgen:schema/gen:docssteps wrote nothing tracked.next starton a random high port (since stopped):/bloganswers 200, and the post cards come in this order: The Ontology Is the Software, The Constraint Isn't Typing Speed..., Protocol-First Development..., The Architecture of Metadata-Driven Systems...h1and sevenh2, and its JSON-LD carriesdatePublished2026-10-05T00:00:00.000Z.href="/blog"Blog anchor appears in the header ofen.htmland of each post page, and in the sidebar of a docs page.en.htmland in each 2024 post.pnpm --filter @objectstack/docs typecheckexits 0.tsc --noEmit --listFileslists both touched TSX files among 1252.ESLint.calculateConfigForFile/isPathIgnored: both files are in the linted population (not ignored), with 3 enabled rules each (no-restricted-imports,verify-stand-in/no-asserted-driver-argument,comment-swallow/no-code-inside-block-comment).--format json: 2 files, 0 errors, 0 warnings, exit 0 (eslint v10.11.0,--no-inline-config).parserOptions.projectand noprojectService(read back as null for both files), so type-aware linting is off and per-file verdicts cannot move for untouched files. The README and MDX files are outside eslint'sfilesglobs.node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstackderived 32 commands (24 by path, 8 whole-tree), and the dispatch named 8 more doc gates. All 40 exit 0.PREREQUISITE NOT MET,@objectstack/lint/@objectstack/formulanot built). That is not a measurement. All three exit 0 afterturbo run build --filter=@objectstack/formula --filter=@objectstack/lint.--ranreconciliation:32 derived famil(ies) accounted for — 32 run, 0 NOT-MEASURED (a DERIVED zero — all 32 recorded an exit code and none of them is 3).check:published-readme-links:221 outbound link(s) across 101 published markdown file(s): 0 root-relative, 0 non-canonical origin(s), 27 docs-site page(s) resolved (0 via redirect), 1 anchor(s) verified, 144/144 relative target(s) found in the tree.It is green, and the link was not rewritten. See the first acceptance note for what this green does not cover.check:docs-audit-scope:198 hand-written doc(s), in sync withcontent/docs/. It did not ask for a blog entry, soscripts/docs-audit/handwritten-docs.jsonis untouched.check-doc-frontmatter:content/blog (blogSchema, floor 1): 4 page(s) parse, andtagsis an array of strings on all 4.Acceptance notes
check:published-readme-links. The gate classifies a path on the canonical host outside/docsasdocs-host-otherand does not resolve it, by design: its self-test pins "A3 SILENT on the canonical host outside /docs". So its green is not evidence about the README blog link. The target's existence is shown instead by the build's route list and the 200 above. The live URL answers only once the docs site deploys frommainwith this change.scripts/check-doc-frontmatter.mjsheader sayscontent/blog"holds 3 pages today". The blog route'spostGraphcomment says theOrganizationauthor is right for "all three current posts". Both still hold in substance: the floor is 1, not a ratchet, and all four posts are byObjectStack Team. It is prose drift only and is left untouched here.skip-changeset.packages/**has 0 changed paths,@objectstack/docsisprivate: true, the root package is private, and no package copies the root README into its tarball.Generated by Claude Code