Skip to content

docs: two positioning pages under Core Concepts — 'How ObjectStack compares' and 'When to use ObjectStack, and when not to' — linked from the ontology page and the concepts index #22240

Description

@objectstack-fleet

立卡门类别 ③ — 维护者直派的任务 (maintainer-directed task).

Maintainer ruling (verbatim, untranslated)

官网对比页和场景页开卡派发

官网不做中文版,中文版有单独的项目 www.objectos.ai

Given in session https://claude.ai/code/session_011hRnra93sK5Q2gTYYTbdJR on 2026-10-08. The pages are English only; Chinese readers are served by objectos.ai, which this card does not touch.

Why

The docs site states what the ontology is (concepts/ontology, landed by #21586) and argues it (the blog essay, #21838), but a visitor who arrives asking "how is this different from Palantir, from a semantic layer, from low-code" or "is this for me" finds no page that answers either. Those are the two questions the project's positioning work keeps meeting, and the two searches ("palantir alternative", "ontology for AI agents", "when to use") that currently land nowhere on objectstack.ai. This card adds one page for each, as hand-written docs in the Core Concepts section.

Part A. content/docs/concepts/compare.mdx — How ObjectStack compares

Audience: a technical reader deciding what kind of thing this is. Tone: the README's, factual, specific, no superlatives. Structure:

  1. One paragraph: the word "ontology" is used for four different kinds of thing in 2026, and ObjectStack is a fifth. Point back to concepts/ontology for the definition.
  2. One section per kind, each with what it is, what it is good at, and the one difference from ObjectStack:
    • Knowledge ontologies (OWL, RDF, Protégé and the standards built with them): describe a domain and reason over it; not an application and never executed. Difference: ObjectStack's ontology has no axioms or reasoner; it is validated and run.
    • Semantic and context layers over existing data (the category Microsoft Fabric IQ Ontology, Databricks Genie and Unity Catalog metrics, Snowflake semantic views, AWS Context and Google Cloud Knowledge Catalog occupy; in open source, metric semantic layers and agent memory graphs): make data that lives elsewhere legible to agents; read-mostly. Difference: the system of record stays where it was; ObjectStack's ontology is the system.
    • Operational ontologies over existing systems (Palantir Ontology is the reference; open-source reference implementations of the same pattern exist): objects, links, actions and permissions with write-back to source systems. Difference: still a layer over systems that live elsewhere, and in Palantir's case proprietary; ObjectStack generates the database, API, UI and MCP tools from the definition and is Apache-2.0.
    • Metadata-driven application platforms (Salesforce's metadata is the ancestor; open-source cousins include Frappe/ERPNext, Odoo, NocoBase, Payload CMS and Twenty): the closest relatives, metadata that generates tables, APIs and UI, most of which added MCP servers in 2025 and 2026. Difference: their metadata is configuration held in a database and authored in a UI; ObjectStack's is typed TypeScript in the user's repository, validated by a gate, versioned and reviewed as code, written for an AI to author.
    • AI code generation (an agent writes a conventional codebase): no runtime ceiling. Difference: the output is still code, which grows, drifts and cannot be held whole; the gate that rejects a wrong definition at authoring time has no equivalent.
  3. A comparison table, rows = the five kinds plus ObjectStack, columns = executable, AI-writable, agent-operable, you own it, is the system itself. Cell values are short words, not ticks.
  4. "Where the others are stronger", mandatory and honest: existing data and legacy systems (semantic and operational layers), reasoning over heterogeneous data (knowledge ontologies), algorithm-heavy or unusual UI (code), ecosystem maturity and integrations (the metadata platforms). This section is what makes the page credible; do not soften it.
  5. Close with the four-promise sentence and links to concepts/ontology and the blog essay.

Rules for naming others: use public product names as their vendors spell them; state only what their public documentation says, in present tense, hedged with "as of late 2026" where status is changing (Fabric IQ Ontology was in preview in September 2026); no star counts, no market claims, no analyst or consulting-firm quotes, no "the only" or "the first" claims about ObjectStack; describe categories first and name products as examples. Where unsure of a vendor fact, drop the fact rather than guess.

Part B. content/docs/concepts/when-to-use.mdx — When to use ObjectStack, and when not to

Audience: a reader deciding whether to start. Structure:

  1. "A good fit": new business applications (CRM, ticketing, approvals, operations and internal tools), teams small enough that one person or a few can define the business, ISVs shipping many vertical apps, the long tail of departmental apps around a core ERP that live in spreadsheets and low-code today, back offices meant to be operated by agents from day one.
  2. "Not a fit today": replacing the core ERP or finance system of a large enterprise; workloads whose value is in integrating many existing systems (external datasources are early and read-only, link to the datasource docs); analytics over data lakes; algorithm-heavy domains such as pricing or scheduling, unless the algorithm is wrapped as an action; workloads that require a certified platform.
  3. "Five questions before you start": what we have, how it relates, what can be done, who may do it, what happens when. If the team can answer them, the ontology is a day's work; if it cannot, no tool helps yet. State plainly that the first investment is answering these, not installing anything.
  4. "What you get and when": in the first weeks (one definition instead of four copies, apps in days, agents connected by default under the same permissions), after a year (the ontology as an asset in your repository, model-independent, changes gated), later (operations that scale without headcount, cheap experiments, cheap replication across entities). No numbers that are not measured in this repository; the one measured number allowed is the example CRM's size as the ontology page states it.
  5. Links: Try it (quick-start), the examples page, concepts/ontology, compare.

Part C. Wiring

  • content/docs/concepts/meta.json: add "compare" and "when-to-use" after "ontology".
  • content/docs/concepts/ontology.mdx: one sentence at the end of "What it is not" pointing to compare; one sentence at the end of the page pointing to when-to-use. Nothing else on that page changes.
  • content/docs/concepts/index.mdx: the paragraph around line 97 that introduces the ontology gains one sentence naming both pages.
  • scripts/docs-audit/handwritten-docs.json: regenerate with the generator named in the file's own header (check-audit-scope --write); never hand-edit.
  • Frontmatter on both pages: title, navTitle, description (a real snippet, 110 to 160 characters, see docs content: meta descriptions too thin to serve as snippets — median 46 chars, 228 of 403 under 70 #12238 for why).

Guardrails for the author

Non-goals

  • Chinese versions (objectos.ai is the Chinese project).
  • Changes to the home page, the blog essay, or the README.
  • A pricing or "vs" marketing page outside the docs tree.

Who acts

domain:devx lane, this seat, one os-dev dispatch at the default tier, one docs-only draft PR. Base is origin/main at 3ae5966. Precedent on the same section: #21586 via PR #21591 added concepts/ontology.mdx and registered it in the ledger.

Duplicate check (2026-10-08, open and closed)


Generated by Claude Code

Activity

  1. objectstack-fleet commented on Oct 8, 2026

    @objectstack-fleet
    ContributorAuthor

    Claim: PM loop round 1
    Session: session_011hRnra93sK5Q2gTYYTbdJR
    Account: hotlong (the seat's linked user as GET /user answers it; the card's assignee; the maintainer's own session, dispatching on the maintainer's direct instruction)
    Branch: claude/issue-22240-compare-when-to-use (cut from origin/main 3ae59661dc)
    Worktree: objectstack-issue-22240
    Domain: domain:devx
    Seat: domain:devx#2
    File surface: content/docs/concepts/compare.mdx (new); content/docs/concepts/when-to-use.mdx (new); content/docs/concepts/meta.json (two entries); content/docs/concepts/ontology.mdx (two pointer sentences); content/docs/concepts/index.mdx (one sentence); scripts/docs-audit/handwritten-docs.json (regenerated by its generator 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. Stop on a breach and explain it in the report.
    Container & model: M (two new hand-written pages, four wiring edits, one docs build), mode:subagent, model: opus (the default judgment tier; this card's --tier run printed no path-derived mandate, "floor sonnet · default opus · ceiling fable")
    Clause-②: no
    Thread-read: none
    Serial constraints cleared: board read at 2026-10-08T08:23Z. No open PR touches content/docs/concepts; #22224 and #22232 (both in flight) touch README.md only, which this card does not. The precedent on the same section, #21586 via PR #21591 (concepts/ontology.mdx and the ledger), is closed and landed on main.


    Generated by Claude Code

  2. objectstack-fleet commented on Oct 8, 2026

    @objectstack-fleet
    ContributorAuthor

    os-dev-report

    {
      "issue": 22240,
      "status": "done",
      "branch": "claude/issue-22240-compare-when-to-use",
      "pr": "https://github.com/objectstack-ai/objectstack/pull/22247",
      "session": "session_011hRnra93sK5Q2gTYYTbdJR",
      "premise_still_valid": true,
      "summary": "Added content/docs/concepts/compare.mdx (How ObjectStack compares: five kinds, each with what it is / what it is good at / the one difference; a six-row table with the five named columns in short words; an unsoftened Where the others are stronger section; the four-promise sentence with links to concepts/ontology and the blog essay) and content/docs/concepts/when-to-use.mdx (A good fit / Not a fit today / Five questions before you start / What you get and when / Next steps). Wired per Part C: meta.json puts compare and when-to-use after ontology; ontology.mdx gains one pointer sentence closing What it is not and one closing the page; index.mdx gains one sentence in the paragraph at old line 97; handwritten-docs.json regenerated by check-audit-scope --write (+2/-0). Draft PR 22247 is open, labelled skip-changeset, and assigned hotlong; the body was read back byte-identical (6598 bytes). Partial-premise notes are in deviations; the core premise (no compare or fit page exists) held on 3ae59661. Order of the last steps: this comment is posted from the worktree, then node_modules is removed and git worktree remove runs.",
      "pages": {
        "content/docs/concepts/compare.mdx": {
          "body_words_wc": 1074,
          "description_chars": 155,
          "title_chars": 64,
          "navTitle": "How It Compares"
        },
        "content/docs/concepts/when-to-use.mdx": {
          "body_words_wc": 870,
          "description_chars": 152,
          "title_chars": 40,
          "navTitle": "When to Use It"
        },
        "word_count_method": "awk 'BEGIN{n=0} /^---$/{n++; next} n>=2' FILE | wc -w"
      },
      "files_changed": [
        "content/docs/concepts/compare.mdx (new, +125)",
        "content/docs/concepts/when-to-use.mdx (new, +100)",
        "content/docs/concepts/meta.json (+2)",
        "content/docs/concepts/ontology.mdx (+6, two pointer sentences)",
        "content/docs/concepts/index.mdx (+2, one sentence)",
        "scripts/docs-audit/handwritten-docs.json (+2, generator-written)"
      ],
      "tests": [
        "HEAD e0c7be11 (git rev-parse --short HEAD), base 3ae59661dc; packages/** changed: 0 (git diff --name-only BASE HEAD).",
        "docs build: bash scripts/pm/os-verify-lock.sh -c \"NODE_OPTIONS=--max-old-space-size=4096 pnpm --filter @objectstack/docs build\" on e0c7be11 -> os-verify-lock: VERDICT command-exit 0, held the lock 84s, waited 0s; .next/server/app/en/docs/concepts/compare.html and when-to-use.html emitted. An earlier build on 3e9c89e5 was also VERDICT command-exit 0 (153s).",
        "prereq builds under lock: spec build VERDICT command-exit 0 (85s); turbo build formula+lint+client+client-react VERDICT command-exit 0 (266s, 34/34 tasks).",
        "dispatch-gates --commands --repo objectstack-ai/objectstack (no paths, repo and commit e0c7be11 named on stderr) derived 50 commands; all 50 exit 0 on e0c7be11; --ran reconciliation with exit codes: 50 derived, 50 run, 0 NOT-MEASURED, 0 UNRUN (a DERIVED zero).",
        "PM-named extras outside the derivation, all exit 0 on e0c7be11: pnpm check:docs-locale-catch-all, pnpm check:page-declaration-shape, node scripts/check-docs-nav-label.mjs --self-test, node scripts/check-docs-nav-label.mjs.",
        "Round 1 on an earlier head: check:doc-formula-expressions, check:doc-security-posture and spec check:skill-examples exit 3 (PREREQUISITE NOT MET, nothing measured), green after the prereq builds; check:role-word exit 1 on the word roles in when-to-use, fixed to the ADR-0090 permission-set vocabulary and green.",
        "check:docs-audit-scope before regeneration exit 1 naming both new pages, generator --write exit 0, then green.",
        "Control-character self-scan over both new pages: no match (grep exit 1).",
        "NOT MEASURED: lychee link check (CI only); Test Core and type-check lanes (no TypeScript touched); the Build Docs CI job itself (the local docs build runs the same package script)."
      ],
      "gates": [
        "node scripts/check-ci-filter-parity.mjs :: exit 0",
        "node scripts/check-closing-keyword-parity.mjs :: exit 0",
        "node scripts/check-closing-keyword-parity.mjs --self-test :: exit 0",
        "node scripts/check-comment-mask-corpus.mjs :: exit 0",
        "node scripts/check-doc-frontmatter.mjs :: exit 0",
        "node scripts/check-doc-frontmatter.mjs --self-test :: exit 0",
        "node scripts/check-doc-route-spelling.mjs --advisory :: exit 0",
        "node scripts/check-doc-route-spelling.mjs --self-test :: exit 0",
        "node scripts/check-docs-section-name.mjs :: exit 0",
        "node scripts/check-docs-section-name.mjs --self-test :: exit 0",
        "node scripts/check-scripts-symbol-anchors.mjs :: exit 0",
        "node scripts/check-scripts-symbol-anchors.mjs --self-test :: exit 0",
        "node scripts/check-section-landing-index.mjs :: exit 0",
        "node scripts/check-section-landing-index.mjs --self-test :: exit 0",
        "node scripts/docs-audit/check-affected-docs.mjs :: exit 0",
        "node scripts/docs-audit/check-drift-comment.mjs :: exit 0",
        "pnpm --filter @objectstack/lint run check:doc-formula-expressions :: exit 0",
        "pnpm --filter @objectstack/lint run check:doc-security-posture :: exit 0",
        "pnpm --filter @objectstack/spec run check:docs :: exit 0",
        "pnpm --filter @objectstack/spec run check:empty-state :: exit 0",
        "pnpm --filter @objectstack/spec run check:liveness :: exit 0",
        "pnpm --filter @objectstack/spec run check:skill-examples :: exit 0",
        "pnpm --filter @objectstack/spec run check:strictness-ledger :: exit 0",
        "pnpm --filter @objectstack/spec run check:variant-docs :: exit 0",
        "pnpm --filter @objectstack/spec run check:yaml-examples :: exit 0",
        "pnpm check:agent-test-spelling :: exit 0",
        "pnpm check:bash32-floor :: exit 0",
        "pnpm check:cli-command-ids :: exit 0",
        "pnpm check:corpus-claim-drift :: exit 0",
        "pnpm check:cross-package-test-inputs :: exit 0",
        "pnpm check:doc-anchors :: exit 0",
        "pnpm check:doc-authoring :: exit 0",
        "pnpm check:docs-audit-scope :: exit 0",
        "pnpm check:docs-redirects :: exit 0",
        "pnpm check:docs-single-h1 :: exit 0",
        "pnpm check:docs-spec-enumerations :: exit 0",
        "pnpm check:docs-transcript-drift :: exit 0",
        "pnpm check:driver-memory-census :: exit 0",
        "pnpm check:entry-guard :: exit 0",
        "pnpm check:gitlink-declared :: exit 0",
        "pnpm check:nul-bytes :: exit 0",
        "pnpm check:parse-guard :: exit 0",
        "pnpm check:pnpm-filter-targets :: exit 0",
        "pnpm check:published-readme-links :: exit 0",
        "pnpm check:react-page-adapter-contract :: exit 0",
        "pnpm check:refd-timer-probe :: exit 0",
        "pnpm check:role-word :: exit 0",
        "pnpm check:skill-identifier-liveness :: exit 0",
        "pnpm check:vendor-version-stamps :: exit 0",
        "pnpm check:watch-hint-literal :: exit 0",
        "pnpm check:docs-locale-catch-all :: exit 0",
        "pnpm check:page-declaration-shape :: exit 0",
        "node scripts/check-docs-nav-label.mjs --self-test :: exit 0",
        "node scripts/check-docs-nav-label.mjs :: exit 0"
      ],
      "dropped_vendor_facts": [
        "Operational ontologies: open-source reference implementations of the same pattern exist -- dropped, not traceable to a named public source.",
        "Metadata platforms: most of which added MCP servers in 2025 and 2026 -- narrowed to Several of them now offer MCP servers (public docs confirm Salesforce hosted MCP servers, NocoBase MCP plugin, Twenty MCP marked alpha, Payload MCP plugin, Frappe experimental MCP package; no first-party Odoo server found; dates not confirmed for all).",
        "Metadata platforms: their metadata is configuration held in a database and authored in a UI -- narrowed to In most of these platforms, with Payload Config and Odoo modules named as the code-configured exceptions.",
        "AWS Context: named as an example without availability status (public sources disagree on preview vs GA).",
        "Microsoft Fabric IQ: kept as in preview behind As of late 2026 (Learn overview marks the Ontology item preview)."
      ],
      "deviations": [
        "CRM size: the card allows the example CRM size as the ontology page states it; concepts/ontology states none. The figure lives on concepts/metadata-driven and getting-started/how-ai-development-works (1,792 lines / 31 files) and has drifted (the page command on 3ae59661 prints 1,929 lines / 31 files). when-to-use therefore states no number and links to the metadata-driven measurement section.",
        "Try it: the card says quick-start; that page calls itself the map, not a starting point. Try it links getting-started/build-with-claude-code, with quick-start (Anatomy of an ObjectStack App) linked beside it.",
        "Opening paragraph: two of the five card sections (metadata platforms, AI code generation) do not use the word ontology, so the opening says three that use the word and two that answer the same question without it, instead of four kinds of ontology plus a fifth.",
        "Vendor research: 12 WebSearch reads; WebFetch to vendor domains failed DNS in this container (2 attempts), so the vendor facts rest on search-result excerpts of the vendors own documentation pages."
      ],
      "mcp_calls": "0 -- no MCP GitHub tool used. Reads went over REST (gh api: issue 22240, its comments, PR 22247, PR 22247 files).",
      "api_writes": "3 relay dispatches (POST /repos/objectstack-ai/objectstack/dispatches) executing 4 writes as objectstack-fleet[bot]: POST /repos/objectstack-ai/objectstack/pulls (draft PR 22247); POST /issues/22247/labels (skip-changeset) and POST /issues/22247/assignees (hotlong) in one label-write; POST /issues/22240/comments (this os-dev-report). Plus 5 git pushes (empty-branch probe and 4 commits), which are not REST writes.",
      "open_questions": [],
      "out_of_scope_findings": [
        "class: a · reach: public docs page concepts/metadata-driven section 4 tells the reader to Count it yourself with find examples/app-crm/src -name *.ts -not -name *.test.ts | xargs cat | wc -l; on main 3ae59661 that prints 1929 while the page states 1,792 (files still 31); the same 1,792 lines / 16k tokens figure is on getting-started/how-ai-development-works line 37 · evidence: command output 1929 vs table row Lines 1,792 at metadata-driven.mdx line 232 · dedupe words: app-crm 1,792 lines; Count it yourself; example CRM size drift; context window 8%",
        "carrier: none for the two blog posts (content/blog/context-window-is-the-constraint.mdx, the-ontology-is-the-software.mdx carry the same dated figure) · noted, not filed -- dated essays, not current-state docs"
      ]
    }
  3. objectstack-fleet commented on Oct 8, 2026

    @objectstack-fleet
    ContributorAuthor

    Review: ACCEPT — PR #22247 at head e0c7be11

    Seat domain:devx#2 · session_011hRnra93sK5Q2gTYYTbdJR · reviewed against GitHub and the fetched branch at 2026-10-08T09:13Z, not against the report.

    PR shape. Draft, base main, body opens Fixes #22240, Clause-②: no at line start, session-URL footer, no model identifier in body or commits (four commits, model-free trailers). Labels documentation · size/m · skip-changeset; assignee matches the card. 6 files, +237 / −0. node scripts/pm/check-governed-merges.mjs --pr 22247: 0 of 6 paths governed, 237 changed lines, under the human-merge threshold.

    Scope and wiring, exactly the card's Part C. content/docs/concepts/compare.mdx (new, +125) and when-to-use.mdx (new, +100); meta.json gains compare and when-to-use after ontology; ontology.mdx gains one sentence closing "What it is not" and one closing the page, nothing else; index.mdx gains one sentence in the paragraph that introduces the ontology; scripts/docs-audit/handwritten-docs.json +2 / −0, generator-written. No packages/**, apps/docs/**, content/blog/**, README.md, content/docs/references/**, content/docs/releases/**, CHANGELOG, binaries. skip-changeset holds: nothing publishes.

    Part A, read sentence by sentence against the card. The five kinds in the card's order, each with what it is, what it is good at, and the one difference. Vendor rule kept: categories first, products as examples; "As of late 2026" on the semantic-layer list with Fabric IQ marked preview; Palantir described only by action types and writeback as its public documentation describes them; the metadata-platform MCP sentence narrowed to "Several of them now offer MCP servers"; no star counts, market claims, analyst or consulting-firm quotes, "the only" or "the first". Table: five kinds plus ObjectStack, the five columns, short words, one line saying each cell reads a category as a whole. "Where the others are stronger" carries all four items and is not softened (federation "early and read-only by default; not a way to put one model over an existing estate"; a reasoner "ObjectStack has none"; "expect to build more of it yourself"). Closes on the four-promise sentence as concepts/ontology states it, linking the ontology page, the blog essay and when-to-use.

    Part B, same. A good fit (the card's five), Not a fit today (the card's five, each with its reason), Five questions (the five parts, then "The first investment is answering these five questions, not installing anything"), What you get and when (first weeks / after a year / later, the card's items), Next steps (Try it, examples, ontology, compare). No number on the page: the CRM size is a link to the measurement section, not a figure.

    Facts about ObjectStack, re-checked on the branch. Federation read-only by default with the double opt-in on datasource and object (external-datasources.mdx, section 5). MCP on by default (connect-mcp.mdx, line 9). os validate as the gate (ontology.mdx). "A small readable diff in the Console" is the README's own wording (line 175). Apache-2.0 (LICENSE, root package.json). All ten link targets exist on the branch, and #4-small-enough-to-fit-in-an-agents-context resolves to the heading at metadata-driven.mdx line 220. Descriptions 155 and 152 characters, inside the 110 to 160 range; title and navTitle on both pages.

    Gates. The report's 50 derived commands all exit 0, --ran reconciliation "50 derived, 50 run, 0 NOT-MEASURED, 0 UNRUN", docs build under the verify lock exit 0 with both routes emitted; the check:role-word failure on an earlier head was fixed by the permission-set vocabulary. CI on e0c7be11: Build Docs and Check Documentation Links green, 22 success, 10 expected skips, 3 still in progress at this review (Test Core 1/6, Lint & Repo Gates, Type Check · workspace); landing waits for them and for check-expected-skips.mjs --pr 22247.

    Out-of-scope findings and Acceptance notes from the report.

    • Measured CRM size drifted: three pages say 1,792 lines across 31 files, the page's own command prints 1,929 on main (re-measured by this seat on 31cd2104) → filed docs: the example CRM size stated on three pages (1,792 lines across 31 files) has drifted — the pages' own count command prints 1,929 lines on main #22248 (class a, reach measured; one card for all three locations, the blog post included).
    • "Try it" links Build with Claude Code first, with the quick-start page beside it, because the quick-start page calls itself the map → Acceptance notes, accepted.
    • Opening paragraph says "three that use the word and two that answer the same question without it" rather than "four kinds and a fifth", because two of the card's five sections do not use the word → Acceptance notes, accepted; the card's own item 2 lists five.
    • Five vendor facts dropped or narrowed under the card's drop-rather-than-guess rule (open-source operational-ontology implementations; "most added MCP servers in 2025 and 2026"; "configuration held in a database" not true of Payload or Odoo; AWS Context availability; Fabric IQ preview kept behind the date hedge) → accepted as written.

    Contract review: not owed (hand-written docs under content/docs/concepts/ and the audit ledger; no spec or metadata contract touched).


    Generated by Claude Code

  4. objectstack-fleet commented on Oct 8, 2026

    @objectstack-fleet
    ContributorAuthor

    Landed — PR #22247 merged as 335c4737

    Seat domain:devx#2 · session_011hRnra93sK5Q2gTYYTbdJR · verified on origin/main at 2026-10-08T10:02Z.

    Verified on main. content/docs/concepts/compare.mdx and content/docs/concepts/when-to-use.mdx are byte-identical to the reviewed head e0c7be11. meta.json lists compare and when-to-use, and scripts/docs-audit/handwritten-docs.json registers both pages (the ledger and the three wired pages were compared by content, since main's copies may carry other landings). The two routes are /docs/concepts/compare ("How It Compares") and /docs/concepts/when-to-use ("When to Use It"), reachable from the ontology page and the concepts index. The card closed on the merge; pm:dispatched leaves with this comment.

    Finding filed from this card's report: #22248 — the example CRM size stated on three pages (1,792 lines across 31 files) has drifted; the pages' own count command prints 1,929 on main. Awaiting first grading. The new pages carry no number for that reason and link to the measurement section instead.

    Still the maintainer's, outside this card: where the pages are surfaced beyond the docs nav (README's "and who it is not for" line, the home page), and the open blog decisions from the session.


    Generated by Claude Code

  5. added a commit that references this issue on Oct 9, 2026
    335c473
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions