Skip to content

Post (slot Thu 2026-11-05): When Should You Not Use an Executable Business Ontology? #261

Open

Description

@objectstack-fleet

Carries item B of #236. #236 keeps item D; item A is PR #260, held to 2026-11-03; item C is split into its own card in the same stroke.
Filing-gate category: ③ maintainer-directed task. The maintainer, PM session chat, 2026-10-15: 「立卡处理」 on the evaluation that proposed this post. #236 split it out per its own body: one dev per post.
Who acts: repo:www.objectos.ai · seat 2 (objectstack-ai/objectstack#23827). It dispatches on filing.
Dedupe: all 113 issues on this repo, open and closed, REST, 2026-10-16T07:34Z. when (should you )?not (to )?use|when-to-use|not a fit: 2 hits, #236 (the parent) and #235 (closed; its /compare/ page carries a "Not a fit today" list — see the overlap fence below).
Dispatch tier: ceiling (CONTRACT_REVIEW_TIER) — reason: the maintainer's 2026-10-15 ruling that article cards dispatch at the ceiling tier.

The post

"When Should You Not Use an Executable Business Ontology?" (working title, query-shaped). Slot Thu 2026-11-05, merged on that day by the seat.

en and zh-Hans authored (the Chinese re-derived, not translated); zh-Hant generated. Facts verified against objectstack origin/main on the day of writing. No token figures as positioning (#209 Q5).

Done looks like

Draft PR Refs #236 (item B) with Fixes this card. Gates pnpm content:lint, pnpm content:lint --published, pnpm check, pnpm build, pnpm seo:smoke green. Browser check en + zh-Hans at 1440×750 and 390×844. SVGs rendered at native size and at phone width and looked at.


Generated by Claude Code

Activity

  1. objectstack-fleet commented on Oct 16, 2026

    @objectstack-fleet
    ContributorAuthor

    Claim: PM loop round 1
    Session: session_017GeNDQH7E5S2rX8ajVAPxv
    Account: os-tesla
    Branch: claude/sharp-mendel-1087cg-issue-261
    Worktree: www.objectos.ai-issue-261
    Domain: none — single-lane repo (repo:www.objectos.ai)
    Seat: repo:www.objectos.ai#2
    File surface: one new content/blog/ directory for this post (its index*.mdx and SVGs), en + zh-Hans authored, zh-Hant generated (stop on breach; explain in the report)
    Container & model: M, mode:subagent, model: CONTRACT_REVIEW_TIER — reason: the maintainer's 2026-10-15 ruling that article cards dispatch at the ceiling tier
    Clause-②: no
    Responsibility: n/a — not a defect card
    Thread-read: none
    Serial constraints cleared: slot 2026-11-05 free (seat 1's plan on #209, comment 6192871332; seat 2's on objectstack-ai/objectstack#23827); new post directory, no file shared with any open PR (#237 #244 #245 #255 #259 #260 read 2026-10-16T07:34Z); subject overlap fenced in the card body.

  2. objectstack-fleet commented on Oct 16, 2026

    @objectstack-fleet
    ContributorAuthor

    os-dev-report

    {
      "issue": 261,
      "status": "done",
      "branch": "claude/sharp-mendel-1087cg-issue-261",
      "pr": "https://github.com/objectstack-ai/www.objectos.ai/pull/264",
      "session": "session_017GeNDQH7E5S2rX8ajVAPxv",
      "premise_still_valid": true,
      "summary": "New post directory content/blog/when-not-to-use-an-executable-business-ontology/ for slot Thu 2026-11-05: en authored, zh-Hans re-derived from the same sources, zh-Hant generated; cover and self-check diagram as zh/en SVG pairs with an explicit fill on every text node. Thesis in the first paragraph; the six-kind test as the ownable concept; each of the five non-fits gets a scenario, the alternative and its case, the cost of choosing wrong and the deciding fact with its source; two compare.mdx concessions; a sourced decision table and a ten-question self-check; the product appears only as the subject of its limits and the CTA only for cases that pass. Mechanism assumption measured true: when-to-use.mdx at objectstack 43567a8f carries five non-fits and five questions. Draft PR #264 opened through the relay with assignee os-tesla; merging is the seat's, on the slot day.",
      "tests": "No test suite in this repo; the gates are the tests, all on HEAD f9955fa with exit codes captured before any pipe. pnpm content:lint exit 0 (✓ content lint passed (350 files, 44 glossary terms checked); the three Date is in the future advisories are the slot). pnpm content:lint --published exit 0 (same verdict line). pnpm svg:lint on the four SVGs exit 0 (svg-text-fit: OK — 4 SVGs, 148 text boxes, 0 filtered elements, tolerance 2px). pnpm check exit 0 (Result (158 files): 0 errors, 0 warnings, 0 hints). pnpm build exit 0 under the shared lock, VERDICT command-exit 0, held 102s on a shared box (907 page(s) built; ✓ share images: 91 rendered; ✓ content lint --dist passed (489 built blog pages checked); ✓ CJK line breaks passed (0 segment breaks); ✓ quotation marks passed (0 pointing the wrong way or left open); ✓ links passed (97929 internal links in 907 built pages resolve)). pnpm seo:smoke exit 0 (SEO smoke test passed (897 HTML pages checked; 586 sitemap URLs against 311 noindexed pages; 5582 canonical/hreflang annotations; 16982 prose blocks language-checked; 97919 internal links redirect-checked)). Browser: Playwright library with the preinstalled Chromium against astro preview of dist, every server stopped by PID. en and zh-Hans at 1440x750 and 390x844 all 200; header cover rendered once (.cover x1, not referenced in the body); both images scrolled into view and decode()d; no horizontal page overflow at 390; article internal links en 13 / zh-Hans 11 checked, all 200; decision table three columns 113/115/128 px at 390 (fits the 358px column, no sideways scroll) and 234/239/386 at 1440; blog list cards en and zh-Hans render cover, title, description, topic, audience, tags; the four SVGs rendered at native size (1200x675, 1200x760) and at 390 width and looked at. No ablation: content only, no tested behaviour changed.",
      "gates": "Local subset, hand-derived from this repo package.json (objectstack dispatch-gates answers only its own tree, not used): content:lint, content:lint --published, svg:lint, check, build (with gen:zh-hant, content-lint --published, svg-text-fit, og-images and the four --dist lints inside it), seo:smoke; every one exit 0 on f9955fa, verdict lines in the tests field and in the PR body. CI on PR #264 head f9955fa at report time: one check-run, Build and deploy (.github/workflows/cloudflare-pages.yml): in_progress; commit status contexts: 0. Not re-run locally; the PM reads its conclusion.",
      "line_budget": "n/a",
      "deviations": "(1) zh-Hans does not link this site’s /compare/ or /ontology/ pages. Measured before the first commit: with [对比页](/zh-Hans/compare/) in the zh-Hans body, scripts/gen-zh-hant.mjs leaves the link untouched in the generated zh-Hant file (prints: left 2 /zh-Hans/ link(s) as-is — no provable Traditional build) and pnpm content:lint exits 1 with a blocking Cross-locale internal link error because /zh-Hant/compare/ IS built; linking /en/compare/ from zh-Hans fails the same rule the other way. The zh-Hans text names the page without a link and links the objectstack concept pages instead; en links /en/compare/, /en/ontology/ and /en/security/. The generator fix is outside this card’s file surface (see out_of_scope_findings and open_questions). (2) First build failed with NoImageMetadata: Astro’s SVG size probe validates the root tag inside the first 1000 bytes and the self-check SVGs’ long aria-label pushed the root tag to 1263/1300 bytes; fixed in 64a1442 by moving the description into a desc element (root tags now 261/236 bytes). (3) The first decision table had four columns, which scroll at 390 under the layout’s 104px per-column floor (417px of content in 358); reduced to three columns in f9955fa with the fit verdict merged into the use-instead cell. (4) The first lock run joined its parts with semicolons and got a batch-last-exit verdict; discarded, re-run with && (VERDICT command-exit 0 is the one quoted). (5) The first preview server was pnpm-wrapped and its re-exec survived the parent’s SIGTERM; found by cmdline and killed by exact PID; later servers were spawned detached and killed by process group; ports probed down afterwards, nothing of mine left running. No label writes, no MCP writes, no PATCH of the PR body. Commit trailers are model-free (Co-Authored-By: Claude; Claude-Session URL).",
      "files_changed": [
        "content/blog/when-not-to-use-an-executable-business-ontology/index.mdx",
        "content/blog/when-not-to-use-an-executable-business-ontology/index.zh-Hans.mdx",
        "content/blog/when-not-to-use-an-executable-business-ontology/index.zh-Hant.mdx (generated by pnpm gen:zh-hant)",
        "content/blog/when-not-to-use-an-executable-business-ontology/cover.svg",
        "content/blog/when-not-to-use-an-executable-business-ontology/cover-en.svg",
        "content/blog/when-not-to-use-an-executable-business-ontology/self-check.svg",
        "content/blog/when-not-to-use-an-executable-business-ontology/self-check-en.svg"
      ],
      "mcp_calls": "0 — no MCP GitHub tools used; all reads via gh api / git",
      "api_writes": "2 — both relay dispatches (POST /repos/objectstack-ai/objectstack/dispatches): run 38873182377 executed POST /repos/objectstack-ai/www.objectos.ai/pulls (draft #264) and POST /repos/objectstack-ai/www.objectos.ai/issues/264/assignees (os-tesla); the second executes POST /repos/objectstack-ai/www.objectos.ai/issues/261/comments (this report). git push x4 (empty-branch probe, then three commits), not REST.",
      "open_questions": [
        {
          "question": "The zh-Hans post cannot carry /zh-Hans/compare/ and /zh-Hans/ontology/ links until gen-zh-hant proves marketing pages; add them in a follow-up, or hold this PR?",
          "options": [
            "A: land this PR as is on the slot day; once the one-condition generator fix lands, a follow-up in the same post directory adds the two zh-Hans links and regenerates zh-Hant",
            "B: hold this PR until the generator fix lands, then add the links here before 2026-11-05"
          ],
          "recommendation": "A, because the English post satisfies the overlap fence today, the fix is a producer change under scripts/ outside this card’s file surface, and the slot is 20 days out, so the follow-up fits either way; B couples a content PR to a tooling PR for two links"
        }
      ],
      "out_of_scope_findings": [
        "class: b · reach: public door pnpm content:lint, exit 1 measured in this run — a zh-Hans body linking its own locale’s marketing page, [对比页](/zh-Hans/compare/), makes gen-zh-hant leave the link in the generated zh-Hant file and content:lint then answers: Cross-locale internal link [對比頁](/zh-Hans/compare/): this file is the zh-Hant version, the link points at zh-Hans, and /zh-Hant/compare/ IS built (blocking); its remedy text (fix the link in the zh-Hans source and re-run pnpm gen:zh-hant) cannot be followed because the zh-Hans link is already the correct one · evidence: gen-zh-hant.mjs’ own header states that glossary terms and marketing pages derive zh-Hant from zh-Hans and fall back to English, so the two locales resolve together or not at all, i.e. the condition under which the rewrite is safe, yet its single-segment branch reports instead of rewriting; content-lint’s crossLocaleMiss then judges the generated file as if authored · Seam: spec:scripts/gen-zh-hant.mjs single-segment link handling → runtime:scripts/content-lint.mjs crossLocaleMiss | renderer: none · first zh-Hans post to link a marketing or cluster page (git grep over origin/main content/blog: 0 prior) · fix shape: rewrite /zh-Hans/SLUG/ to /zh-Hant/SLUG/ when content/pages/zh-Hans/SLUG.ts or content/pages/en/SLUG.ts exists, the way blog posts are already proven · dedupe words: gen-zh-hant, cross-locale, marketing page, zh-Hant compare, single segment",
        "carrier: seat 2 (repo:www.objectos.ai) to file; not filed by this dev"
      ]
    }

    Generated by Claude Code

  3. objectstack-fleet commented on Oct 16, 2026

    @objectstack-fleet
    ContributorAuthor

    os-dev-report-addendum

    {
      "issue": 261,
      "report": "os-dev-report-addendum",
      "addendum_to": "os-dev-report comment 6211319335 on #261; the option-A follow-up named in PR #264 ACCEPT comment 6211376912",
      "status": "done",
      "branch": "claude/sharp-mendel-1087cg-issue-261",
      "pr": "https://github.com/objectstack-ai/www.objectos.ai/pull/264",
      "head": "9f18a2f (round one: f9955fa)",
      "session": "session_017GeNDQH7E5S2rX8ajVAPxv",
      "premise_still_valid": true,
      "summary": "Patch round for the two zh-Hans links withheld in round one. Merged origin/main 3c5b6c6 (the gen-zh-hant marketing-page rewrite, PR #266) into the branch as merge commit 4e02c30: no rebase, no force-push. In content/blog/when-not-to-use-an-executable-business-ontology/index.zh-Hans.mdx the two plain-text mentions are links again: 本站的[对比页](/zh-Hans/compare/) in the opening and [定义本身是什么](/zh-Hans/ontology/) in the closing section. pnpm gen:zh-hant regenerated index.zh-Hant.mdx with /zh-Hant/compare/ and /zh-Hant/ontology/ and printed no left-as-is line. Commit 9f18a2f, pushed; PR #264 stays draft, held to its 2026-11-05 slot.",
      "tests": "All on HEAD 9f18a2f, exit codes captured before any pipe. pnpm gen:zh-hant exit 0 (✓ zh-Hant: generated 48, kept 0 hand-maintained, 8 with body links pointed at /zh-Hant/; no left … as-is line). pnpm content:lint exit 0 and pnpm content:lint --published exit 0 (✓ content lint passed (350 files, 46 glossary terms checked); the Date is in the future advisories are the slot). pnpm check exit 0 (Result: 0 errors, 0 warnings, 0 hints). pnpm build exit 0 under the shared lock, slot www-261, VERDICT command-exit 0 (held 110s after an 85s wait, shared box): 915 page(s) built; svg-text-fit: OK (122 SVGs, 2621 text boxes); ✓ content lint --dist passed (489 built blog pages checked); ✓ CJK line breaks passed (0 segment breaks); ✓ quotation marks passed (0 wrong); ✓ links passed (98827 internal links in 915 built pages resolve to built files). pnpm seo:smoke exit 0 (SEO smoke test passed (905 HTML pages checked; 589 sitemap URLs against 316 noindexed pages; 5619 canonical/hreflang annotations; 17174 prose blocks language-checked; 98817 internal links redirect-checked)). astro preview of dist with Chromium through the Playwright library, server stopped by process group and the port probed down: zh-Hans post 200, 13 article links all 200 including /zh-Hans/compare/ and /zh-Hans/ontology/; zh-Hant post 200, 13 article links all 200 including /zh-Hant/compare/ and /zh-Hant/ontology/; en post 200, 13 links all 200. The only cross-locale links left are the two English-only companion posts, which the lint accepts by design.",
      "gates": "Local subset all exit 0 on 9f18a2f (verdict lines in tests). CI on PR #264 head 9f18a2f: Build and deploy: completed / success; mergeable_state clean; 5 commits on the PR.",
      "files_changed": [
        "content/blog/when-not-to-use-an-executable-business-ontology/index.zh-Hans.mdx (two links restored)",
        "content/blog/when-not-to-use-an-executable-business-ontology/index.zh-Hant.mdx (regenerated by pnpm gen:zh-hant)",
        "merge commit 4e02c30 bringing origin/main 3c5b6c6 into the branch (22 files from main: the generator fix, the positioning copy sweep and two glossary terms; none edited here)"
      ],
      "pr_body_should_add": [
        "Deviations and notes, first bullet, superseded: zh-Hans now links /zh-Hans/compare/ and /zh-Hans/ontology/ (and /zh-Hans/security/), and the generated zh-Hant carries /zh-Hant/compare/ and /zh-Hant/ontology/, after origin/main 3c5b6c6 (the gen-zh-hant marketing-page rewrite) was merged into the branch as 4e02c30.",
        "Gates: re-run on 9f18a2f, all exit 0; build 915 pages and 98827 internal links resolve; seo:smoke 905 HTML pages; CI Build and deploy success on 9f18a2f.",
        "Browser check: article links zh-Hans 13, zh-Hant 13, en 13, all 200 in astro preview, the four marketing-page links among them.",
        "Branch note: one merge commit from origin/main (no rebase, no force-push); squash-merge on the slot day as planned."
      ],
      "deviations": "None beyond the round’s scope. No PR body PATCH (the additions are listed above for the seat); no label writes; no MCP writes; commit trailers model-free.",
      "api_writes": "1 — one relay dispatch (POST /repos/objectstack-ai/objectstack/dispatches) executing POST /repos/objectstack-ai/www.objectos.ai/issues/261/comments (this addendum). git push x1 (f9955fa..9f18a2f), not REST.",
      "mcp_calls": "0",
      "open_questions": [],
      "out_of_scope_findings": []
    }

    Generated by Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions