Skip to content

docs(concepts): add How ObjectStack compares and When to use ObjectStack - #22247

Merged
objectstack-fleet[bot] merged 4 commits into
mainfrom
claude/issue-22240-compare-when-to-use
Oct 8, 2026
Merged

objectstack-fleet[bot] merged 4 commits into
mainfrom
claude/issue-22240-compare-when-to-use

Conversation

@objectstack-fleet

Copy link
Copy Markdown
Contributor

Fixes #22240
Clause-②: no

Two hand-written positioning pages under Core Concepts, English only, plus the wiring the card's Part C names. Docs-only: no packages/**, no apps/docs/**, no content/blog/**, no README.md, no content/docs/references/**, no content/docs/releases/**, no CHANGELOG.md, no binaries.

What changed

File Change
content/docs/concepts/compare.mdx new, How ObjectStack compares (Part A)
content/docs/concepts/when-to-use.mdx new, When to use ObjectStack, and when not to (Part B)
content/docs/concepts/meta.json compare, when-to-use inserted after ontology
content/docs/concepts/ontology.mdx one pointer sentence closing "What it is not", one closing the page; nothing else
content/docs/concepts/index.mdx one sentence naming both pages, in the paragraph that introduces the ontology
scripts/docs-audit/handwritten-docs.json regenerated by node scripts/docs-audit/check-audit-scope.mjs --write (+2 added, -0 removed); not hand-edited

Measurements (head e0c7be1)

Page Body words (wc -w after frontmatter) description chars title chars
compare.mdx 1074 155 64
when-to-use.mdx 870 152 40

Both descriptions are real summaries inside the 110 to 160 range.

Facts about ObjectStack, and where they come from

  • Federation: early and read-only by default, writes behind a double opt-in, per content/docs/data-modeling/external-datasources.mdx (section 5) and the existing wording on concepts/ontology.
  • Agent access: the MCP server is on by default, objects are tools, actions are tools only when the author exposes them (ai.exposed), permissions decide what an agent may call, per ai/connect-mcp and ai/actions-as-tools.
  • No number appears on either page. See the CRM-size note under Acceptance notes.

