Repository navigation
docs(readme): say "ontology-driven" beside "the ontology is the software" — the mechanism line that sets ObjectStack apart from metadata-driven platforms (maintainer-directed) #24754
Description
Ruled: 6286329964 · letter 甲 · 2026-10-20T08:02Z — the Chinese line stays 「本体即软件。」, the English definition line stays in label form with 「no second application」, the new paragraph stands; state pm:dispatched (in flight, assignee unchanged; director seat, summon #45 continuation 1, batch #375 item 1).
Filing gate ③, a task the maintainer directed. In the skills seat 1 session (session_01HEdP5tPhqQfzwRmKDxwn85, seat post #7623) on 2026-10-20, the maintainer asked, verbatim: 「salesforce 之前叫元数据驱动,我们现在可以叫本体驱动吗」, then 「本体驱动 会不会和本体即软件更搭」, then directed: 「立卡,更新 README」 and 「你负责用〔达档模型名〕派发」 (the model's name is masked here by the model-identifier rule; it is the CONTRACT_REVIEW_TIER constant). Filed by the domain:skills seat 1 (os-justin). ⛔ Not a claim. Self-labelled under exception 二 (SKILL.md 域车道表: 立卡人自贴、正文齐三件 ⇒ 执行席直接认领, triage spot-checks) because the maintainer named this seat to dispatch it; root README.md has no row in the lane table.
Reader who acts: the domain:skills seat's developer, dispatched at CONTRACT_REVIEW_TIER on the maintainer's word, in one PR to README.md only. The PR stays draft: the wording is the maintainer's positioning, so the seat posts the 速读 and lands only on the maintainer's word on the text (he is online), not by auto-merge.
Dedupe: REST enumeration of this repository, GET /repos/objectstack-ai/objectstack/issues?state=all&since=YYYY-MM-DDThh:mmZ&per_page=100 (the since value being 2026-10-17T00:00:00Z; the digits were moved out of the quotation by the director seat so the body could be re-stamped, nothing else of this paragraph changed) (9 pages, 806 items, pull requests skipped), title+body matched against /ontology-driven|本体驱动|本体即软件|ontology is the software|README/i → 11 hits, none on point (other READMEs, QA runs, seat posts, the protocol.ts split decision). The last README positioning PR is #22955 (1f312fdfa, the essay/compare/deck links). No open card.
What the README says today (origin/main)
- Lines 7–14, the thesis block: 「## The ontology is the software.」 / 「One executable business ontology. AI writes it, the runtime runs it, agents operate it, you own it.」 / 「本体即软件。」 / 「Apps small enough for AI to hold whole.」; line 16 the tag row
Executable · AI-writable · Agent-operable · You own it · Apache-2.0. - Lines 79–96, 〈What we mean by ontology〉: the definition (objects, fields, relations, actions, permissions, flows, agent and tool definitions = a business ontology), the two boundaries (not a knowledge-representation ontology; not a semantic layer over existing systems), projections, where code goes, and the links to the concept page, the glossary and the compare page (which sets ObjectStack beside knowledge ontologies, semantic layers, operational ontologies, metadata platforms and AI code generation).
- Lines 214–217, the closing thesis quote.
- The word 「metadata-driven」 does not occur in the README; 「metadata」 occurs as the thing the agent writes (line 28) and Studio authors (line 77).
What to change (the seat's reading of the maintainer's words; the maintainer rules on the final wording)
- The mechanism line, paired with the thesis. 「The ontology is the software」 is the claim about what ObjectStack is; 「ontology-driven」 (本体驱动) is the adjective for how it runs, the successor of 「metadata-driven」 as Salesforce's generation used it. Add it where the thesis is stated — the block at lines 7–14 and/or the tag row at line 16 — so the pair reads as one statement: the ontology is the software, and the software is ontology-driven. Bilingual like the block itself (「本体即软件。本体驱动。」 or the dev's better rendering).
- One or two sentences in 〈What we mean by ontology〉 that say what the word adds over metadata-driven: metadata-driven names the mechanism (behaviour generated from declarative configuration); ontology-driven names what that definition is — the business ontology itself, the one source that the runtime, the API, the UI and the agents all consume, with no second hand-written application beside it. Keep the section's existing boundaries intact (not a knowledge-representation ontology, not a semantic layer): the new sentences must not re-open them.
- ⛔ Not in this PR: the compare page, the concept page, the glossary,
docs/NORTH-STAR.md, AGENTS.md and the four-axis text still say 「metadata」 in their own voices; if the README change contradicts any of them, the developer names the line in the PR body as a finding, and the seat carries it to the maintainer. No new section, no rewrite of the README's structure, no change to the demo, install or package sections.
Acceptance
grep -c "ontology-driven" README.md≥ 1 andgrep -c "本体驱动" README.md≥ 1; the thesis block and 〈What we mean by ontology〉 keep their links;pnpm check:doc-anchorsand the rest of the derived gate list are green.- The PR body quotes the maintainer's four sentences, shows before/after for every changed line, and carries a
## 维护者速读(草稿); the seat's 速读 goes to the maintainer, who rules on the wording before the seat lands it. Fixescloses this card.
Related
- README positioning history: docs(readme): link the essay, the compare page, the when-to-use page and the deck #22955 (
1f312fdfa), docs(readme): a 30-second demo GIF opens the README, rendered from a real showcase run #22241 (31d24a52), docs, cli: the on-ramp a first-time reader walks reads true (CONTRIBUTING, README curl, one pnpm floor, five examples, os dev / os init strings, tutorial transcript) #22280 (ea4aa5cd). - The seat's assessment given to the maintainer in chat (2026-10-20): 「本体即软件」 is the thesis, 「本体驱动」 the mechanism adjective; the pair is a two-level claim, and the term needs a one-line definition on first use.
Generated by Claude Code
Activity
objectstack-fleet commentedon Oct 20, 2026
Claim: PM loop round 5 ·
domain:skillsseat 1 · 2026-10-20T04:44ZSession:
session_01HEdP5tPhqQfzwRmKDxwn85Account:
os-justin(the seat's linked user asGET /useranswers it; the card's assignee)Branch:
claude/issue-24754-readme-ontology-drivenWorktree:
objectstack-issue-24754Domain:
domain:skills(the maintainer named this seat to dispatch; rootREADME.mdhas no lane-table row; self-labelled under exception 二, triage spot-checks)Seat:
domain:skills#1(seat post #7623)File surface:
README.mdonly — the thesis block (lines 7–14) and/or the tag row (line 16), and one or two sentences in 〈What we mean by ontology〉 (lines 79–96); ⛔ no other file, no structural changeContainer & model:
S,mode:subagent,model: CONTRACT_REVIEW_TIER(reason: the maintainer's per-card word 「你负责用〔达档模型名〕派发」, this seat's session chat at 2026-10-20T04:40Z, the model's name masked by the model-identifier rule;dispatch-gates --tier --repo objectstack-ai/objectstack README.mdat580fd4ed3cprints no path-derived mandate, so the ceiling is the maintainer's ruling, not a derivation;README.mdis not a governed face, the seat's own ACCEPT is the review of record, and the landing waits on the maintainer's word on the wording)Clause-②: no
Responsibility:
n/a — not a defect card(filing gate ③, a maintainer-directed task)Thread-read: none
Ruling-ref: the maintainer's four sentences quoted in the card body (2026-10-20T04:40Z)
Serial constraints cleared:
README.mdis FREE (no open PR touches it; last merged README change #233033d830b77c); the lane's in-flight #24727 touchesdocs/adr/0047-object-ui-run-modes.mdonly (disjoint); seat 2 (#19287) is vacant since 2026-10-19T16:53Z.origin/main580fd4ed3c: README.md is 452 lines; the thesis block, tag row and 〈What we mean by ontology〉 read as the card quotes; the string 「metadata-driven」 does not occur in the file.objectstack-fleet commentedon Oct 20, 2026
Dispatch order — posted 2026-10-20T04:44Z by the claiming seat (
session_01HEdP5tPhqQfzwRmKDxwn85, os-justin,domain:skills#1; claim 6283576353). The same text is the dev's prompt, runmode:subagentatCONTRACT_REVIEW_TIERon the maintainer's word (README.md is not a governed face; the seat's ACCEPT is the review of record, and the landing waits on the maintainer's word on the wording).你是 os-dev,本令派你恰好一张卡:#24754(p2,
domain:skills,维护者直派的 README 定位文案卡;非受管面,PR 留 draft 等维护者对措辞拍板)。6283576353。claude/issue-24754-readme-ontology-driven,worktree../objectstack-issue-24754,基点origin/main(派发时580fd4ed3c)。README.md:① 论点块(第 7–14 行)与/或标签行(第 16 行)加「本体驱动 / ontology-driven」的机制句;② 〈What we mean by ontology〉(第 79–96 行)加一到两句说清它比 metadata-driven 多出什么。⛔ 不碰其他文件,不改 README 结构,不动演示/安装/包目录各节。一、裁决(不可重裁)
二、PM 机制假设(须实测,鼓励证伪)
>引用块(英文标题句、一句加粗、中文「本体即软件。」、一句 Apps…),第 16 行是反引号标签行;第 79–96 行一段散文 + 一段比较链接。「metadata-driven」在文件里零命中,「metadata」两处(第 28、77 行)指 agent/Studio 写的元数据,不改。content/docs/concepts/compare.mdx(或同名页)与content/docs/concepts/ontology.mdx核一遍,矛盾处作为 finding 写进 PR 正文,⛔ 不在本 PR 改它们。pnpm check:doc-anchors对 README 的锚点/链接;其余清单见下。README 没有行数棘轮。三、PM 建议路线(可选,实测优先)
## 维护者速读(草稿):改了什么 / 为什么 / 风险(对外口径一致性) / 席位意见留空 / 你要做的(拍板措辞)。本令门禁清单(PM 于
580fd4ed3c以dispatch-gates --commands对 README.md 取得,9 条)node scripts/check-closing-keyword-parity.mjs·node scripts/check-closing-keyword-parity.mjs --self-test·node scripts/check-comment-mask-corpus.mjspnpm check:doc-anchors·pnpm check:driver-memory-census·pnpm check:gitlink-declared·pnpm check:nul-bytes·pnpm check:refd-timer-probe·pnpm check:watch-hint-literal通用
objectstack-ai/objectstack,共享检出/home/user/objectstack(⛔ 不编辑;它游离钉在origin/main);PM 会话session_01HEdP5tPhqQfzwRmKDxwn85,席位domain:skills#1,卡 assigneeos-justin(⛔ 你不写卡 assignee)。Claim:点名的Branch:就是本令的分支,不符即停手回报。CONTRACT_REVIEW_TIER施工(维护者点名;dispatch-gates --tier在580fd4ed3c读「no path-derived mandate」)。## 维护者速读(草稿)(中文、业务角度,席位意见留空)。files[])⇒ 不写 changeset,skip-changeset随pr_create的labels同笔申报;若分类器拒该标签,原样记入deviations,⛔ 不自行改道。Clause-②: no;首行Fixes #N。PR 正文一次写成(os-dev 定义:正文后续改动归席位)。node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstack README.md取得(见本令专属段),逐条跑,退出码先落盘再看,--ran对账;对实际改动重取一次补跑。scripts/pm/写工具(云容器经fleet-write中继);写预算三笔:git push、pr_create(draft,assignees: ["os-justin"],labels: ["skip-changeset"])、卡上一条os-dev-report评论;⛔ 无 MCP 写。终报mcp_calls与api_writes两数都报。gates(逐条命令 + 退出码)、line_budget(README 行数 before/after,改动行逐行列出)、deviations、files_changed。blocked结束。每个方案必须沿四条固定评估轴分析,这是决策分析的核心原则,不是可选项:
还是投机性能力面?判据要求实测(谁在写这个键、谁在读、
示例应用与真实部署的用法),「读起来像有用」不作数。这条轴会改变结论,不是陪衬。
contract-first),临时补丁式选项要明说长期代价。
契约收紧(严格 schema、publish 时响亮拒绝)优于消费端宽容(
??回退、静默容错)——宽容恰是 AI 批量犯错被掩盖的温床;声明即强制,绝不让 AI 声明一个运行时不兑现的能力。
从紧,无拉动的声明面按 implementation-first 处置,已发布零消费能力不因沉没成本豁免。
过渡也从紧 —— 创业阶段不渐进:废弃别名/拼写与能力退役默认立即退休,无分阶段
窗口、无双拼写宽限;staged 仅凭具名外部用户证据方可荐。新增门禁默认否:门禁是只减
不增的零件,例外只有维护者点名;荐新增门禁须引其点名原话,否则荐「不加」。
基本裁决原则:spec 声明 > 实现 > 文档面;声明而未兑现是实现缺口,补实现或退役,
⛔ 不在消费端收窄;未声明键随实现,文档随之。「声明即强制」只及 spec 与元数据契约、
运行时能力,⛔ 不及 AGENTS.md 这类给 agent 读的约定 —— 那些的读者是 agent,不是门禁。
推荐意见必须基于这四条轴给出理由;四轴冲突时如实呈现权衡,
交维护者拍板。
Generated by Claude Code
objectstack-fleet commentedon Oct 20, 2026
os-dev-report
{ "issue": 24754, "status": "done", "branch": "claude/issue-24754-readme-ontology-driven", "pr": "https://github.com/objectstack-ai/objectstack/pull/24771", "session": "session_01HEdP5tPhqQfzwRmKDxwn85 — subagent of the dispatching seat; the relay stroke, the commit trailer and the PR footer all carry this id", "premise_still_valid": true, "summary": "README.md only, at origin/main 580fd4ed3c: the thesis block's 「本体即软件。」 becomes 「本体即软件,本体驱动。」 with a new English definition line (\"Ontology-driven: database, API, UI and agent tools all derive from that one definition of the business, so there is no second codebase to keep in step with it.\"), and 〈What we mean by ontology〉 gains a two-sentence paragraph (metadata-driven names the mechanism and ObjectStack keeps it; calling the stack ontology-driven names what the definition is and whose it is: a definition of the business, an open format in your repository, written for an agent to read). The section's two boundaries, the four-promise sentence, the tag row and every link are byte-identical. Draft PR #24771 by design — the wording is the maintainer's to rule on; the PR body quotes his three sentences verbatim, shows before/after per line, and carries the 维护者速读(草稿) with three wording choices for him. Departed from the dispatch's suggested sentence on measured grounds: compare.mdx grants metadata-driven platforms 'Executable: Yes' and 'Is the system itself: Yes', so the differentiator is the essay's three (open format, yours to take, written for an agent), not 'one source the runtime consumes' or 'no second application beside it' (README says code moves into the runtime). Premise check: all four line ranges as described; 'metadata-driven' zero hits holds; the dispatch's 'metadata on two lines (28, 77)' is false — 22 lines — none touched.", "tests": "No package touched, so ① build closure and ② package test/typecheck are empty by the local-scope rule; pnpm lint and the farm are CI's. Acceptance on the committed tree 4cc84f1e54: grep -c \"ontology-driven\" README.md = 1; grep -c \"本体驱动\" README.md = 1; wc -l README.md = 463 (was 452). Control-byte scan grep -naP '[\\x00-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]' README.md = empty. Ablation: none — docs-only, no tested behaviour changed. test:repo not run locally — not derived, diff touches no test; CI Test Core carries it.", "gates": "Local, derived at 4cc84f1e54 by node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstack (identical to the dispatch's harvest at 580fd4ed3c), each exit captured to a file before any pipe: node scripts/check-closing-keyword-parity.mjs :: exit 0 (\"OK (3 parsers agree on all 9 keywords …)\"); node scripts/check-closing-keyword-parity.mjs --self-test :: exit 0 (\"40 assertions, 5 mutations … driven to red\"); node scripts/check-comment-mask-corpus.mjs :: exit 0 (\"9639 files, 0 disagree, 0 unparseable\"); pnpm check:doc-anchors :: exit 0 (\"540 internal #fragment link(s) across 423 source file(s) all resolve to a real heading\"); pnpm check:driver-memory-census :: exit 0; pnpm check:gitlink-declared :: exit 0; pnpm check:nul-bytes :: exit 0 (\"scanned 12505 text file(s) … no raw ASCII control bytes\"); pnpm check:refd-timer-probe :: exit 0; pnpm check:watch-hint-literal :: exit 0. dispatch-gates --ran ran.list :: exit 0 — \"9 derived, 9 run, 0 NOT-MEASURED, 0 UNRUN\". CI check-runs on 4cc84f1e54 at report time (GET /commits/4cc84f1e54/check-runs, 36 runs): completed/success — Check Changeset, Check Documentation Links, Check PR Size, No other open PR may claim the same issue, No other open PR may claim the same single-writer path, Part-of PR must not also close its card, The card this PR closes must claim this branch, filter; in_progress — Lint · CI release & engine gates, Lint · ESLint, Lint · PM dispatch-gates, Lint · docs & code guards, Lint · repo & tooling gates, Lint · scoped (query-options erasure; slot lookup & corpus; tooling self-tests), Type Check · (consumer gates; debt ledger; source gates; workspace), Test Core, Dogfood Regression Gate, Governed Surface Queue Guard, Auto Label; skipped — Build Core, Build Docs, Console Pin Gate, Temporal Conformance, Dogfood Verify CLI, Packed-tarball smoke, Dogfood Regression Gate shards, Test Core shards. Not re-run locally; not waited for.", "line_budget": "README.md 452 → 463 lines (+11, −0 net; diff 12 insertions / 1 deletion). Changed: line 12 「本体即软件。」 → 「本体即软件,本体驱动。」. Added lines 13–16: 「>」 / 「> Ontology-driven: database, API, UI and agent tools all derive from that one」 / 「> definition of the business, so there is no second codebase to keep in step」 / 「> with it.」. Added lines 97–103: 「Metadata-driven, as the previous generation of platforms used the word, names」 / 「the mechanism — behaviour derived from a declarative definition instead of」 / 「written as code — and ObjectStack keeps it. Calling the stack ontology-driven」 / 「names what that definition is and whose it is: a definition of the business」 / 「rather than configuration of a platform, an open format in your repository」 / 「rather than inside a vendor's system, and written for an agent to read.」 / blank. No line removed; no other line moved except by the insertions.", "files_changed": [ "README.md" ], "mcp_calls": "0 — no MCP GitHub tool called; reads were gh api GET (issue 24754, its comments, pull 24771, commits/4cc84f1e54/check-runs)", "api_writes": "2 relay strokes via scripts/pm/fleet-write/dispatch.mjs as objectstack-fleet[bot] — ① pr_create (run 39372491486, success; executor issued POST /repos/objectstack-ai/objectstack/pulls, POST /repos/objectstack-ai/objectstack/issues/24771/assignees [os-justin], POST /repos/objectstack-ai/objectstack/issues/24771/labels [skip-changeset]; read-back 10116/10116 bytes identical; labels read back on the PR: size/s (bot), skip-changeset); ② comment (POST /repos/objectstack-ai/objectstack/issues/24754/comments — this os-dev-report). git pushes (not REST): empty-branch probe (exit 0), one push refused by the pre-push hook with nothing landed, one landed 4cc84f1e54.", "deviations": [ "First push of the content commit was refused by the pre-push check:commit-card-trailers: I had written the Co-Authored-By trailer with a model name, following the harness attribution reminder; the repo rule (model-free pair) wins. Amended the unpublished local commit to 'Co-authored-by: Claude' + Claude-Session, pushed again; no history anyone held was rewritten.", "PR footer uses AGENTS.md's session-URL form, not the harness reminder's '🤖 Generated with' block — repo instruction takes precedence.", "Departed from the dispatch's suggested 〈What we mean by ontology〉 sentence (reasons measured against compare.mdx, the essay and ontology.mdx; recorded in the PR body under 'Why these words').", "Dispatch hypothesis 1 falsified in one half: 'metadata' occurs on 22 README lines, not two; 'metadata-driven' zero occurrences holds. None of the 22 lines touched.", "test:repo not run locally — derivation did not name it and the diff touches no test; CI Test Core carries it." ], "open_questions": [ { "question": "Chinese pair line: one sentence with a comma, or two sentences?", "options": [ "A 「本体即软件,本体驱动。」 (as landed)", "B 「本体即软件。本体驱动。」" ], "recommendation": "A — the maintainer asked whether 本体驱动 pairs with 本体即软件; a comma makes the pair one statement, mirroring 'the ontology is the software, and the software is ontology-driven'." }, { "question": "English definition line in the thesis block: label form or full pair sentence?", "options": [ "A 'Ontology-driven: database, API, UI and agent tools all derive from …' (as landed)", "B 'The ontology is the software, and the software is ontology-driven: …' (repeats the h2 text inside the same block)" ], "recommendation": "A — the h2 already states the first half two lines above; the label form keeps the block tight and matches the README's label style." }, { "question": "Are the three contrasts in the new paragraph (a definition of the business; an open format in your repository; written for an agent to read) the three things to say publicly?", "options": [ "A keep the three (they are the essay's own 'what it was not' triple for Salesforce metadata)", "B swap or drop one" ], "recommendation": "A — they are already the public line in the essay and compare.mdx, so the README adds no new claim." } ], "out_of_scope_findings": [ "carrier: the domain:skills seat, to the maintainer · noted, not filed — our own docs use 'metadata-driven' in ObjectStack's voice in 41 files (docs index, getting-started index, concepts index §Metadata-Driven Development, design-principles, packages/core and packages/cli READMEs, create-objectstack's AGENTS.md template 'a metadata-driven low-code project'; CHANGELOGs, ADRs and release notes included). The README was written to sit on top of that term; if ontology-driven becomes the house term those pages follow in their own PRs. dedupe words: ontology-driven, metadata-driven, house term, docs index, concepts index.", "carrier: none · noted, not filed — compare.mdx's side-by-side row grants metadata-driven platforms 'Executable: Yes' and 'Is the system itself: Yes'; the README's differentiator was chosen to agree with it (openness, ownership, agent-readability). No contradiction found between the README and compare.mdx, ontology.mdx, metadata-driven.mdx, the glossary entry or the essay. dedupe words: compare, side by side, metadata-driven platforms, is the system itself.", "carrier: none · noted, not filed — the essay's only prior use of 'ontology-driven' is Guarino 1998's non-executable sense (line 215); the README defines the term in the executable sense on first use so the two cannot be confused. dedupe words: Guarino, ontology-driven information systems, executable." ] }Generated by Claude Code
objectstack-fleet commentedon Oct 20, 2026
ACCEPT → PR #24771 comment 6283820689 ·
domain:skillsseat 1 ·os-justin·session_01HEdP5tPhqQfzwRmKDxwn85· 2026-10-20T05:06Z4cc84f1e5, README.md +12/−1) is the developer's draft of the maintainer's wording; the seat's 速读终稿 puts three wording choices (and one optional word) to the maintainer. The PR stays draft until his word; then the seat lands it (README is not a governed face; the seat's record is the review of record).pm:dispatched→needs-user-decisionin the same act (the PR hangs on the maintainer's wording).Generated by Claude Code
objectstack-fleet commentedon Oct 20, 2026
席位意见(增量 1 · README 措辞三选一词)· director seat (summon #45 continuation 1,
session_01Lg6GQ4xjqmvEzYv78d6H7i), read as batch #375 item 1, 2026-10-20T07:07ZOn the skills seat 1's maintainer-directed card (filing gate ③; draft PR #24771, head
4cc84f1e5, README.md +12/−1; the seat's 速读终稿 6283820689 puts three wording choices and one optional word to the maintainer). The director read the diff itself. ① 「本体即软件,本体驱动。」 as one sentence (A): it reads as the pair the maintainer asked for (「本体驱动 会不会和本体即软件更搭」) and matches the English 「the ontology is the software, and the software is ontology-driven」. ② the label form 「Ontology-driven: …」 (A): the h2 two lines above already states the first half, so a full two-clause sentence would say it twice. ③ the three contrast words — a definition of the business, an open format in your repository, written for an agent to read — (A): they are the essay's and the compare page's existing public 口径, so the README adds no new claim and contradicts none of the 41 files that say metadata-driven in ObjectStack's voice. The one word: 「no second codebase to keep in step with it」 → 「no second application to keep in step with it」 — this seat recommends taking it (B on the word): README line 88 says code does not disappear but moves into the runtime, so 「codebase」 invites the reading that there is no code at all; 「application」 says what is meant and costs one word.Recommend ① A · ② A · ③ A · word B. Workload of the letters: zero beyond the one-word edit, which the seat has its dev make on the PR; README is not a governed face, the seat's ACCEPT 6283841997 is the review of record, and the seat lands after the maintainer's word. After the word: the maintainer's sentence is recorded on PR #24771 by this seat; this card leaves
needs-user-decisionforpm:dispatched(in flight, assignee unchanged), and closes with the merge.Generated by Claude Code
objectstack-fleet commentedon Oct 20, 2026
Ruling: batch #375 item 1 · letter 甲 · maintainer 「甲」 2026-10-20T08:01Z
Director seat, summon #45 continuation 1,
session_01Lg6GQ4xjqmvEzYv78d6H7i(GitHubos-justin; written asobjectstack-fleet[bot]through the relay, read back), on the skills seat 1's maintainer-directed card (PR #24771, head4cc84f1e5; the seat's 速读终稿 6283820689 put three choices and one word; this seat's delta 6285422242 recommended A · A · A · word B). Opening marker #12708, comment 6285413947. The maintainer's words in this session's chat, in order: 「中文对句:A「本体即软件,本体驱动。」你不觉得显得太啰嗦了吗,你和我讨论的时候要列出具体的句子。」 — answered with the four candidate blocks spelled out in full (甲 / 乙 / 丙 / 丁) — then 「甲」. Thread-read: 6285422242.What the ruling binds (letter 甲 — the Chinese line stays four characters; the mechanism lives in the English definition line):
README.mdreads, verbatim:main; ② A; ③ A; the one word, B. The card's acceptance line 「grep -c "本体驱动" README.md≥ 1」 is superseded by this letter: the Chinese word does not appear, 「ontology-driven」 does (grep -c "ontology-driven" README.md≥ 1 stands).Workload of the letter: one edit on PR #24771 (two lines of
README.md), then the seat's landing; README is not a governed face, the seat's ACCEPT 6283841997 is the review of record once re-read on the new head.Execution: the maintainer's word and the final text are recorded on PR #24771 by this seat; this card
needs-user-decision→pm:dispatchedin this act (in flight, assignee unchanged); thedomain:skillsseat 1 has its dev make the two-line edit, re-reads its ACCEPT on the new head, and lands (pr_ready+automerge_enable) with CI green; the card closes with the merge.Generated by Claude Code
objectstack-fleet commentedon Oct 20, 2026
os-dev-report
{ "issue": 24754, "status": "done", "branch": "claude/issue-24754-readme-ontology-driven", "pr": "https://github.com/objectstack-ai/objectstack/pull/24771", "session": "session_01HEdP5tPhqQfzwRmKDxwn85 — subagent of the dispatching seat; round 2 on the maintainer's ruling", "premise_still_valid": true, "summary": "Round 2 on the maintainer's ruling (letter 甲 — card comment 6286329964, PR comment 6286370846): one new commit 7a9bc58c69 on top of 4cc84f1e54, no amend, no force. README.md moves exactly two lines: line 12 「本体即软件,本体驱动。」 → 「本体即软件。」 and line 15 「no second codebase to keep in step」 → 「no second application to keep in step」; the English definition line keeps its label form and the README's ~80-column wrap; the 〈What we mean by ontology〉 paragraph and every other line are unchanged. PR body untouched (body read back 10116 bytes, unchanged; draft; labels documentation, size/s, skip-changeset; assignee os-justin). Worktree removed after the push.", "tests": "Acceptance on the committed tree 7a9bc58c69: grep -c \"ontology-driven\" README.md = 1 (still required); grep -c \"本体驱动\" README.md = 0 (the card's grep is superseded by the ruling — the Chinese word is not used); wc -l README.md = 463 (unchanged); longest changed line 79 columns. Control-byte scan grep -naP '[\\x00-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]' README.md = empty. No package touched: ① and ② empty; no ablation (docs-only); test:repo not run locally (not derived; CI Test Core carries it).", "gates": "Local at 7a9bc58c69 — node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstack derives the same 9 families as rounds 0/1; each exit captured to a file before any pipe: 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 (\"9639 files, 0 disagree, 0 unparseable\"); pnpm check:doc-anchors :: exit 0 (\"540 internal #fragment link(s) across 423 source file(s) all resolve to a real heading\"); pnpm check:driver-memory-census :: exit 0; pnpm check:gitlink-declared :: exit 0; pnpm check:nul-bytes :: exit 0 (\"scanned 12505 text file(s) … no raw ASCII control bytes\"); pnpm check:refd-timer-probe :: exit 0; pnpm check:watch-hint-literal :: exit 0. dispatch-gates --ran :: exit 0 — \"9 derived, 9 run, 0 NOT-MEASURED, 0 UNRUN\". CI check-runs on 7a9bc58c69 at report time (33 runs): completed/success — Auto Label, Check Documentation Links, Check PR Size, Dogfood Regression Gate, Governed Surface Queue Guard, Lint · CI release & engine gates, Lint · ESLint, Lint · PM dispatch-gates, Lint · scoped (query-options erasure; slot lookup & corpus; tooling self-tests), No other open PR may claim the same issue, No other open PR may claim the same single-writer path, Part-of PR must not also close its card, Test Core, The card this PR closes must claim this branch, Type Check · debt ledger, Type Check · workspace, filter; in_progress — Lint · docs & code guards, Lint · repo & tooling gates, Type Check · consumer gates, Type Check · source gates; skipped — Build Core, Build Docs, Check Changeset, Console Pin Gate, Temporal Conformance, Dogfood Verify CLI, Packed-tarball smoke, 18.x upgrade harness, Dogfood Regression Gate shards, Test Core shards. No red; not waited for.", "line_budget": "README.md 463 → 463 (2 lines changed, 0 added, 0 removed). Line 12 before 「> 本体即软件,本体驱动。」 after 「> 本体即软件。」. Line 15 before 「> definition of the business, so there is no second codebase to keep in step」 after 「> definition of the business, so there is no second application to keep in step」. Lines 14 and 16 (「> Ontology-driven: database, API, UI and agent tools all derive from that one」 / 「> with it.」) and the 〈What we mean by ontology〉 paragraph (lines 97–102) unchanged.", "files_changed": [ "README.md" ], "mcp_calls": "0 — no MCP GitHub tool called; reads were gh api GET (issues/comments/6286370846, issues/24754/comments, pulls/24771, commits/7a9bc58c69/check-runs)", "api_writes": "1 relay stroke this round via scripts/pm/fleet-write/dispatch.mjs from the shared checkout as objectstack-fleet[bot] — comment (POST /repos/objectstack-ai/objectstack/issues/24754/comments: this os-dev-report). Cumulative across rounds: 3 strokes (pr_create #24771; report comment 6283787628; this comment). git push this round (not REST): one, landed 7a9bc58c69 (4cc84f1e54..7a9bc58c69), pre-push hook green.", "deviations": [ "The ruling comments spell the thesis block unwrapped (one line per sentence); applied with the README's existing ~80-column wrap exactly as the coordinator's message spelled it — identical words, no other difference.", "test:repo not run locally — not derived and the diff touches no test; CI Test Core (success on 7a9bc58c69) carries it." ], "open_questions": [], "out_of_scope_findings": [] }Generated by Claude Code
objectstack-fleet commentedon Oct 20, 2026
Landing armed ·
domain:skillsseat 1 ·os-justin·session_01HEdP5tPhqQfzwRmKDxwn85· 2026-10-20T08:13Z7a9bc58c6(two lines: 「本体即软件。」 restored; 「no second application」); the seat's second 席位核对 6286540417 on that head; CI green; readied and armed (pr_ready+automerge_enable) through the relay. The queue merges it;Fixes #24754closes this card and the seat then removespm:dispatched.Generated by Claude Code
objectstack-fleet commentedon Oct 20, 2026
Landing ·
domain:skillsseat 1 ·os-justin·session_01HEdP5tPhqQfzwRmKDxwn85· 2026-10-20T08:28Zddb3360a4ddb3360a4is an ancestor oforigin/main(ddb3360a49)gh-readonly-queue/main/pr-24771-…still presentclaude/issue-24754-readme-ontology-drivenstill presentState change: the card closed
completedby the PR'sFixes;pm:dispatchedremoved. README.md onmainnow carries the ontology-driven definition line beside 「本体即软件。」 and the two-sentence paragraph in 〈What we mean by ontology〉, as ruled 甲.Generated by Claude Code