Repository navigation
Description
epic:#28130#1 · hotlong · session_040dfd80c4c9411b895c698e785a6848
Filing gate: ① maintainer request, verbatim, 2026-11-02, in the epic PM's direct session: 「创建一个任务,北极星应该用英文写,https://github.com/objectstack-ai/objectstack/blob/main/docs/NORTH-STAR.md」 · ⛔ Not a claim.
Lane: domain:skills (docs/NORTH-STAR.md is in the skills lane's rule-text row) · Tier H governed surface (.github/CODEOWNERS:46; scripts/pm/check-governed-merges.mjs row north-star), so it merges by maintainer approval · size: M.
Business reason. docs/NORTH-STAR.md outranks every other rule in this repository (AGENTS.md:7), and it is written in Chinese. An English-only contributor or agent gets an "English summary" that says the Chinese text governs. The summary restates only the opening, the road and how to read the ladder, and sends readers back to the Chinese for the rest of 优先级 and the four closing paragraphs. Every other repository artifact is English by convention (AGENTS.md Communication: "ADR/文档正文等仓库产物保持现有语言惯例(以英文为主)").
Measured (70bf434385).
docs/NORTH-STAR.md: 178 lines, about 3,255 CJK characters out of 18,103. Chinese body at lines 1–125, then## English summary(from line 129), which declares itself non-governing.- Bold section heads: 我们是什么 · 给谁 · 做出来的是什么 · 什么算做好 · 唯一的度量,那条路 · 路上的功能点 (road steps ①–⑥ with one row per feature,
axis · feature · checklist area · item ids) · 优先级 · 阶段姿态 · 仪器为车队服务 · 现在不做 · 账本. - Three ladder rows carry the marker 「清单项待写」.
- Other files name its sections by their Chinese titles:
AGENTS.md:206("its 路上的功能点 ladder, graded by its 优先级"),.claude/skills/pm-dispatch/SKILL.mdandreferences/{execution-duties,filing-gate,triage-duties}.md,references/lanes/{skills,spec}.md, and the comment atscripts/pm/ensure-pm-labels.sh:595(北极星「现在不做」). One historical revision note indocs/qa/platform-checklist/areas/studio-authoring.jsonquotes 清单项待写. - No script parses the file's text; the governed-surface readers match the path only. Not verified for
packages/qaand the checklist tooling beyond a grep for the path.
Wanted.
- Rewrite
docs/NORTH-STAR.mdin English as the governing original. The meaning is preserved line for line: no row added, removed, reordered or regraded; ladder rows keep theaxis · feature · checklist area · item idsshape; item ids and road step numbers unchanged. - Retire the
## English summarysection. The English text is now the original, and a second copy is drift waiting to happen. - Any maintainer ruling the file quotes in Chinese stays verbatim (
AGENTS.mdCommunication: a quoted ruling is never translated). - One English section title per Chinese one, and the same PR updates every reader in Measured to the new titles:
AGENTS.md:206, the pm-dispatch skill files, and theensure-pm-labels.shcomment. The 「清单项待写」 marker gets one English replacement, used in all three rows. Revision history in the checklist JSON stays as written. - PR body: a row-by-row mapping of old Chinese titles to new English titles, plus the
## 维护者速读(草稿)the Tier H path needs.
Tests / gates.
git grepfor each old section title returns zero hits outside revision history.pnpm check:pm-skill-ratchetandpnpm check:pm-skill-id-lintstay green; the skill edits are renames, so the line count does not grow.check:skill-frame-sync/-freshnessif the four-axis frame text moves.- Docs link checks green.
Release safety. Docs and agent-instruction text only, no package changes, so it carries the skip-changeset label. A release before or after it is unaffected.
Not here. Any change to what the North Star says: ladder content, priorities, posture. That is the maintainer's to edit separately. content/docs/concepts/architecture-overview.mdx (already English).
Dedupe. Searched NORTH-STAR English. Closest are #26073 (closed; ruled the one-North-Star question and counted the Chinese text as a reading barrier, but did not translate it) and #26970 (closed; landed that ruling).
Links back: #26073, #26970, AGENTS.md:7, AGENTS.md:206.
Generated by Claude Code
Activity
objectstack-fleet commentedon Nov 1, 2026
domain:skills#2 · marchtian · session_017ihL2g7RyXa8ErM6GAkHyc
Claim: PM loop round 1
Session:
session_017ihL2g7RyXa8ErM6GAkHycAccount:
marchtianBranch:
claude/issue-28816-north-star-englishWorktree:
objectstack-issue-28816Domain:
domain:skillsSeat:
domain:skills#2File surface:
docs/NORTH-STAR.md, plus every reader of its section titles that the card names under Measured:AGENTS.md(L206), the pm-dispatch skill files that cite a North Star section by title (SKILL.mdandreferences/{filing-gate,triage-duties,execution-duties}.md,references/lanes/{skills,spec}.md), and thescripts/pm/ensure-pm-labels.shL595 comment. Only North Star section references are edited. A generic use of a word such as 优先级 or 账本 is left alone.Container & model:
M,mode:subagent,model: claude-fable-5-1(reason: the PM's per-card ruling — the repo's top rule text is translated line for line and its titles are renamed across the pm-dispatch skill, so a wrong reading propagates to every dispatch;dispatch-gates --tierprints MANDATORY for.claude/skills/pm-dispatch/SKILL.mdif it is touched),effort: high; then an independentCONTRACT_REVIEW_TIERreview by a separate agent.Clause-②: no
Metadata-protocol: none
Responsibility:
n/a — not a defect card(a maintainer request)Thread-read: none
Premise: holds. On
origin/main,docs/NORTH-STAR.mdis 178 lines with a Chinese governing body and a non-governing## English summary, andAGENTS.md:206cites 「路上的功能点」 / 「优先级」.Serial constraints: PR #28773 (#28638, this seat's, awaiting approval) touches
pm-dispatch/SKILL.mdL74 andreferences/execution-duties.md. The North Star references this card renames are on other lines. Whichever lands second mergesmain; no line is shared. No other open PR touches the surface.Landing: Tier H by the card (
.github/CODEOWNERS, thenorth-stargoverned row)..claude/**is Tier S by the register, so the stricter path applies. The PR stays draft withneeds-user-decisionuntil an authorised approver acts.objectstack-fleet commentedon Nov 1, 2026
domain:skills#2 · marchtian · session_017ihL2g7RyXa8ErM6GAkHyc
os-dev-report
{ "issue": 28816, "status": "done", "branch": "claude/issue-28816-north-star-english", "pr": "https://github.com/objectstack-ai/objectstack/pull/28842", "head": "18aaea28061487d5cc86605848d150b847bfca89", "session": "session_017ihL2g7RyXa8ErM6GAkHyc", "premise_still_valid": true, "summary": "docs/NORTH-STAR.md is rewritten in English as the governing original: the 125-line Chinese body is translated line for line (125 in / 125 out, 80 ladder rows in / 80 out, axis + checklist area + item ids byte-identical per row, road steps unchanged) and the non-governing English summary is retired (178 -> 125 lines). Every reader that cited a section by its Chinese title is renamed to the English title: AGENTS.md L206, pm-dispatch SKILL.md L120 and references (filing-gate L25/L37/L49, triage-duties L58/L59, execution-duties L49, lanes/skills L22/L23, lanes/spec L23), ensure-pm-labels.sh L571/L595, plus CONTRIBUTING.md L116, docs/qa/platform-checklist/README.md L305 and two code comments (packages/lint validate-security-posture.runtime-surface.test.ts L48/L315, ui/packages/types plugin-component-input-deprecation.test.ts L24). The North Star quotes no maintainer ruling, so nothing stayed in Chinese and no gloss was added. One ladder row carries the marker today (standalone-boot-no-cloud), not three as the card measured at 70bf434385.", "tests": "Under scripts/pm/os-verify-lock.sh: pnpm --filter @objectstack/lint exec vitest run --maxWorkers=2 src/validate-security-posture.runtime-surface.test.ts -> Test Files 1 passed (1), Tests 21 passed (21), VERDICT command-exit 0; pnpm --filter @object-ui/types exec vitest run --root ../.. --maxWorkers=2 packages/types/src/__tests__/plugin-component-input-deprecation.test.ts -> Test Files 1 passed (1), Tests 7 passed (7), VERDICT command-exit 0. Ladder fidelity checked mechanically (row-by-row axis/area/ids, line structure, 0 CJK remaining). No ablation: no tested behaviour changed.", "gates": "Derived at head 18aaea2806 by node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstack: 85 commands, every one run locally, exit code captured before any pipe; all 85 exit 0 on the final tree. --ran reconciliation: 85 derived, 85 run, 0 NOT-MEASURED, 0 UNRUN, exit 0. The card's four gates each exit 0: check:pm-skill-ratchet, check:pm-skill-id-lint, check:skill-frame-sync, check:pm-governed-prose. Five commands first refused on an unbuilt prerequisite (exit 3: lint check:doc-formula-expressions, check:docs-transcript-drift, check:dual-build-cjs-loads, check:lean-entry-closure; exit 1: pnpm --dir ui exec vitest run scripts/ with unit-registry-absence-collision unable to resolve the unbuilt @objectstack/client) and all five passed after pnpm exec turbo run build --concurrency=2 under the lock (118/118 tasks, 9m22s, VERDICT command-exit 0); the ui run then reads Test Files 169 passed | 2 skipped, Tests 4900 passed | 2 skipped. Working tree clean after every build. CI families beyond the union are read from the PR's check-runs (in_progress at report time), not re-run; test:repo, check:dev-prereqs and check:skill-frame-freshness not run locally and declared.", "line_budget": "Ratcheted files, lines before -> after, no file gains a line: pm-dispatch/SKILL.md 319 -> 319 (L120 table row 336 -> 338 bytes, pin 341); references/filing-gate.md 66 -> 66 (L49 113 -> 119 bytes); references/triage-duties.md 102 -> 102; references/execution-duties.md 188 -> 188 (L49 only; the PR #28773 lines L42/L45-47/L55/L62 untouched); references/lanes/skills.md 32 -> 32 (L22 119 -> 115 bytes and L23 115 -> 115 bytes, re-cut in place: the lane-scoping words 本车道 and 席位 dropped, both implied by the lane file); references/lanes/spec.md 42 -> 42; AGENTS.md 1050 -> 1050 (L206 94 bytes); docs/NORTH-STAR.md 178 -> 125 (summary retired, body 125 -> 125). No line over 120 bytes added; no ceiling moved.", "deviations": [ "Three readers outside the card's Measured list were renamed because the card's own test (zero old-title hits outside revision history) reaches them: CONTRIBUTING.md L116, docs/qa/platform-checklist/README.md L305, and two test-file comments; the two test files were run after building their closure.", "PR body ends with the order's Generated-with line rather than os-dev.md's session-URL footer block; the session id is in the body prose and in the attribution thread line. Commit trailer spelled Co-Authored-By as the order states (AGENTS.md spells Co-authored-by; case only).", "The worktree /home/claude/objectstack-issue-28816 is left in place with node_modules and the full build, since the seat created and named it and the contract review may reuse it; the seat removes it when done.", "pnpm --dir ui exec vitest run scripts/ first ran before @objectstack/client was built and failed one file on resolution, not on this diff; recorded as exit 1, then re-run green with the exact derived spelling after the build." ], "files_changed": [ "docs/NORTH-STAR.md", "AGENTS.md", ".claude/skills/pm-dispatch/SKILL.md", ".claude/skills/pm-dispatch/references/filing-gate.md", ".claude/skills/pm-dispatch/references/triage-duties.md", ".claude/skills/pm-dispatch/references/execution-duties.md", ".claude/skills/pm-dispatch/references/lanes/skills.md", ".claude/skills/pm-dispatch/references/lanes/spec.md", "scripts/pm/ensure-pm-labels.sh", "CONTRIBUTING.md", "docs/qa/platform-checklist/README.md", "packages/lint/src/validate-security-posture.runtime-surface.test.ts", "ui/packages/types/src/__tests__/plugin-component-input-deprecation.test.ts" ], "title_mapping": { "ObjectStack 北极星": "ObjectStack North Star", "我们是什么": "What we are", "给谁": "Who it is for", "做出来的是什么": "What gets built", "什么算做好": "What counts as done", "唯一的度量,那条路": "The one measure: the road", "路上的功能点": "Features on the road", "① 出发": "① Set out: start a project with npm create objectstack, write metadata", "② 本地跑起来、看到": "② Run it locally and see it", "③ 验证": "③ Verify: loudly reject what is wrong, let through what is right", "④ 发布并装进一个环境": "④ Publish and install into an environment", "⑤ 接一个 Agent": "⑤ Connect an agent (MCP in the community edition) and have it complete one real business operation", "⑥ 按客户一句话需求迭代一次": "⑥ Iterate once on a one-sentence customer request", "优先级": "Priority", "阶段姿态": "Stage posture", "仪器为车队服务": "Instruments serve the fleet", "现在不做": "Not now", "账本": "The ledger", "「清单项待写」 (marker)": "(checklist item to be written)", "## English summary": "retired" }, "grep_before_after": "git grep repo-wide, files/hits, at 3cb8553c94 -> 18aaea2806: 路上的功能点 3/5 -> 0/0; 仪器为车队服务 4/6 -> 0/0; 现在不做 2/3 -> 0/0; 唯一的度量 1/2 -> 0/0; 什么算做好 1/2 -> 0/0; 做出来的是什么 5/6 -> 0/0; 我们是什么 1/2 -> 0/0; 阶段姿态 3/4 -> 1/1 (release-owned ui/packages/types/CHANGELOG.md, left); 清单项待写 2/4 -> 1/1 (revision history in areas/studio-authoring.json, kept as the card asks); 给谁 2/3 -> 1/1 (generic help string in plugin-sharing zh-CN translations, not a reference); English summary 5/5 -> 3/3 (two release-owned CHANGELOG entries, one unrelated ui test comment); 「优先级」 and 〈优先级〉 as North Star citations 5 -> 0; 账本」 0 -> 0. Files touched for readers: 12 (every entry of files_changed but docs/NORTH-STAR.md).", "dogfood_battery": "n/a — no `!` in the PR title and no (narrowing) arm", "mcp_calls": "0 — no MCP GitHub tool used; reads went through gh api REST (issues/28816, issues/comments/6564922254, pulls/28773, pulls/28773/files, pulls/28842)", "api_writes": "2 — relay pr_create (run 41362878555: POST /repos/objectstack-ai/objectstack/pulls as draft, then POST /repos/objectstack-ai/objectstack/issues/28842/labels skip-changeset), and this os-dev-report comment via post-stamped.mjs (POST /repos/objectstack-ai/objectstack/issues/28816/comments); git push is not a REST write", "out_of_scope_findings": [ "carrier: none · noted, not filed — the road paragraph says 四个承诺 (four promises) and then lists five (① · ②③ · ④ · ⑤ · ⑥); translated as written since a count change is a content edit the card excludes; prose observation, no defect class", "carrier: none · noted — the card's Measured counted three ladder rows carrying 清单项待写 at 70bf434385; on main today one row does (standalone-boot-no-cloud), the other two have had their items written since" ], "open_questions": [ { "question": "In the Chinese pm-dispatch files the renamed references read 北极星「Priority」 and 「Instruments serve the fleet」 (the English title inside Chinese corner quotes). Keep that form, or add a Chinese gloss?", "options": ["A keep the English title alone inside 「」 — it is the section's only name now and adds no line to any ratcheted file", "B add a Chinese gloss after each, e.g. 「Priority」(优先级) — costs 9 or more bytes per line and two lines would need re-cutting again"], "recommendation": "A, because the title is now English and the ratchet prices every byte; a gloss re-creates the two-spelling drift the card retires" }, { "question": "Should the 'four promises' count in the road paragraph be corrected to match the five listed?", "options": ["A leave as written in this PR; the maintainer edits content separately", "B change it to five in this PR"], "recommendation": "A, because the card's Not-here list excludes any change to what the North Star says" } ] }objectstack-fleet commentedon Nov 2, 2026
domain:skills#2 · marchtian · session_017ihL2g7RyXa8ErM6GAkHyc
os-dev-report (delta — patch round on PR #28842 after contract review 6565719687, PASS with two should-fixes)
{ "issue": 28816, "status": "done", "branch": "claude/issue-28816-north-star-english", "pr": "https://github.com/objectstack-ai/objectstack/pull/28842", "head": "8c77b8d5cb1fe0487835cab4857afd19fa4f14c6", "patch_commit": "e2b41f708eaed1c98a286e7c83054649c2dc70b8", "merge_commit": "8c77b8d5cb (origin/main 00918c886c merged in, clean; PR #28773's SKILL.md L74 and execution-duties.md edits carried over, my execution-duties line now at L51, both files keep 319 / 188 lines)", "session": "session_017ihL2g7RyXa8ErM6GAkHyc", "summary": "Should-fix 1: docs/NORTH-STAR.md Priority 2 and Instruments serve the fleet now render 不做 as 'not taken on' (L115 'p3 or not taken on', L121 'if it cannot be said, it is not taken on'); 'done' is left to What counts as done. Line count 125, ladder rows' axis / area / ids byte-identical to main, 0 CJK. Should-fix 2: the five live code comments that quoted the retired Chinese clause-4 sentence now quote the head's English sentence exactly as L117 spells it ('what is wrong must be loudly refused with a prescription, never silently stored'): packages/metadata-protocol/src/protocol-package-install.ts L149-150, packages/runtime/src/domains/packages.ts L1499-1501 and L1574-1575, packages/runtime/src/domains/packages-install-manifest-id.test.ts L18-20, packages-install-manifest-version.test.ts L16-18. Whole-tree sweep for any other verbatim quote of a sentence fragment from main's Chinese North Star body (263 fragments of 5+ CJK characters, git grep -F, bold markers stripped, CHANGELOGs and checklist revision history excluded): control leg on HEAD before the patch hit exactly the five sites; the patched tree hits 0.", "files_touched_this_round": [ "docs/NORTH-STAR.md", "packages/metadata-protocol/src/protocol-package-install.ts", "packages/runtime/src/domains/packages.ts", "packages/runtime/src/domains/packages-install-manifest-id.test.ts", "packages/runtime/src/domains/packages-install-manifest-version.test.ts" ], "tests": "Under scripts/pm/os-verify-lock.sh: pnpm --filter @objectstack/runtime exec vitest run --maxWorkers=2 src/domains/packages-install-manifest-id.test.ts src/domains/packages-install-manifest-version.test.ts -> Test Files 2 passed (2), Tests 54 passed (54), VERDICT command-exit 0. Comment-only changes in the two source files; no public surface moves, no ablation.", "gates": "Union re-derived at the patch head e2b41f708e by dispatch-gates --commands --repo objectstack-ai/objectstack: 88 families (85 before + check:durability-log-level, check:error-status-conformance, check:route-envelope from the runtime / metadata-protocol paths); all 88 run on that tree, exit codes captured before any pipe, all exit 0; --ran reconciliation 88 derived, 88 run, 0 NOT-MEASURED, 0 UNRUN, exit 0. On the merged head 8c77b8d5cb, as the seat narrowed: check:pm-skill-ratchet, check:pm-skill-id-lint, check:skill-frame-sync, check:pm-governed-prose and check:nul-bytes each exit 0, and the union re-derived on it is identical (88 families, same list). Declared narrowing: the other 83 families were not re-run on the merge commit itself (it adds no edit of mine; CI's check-runs on 8c77b8d5cb are the verdict).", "deviations": [ "The merge commit's gate coverage is the seat's declared narrowing above, not a full local re-run.", "The word 北极星 in the five comments is left as is (the review asked only for the quoted sentence); 'North Star clause 4' would be a wording change outside the should-fix." ], "mcp_calls": "0 — reads via gh api REST (issues/comments/6565719687)", "api_writes": "1 this round — this delta comment via post-stamped.mjs (POST /repos/objectstack-ai/objectstack/issues/28816/comments); two git pushes (e2b41f708e, 8c77b8d5cb) are not REST writes; PR body not re-sent", "out_of_scope_findings": [], "open_questions": [] }objectstack-fleet commentedon Nov 2, 2026
domain:skills#2 · marchtian · session_017ihL2g7RyXa8ErM6GAkHyc
ACCEPT → PR #28842 comment 6566471564 (head
8c77b8d5cb1fe0487835cab4857afd19fa4f14c6; contract review PASS 6565719687 → patch round 6566180326 → delta PASS 6566261129). The PR is a draft withneeds-user-decision, and os-zhuang and hotlong are requested as reviewers; it waits on an authorised approver.objectstack-fleet commentedon Nov 2, 2026
domain:skills#2 · marchtian · session_017ihL2g7RyXa8ErM6GAkHyc
Landed 2026-11-02T04:06Z: PR #28842 merged as
ad2059f5b8(merge queue; readied and enqueued by os-zhuang). Seat ACCEPT 6566471564.