Skip to content

Blog: three second-wave ontology posts, and published posts that contradict the ontology guardrails (2 to correct, 4 lineage notes, 10 scenario sections) #236

Open

Description

@objectstack-fleet

Filing-gate category: ③ maintainer-directed task. The maintainer, in the PM session chat on 2026-10-15, on the seat's evaluation that proposed this work: 「立卡处理」; and, in the same chat, that article cards dispatch at the ceiling tier.
Who acts: the repo:www.objectos.ai seat (objectstack-ai/objectstack#12224), at dispatch: one sub-issue and one dev per post (A, B, C) and one for part D.
Dedupe: all 109 issues on this repo, open and closed, fetched over REST 2026-10-15T11:25Z, titles and bodies grepped. hands, and a fence|a world, hands: 0 hits. projection: 1 hit (#211 — post 1 defines the four projections; post C builds on it and must not repeat it). editor.?s note|lineage: 0. Why This Scenario: 0. ai-ontology-open-protocol: 7 hits (#68 #85 #130 #165 #197 closed; #177 anchor text, #221 SVG text — none touches the definition at line 35). business-app-in-16k|16k-tokens: 4 hits (#83 #174 closed; #180 SVG styles, #219 a bare-URL link — none touches the figures).
Dispatch tier: ceiling (CONTRACT_REVIEW_TIER) — reason: the maintainer's 2026-10-15 ruling for article cards, above.

Posts — slots after the positioning wave

The five wave posts (#211, #228, #229, #230, #231) hold the next Tue/Thu slots. These three take the free slots after them. The seat assigns each date at dispatch: one post per slot, never stacked (AGENTS.md, "Publishing cadence").

Vary openings, structure and proof artifacts across the three, and against the wave (writing rule 9): #229 already uses an os validate run and #230 a two-user MCP run.

A. "What Do AI Models Lack in the Enterprise? A World, Hands and a Fence" (working title). Mints the concept in objectstack.ai's "00 · The idea" section (apps/docs/app/[lang]/page.tsx:127-131, objectstack 712361b7): what the model lacks is not intelligence but a world (the ontology), hands (actions exposed as tools) and a fence (permissions, RLS, audit). Proof artifact: a table mapping each of the three to the runtime mechanism that supplies it, with sources.

B. "When Should You Not Use an Executable Business Ontology?" Built on objectstack's content/docs/concepts/when-to-use.mdx: the good fits, and the four non-fits (core ERP, integration-heavy work, data lakes, certified platforms), each steelmanned (writing rule 7). The product appears only as the subject of its limits.

C. "Views, Dashboards and Apps Are Projections of the Ontology: What That Changes for Review" (working title). Starts where #211's definition stops: one object definition and everything derived from it — database, API, UI, MCP tools — and why reviewing the definition reviews all of them. Sources: objectstack content/docs/concepts/ontology.mdx:32-40 and :62-81.

All three: en and zh-Hans authored, re-derived rather than translated; zh-Hant generated; further locales at the seat's call. Facts are verified against objectstack origin/main on the day of writing, not taken from this card. No token figures as positioning (#209 Q5).

D. Published posts that contradict the guardrails

Readings: origin/main 53764e0, 2026-10-15T11:27Z. Serial after the #209 blog sweep PR, which rewrites the CTA in many of these files; re-read each line below on the main that sweep lands on.

  1. ai-ontology-open-protocol (8 locale files). index.mdx:35 defines an ontology as "a structured, machine-readable semantic layer", and :45 and :81 call it a "business semantic layer". The current positioning says the ontology is not the semantic layer. Correct the definition in every locale and set updated. (objectstack's README used to link this post as its "Read why"; it now links objectstack's own essay.)
  2. business-app-in-16k-tokens, titled "How Many Tokens Is a Business App? A Complete CRM Under 150k". Adopt objectstack's 2026-10-03 positioning across www.objectos.ai: copy changes, five posts, an update sweep #209 Q5 retired those figures from positioning copy, and objectstack's current measurement is about 18,500 tokens for the example CRM (content/blog/the-ontology-is-the-software.mdx:119, re-measured 2026-10-08 in c8bb3c8d). Re-measure, or date each figure to the version it was measured on. Keep the slug; set updated.
  3. Lineage editor's notes, in objectstack's shape (content/blog/metadata-driven-architecture.mdx:9: "Editor's note, October 2026: this post predates the project's current positioning, the ontology is the software, …"), on four posts (low-code / AI-native line counts): low-code-vs-ai-native-app-platform (25 / 15), metadata-not-code-generation (8 / 1), natural-language-to-app-metadata (1 / 1), airtable-style-ai-builder (5 / 0). The note links the /ontology/ page (No page explains the positioning: add an /ontology/ pillar page and a /compare/ page with a "when not to use it" section #235) once it exists, otherwise Post (slot Thu 2026-10-08): What Does "The Ontology Is the Software" Mean? An Executable Business Ontology, Defined #211's post.
  4. The ten 2026-06-05 scenario posts (content/blog/ai-*, 10 files with the heading): each carries a section headed "Why This Scenario Is AI-Native". Reframe that section to the ontology positioning.

Done looks like

  • Posts: the PR body lists every factual claim with its objectstack source; each post browser-checked on its slot day, SVGs rendered at native size and at phone width.
  • Part D: the PR body quotes each changed sentence before → after; updated set where the revision is substantive, date untouched.
  • pnpm content:lint, pnpm content:lint --published, pnpm check, pnpm build, pnpm seo:smoke green.

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-236-a
    Worktree: www.objectos.ai-issue-236-a
    Domain: none — single-lane repo (repo:www.objectos.ai)
    Seat: repo:www.objectos.ai#2
    File surface: item A only — new content/blog/ directory for post A ("A world, hands and a fence", slot Tue 2026-11-03), en + zh-Hans authored, zh-Hant generated (stop on breach; explain in the report). Items B, C and D stay on this card for later claims; the PR carries Refs #236 (item A), never Fixes.
    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, and #209's dispatch-tier ruling for positioning copy (2026-10-05)
    Clause-②: no
    Responsibility: n/a — not a defect card
    Thread-read: none
    Serial constraints cleared: slot 2026-11-03 is free (seat 1's plan on #209, comment 6192871332: 10-20 #244, 10-22 #245, 10-27 #237, 10-29 held for #231; recorded on objectstack-ai/objectstack#12224, comment 6209591407); new post directory, no file shared with any open PR; overlap of subject with #237 (agent-operable), #245 (AI-writable) and #244 (executable vs knowledge ontology) is fenced in the dispatch.

  2. objectstack-fleet commented on Oct 16, 2026

    @objectstack-fleet
    ContributorAuthor

    os-dev-report

    {
      "issue": 236,
      "status": "done",
      "branch": "claude/sharp-mendel-1087cg-issue-236-a",
      "pr": "https://github.com/objectstack-ai/www.objectos.ai/pull/260",
      "session": "session_017GeNDQH7E5S2rX8ajVAPxv",
      "premise_still_valid": true,
      "summary": "Item A only. New post directory content/blog/what-do-ai-models-lack-in-the-enterprise/ with the post 'What Do AI Models Lack in the Enterprise? A World, Hands and a Fence' (en authored; zh-Hans re-derived; zh-Hant generated), date 2026-11-03, topic ai-agents, audience it, plus cover and diagram as zh / -en SVG pairs. The front page's line (apps/docs/app/[lang]/page.tsx:127-131) is mapped to the runtime mechanism supplying each of world, hands and fence with file:line at objectstack 1ecb08a1; one number measured with the README's own command on examples/app-crm (1,844 lines / 30 files; the fence declaration is 78 lines; 0 lines of tool/authorization/audit plumbing, the two grep hits are comments); the RAG + function calling + policy-layer stack is steelmanned with a five-row comparison; five limits are stated (REST /actions is outside the ai.exposed gate, read audit narrower than write audit, world = apps the runtime runs, action bodies are trusted code, no judgment supplied). Positioning lines quoted byte-exact from src/lib/positioning.ts (checked by script). Draft PR #260 opened through the fleet-write relay with assignee os-tesla and body 'Refs #236 (item A)'; items B, C, D untouched. PM mechanism assumption held, with the two bounds above written into the post.",
      "tests": "At HEAD 2bb6ff4 (final commit; the full gate set was rerun on it): pnpm content:lint exit 0 ('✓ content lint passed (350 files, 44 glossary terms checked)'; advisories only: title 68 cols, description 223 cols, 'Date is in the future' as expected). svg-text-fit alone on the four new SVGs exit 0 ('4 SVGs, 114 text boxes, 0 filtered elements, tolerance 2px, 0 allowlisted'). WCAG check script over all 24 text/background pairs: minimum 4.77:1, 'CONTRAST PASS'. Positioning byte-exact check: en T2/T4/E1 and zh t2/t4/e1 all 'ok'. Control-character scan (grep -naP) over the 7 files: none. Browser check (Playwright library at /opt/node-tools + Chromium /opt/pw-browsers/chromium against astro preview of dist): 'BROWSER CHECK PASS: 67 checks, 0 failing' — en/zh-Hans/zh-Hant at 1440x750 and 390x844, HTTP 200, img.cover=1 and 0 cover refs in body, all images scrolled into view and decode()d, 56/55/55 internal links all 200, no horizontal overflow, all tables overflow-x:auto scroll containers (mapping table revised to 3 columns so it fits at 390), blog list en + zh-Hans both widths show the post first with cover decoded; SVGs rendered at native size with headless Chromium and looked at, plus viewport/element crops at both widths looked at. No ablation: no tested code behaviour changed (content-only diff).",
      "gates": "Local subset, exits captured before any pipe, heavy ones under os-verify-lock.sh (OS_VERIFY_LOCK_SLOT=www-236a; first run waited 77s behind issue-235's holder, held 116s shared-box; second run lock free): build&&check at 2bb6ff4 → 'heavy-exit=0 HEAD=2bb6ff4', lock 'VERDICT batch-last-exit 0'. pnpm build exit 0: '✓ content lint passed (350 files…)' (--published), 'svg-text-fit: OK — … (122 SVGs, 2587 text boxes, 183 filtered elements, tolerance 2px, 1 allowlisted)', '[build] Complete!', '✓ share images: 91 rendered at 1200x630 … no uncovered glyph', '✓ content lint --dist passed (489 built blog pages checked)', '✓ content lint --dist CJK line breaks passed (891 built pages, …, 0 segment breaks…)', '✓ content lint --dist quotation marks passed (891 built pages, 12441 curly marks, 0 pointing the wrong way or left open…)', '✓ content lint --dist links passed (94461 internal links in 891 built pages resolve to built files)'. pnpm check exit 0: 'Result (154 files): 0 errors, 0 warnings, 0 hints'. pnpm seo:smoke exit 0: 'SEO smoke test passed (881 HTML pages checked; 580 sitemap URLs against 301 noindexed pages; 5508 canonical/hreflang annotations; 16524 prose blocks language-checked; 94451 internal links redirect-checked)'. No dispatch-gates.mjs derivation: that script lives in objectstack and this is www.objectos.ai, whose gate list was hand-derived from package.json as the dispatch prescribed. CI check-runs on PR #260 head 2bb6ff4 as read at report time: Build and deploy: success. Not waited for; the seat reads CI convergence.",
      "line_budget": "n/a",
      "files_changed": [
        "content/blog/what-do-ai-models-lack-in-the-enterprise/index.mdx",
        "content/blog/what-do-ai-models-lack-in-the-enterprise/index.zh-Hans.mdx",
        "content/blog/what-do-ai-models-lack-in-the-enterprise/index.zh-Hant.mdx (generated)",
        "content/blog/what-do-ai-models-lack-in-the-enterprise/cover.svg",
        "content/blog/what-do-ai-models-lack-in-the-enterprise/cover-en.svg",
        "content/blog/what-do-ai-models-lack-in-the-enterprise/three-supplies.svg",
        "content/blog/what-do-ai-models-lack-in-the-enterprise/three-supplies-en.svg"
      ],
      "deviations": [
        "Sources were read at objectstack origin/main 1ecb08a1 (fetched today in the shared checkout; a fetch, no edit), not 5b6c257b named in the dispatch; the cited lines are identical at 712361b7 for page.tsx and the post names 1ecb08a1 throughout.",
        "Browser automation used the Playwright library already installed at /opt/node-tools (no playwright install, no npm install) with the preinstalled Chromium; one of my own helper scripts hung on img.decode() of lazy images it had not scrolled into view — the trap the dispatch names — so its first run was killed by PID (my processes only; a sibling's astro preview on port 4338 was left alone), the helper fixed to scroll first, and rerun. The first browser-check run also reported 9 false FAILs from a key typo in my checker (t.scrollWidth vs t.scrollW); the measured values already showed the tables scrolling; fixed and rerun to a clean PASS.",
        "Three fetch refs pr-244, pr-245, pr-237 were created as local branches in the shared www.objectos.ai .git to read the sibling posts; deleted at cleanup.",
        "The lock's first run sequenced build and check with ';' plus a final [ $B -eq 0 ] && [ $C -eq 0 ] (so the verdict did cover both); the second run on the final head joined them with '&&'.",
        "The mapping table went from 4 columns to 3 after the phone-width look (a 4-column table with long code spans rendered ~2,600px tall at 390); the fix was committed, and every gate rerun on the new head."
      ],
      "mcp_calls": "0 — no MCP tools called",
      "api_writes": "2 relay actions / 3 REST writes, all as objectstack-fleet[bot] through scripts/pm/fleet-write/dispatch.mjs: (1) pr_create = POST /repos/objectstack-ai/www.objectos.ai/pulls + its assignee leg POST /repos/objectstack-ai/www.objectos.ai/issues/260/assignees (run 38866809498, read-back identical 13091 bytes, assignees os-tesla); (2) comment = POST /repos/objectstack-ai/www.objectos.ai/issues/236/comments (this report). git push x4 to the branch (not REST). No label writes, no PATCH, no issue creation.",
      "open_questions": [],
      "out_of_scope_findings": [
        "none filed. Noted, not filed: content-lint's snippet-width advisory fires for any title over 60 columns (post 1's is 87; this one is 68, a query title per rule 2) — an advisory by design, not a defect. carrier: none."
      ]
    }

    Generated by Claude Code

  3. objectstack-fleet commented on Oct 16, 2026

    @objectstack-fleet
    ContributorAuthor

    Split and status · 2026-10-16T07:37Z

    This card keeps pm:dispatched and the seat-2 assignee while item A's PR is open. Under the partial-landing rule, it goes back to pm:queue when #260 merges, unless D is claimed by then.


    Generated by Claude Code

  4. objectstack-fleet commented on Oct 17, 2026

    @objectstack-fleet
    ContributorAuthor

    Cadence change: one post a day, one shared calendar · ruling B on #267

    The maintainer ruled on 2026-10-17 (#267, verbatim answer 「B」) that the site moves to one post a day. Daily publishing starts once at least 7 approved posts are queued across all seats. Until then, posts keep their dated slots, with no gap longer than 3 days.

    What this means for this card's posts:

    The charter change to AGENTS.md is a governed PR, which the maintainer merges.


    Generated by Claude Code

  5. objectstack-fleet commented on Oct 21, 2026

    @objectstack-fleet
    ContributorAuthor

    Publishing moves to seat 1 · ruling on #267 (2026-10-21)

    The maintainer ruled 「发文章都归你这个席位」: publishing every post belongs to the repo:www.objectos.ai seat 1. That covers this card's three PRs, #260, #264 and #263. The cadence is now three a week, Mon/Wed/Fri (「一周3篇 周一周三周五」), and no new posts are written for now (「暂时只发不写新的」).

    On each publish day, seat 1 will:

    • add one commit to the PR's branch moving its date to that day (history is never rewritten);
    • review the post with a six-viewport check in both themes;
    • mark the PR ready;
    • merge it.
    Day PR
    Wed 11-04 #260
    Mon 11-09 #264
    Fri 11-13 #263

    Please don't merge or re-date these yourselves. The single calendar is on #267.


    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