Skip to content

docs: adopt the 'ontology is the software' positioning (README, landing page, glossary, concepts) - #21579

Merged
objectstack-fleet[bot] merged 2 commits into
mainfrom
claude/issue-21574-ontology-positioning
Oct 3, 2026
Merged

objectstack-fleet[bot] merged 2 commits into
mainfrom
claude/issue-21574-ontology-positioning

Conversation

@objectstack-fleet

Copy link
Copy Markdown
Contributor

Fixes #21574

Clause-②: no

Adopts the three-line positioning ruled on the card. Docs and copy only; nothing under packages/**, content/docs/references/**, content/docs/releases/**, any CHANGELOG, or the dated blog post is touched. No new page, no meta.json change.

What changed

  • Slogan: 本体即软件。 / The ontology is the software.
  • Descriptor: 一份可执行的业务本体。AI 写,运行时跑,Agent 用,归你所有。 / One executable business ontology. AI writes it, the runtime runs it, agents operate it, you own it.
  • Proof line, kept and demoted: 装得下,才管得住。 / Apps small enough for AI to hold whole.

Surfaces:

  • README.md: headline blockquote leads with slogan plus descriptor (Chinese line included; the repo has no README.zh file), the "business ontology" paragraph now names the core and the no-inheritance/axioms/reasoner limit, "The other half is size" is kept as the proof, and the closing callout carries the four guardrail facts.
  • apps/docs/app/[lang]/page.tsx: hero heading, HOME_DESCRIPTION (which feeds the meta, Open Graph, Twitter and JSON-LD descriptions, so they stay in sync), the "what that metadata is" paragraph, and the closing card. apps/docs/lib/site.ts carries no description or tagline and is unchanged. The docs app is English-only (languages: ['en']), so there are no localized hero strings.
  • content/docs/getting-started/glossary.mdx: "Business Ontology" is now a two-way contrast (knowledge ontology vs. executable ontology; hosted ontology via the two existing bullets, kept) plus the core-versus-projections split.
  • content/docs/concepts/index.mdx and content/docs/concepts/metadata-driven.mdx: one bridge sentence each, naming the split once.

Guardrail facts, with evidence on main

  • No object inheritance, axioms or reasoner: packages/spec/src/data/object.zod.ts:1538-1541 (the retired-key message for abstract, ADR-0049: "object inheritance/abstraction is not implemented"). No axiom or reasoner feature exists in the docs corpus.
  • Not a semantic layer over existing systems; federation is early and read-only by default: content/docs/data-modeling/external-datasources.mdx:248. "Early" is the card's wording.
  • Views, dashboards, apps and i18n are projections: stated in the card; the existing "UI is a Projection" at content/docs/concepts/index.mdx:93.
  • Code moves into the runtime: lifecycle hooks (content/docs/concepts/metadata-driven.mdx:150), action body (packages/spec/src/ui/action.zod.ts:1101), CEL (README.md validation row), constrained JSX (README.md sdui-parser row).

The 150k/100k figures appear in none of the retained copy, so the number discipline has nothing to violate.

Acceptance notes

  • Re-ran the grep for "hold whole", "small enough" and "business ontology" over README.md, content/docs and apps/docs (excluding references, releases and the dated blog post). Remaining hits are the intentional proof-line uses and the metadata-driven.mdx "Small Enough to Fit" section, which is a measurement section and stays.
  • apps/docs/lib/site.ts HERO_COVER.alt still reads "the metadata framework for AI-written apps"; the card does not list it and it describes an image, so it is left as is. HOME_TITLE is likewise unchanged.

Verification

  • pnpm --filter @objectstack/docs build: exit 0.
  • Docs and README gates (frontmatter, route-spelling, nav-label, section-name, section-landing-index, doc-anchors, doc-authoring, single-h1, spec-enumerations, transcript-drift, locale-catch-all, redirects, nul-bytes, published-readme-links, corpus-claim-drift, role-word, vendor-version-stamps, org-identifier, docs-audit-scope, published-files, lint doc-formula-expressions and doc-security-posture): all exit 0.
  • Changeset: none owed. packages/** is untouched; the PM applies skip-changeset.

Reminder for the maintainer

The GitHub repository description lives outside git. Please paste the slogan and descriptor into it by hand:

  • The ontology is the software. One executable business ontology. AI writes it, the runtime runs it, agents operate it, you own it.
  • 本体即软件。一份可执行的业务本体。AI 写,运行时跑,Agent 用,归你所有。

Generated by Claude Code

… landing page, glossary and concepts

Claude-Session: https://claude.ai/code/session_01VDtqoecgES7ScQYGbFVDRv
Co-authored-by: Claude <noreply@anthropic.com>
@github-actions github-actions Bot added size/s documentation Improvements or additions to documentation labels Oct 3, 2026
@objectstack-fleet

Copy link
Copy Markdown
Contributor Author

Contract review

Served-tier: CONTRACT_REVIEW_TIER
Head-sha: d534e8ebe00e1258c02b639fdf9634afed095220
Local-runs: probe — parsed the head apps/docs/app/[lang]/page.tsx with typescript@6.0.2 createSourceFile (TSX): 0 parse diagnostics; no build, test or gate run locally.

① Derived judgments

Base: origin/main = 44072fc2b946784e0ce1a03da6d6deffd50f00ce; head is a single commit whose merge-base with main IS main. Diff = 5 files, +76/−23: README.md, apps/docs/app/[lang]/page.tsx, content/docs/concepts/index.mdx, content/docs/concepts/metadata-driven.mdx, content/docs/getting-started/glossary.mdx.

Slogan and descriptor (card table, verbatim)

  1. TRUE — English slogan "The ontology is the software." verbatim: README.md:7, page.tsx:215-218 (split across the gradient span, same words), README.md:174, page.tsx:453, glossary.mdx:94, concepts/index.mdx:97, metadata-driven.mdx:154.
  2. TRUE — English descriptor "One executable business ontology. AI writes it, the runtime runs it, agents operate it, you own it." verbatim: README.md:9-10, page.tsx:36 (HOME_DESCRIPTION), page.tsx:221-222.
  3. TRUE — Chinese slogan + descriptor "本体即软件。一份可执行的业务本体。AI 写,运行时跑,Agent 用,归你所有。" verbatim at README.md:12. Chinese is used only in the README; the docs app is English-only (apps/docs/lib/i18n.ts:14 languages: ['en'] on main), so no other language surface exists to check.
  4. TRUE — Proof line "Apps small enough for AI to hold whole." kept and demoted: it leaves the headline (README.md:7 old → new) and reappears in body prose at README.md:15-16, README.md:163 ("The other half is size: apps small enough for AI to hold whole."), page.tsx:36 and page.tsx:223. The Chinese proof line (装得下,才管得住。) is not used; the card marks the proof line "kept, demoted", not mandated in both languages.

Factual sentences added or changed (judged against origin/main)

  1. (a) TRUE — "no object inheritance, no axioms, no reasoner" / "the abstract key was removed from the spec for exactly that reason, ADR-0049": packages/spec/src/data/object.zod.ts:1538-1541 (retired-key message: "abstract was removed from the spec (ADR-0049) — object inheritance/abstraction is not implemented, so an abstract object still got a table and was instantiable."). ADR-0049 is the enforce-or-remove gate (docs/adr/0049-no-unenforced-security-properties.md:1). Attribution correct. No axiom or reasoner surface exists in packages/spec/src or the hand-written corpus.
  2. (b) TRUE — "federating an external datasource is read-only by default": content/docs/data-modeling/external-datasources.mdx:248 ("Federation is read-only by default."), :39 (allowWrites: false // read-only (the default)), :256. "not a semantic layer over your existing systems" is consistent with the glossary's pre-existing "Distinct from semantic layer" paragraph (glossary.mdx:107 on main; ADR-0021 dataset layer), which the PR keeps.
  3. (b) TRUE-by-card, no corpus evidence — "and early". The card's guardrail prescribes the word ("datasource federation is early"); nothing on main calls federation early/experimental (ADR-0015 and ADR-0062 are Accepted, ADR-0062 D1–D8 implemented). Accepted as the maintainer's wording; recorded so a later docs-accuracy pass knows the source.
  4. (c) TRUE — each named core kind exists as metadata on main: objects packages/spec/src/data/object.zod.ts; relations as lookup/master_detail field types packages/spec/src/data/field.zod.ts:73 (no standalone relation kind; the card names "relations" the same way); actions packages/spec/src/ui/action.zod.ts; permissions packages/spec/src/security/permission.zod.ts; flows packages/spec/src/automation/flow.zod.ts; agent packages/spec/src/ai/agent.zod.ts; tool packages/spec/src/ai/tool.zod.ts.
  5. (c) TRUE — projections views/dashboards/apps/translations exist as metadata: packages/spec/src/ui/view.zod.ts, ui/dashboard.zod.ts, ui/app.zod.ts, system/translation.zod.ts + ui/i18n.zod.ts. "The UI is a Projection" already at content/docs/concepts/index.mdx:93 on main.
  6. (c) FALSE — glossary.mdx:119-121: "Views, dashboards, apps, translations, and themes are projections of that core — authored in metadata too". Themes are not authorable metadata on main: the stack themes carrier and ThemeSchema were retired at protocol 18 under ADR-0049 (packages/spec/src/migrations/entries/semantic/18.stack-themes-carrier-retired.ts, acceptance: "a stack that still does is refused at parse"; retired defs 18.ui__Theme.ts, 18.ui__ThemeMode.ts; manifest.zod.ts:662-666 tombstones contributes.themes). The only live colour surface is app.branding (ui/app.zod.ts:937). The card listed "themes" among projections, but the PR's sentence asserts they are authored in metadata, which main refuses. The other four surfaces (README, page.tsx, both concepts bridges) correctly omit themes.
  7. (d) TRUE — "code moves into the runtime: hooks, action bodies, CEL, constrained JSX": hooks packages/spec/src/data/hook-body.zod.ts, hook-api.ts, hook.form.ts, metadata-driven.mdx:150 (".hook.ts"); action bodies packages/spec/src/ui/action.zod.ts:1101 (body: HookBodySchema "expression (L1) or sandboxed JS (L2)"); CEL README.md:147 and :265 (@objectstack/formula "CEL plus the ObjectStack stdlib"); constrained JSX README.md:268 (@objectstack/sdui-parser "Constrained JSX source → SDUI schema tree compiler").
  8. (e) TRUE — "validated rather than reasoned over": the authoring gate is Zod + os validate (README.md:147, glossary's retained "It is executed, not merely described" bullet); no inference engine exists (item 5).
  9. (f) TRUE — no 150k/100k (or 150,000/100,000) figure appears in any of the five files at head; nothing to swap.
  10. (g) TRUE — links/anchors: /docs/getting-started/glossary#business-ontology ← heading ### Business Ontology at glossary.mdx:84; /docs/data-modeling/external-datasources ← file exists on main; the objectos blog URL is retained unchanged in README and page.tsx. CI "Check Documentation Links" is green on the head.

page.tsx

  1. TRUE — JSX well-formed (probe above, 0 parse diagnostics; the edit only changes string literals and text nodes inside existing elements). HOME_DESCRIPTION (page.tsx:35-36) feeds metadata.description (:57), openGraph.description (:68), twitter.description (:77) and the JSON-LD description (:113), so the meta description cannot drift from the constant. No import, export, route or meta.json change: the edit cannot break the docs build by construction.
  2. TRUE — CI on head (gh api .../commits/d534e8eb/check-runs): Build Docs = success; Lint & Repo Gates, Test Core 1-6, Type Check (workspace, debt ledger, source gates, consumer gates), Check Documentation Links, Governed Surface Queue Guard, Spec property liveness, all claim/ownership guards = success. The only red check is "Check Changeset" (missing skip-changeset label; see ②).

Four guardrail facts, all survive

  1. No inheritance/axioms/reasoner: README.md:21-22, README.md:179-181, page.tsx:300-301, glossary.mdx:101-103, metadata-driven.mdx:156-158.
  2. Not a semantic layer / federation early and read-only: README.md:181-182, glossary.mdx:103-105.
  3. Views/dashboards/apps/i18n are projections: README.md:182-183, page.tsx:454-455, glossary.mdx:119-121, concepts/index.mdx:99, metadata-driven.mdx:155-156.
  4. Code moves into the runtime (hooks, action bodies, CEL, constrained JSX): README.md:183-184, glossary.mdx:121-123, metadata-driven.mdx:158-159.

Census (grep -i "hold whole|small enough|business ontology" over README.md, content/docs minus references/** and releases/**, apps/docs, at head)

  1. TRUE — every hit is intentional: README :9,15,16,18,163,165,175; page.tsx :36,221,223,298,454; concepts/index.mdx:100 and metadata-driven.mdx:160 (the new glossary links); glossary.mdx:84 (heading); metadata-driven.mdx:220 "### 4. Small Enough to Fit in an Agent's Context" (measurement section, not a headline restatement); apps/docs/lib/site.ts:66 (a code comment about hero-image size, unrelated). No hand-written restatement of the old headline left un-updated. content/blog/context-window-is-the-constraint.mdx untouched as the card requires.

Boundaries

  1. TRUE — no packages/**, content/docs/references/**, content/docs/releases/**, CHANGELOG, content/blog/**, meta.json, or governed-surface (docs/adr/**, docs/NORTH-STAR.md, .claude/**, skills/**, AGENTS.md, CLAUDE.md) path in the PR file list.

Merge-cleanliness

  1. TRUE — git merge-tree --write-tree origin/main d534e8eb → 0a9353b8a4408d6335445c48f6223fef92cc9b8d, exit 0, no conflicts (head is a fast-forward of main).

② Semver level

Copy only: README, one docs-app page, three MDX pages. Nothing under a released package changes, so no changeset is owed and skip-changeset is the correct label (card guardrail: qualifies because packages/ is untouched — verified). The PR currently carries only documentation + size/s; "Check Changeset" is red solely for the missing skip-changeset label ("This PR adds no changeset … apply the 'skip-changeset' label"), which the PM applies. Clause-②: no.

③ Boundary flags

  • FALSE item 10 — content/docs/getting-started/glossary.mdx:119-121. Exact fix: change "Views, dashboards, apps, translations, and themes are projections of that core — authored in metadata too, but not ontology." to "Views, dashboards, apps, and translations are projections of that core — authored in metadata too, but not ontology." (drop ", and themes"; stack themes was retired at protocol 18 under ADR-0049 and is refused at parse). This brings the glossary in line with the other four surfaces, which already omit themes.
  • Item 7 — "early" for federation is card-supplied, with no corpus evidence; not a defect of this PR, recorded for provenance.
  • Label: skip-changeset not yet applied (PM action, not an author defect).
  • No boundary crossed.

Implemented-by: claude/issue-21574-ontology-positioning
Reviewed-by: session_01VDtqoecgES7ScQYGbFVDRv

VERDICT: FAIL: one FALSE factual sentence — glossary.mdx:119-121 names themes as a metadata-authored projection, but the spec retired stack themes at protocol 18 (ADR-0049); drop ", and themes" and re-review.


Generated by Claude Code

Themes are not authorable metadata on main (stack themes carrier retired at protocol 18).

Claude-Session: https://claude.ai/code/session_01VDtqoecgES7ScQYGbFVDRv
Co-authored-by: Claude <noreply@anthropic.com>
@objectstack-fleet

Copy link
Copy Markdown
Contributor Author

Contract review

Served-tier: CONTRACT_REVIEW_TIER
Head-sha: 2c01a4473b0e73672637fcd83e8eac96b5574d1d
Local-runs: probe — parsed apps/docs/app/[lang]/page.tsx (byte-identical between d534e8e and this head) with typescript@6.0.2 createSourceFile (TSX): 0 parse diagnostics; no build, test or gate run locally.

① Derived judgments

Base: origin/main = 44072fc2b946784e0ce1a03da6d6deffd50f00ce. Head 2c01a447 = d534e8eb + one commit ("docs: drop themes from the projections list in the glossary"), parent d534e8eb; merge-base with main is main. Delta git diff d534e8eb 2c01a447: one file, content/docs/getting-started/glossary.mdx, +3/−3, re-wrapping the "Core and projections" paragraph without ", and themes". Diff-of-diffs (diff <(git diff origin/main d534e8eb) <(git diff origin/main 2c01a447)): only that paragraph's three lines and the blob index differ — every other hunk in the five files is byte-identical, so judgments 1-9 and 11-15 of the previous record carry forward unchanged, re-cited here at the new head (line numbers unchanged: the delta keeps the line count).

Slogan and descriptor (card table, verbatim)

  1. TRUE — English slogan "The ontology is the software." verbatim: README.md:7, page.tsx:215-218 (split across the gradient span, same words), README.md:174, page.tsx:453, glossary.mdx:94, concepts/index.mdx:97, metadata-driven.mdx:154.
  2. TRUE — English descriptor "One executable business ontology. AI writes it, the runtime runs it, agents operate it, you own it." verbatim: README.md:9-10, page.tsx:36 (HOME_DESCRIPTION), page.tsx:221-222.
  3. TRUE — Chinese slogan + descriptor "本体即软件。一份可执行的业务本体。AI 写,运行时跑,Agent 用,归你所有。" verbatim at README.md:12. Chinese is used only in the README; the docs app is English-only (apps/docs/lib/i18n.ts:14 languages: ['en'] on main), so no other language surface exists to check.
  4. TRUE — Proof line "Apps small enough for AI to hold whole." kept and demoted: it leaves the headline and reappears in body prose at README.md:15-16, README.md:163 ("The other half is size: apps small enough for AI to hold whole."), page.tsx:36 and page.tsx:223. The Chinese proof line (装得下,才管得住。) is not used; the card marks the proof line "kept, demoted", not mandated in both languages.

Factual sentences added or changed (judged against origin/main)

  1. (a) TRUE — "no object inheritance, no axioms, no reasoner" / "the abstract key was removed from the spec for exactly that reason, ADR-0049": packages/spec/src/data/object.zod.ts:1538-1541 (retired-key message: "abstract was removed from the spec (ADR-0049) — object inheritance/abstraction is not implemented, so an abstract object still got a table and was instantiable."). ADR-0049 is the enforce-or-remove gate (docs/adr/0049-no-unenforced-security-properties.md:1). Attribution correct. No axiom or reasoner surface exists in packages/spec/src or the hand-written corpus.
  2. (b) TRUE — "federating an external datasource is read-only by default": content/docs/data-modeling/external-datasources.mdx:248 ("Federation is read-only by default."), :39 (allowWrites: false // read-only (the default)), :256. "not a semantic layer over your existing systems" is consistent with the glossary's pre-existing "Distinct from semantic layer" paragraph (ADR-0021 dataset layer, glossary.mdx:125 at head), which the PR keeps.
  3. (b) TRUE — "and early" (glossary.mdx:104; README :182). Ruled on the PR's own copy: the canonical federation decision records the feature as partially delivered — docs/adr/0015-external-datasource-federation.md:3 status "Accepted — backend/REST/CLI implemented; Studio UI + extra dialect drivers pending" — and the runtime ADR-0062 is Accepted with D1–D8 implemented. A feature whose own ADR lists pending surfaces is fairly called "early"; the sentence makes no stronger claim (no "experimental", "beta" or "unsupported"). No corpus text contradicts it. Not FALSE; no fix required.
  4. (c) TRUE — each named core kind exists as metadata on main: objects packages/spec/src/data/object.zod.ts; relations as lookup/master_detail field types packages/spec/src/data/field.zod.ts:73 (no standalone relation kind; the card names "relations" the same way); actions packages/spec/src/ui/action.zod.ts; permissions packages/spec/src/security/permission.zod.ts; flows packages/spec/src/automation/flow.zod.ts; agent packages/spec/src/ai/agent.zod.ts; tool packages/spec/src/ai/tool.zod.ts.
  5. (c) TRUE — projections views/dashboards/apps/translations exist as metadata: packages/spec/src/ui/view.zod.ts, ui/dashboard.zod.ts, ui/app.zod.ts, system/translation.zod.ts + ui/i18n.zod.ts. "The UI is a Projection" already at content/docs/concepts/index.mdx:93 on main.
  6. (c) TRUE (was FALSE at d534e8e, fixed by the delta) — glossary.mdx:119-122 now reads "Views, dashboards, apps, and translations are projections of that core — authored in metadata too, but not ontology." Every named projection is authorable metadata on main (item 9). The retired themes carrier (packages/spec/src/migrations/entries/semantic/18.stack-themes-carrier-retired.ts, ADR-0049, refused at parse) is no longer named anywhere in the PR's copy; all five surfaces now agree.
  7. (d) TRUE — "code moves into the runtime: hooks, action bodies, CEL, constrained JSX": hooks packages/spec/src/data/hook-body.zod.ts, hook-api.ts, hook.form.ts, metadata-driven.mdx:150 (".hook.ts"); action bodies packages/spec/src/ui/action.zod.ts:1101 (body: HookBodySchema "expression (L1) or sandboxed JS (L2)"); CEL README.md:147 and :265 (@objectstack/formula "CEL plus the ObjectStack stdlib"); constrained JSX README.md:268 (@objectstack/sdui-parser "Constrained JSX source → SDUI schema tree compiler").
  8. (e) TRUE — "validated rather than reasoned over": the authoring gate is Zod + os validate (README.md:147, glossary's retained "It is executed, not merely described" bullet :113-117); no inference engine exists (item 5).
  9. (f) TRUE — no 150k/100k (or 150,000/100,000) figure appears in any of the five files at head; nothing to swap.
  10. (g) TRUE — links/anchors: /docs/getting-started/glossary#business-ontology ← heading ### Business Ontology at glossary.mdx:84; /docs/data-modeling/external-datasources ← file exists on main; the objectos blog URL is retained unchanged in README and page.tsx. CI "Check Documentation Links" is green on the head.

page.tsx

  1. TRUE — apps/docs/app/[lang]/page.tsx is unchanged by the delta (byte-identical to d534e8e). JSX well-formed (probe above, 0 parse diagnostics; the edit only changes string literals and text nodes inside existing elements). HOME_DESCRIPTION (page.tsx:35-36) feeds metadata.description (:57), openGraph.description (:68), twitter.description (:77) and the JSON-LD description (:113), so the meta description cannot drift from the constant. No import, export, route or meta.json change: the edit cannot break the docs build by construction.
  2. TRUE — CI on head (gh api .../commits/2c01a447/check-runs, all terminal): Build Docs = success; Lint & Repo Gates, Test Core 1-6 + rollup, Type Check (workspace, debt ledger, source gates, consumer gates, rollup), Check Documentation Links, Governed Surface Queue Guard, Spec property liveness, Dogfood Regression Gate, Check PR Size, Auto Label and all claim/ownership guards = success. The only red check is "Check Changeset" (missing skip-changeset label; see ②).

Four guardrail facts, all survive

  1. No inheritance/axioms/reasoner: README.md:21-22, README.md:179-181, page.tsx:300-301, glossary.mdx:101-103, metadata-driven.mdx:156-158.
  2. Not a semantic layer / federation early and read-only: README.md:181-182, glossary.mdx:103-105.
  3. Views/dashboards/apps/i18n are projections: README.md:182-183, page.tsx:454-455, glossary.mdx:119-122, concepts/index.mdx:99, metadata-driven.mdx:155-156.
  4. Code moves into the runtime (hooks, action bodies, CEL, constrained JSX): README.md:183-184, glossary.mdx:122-123, metadata-driven.mdx:158-159.

Census (grep -i "hold whole|small enough|business ontology" over README.md, content/docs minus references/** and releases/**, apps/docs — unchanged by the delta, which adds or removes none of the three phrases)

  1. TRUE — every hit is intentional: README :9,15,16,18,163,165,175; page.tsx :36,221,223,298,454; concepts/index.mdx:100 and metadata-driven.mdx:160 (the new glossary links); glossary.mdx:84 (heading); metadata-driven.mdx:220 "### 4. Small Enough to Fit in an Agent's Context" (measurement section, not a headline restatement); apps/docs/lib/site.ts:66 (a code comment about hero-image size, unrelated). No hand-written restatement of the old headline left un-updated. content/blog/context-window-is-the-constraint.mdx untouched as the card requires.

Boundaries

  1. TRUE — PR file list at head is still the same five files; no packages/**, content/docs/references/**, content/docs/releases/**, CHANGELOG, content/blog/**, meta.json, or governed-surface (docs/adr/**, docs/NORTH-STAR.md, .claude/**, skills/**, AGENTS.md, CLAUDE.md) path.

Merge-cleanliness

  1. TRUE — git merge-tree --write-tree origin/main 2c01a447 → fd040bd4aa9837075ff9a970f6fecf5fd2a80e3e, exit 0, no conflicts (head is a fast-forward of main 44072fc2b9).

② Semver level

Copy only: README, one docs-app page, three MDX pages. Nothing under a released package changes, so no changeset is owed and skip-changeset is the correct label (card guardrail: qualifies because packages/ is untouched — verified at this head). The PR still carries only documentation + size/s; "Check Changeset" goes red solely for the missing skip-changeset label, which the PM applies. Clause-②: no.

③ Boundary flags

  • No FALSE item at this head. The single FALSE item of the d534e8e record (themes named as a metadata-authored projection) is fixed by the delta, and item 7 ("early") is now ruled TRUE on ADR-0015's own status line rather than carried as a provenance note.
  • Out-of-scope neighbour, not a FAIL item: content/docs/getting-started/glossary.mdx:39 (pre-existing, outside the diff, not on the card) — the UI Protocol entry reads "Includes App structure, Views (List/Form/Kanban/Calendar), Dashboards, Reports, Themes, and Actions." That "Themes" is stale against the spec: the stack themes carrier and ThemeSchema were retired at protocol 18 under ADR-0049 (packages/spec/src/migrations/entries/semantic/18.stack-themes-carrier-retired.ts — "a stack that still does is refused at parse"; retired defs 18.ui__Theme.ts, 18.ui__ThemeMode.ts; packages/spec/src/kernel/manifest.zod.ts:662-666 tombstones contributes.themes); the retirement's disposition B retained objectui engine code only, and the live colour surface is app.branding (packages/spec/src/ui/app.zod.ts:937). Candidate for a separate docs-accuracy card; leaving it out of this PR is correct under the card's scope.
  • Label: skip-changeset not yet applied (PM action, not an author defect).
  • No boundary crossed.

Implemented-by: claude/issue-21574-ontology-positioning
Reviewed-by: session_01VDtqoecgES7ScQYGbFVDRv

VERDICT: PASS: the delta removes the one FALSE sentence; every factual claim in the five copy surfaces is TRUE against origin/main, the four guardrail facts survive, the census is clean, no boundary is crossed, and the head merges clean.


Generated by Claude Code

@objectstack-fleet objectstack-fleet Bot added the skip-changeset PR has no user-facing published change; bypasses the changeset gate label Oct 3, 2026
@objectstack-fleet
objectstack-fleet Bot marked this pull request as ready for review October 3, 2026 11:34
@objectstack-fleet
objectstack-fleet Bot enabled auto-merge October 3, 2026 11:35
@objectstack-fleet
objectstack-fleet Bot added this pull request to the merge queue Oct 3, 2026
Merged via the queue into main with commit cc645f2 Oct 3, 2026
37 of 38 checks passed
@objectstack-fleet
objectstack-fleet Bot deleted the claude/issue-21574-ontology-positioning branch October 3, 2026 11:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation size/s skip-changeset PR has no user-facing published change; bypasses the changeset gate

Projects

None yet

Development

Successfully merging this pull request may close these issues.

docs: adopt the 'Ontology is the software' positioning across README, docs landing page and glossary

1 participant