Repository navigation
content(blog): what "the ontology is the software" means — post 1 of the positioning wave (slot 2026-10-08) - #212
Open
objectstack-fleet[bot] wants to merge 1 commit into
Open
objectstack-fleet[bot] wants to merge 1 commit into
objectstack-fleet[bot] wants to merge 1 commit into
Conversation
… definition post (slot 2026-10-08) Post 1 of the positioning wave: the executable business ontology defined from the objectstack README and the Business Ontology concepts page, quoted rather than paraphrased — the six-kind core mapped onto the bundled CRM example, the four projections with a removal test to tell core from projection, the three things it is not, where code goes, and the four promises led by Executable. ObjectOS appears only as the canonical T4 + E1. Eight locales (zh-Hant generated by gen:zh-hant), one cover and two diagrams, in English text and in Chinese text for the zh-Hans/zh-Hant pair. Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FeA1nwBz1ohH65dvffUGKr
This was referenced Oct 5, 2026
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 #211
Post 1 of the positioning wave (coordinating card: #209; the copy PR #210 landed as
8a258d4, which this branch restarts from). Merge on the slot day, Thursday 2026-10-08, and no earlier — the charter's "merge time is publish time" rule;date: 2026-10-08, noupdated.What this adds
One new post directory,
content/blog/what-does-the-ontology-is-the-software-mean/, in all eight locales: the pillar definition behind the line the site now quotes. It defines the executable business ontology from the objectstack README and the Business Ontology concepts page, quoted rather than paraphrased — the six-kind core (mapped onto the bundled CRM example, file by file), the four projections with a removal test for telling core from projection, the three negations, where code goes (hooks, action bodies, CEL, constrained JSX, with the real hook and CEL lines from the CRM example), "validated, then run" with the README's ticket object, the four promises led by Executable, an honest "what this does not solve", and the README's agent path as the CTA (npm create objectstack@latest my-app, point a coding agent at it,npx os dev --ui; notos start). ObjectOS appears exactly once, as the canonical T4 + E1.The one number (charter rule 1): the CRM example's whole definition is 1,917 lines of TypeScript across 31 files, measured with the command the README prints under "measure it yourself", at objectstack
origin/main9f9510f2. No token figures (ruling Q5). No competitor claims.Final commit:
177a68476dd6f681b6b270eab38e56d3576a792b(branchclaude/pm-dispatch-objectos-ju9td1, frommain@8a258d4). 14 files, +2118 lines; no file outside the post directory.Canonical strings as used
All from
src/lib/positioning.tsonmain(PR #210), per locale, verbatim:The ontology is the software.— zh-Hans本体即软件。(the README's own line,README.md:12); ja/de/es/fr/ko as inpositioning[locale].t1.One executable business ontology. AI writes it, the runtime runs it, agents operate it, you own it.— and each locale'st2.Executable · AI-writable · Agent-operable · You own it— rendered as the four words joined with·, each locale'st3.Want the same loop hosted, in the browser, nothing to install? That's ObjectOS, the commercial runtime environment built on ObjectStack.— this isT4_STANDALONE: the one substitution the canonical note allows ("this stack" → "ObjectStack"), made because the post quotes T4 outside the README where "this stack" has no referent. Every locale uses itst4, which already carries the substitution.ObjectOS runs hosted in the browser with nothing to install (ObjectOS Cloud) or self-managed on your own infrastructure (ObjectOS Enterprise), and on either edition you can export your ontology and run it on the open-source ObjectStack runtime.— each locale'se1.The English README quotes inside the post (the six-kind definitions, the projection sentences, the negations, the four-gate wording, the "you own it" paragraph) are quoted verbatim in English and translated faithfully in the other locales; the claims are identical in every locale.
Every factual claim and its source line
Sources are objectstack
origin/main9f9510f2unless stated;README=README.md,ontology=content/docs/concepts/ontology.mdx,crm=examples/app-crm/src/.README:7,README:9-10ontology:14-25;README:79-80objectstack.config.ts -> objectstack.json -> ObjectStack runtime -> …ontology:61-63README:34ontology:27-30ontology:34-38;README:85-86ontology:38-39ontology:40os validate;abstractremoved (ADR-0049)ontology:44-48;README:81-83ontology:49-55;README:83-85ontology:56-57ontology:69-70ontology:65-69README:86-87;ontology:72-76ontology:72-73;README:284ontology:74-75;README:287curl …/support_desk_ticket; "the REST API exists the moment the object does — no controllers to write"README:117-142os validate"rejects metadata that type-checks but would fail silently at runtime: dangling bindings, bad CEL predicates, missing security posture"README:174AGENTS.md; four gates; "an agent's errors become located, corrective text it can read and fix itself"README:55-56,README:39-41,README:168-180/api/v1/mcpon by default; same permissions and RLS as a human; actions opt in withai: { exposed: true }README:150-154,README:162-163README:195-199README:14,README:182-191README:190command run overgit show origin/main:PATHfor every non-test.tsunderexamples/app-crm/srcat9f9510f2; roster fromgit ls-tree -r origin/main --name-only examples/app-crm/srcls-tree;crm/security/sales-positions.ts(twodefinePermissionSet, threedefinePosition);examples/app-crm/objectstack.config.ts:70-119Field.lookup('crm_account', …)on the opportunity; the line item is a master-detail childcrm/objects/opportunity.object.ts:25-28;crm/security/sales-positions.ts:44-50crm/actions/convert-lead.action.ts:31crm/security/sales-positions.ts:65-72crm/flows/convert-lead.flow.ts:25-30crm/hooks/opportunity.hook.ts:9-19expected_revenueCEL formula (verbatim)crm/objects/opportunity.object.ts:48-51defineAgent/defineTool/agents:acrosscrm/**/*.ts; noagentskey inobjectstack.config.ts:70-119crm/security/sales-positions.ts:30-33content/glossary/en/ontology.ts, fourth explanation paragraphnpm create objectstack@latest my-app && cd my-app; the support-desk requirement;npm run validate;npx os dev --uiREADME:44,README:50-53,README:61README:26-27Assets
cover-en.svgcover)cover.svgsix-kind-core-en.svgsix-kind-core.svgvalidated-not-reasoned-en.svgvalidated-not-reasoned.svgThe cover is the sentence plus a 6 / 4 / 3 card; diagram 1 shows the six kinds compiling through the runtime into the four derived surfaces, with the projections drawn outside the ontology box and the code fence drawn inside the runtime; diagram 2 is the three negations side by side. Both diagrams add information the cover does not carry.
Mechanical fit check (
scratchpad/issue-211/svgcheck.mjs, Chromium at native size): for everytextelement, its box lies inside its enclosing rect (3 px tolerance) or the viewport, no two text boxes overlap, and no text box crosses a line or arrow outside its own container. Result on the committed files:PASS× 6 — 25, 24, 52, 52, 38, 38 text elements, 0 failures each. A first pass found three overruns (the cover's footer line, the→ objectstack.jsonlabel in both diagram variants); they were fixed by re-laying out, not by shrinking type. Renders:scratchpad/www/shots-211/svg/*.png.Locales
index.mdx(en)index.zh-Hans.mdxindex.zh-Hant.mdx(generated)index.ja.mdxindex.de.mdxindex.es.mdxindex.fr.mdxindex.ko.mdxtitle,descriptionandtagsare translated;topic: app-building,audience: developer,date: 2026-10-08,status: publishedare identical in all eight. The three English-only companion posts are linked under/en/from every locale (the content-lint cross-locale rule accepts that when no same-locale target exists).zh-Hantwas produced only bypnpm gen:zh-hantand carries the@generatedmarker; the build's own regeneration left the tree clean.Gates (on
177a684, throughscripts/pm/os-verify-lock.sh, slotwww-211, lock held 95 s, waited 0 s — shared-box seconds)pnpm content:lint✓ content lint passed (347 files, 44 glossary terms checked); 8 advisories, one per locale file:Date is in the future: Thu Oct 08 2026 00:00:00 GMT+0000 (Coordinated Universal Time)— expected for a slot-day post; the date is not changedpnpm content:lint --publishedpnpm checkResult (137 files): 0 errors, 0 warnings, 0 hintspnpm build✓ zh-Hant: generated 47, kept 0 hand-maintained;879 page(s) built in 72.42s;✓ content lint --dist passed (486 built blog pages checked);git statusclean afterwardspnpm seo:smokeSEO smoke test passed (878 HTML pages checked)The eight built pages exist at
dist/LOCALE/blog/what-does-the-ontology-is-the-software-mean/index.htmlwith the translatedtitleand the right asset set; the en page carries hreflang alternates for all eight locales plusx-default; the en RSS feed's first item is this post.Browser check (Playwright 1.56.1, Chromium at
/opt/pw-browsers/chromium,dist/served bypython3 -m http.serveron 127.0.0.1:48211, killed by PID after a/proccmdline check)Script:
scratchpad/issue-211/shots.mjs; measurements:scratchpad/www/shots-211/measurements.json. 38 / 38 assertions passed:enandzh-Hansat 1440×900 and 390×844: HTTP 200;documentElement.scrollWidthequals the viewport width and 0 elements extend past it outside a scroll container; the coverimg.coveris complete with natural size > 0 and laid out; the two body diagrams are complete and laid out (860×517 and 860×460 at 1440; 358×216 and 358×192 at 390); no body image repeated; the cover not repeated in the body.enat 1440 and 390: no overflow; the post is the first card of the Latest section (fifth overall — the four cards above it are the curated Recommended grid hard-coded inArticleList.astro); its thumbnail renders.Screenshots (fold + full page):
scratchpad/www/shots-211/article-en-1440x900{,-full}.png,article-en-390x844{,-full}.png,article-zh-Hans-1440x900{,-full}.png,article-zh-Hans-390x844{,-full}.png,list-en-1440x900{,-full}.png,list-en-390x844{,-full}.png,svg-served-*.png, and the native renders undersvg/.A first run of the script reported the body diagrams and the 390-wide list thumbnail as not loaded: they are
loading="lazy"and were measured before being scrolled into view. The script now scrolls the page and waits for every image to complete before measuring; the first log is kept asscratchpad/issue-211/shots.log.Deviations from the dispatch
Co-Authored-By: Claude, plus the session line), as the dispatch contract requires; this repository's prior commits (f0ab139,8a258d4) carry model-named trailers. Reported, not imitated.git fetch origin main claude/pm-dispatch-objectos-ju9td1stored the branch head only inFETCH_HEAD; I additionally fetched it intorefs/remotes/origin/claude/pm-dispatch-objectos-ju9td1(a local read-only ref) so the lease value could be checked against a named ref before the forced push. No extra write.Acceptance notes
date: 2026-10-08is written exactly as ruled (a bare date, midnight UTC), where most posts carry aT10:00:00+08:00time. Both render as Oct 8, 2026 in every locale; sort order is unaffected because no other post shares the day.audience: developerandtopic: app-building: the post quotes CEL, hooks and permission sets, and the charter'sdeveloperdefinition is "how your agent writes ObjectStack correctly, and how you review the diff". If the seat prefers the pillar to read asgeneral, it is a one-line frontmatter change in all eight files..changeset/directory and publishes no package; no changeset applies.Generated by Claude Code