Vendor facts dropped or narrowed (the card's rule: drop rather than guess)

  1. Operational ontologies: "open-source reference implementations of the same pattern exist" is dropped. I could not trace it to a named public source.
  2. Metadata platforms: "most of which added MCP servers in 2025 and 2026" is narrowed to "Several of them now offer MCP servers". Public docs confirm MCP servers for Salesforce (hosted MCP servers), NocoBase (MCP plugin), Twenty (marked alpha), Payload (MCP plugin) and Frappe (an experimental package). I found no first-party Odoo server, and the dates are not confirmed for every product.
  3. Metadata platforms: "their metadata is configuration held in a database and authored in a UI" is narrowed to "In most of these platforms ...; where it is code, as with the Payload Config or Odoo's modules, it is framework code". Payload is configured in TypeScript and Odoo models are Python modules, so the card's sentence was not true of every named example.
  4. AWS Context is named as a category example, with no availability status: public sources disagree on preview versus GA.
  5. Microsoft Fabric IQ: "in preview" is kept behind "As of late 2026". The Learn overview marks the Ontology item as preview.

No star counts, market claims, analyst quotes, "the only" or "the first" appear. Products are named only as examples after the category is described. The table carries one line saying each cell reads a category as a whole.

Gates (all on head e0c7be1, exit code captured before any pipe)

  • pnpm --filter @objectstack/docs build under scripts/pm/os-verify-lock.sh: VERDICT command-exit 0 (held the lock 84s). Both pages render: /en/docs/concepts/compare and /en/docs/concepts/when-to-use are emitted.
  • node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstack (no paths) derives 50 commands. All 50 exit 0. --ran reconciliation over a record carrying exit codes reports: 50 derived, 50 run, 0 NOT-MEASURED, 0 UNRUN, a derived zero.
  • These include check:doc-anchors, check:doc-authoring, check:docs-audit-scope, check:docs-redirects, check:docs-single-h1, check:docs-transcript-drift, check:published-readme-links, check:nul-bytes, check:role-word, check-doc-frontmatter, check-doc-route-spelling --advisory, check-section-landing-index, and the lint package's check:doc-formula-expressions and check:doc-security-posture.
  • I also ran four that were named in the dispatch but are not in the derivation: check:docs-locale-catch-all, check:page-declaration-shape, and check-docs-nav-label (self-test and real run). All exit 0.
  • An earlier round on a prior head had two problems. First, three gates exited 3 with PREREQUISITE NOT MET, which measures nothing; they went green after their packages were built (@objectstack/formula, @objectstack/lint, @objectstack/client, @objectstack/client-react). Second, check:role-word exited 1 because the five-questions list used the reserved word for access. It now uses the permission-set vocabulary of ADR-0090.
  • NOT MEASURED locally: the lychee link check (CI only), the Test Core and type-check lanes (no TypeScript touched), and the Build Docs CI job itself. The local docs build runs the same package script.

Acceptance notes

  • Measured CRM size: card premise vs. the tree. The card allows one number, "the example CRM's size as the ontology page states it". concepts/ontology states no size. The figure lives on concepts/metadata-driven and getting-started/how-ai-development-works (1,792 lines across 31 files). That figure has drifted: the page's own count command, run on 3ae5966, prints 1,929 lines across 31 files. So when-to-use states no number and links to the measurement section instead. The drift is reported to the dispatching seat. It is outside this PR's file surface.
  • Try it link. The card's "Try it (quick-start)" points at a page that calls itself "the map, not a starting point" and sends builders to Build with Claude Code. "Try it" therefore links Build with Claude Code, and the quick-start page (Anatomy of an ObjectStack App) is linked beside it.
  • Opening paragraph. Two of the five sections the card asks for (metadata platforms, AI code generation) do not use the word "ontology". The opening says "three that use the word and two that answer the same question without it" rather than "four kinds of ontology and ObjectStack is a fifth".
  • Changeset: none. Nothing publishes. packages/** is untouched, and no published package's files[] ships content/ or scripts/docs-audit/.

Generated by Claude Code

claude added 4 commits October 8, 2026 08:33
…and index; regenerate the audit ledger

Claude-Session: https://claude.ai/code/session_011hRnra93sK5Q2gTYYTbdJR
Co-authored-by: Claude <noreply@anthropic.com>
… two compare sentences

Claude-Session: https://claude.ai/code/session_011hRnra93sK5Q2gTYYTbdJR
Co-authored-by: Claude <noreply@anthropic.com>
@github-actions github-actions Bot added the size/m label Oct 8, 2026
@github-actions

github-actions Bot commented Oct 8, 2026

Copy link
Copy Markdown
Contributor

📓 Docs Drift Check

Nothing 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): node scripts/docs-audit/affected-docs.mjs --json f4bed58341c16062b63bd95864aea53839293745 → packageMentionDocs.

@objectstack-fleet objectstack-fleet Bot added the skip-changeset PR has no user-facing published change; bypasses the changeset gate label Oct 8, 2026
@github-actions github-actions Bot added the documentation Improvements or additions to documentation label Oct 8, 2026
@objectstack-fleet
objectstack-fleet Bot marked this pull request as ready for review October 8, 2026 09:33
@objectstack-fleet
objectstack-fleet Bot added this pull request to the merge queue Oct 8, 2026
Merged via the queue into main with commit 335c473 Oct 8, 2026
39 checks passed
@objectstack-fleet
objectstack-fleet Bot deleted the claude/issue-22240-compare-when-to-use branch October 8, 2026 10:01
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/m skip-changeset PR has no user-facing published change; bypasses the changeset gate

Projects

None yet

2 participants