Repository navigation
docs: explain ObjectOS in ontology terms, and correct four capability claims 17.7 contradicts - #332
Draft
objectstack-fleet[bot] wants to merge 2 commits into
Draft
objectstack-fleet[bot] wants to merge 2 commits into
objectstack-fleet[bot] wants to merge 2 commits into
Conversation
…lity claims Add "Your ontology in ObjectOS" (core, projections, where it lives, what it is not), redraw the architecture page as ontology -> runtime (derive + enforce) -> database, REST, Console, MCP, and align index, why, build, glossary and FAQ with the official docs' ontology vocabulary. Correct claims ObjectStack 17.7 contradicts: the retired datasource readOnly/capabilities keys and the read-write federation default; actions becoming AI tools only on the ai.exposed opt-in, and action bodies running as trusted code; MCP being on by default on every deployment; and the non-existent `os package export`. The templates page's locale siblings are deleted with that correction. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CXCwzqwMhkphKoBC11oPSz
The "Where it lives" table and the new ontology -> runtime diagram were wider than a 390px viewport; the table drops to two columns and the diagram wraps at 35 characters. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CXCwzqwMhkphKoBC11oPSz
Contributor
Author
席位核对 — REWORK, patch round 1 · 2026-10-15T13:24ZSeat Verified on head
Patch items:
The dev's other findings went to their owners: Not blocking: this PR's commit trailers name the model, where the os-dev definition asks for the model-free pair. The history stays as pushed. Generated by Claude Code |
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #328
Below the gated lede, the docs now explain ObjectOS in the official docs' ontology terms: the ontology core, its projections, "executable, not a knowledge ontology", "not a semantic layer". Four pages also stated capabilities that ObjectStack 17.7 contradicts. Those are corrected. Each work item was checked against
main76988dafirst; the readings are below.What changed
B. Ontology framing (links the objectstack.ai concept pages and copies none of their content, per #171 ruling A):
content/docs/ontology.mdx, "Your ontology in ObjectOS", plus onemeta.jsonentry afterwhy. It holds:architecture.mdx:build/index.mdx:index.mdx, below:7-13and leaving:35alone:why.mdx:npm create objectstack@latest.resources/glossary.mdx: "Business ontology" now also says no inheritance, axioms or reasoner, and not a semantic layer. New entries: Projection and Validation gate.resources/faq.mdx: a new section answers "What does ObjectOS mean by ontology?" and "Is ObjectOS a semantic layer?".A. Capability claims 17.7 contradicts:
extend-existing-systems.mdx:29-31, :48;configure/data-sources.mdxreadOnlydatasource /capabilitiestable; "objects now read and write your existing tables"schemaMode: 'external': no DDL, read-only by default. Writes needexternal.allowWrites: trueandexternal.writable: trueon the object. ASELECT-only DB user is the boundary on every path. The pushdown section says the driver decides@objectstack/spec17.7.0DatasourceSchema.safeParserefusesreadOnly,capabilities,readReplicas,healthCheck,retryPolicy, each with its tombstone (RETIRED_CAPABILITIES,RETIRED_DATASOURCE_BLOCKS); objectstackexternal-datasources.mdx§5data-sources.mdx:29, :43(in-memory rows)memory… "In-process (tests, demos)":29kept;:43"In-process, for tests — not a boot store since ObjectStack 17.7"driver: 'memory'datasource still parses on 17.7.0, and the factory still builds it (service-datasource/default-datasource-driver-factory.ts:1341-1350). 17.7 retired it as a boot store only (releases/v17/17-7.mdx:787-793)build/agents.mdx:86-97,build/ai-builder.mdx:59-63,build/interface/actions.mdx:10-13and the derived lines:62, :68, :91-92, :151-156action_NAMEtoolai: { exposed: true }+ anai.descriptionof at least 40 characters, on a headless type (script/flow/api). Theapprove_invoicesample now carries theaiblock, so its "the assistant can call it" line is trueai/actions-as-tools.mdx:90-113; this repo'sconfigure/mcp.mdx:134-137resources/glossary.mdxMCP entry,resources/faq.mdx:152-158@objectstack/mcp"; MCP framed as the open-source path only/api/v1/mcp, on by default; objects are tools, exposed actions are tools; each call runs as the callerconfigure/mcp.mdx:6-15build/templates.mdx:98os package export@objectstack/cli@17.7.0tag (4e4e881):packages/cli/src/commands/package/holdsinstall.ts,publish.tsonlyresources/glossary.mdx:261(self sign-up)auth.audience.posture=invite_only(17-3.mdx:181-216). ObjectOS's runtime and image are not reachable from this container, and nothing on this site documentsauth.audience;OS_AUTH_MEMBERSHIP_POLICYgoverns what a sign-up joins, not whether one is admitted. Left for a measurement on an ObjectOS deploymentLocale siblings. Item 4 removes a capability assertion, so the seven
build/templates.*.mdxsiblings are deleted. zh-Hant is regenerated, and the generator prunes nothing further. The other pages that reverse a capability claim have no siblings.build/index.mdxkeeps its siblings: its change is framing, which the translation pass handles (#256 ruling5989567068).Bounded in-place corrections (same defect class, same files, form set by this site or the 17.7 contract)
build/interface/actions.mdx§ Permissions. It said action bodies run with the caller's object permissions and FLS. On 17.7 the invoke-time gates arerequiredPermissions(403), the subject-record load as the caller, and AI exposure. Ascriptbody then runs elevated (buildActionExecutionContext→isSystem: true,runtime/src/action-execution.ts:1514-1542at the 17.7.0 tag4e4e881). This site's ownconfigure/mcp.mdx:153-156already says so. Left as it was, the rewritten "From an AI Agent" section would have contradicted the next section on the same page.resources/glossary.mdxAction entry./api/v1/data/OBJECT/actions/ACTIONdoes not exist (rest/src/rest-route-ledger.ts:323-331at4e4e881). The entry now uses/api/v1/actions/OBJECT/ACTION, asactions.mdx:11does.actions.mdxsays no flow node calls an action.build/index.mdx. The vocabulary row said actions are "callable from … flows"; that is gone for the same reason.configure/data-sources.mdx.readReplicasandhealthCheck, retired withcapabilities. They are replaced byschemaModeandexternal.config; it now points toexternal.credentialsRef.biz_customersample gainssharingModel(anos validateerror without it) andexternal.remoteName.com.example.logsrouting rule now points atdefault, not a read-only federated source.build/agents.mdx. The'action_*'wildcard comment is corrected to "every action the app exposes to AI".Checks, at
d4f1305All exit codes were captured before any pipe:
node apps/docs/scripts/gen-zh-hant.mjs --checknpm ci --prefix .github/scripts/doc-samples …thennode .github/scripts/check-doc-samples.mjsnode .github/scripts/check-translations.mjscheck-translation-ownership.mjs --actor os-tesla --files(fromgit diff --name-status --no-renames origin/main...HEAD)TRANSLATION_BOT_LOGIN); with it set to a bot login: 7 translation artifacts deleted, none added or modifiedcheck-translation-output.mjs --files …/--self-testos-verify-lock.sh -- pnpm turbo run type-check --continue@objectos/docs:type-checkcache miss, executedos-verify-lock.sh -- pnpm turbo run buildnode .github/scripts/check-locale-surface.mjsnode .github/scripts/check-positioning.mjsnode .github/scripts/check-search-locales.mjsen80/80 own pages found by titleos-verify-lock.sh -- pnpm turbo run testThe Worker size budget and the render smoke-check run in CI on this PR.
Browser check (AGENTS.md rule 2)
Chromium (
/opt/pw-browsers/chromium) drovenext starton the production build, at desktop 1366×900 and phone 390×844. Both/docs/ontologyand/docs/architecture:On the phone, all three tables on the new page fit (356 of 358px). The new diagram fits too (356px). The two older code blocks on the architecture page scroll in their own frame, as before. A second commit (
d4f1305) narrowed the "Where it lives" table and the diagram after the first capture showed them overflowing at phone width.Screenshots (desktop and phone, full page, plus detail shots): https://claude.ai/artifact/GU4WWGXrKEeuWE3poYbCdx. The page is private to the maintainer's account until shared.
Acceptance notes (observations, not filed)
:25,:90-95,:217) and objectstackapps/docs/app/[lang]/{docs,blog}. They were not fetched: this container's proxy refusesobjectstack.ai.reference/cli.mdx:146-155,os meta list/get: a per-item metadata read, not an export. No steps were written.why.mdx:153.os initdoes exist at 17.7 (packages/cli/src/commands/init.ts), so the old command worked. It changed only to the official docs' recommended entry point.https://docs.objectos.app/docs/ai(ai/actions-as-tools.mdx:149, :234and three more). This site isdocs.objectos.ai(apps/docs/lib/site.ts:44) and has no/docs/airoute. NOT MEASURED over HTTP.Out of scope here (reported to the seat)
reference/rest-api.mdx:142andreference/security.mdx:206repeat the "every action is anaction_NAMEtool" claim. Those files belong to Build, API and operations pages predate ObjectStack 17.0–17.7: the changelog stops at 17.1, upgrade has no 17.x steps, and the REST reference lists removed cursor paging, error codes and routes #330 and Access, audit and approval pages predate ObjectStack 17.0–17.6: masking, record-view audit, deactivation, query-door FLS, the guest baseline and approval visibility are missing or wrong #329. Build, API and operations pages predate ObjectStack 17.0–17.7: the changelog stops at 17.1, upgrade has no 17.x steps, and the REST reference lists removed cursor paging, error codes and routes #330 is not addressed here; neither is Access, audit and approval pages predate ObjectStack 17.0–17.6: masking, record-view audit, deactivation, query-door FLS, the guest baseline and approval visibility are missing or wrong #329.build/templates.mdx:46-51"Fork as a codebase" runspnpm dlx @objectstack/cli create my-app --template todo, which fails on 17.7:os createtakesTYPE [NAME]and answersUnknown type(cli/src/commands/create.ts:640);todo,compliance,content,contractsandprocurementare retired, "delisted from the ObjectStack template marketplace" (create-objectstack/src/template-registry.ts:46-52).index.mdx:43-44andbuild/index.mdx:15, :46-48name them as installable. Whether the ObjectOS marketplace still lists them is not measurable from here.build/interface/actions.mdx:43-57: the sample body callsctx.data.update(…). The 17.7 body face isctx.api.object(…)(runtime/src/sandbox/body-runner.ts:21-41). Not executed.reference/cli.mdx:98-103documentsos create example, retired by #16483 (create.ts:555). That file belongs to Build, API and operations pages predate ObjectStack 17.0–17.7: the changelog stops at 17.1, upgrade has no 17.x steps, and the REST reference lists removed cursor paging, error codes and routes #330.Generated by Claude Code