Repository navigation
skills(pm-dispatch): ADR-0136 D2 becomes the triage protocol — Journey: line, journey bands, cross-lane product-first order, journeys feed the queue #18489
Description
Activity
pm:queue→pm:blocked— skills seat,session_01Gqi43smmqjJ5sUrhfoPeKu, 2026-09-16T16:49Z.Blocked-by: #18477added as the body's leading line (the single-channel reverse index).Two conditions, both read on GitHub this round: ① the ADR this card enforces is NOT on
main— PR #18480 (card #18477) is a draft carryingneeds-user-decisionafter the maintainer's changes-requested review 5224841038 and the director's second ACCEPT 5700421243; the D1 table may still move under the maintainer's edit, and SKILL.md text citingdocs/adr/0136-…would name a fileorigin/maindoes not have; ② SKILL.md is serial — #18434 (ruled C, claimed this round) edits the clause-② line and pays the 812 / 812 ratchet in place; this card queues behind it on the seat post's hot-file line. The unlock scan returns this card topm:queuewhen #18477 closes (PR #18480 carriesFixes #18477); the taker then mergesorigin/mainfirst, as the card's own Serialisation section says. ⛔ Nothing else on the card changed — the filer's deliverable and acceptance stand.
Generated by Claude Code
- added a commit that references this issue
on Sep 17, 2026 os-elon-musk commented
on Sep 18, 2026 CollaboratorMore actionsRe-scoped — 「按北极星执法」 (skills seat,
session_01BTeBejoPUvRHN8WdAJC6oF, on the maintainer's word) · 2026-09-18T22:10ZADR-0136 is closed unmerged (PR #18480, #18477); the law is now
docs/NORTH-STAR.md(the maintainer's text, finalized in chat 2026-09-18, landing through its own card). This card keeps its number and its purpose — the rules-layer enforcement — with the deliverable rewritten below. Maintainer rulings, chat 2026-09-18, verbatim: 「skills 是驱动车队正确工作的核心,影响车队效率的卡都要派啊」 · 「云服务旅程混在 objectstack / objectui 里的 ⇒保留 domain:cloud 标签 等 cloud 项目经理迁移」 · 「其他同意」 (on the eight-item list the seat proposed).Blocked-by: #18477is void (closed).Deliverable (one governed PR; line-neutral at every ceiling — SKILL.md 812 / 812, AGENTS.md 1099 / 1099, lanes/spec.md 43 / 43, lanes/skills.md 33 / 33, core-rules.md 151 / 151; every line ≤ 120 B; fold or pay, ⛔ no ceiling raise)
- SKILL.md :42 优先序 「维护者裁决 >
AGENTS.md> 红线 > …」 gains 「北极星」 right after 维护者裁决 — same line, net 0. - SKILL.md :459–:461 取卡全序 gains its precondition = North Star rule 3: while any product repo has an open P0/P1, no lane takes a p2/p3 tooling or contract-hygiene card; an instrument card that unblocks a product P0/P1 inherits its priority along the chain (:458 already says so — cite, do not restate).
- SKILL.md 分诊座位职责 (:340–:353): the p-level criterion = North Star rule 2 (path or checklist row broken ⇒ P0/P1; runs but wrong ⇒ P2; on neither ⇒ p3 or not planned — today there is NO written p1/p2/p3 criterion, measured by grep); every triaged card carries a body-leading
Path: P<n> | <checklist area> | noneline; the type criterion :353 gains the 「已声明」 qualifier (widening to the DECLARED accept set = Bug; beyond it = Feature). - The skills lane's
findingself-triage (SKILL.md :381 / lanes/skills.md): the grading question 「它落地后车队的哪个决定或动作会不一样」 — unanswerable ⇒ p3 or not planned at once, ⛔ not queued. - lanes/spec.md :17–:21: the three faces renamed to the maintainer's terms with his one-sentence test — 契约面 = 「改动前后同一份输入的接受/拒绝结果变了」 (收紧 · 放宽 · 公开导出面增删 · declared-but-unenforced · 退役, any one hits); 辅助面 = byte-identical verdict, and its second cut = 「它误导了 AI 吗」 (misleads ⇒ P2, keep; does not ⇒ close not planned or ride the next touching PR's Acceptance notes); 机器面 = 「仪器为车队服务」's question. 放宽/扩大 still = 条款② (:19 stays); 收窄 stays 条款① only.
- AGENTS.md: one pointer line to
docs/NORTH-STAR.mdnear the top (fold one line to pay);scripts/pm/check-governed-merges.mjsGOVERNED_SURFACES register gainsdocs/NORTH-STAR.md;docs/adr/PRIORITIZATION.md(STALE) becomes a one-line pointer to the North Star. - SKILL.md domain table (:244–:256) gains the row 「
domain:cloud:云服务旅程,停放待 cloud PM 迁移,本仓不派」 (rule :256: a new domain lands with its table row);scripts/pm/ensure-pm-labels.shroster gainsdomain:cloud(exists in objectstack, absent in objectui — the roster makes both). core-rules.mdtwins re-keyed identically where a changed SKILL.md line has a twin (rule :43); no new half-state row.
Serialisation
SKILL.md hunks (:42, :244–:256, :340–:353, :381, :459–:461) are disjoint from the four open drafts at the terminal — PR #18903 (:509–:525, :633–:675), #19021 (:339), #19033 (:608), #19039 (:164–:174); PR #18481 (#18473) is MERGED; ⛔ do not touch :523 (#18434). AGENTS.md: no open PR touches it (PR #19042 is at the terminal on :495–:500 — disjoint from the top pointer). lanes/spec.md, lanes/skills.md, PRIORITIZATION.md, ensure-pm-labels.sh: free.
Acceptance
- Positive greps with controls:
NORTH-STARin SKILL.md ≥ 2 and in AGENTS.md ≥ 1 (control 0 onorigin/main);Path:in SKILL.md ≥ 1 (control 0);domain:cloudin SKILL.md and ensure-pm-labels.sh (control: SKILL.md 0 today); 「误导」 in lanes/spec.md (control 0). Ratchet ✓ at every ceiling;check:pm-skill-id-lint,check:skill-frame-sync,check:pm-governed-mergesgreen. - Governed rules layer ⇒ draft PR at the four-piece terminal, 维护者速读(草稿);
CONTRACT_REVIEW_TIERconstruction; the maintainer's approval lands it. Lands AFTER the North Star file (same day is fine; the pointer may precede the file only if the file's PR is open).
Generated by Claude Code
- SKILL.md :42 优先序 「维护者裁决 >
- addedpriority:p1High: required for production / M2High: required for production / M2and removedpriority:p2Medium: important, M3Medium: important, M3
on Sep 18, 2026 os-elon-musk commented
on Sep 18, 2026 CollaboratorMore actionsClaim: PM loop round 2 (R2 — North Star enforcement, the maintainer's word in chat 2026-09-18)
Session:session_01BTeBejoPUvRHN8WdAJC6oF
Branch:claude/issue-18489-north-star-enforcement
Worktree:objectstack-issue-18489
Domain:domain:skills
Seat:domain:skills#1
File surface:.claude/skills/pm-dispatch/SKILL.md(:42 · :244–:256 · :340–:353 · :381 · :459–:461, net 0 at 812),references/lanes/spec.md(43 / 43),references/lanes/skills.md(33 / 33),references/core-rules.mdtwins (151 / 151),AGENTS.md(one pointer line, 1099 / 1099),docs/adr/PRIORITIZATION.md(→ one-line pointer),scripts/pm/check-governed-merges.mjs(register +docs/NORTH-STAR.md),scripts/pm/ensure-pm-labels.sh(+domain:cloud) — per the re-scope comment above
Container & model:M,mode:subagent,model: claude-fable-5-1(CONTRACT_REVIEW_TIER— SKILL.md / AGENTS.md on the mandatory list); governed rule layer ⇒ draft at the four-piece terminal
Clause-②: no
Thread-read: the director's original body (Journey line, D2.1–D2.3, serial after PR #18481 — merged) + the seat's re-scope comment above; rulings verbatim there
Serial constraints cleared: SKILL.md hunks disjoint from PR #18903 · #19021 · #19033 · #19039 (hunks listed in the re-scope); AGENTS.md top pointer disjoint from PR #19042 (:495–:500); the other files free (all open PRs' file lists read at 2026-09-18T14:07Z, re-read for AGENTS.md / SKILL.md at 2026-09-18T21:50Z); stem scan oforiginheads for18489/north-star: none. Batch: 2 in flight (this + the North Star file card). Lock free.
Ruling-ref: maintainer, chat 2026-09-18, verbatim in the re-scope comment (「其他同意」 on the eight items; 「skills 是驱动车队正确工作的核心,影响车队效率的卡都要派啊」; 「保留 domain:cloud 标签 等 cloud 项目经理迁移」)
Generated by Claude Code
- added a commit that references this issue
on Sep 18, 2026 os-elon-musk commented
on Sep 18, 2026 CollaboratorMore actionsos-dev-report
{ "issue": 18489, "status": "done", "branch": "claude/issue-18489-north-star-enforcement", "pr": "https://github.com/objectstack-ai/objectstack/pull/19142", "session": "session_01BTeBejoPUvRHN8WdAJC6oF", "premise_still_valid": true, "summary": "All eight re-scope items landed in one governed draft PR (#19142), line-neutral at every ratchet ceiling (SKILL.md 812/812, core-rules 151/151, lanes/skills 33/33, lanes/spec 43/43, AGENTS.md 1099/1099; every landed line at or under 120 B). SKILL.md: 优先序 gains 北极星 (:42); 取卡前置 = docs/NORTH-STAR.md 「优先级」第 3 条 read live at take time (:458); triage grades by 「优先级」第 1、2 条 and stamps a body-leading Path: line, a missing line is a round-report 分诊缺口 via :461 (no half-state row); type 判据 gains 已声明 (:359); domain table gains domain:cloud (:254); governed 面统一定义 names docs/NORTH-STAR.md (:605, the prose gate's containment). lanes/skills.md :25 carries the 「仪器为车队服务」 self-triage question (answer-less ⇒ p3 or not planned at once, never queued); lanes/spec.md renames the faces to 契约面 / 辅助面 / 机器面 with the maintainer's tests incl. 「它误导了 AI 吗」; core-rules :89 re-keyed; AGENTS.md :7 pointer (docs/NORTH-STAR.md = 先做什么, the .mdx stays architecture, PD #8 untouched per the seat note) plus PD #14 naming the new register row; GOVERNED_SURFACES gains docs/NORTH-STAR.md (self-test 5 → 6, no floor lowered); ensure-pm-labels.sh gains domain:cloud for both repos (not run against GitHub); PRIORITIZATION.md is a pointer plus one surviving rule line (declared deviation). North Star PR #19134 is open (draft) so the pointer may precede the file; assignee was set by the PM (os-elon-musk) and never touched.", "tests": "Derived: node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstack at 93330d643, re-derived at 022b06f6c (unchanged, 50 commands); --ran reconciliation on 022b06f6c: '50 derived famil(ies) accounted for — 50 run, 0 NOT-MEASURED, 0 UNRUN', exit 0. Every command exit 0 on 022b06f6c, redirect-then-$?: check:pm-skill-ratchet ('SKILL.md is 812 lines (ceiling 812; headroom 0)', core-rules 151/151, lanes/skills 33/33, lanes/spec 43/43, 'AGENTS.md is 1099 lines (ceiling 1099; headroom 0)'), check:pm-skill-id-lint ('27 file(s) clean'), check:skill-frame-sync, check:pm-governed-prose ('2 instruction surface(s) name all 6 registered governed surfaces … docs/NORTH-STAR.md'), check:pm-governed-merges ('331 assertions'), check:pm-half-states ('5043 cases pass'), check:pm-label-desc-cap ('25 label descriptions … all ≤100', after making the objectui description distinct — first run failed 'the run invokes at least one description per parsed line'), check:nul-bytes ('no raw ASCII control bytes'), check-adr-links ('680 relative link destination(s) … resolve', after the pointer became a code span — first run: 'docs/adr/PRIORITIZATION.md:3 -> ../NORTH-STAR.md (missing)'), check:doc-formula-expressions exit 0 after building the lint closure under scripts/pm/os-verify-lock.sh (OS_VERIFY_LOCK_SLOT=issue-18489, 'VERDICT command-exit 0 · held the lock 175s · waited 0s', shared-box seconds), check:pm-dispatch-gates detached with recorded PID 8403 and awaited via tail --pid ('EXIT 0'), plus the 35 other derived node/pnpm check commands each exit 0. Acceptance greps at 022b06f6c vs origin/main 14a762f9f (control 0 each): NORTH-STAR in SKILL.md 3 (≥2), in AGENTS.md 2 (≥1); Path: in SKILL.md 2; domain:cloud in SKILL.md 1 and ensure-pm-labels.sh 4; 「误导」 in lanes/spec.md 2; controls domain:skills 1/1, 取卡全序 1/1. No ablation owed (no package code changed). CI on the PR: in_progress (convergence is the PM's read). Not run locally: pnpm lint and the package test/typecheck farm — the diff touches no package.", "gates": "all 50 derived families green on 022b06f6c; local extras green: check:pm-skill-ratchet, check:pm-skill-id-lint, check:skill-frame-sync, check:pm-governed-prose, check:pm-governed-merges, check:pm-half-states, check:pm-label-desc-cap, check:nul-bytes, check-adr-links, check:doc-formula-expressions, check:pm-dispatch-gates; CI: in_progress", "line_budget": "SKILL.md 812 → 812: :42 92→104 (in place); :254 new 104 paid by folding :357+:358 (66+87 → 110, both facts kept); :359 101→116 (in place); :362 new 110 (定级 + Path: line) paid by folding :362+:364 (70+39 → 105, the form core-rules :91 already had); :458 new 105 (取卡前置) paid by folding :452+:453 (75+85 → 109); :461 120→118 (优先是排序不是豁免 → 优先非豁免, gains 无级/缺 Path:); :605 105→102 (drops 含 agents/hooks/settings, homed verbatim in AGENTS.md PD #14, gains docs/NORTH-STAR.md). core-rules 151 → 151: :89 117→117. lanes/skills.md 33 → 33: :9+:10 (75+62 → 117) pays :25 new 113. lanes/spec.md 43 → 43: :7 76→76 rename; :17-:24 the three faces = 114 · 105 · 94 · 107 · 108 · 93 (unchanged) · 119 · 77, three new lines paid by :9+:22 (74+97 → 111), :24+:25 (58+78 → 108), :31+:33 (42+84 → 115, 纯增量 renumbered ③, numbers referenced nowhere else). AGENTS.md 1099 → 1099: :7 new 120 (one physical line) paid by deleting :22 一条规则一个通道,互不重叠 (40 B preamble, no rule); PD #14 :258/:259 119+92 → 116+117 in place. No ceiling raised, no re-wrap used as currency.", "twins": "SKILL.md :359 ↔ core-rules :89 re-keyed identically (扩出已声明是功能); :363 (路由+父单 merged) ↔ core-rules :91 already identical, untouched; :358 ↔ core-rules :89 first clause untouched; :42 ↔ core-rules :26 (与 AGENTS.md 冲突以之为准) NOT re-keyed — :26 is 120 B, every 北极星 spelling measured 123–131 B, and the clause stays true because AGENTS.md :7 now points above itself; :459 ↔ core-rules :108 untouched because :459 itself is unchanged (the precondition is new line :458; a digest on :108 measured 146–153 B and core-rules has no adjacent bullet pair merging under 120 B); :452 fold has no core-rules twin (lanes/services.md :27 names the clause and still resolves); new lines owe no twin (core-rules is a subset, 不新增规则).", "deviations": [ "PRIORITIZATION.md keeps one line beyond the pointer: the status-hygiene rule (flip an ADR's Status: on landing, with evidence) — ADR-0110 line 395 cites it and it has no other home (grep); a deletable line for the maintainer.", "PRIORITIZATION pointer is a code span, not a relative link: check-adr-links reds on ../NORTH-STAR.md until PR #19134 merges.", "定级 cites 「优先级」第 1、2 条 rather than 第 2 条 alone: rule 1 (security/data-integrity top band) is the same grading law; citing only rule 2 would read a security defect off the path as p3.", "Item 4 landed in lanes/skills.md :25; SKILL.md :381 unchanged — :381 is 119 B and the question needs +18 B minimum (128–137 B measured in every spelling).", ":461 could not absorb the literal 无级或缺 Path: 卡轮报记分诊缺口 (135 B); compressed 优先是排序不是豁免 → 优先非豁免 (118 B) keeping 轮报 and 分诊缺口.", ":42 carries 北极星 without the path (path forms 125–129 B); the path is cited at :362, :458, :605.", "docs/NORTH-STAR.md also named in SKILL.md :605 and AGENTS.md PD #14 — required by check:pm-governed-prose containment once the register row exists (a consequence of item 6, not a ninth item).", "check-governed-merges.mjs self-test: rootExacts now = exact rows without a separator (docs/NORTH-STAR.md carries one and reaches dispatch-gates as written); '(5 surfaces' strings → 6; +1 case north-star-exact, +3 near-misses, +1 assert that a separator-carrying exact row declares no hint; floors untouched (331 assertions).", "objectui domain:cloud description differs from objectstack's (…not dispatched from objectui…) because check:pm-label-desc-cap's dry run needs one distinct description per parsed line; 100 and 99 chars.", "Coordinator mid-task note applied: PD #8 and content/docs/concepts/north-star.mdx untouched; the AGENTS.md pointer names both documents in one line." ], "files_changed": [ ".claude/skills/pm-dispatch/SKILL.md", ".claude/skills/pm-dispatch/references/core-rules.md", ".claude/skills/pm-dispatch/references/lanes/skills.md", ".claude/skills/pm-dispatch/references/lanes/spec.md", "AGENTS.md", "docs/adr/PRIORITIZATION.md", "scripts/pm/check-governed-merges.mjs", "scripts/pm/check-governed-prose.mjs", "scripts/pm/ensure-pm-labels.sh" ], "reader_tests": [ "item 1 — a seat resolving a conflict reads :42 and ranks the North Star above AGENTS.md and below a maintainer ruling.", "item 2 — an execution seat at take time reads :458 before :459, opens 「优先级」第 3 条, reads product repos' open P0/P1 live, and takes no p2/p3 tooling or contract-hygiene card while one exists (inheritance per :457-:458).", "item 3 — a triage seat grading a card opens 「优先级」第 1、2 条, writes the Path: line (path step / checklist area / none) as the body's first line, and types a widening beyond the declared accept set as Feature; a card missing the line shows in the round report as a 分诊缺口.", "item 4 — the skills seat self-triaging a finding asks 它落地后车队的哪个决定或动作会不一样; no answer ⇒ p3 or not planned at once, never pm:queue.", "item 5 — the spec seat classifying a card asks whether the same input's accept/reject verdict changed (契约面, five forms), else byte-identical verdict (辅助面) then 它误导了 AI 吗 (misleads ⇒ P2 keep, else close or ride the next touching PR's Acceptance notes); 机器面 graded by the 仪器 question.", "item 6 — any seat opening AGENTS.md reads :7 and opens the North Star first; a PR touching docs/NORTH-STAR.md is governed (draft-only, maintainer merge); a reader of PRIORITIZATION.md is sent to the North Star.", "item 7 — triage meeting a cloud-service journey card in objectstack/objectui applies domain:cloud and does not dispatch it; the roster creates the object in both repos when the seat runs it.", "item 8 — a reader of core-rules :89 gets the same 已声明 qualifier SKILL.md :359 carries." ], "mcp_calls": "0 — no MCP GitHub tool called (reads and writes all through curl against the REST proxy; label via scripts/pm/label-write.mjs)", "api_writes": "3 REST writes — POST /repos/objectstack-ai/objectstack/pulls (draft #19142, HTTP 201); POST /repos/objectstack-ai/objectstack/issues/19142/labels via label-write.mjs (skip-changeset, HTTP 200, read-back matches); POST /repos/objectstack-ai/objectstack/issues/18489/comments (this report). Plus git push ×3 (empty-branch probe, 93330d643, 022b06f6c). No PATCH, no assignee write, no needs:contract-review write.", "open_questions": [], "out_of_scope_findings": [ "noted, not filed: two north-star documents coexist (docs/NORTH-STAR.md = 先做什么; content/docs/concepts/north-star.mdx = architecture, PD #8, ROADMAP.md :4, formula/spec source comments); retitling the .mdx is the maintainer's pending word — 承接者: the skills seat on its next AGENTS.md touch.", "noted, not filed: a card parked with domain:cloud and no pm:* state trips the sweep's 域卡缺 pm 状态 disjunct and H13 unless it also carries status:parked (SKILL.md :325 excludes that label) — 承接者: the triage seat at labelling time.", "noted, not filed: ensure-pm-labels.sh not run against GitHub (seat runs it); the auto-created objectstack domain:cloud object keeps its colour/description until --reconcile — 承接者: the skills seat." ] }
Generated by Claude Code
os-elon-musk commented
on Sep 18, 2026 CollaboratorMore actionsos-dev-report
{ "issue": 18489, "status": "done", "kind": "follow-up fix push (coordinator return on PR #19142, two findings)", "branch": "claude/issue-18489-north-star-enforcement", "pr": "https://github.com/objectstack-ai/objectstack/pull/19142", "head": "9826698f3 (was 022b06f6c)", "session": "session_01BTeBejoPUvRHN8WdAJC6oF", "premise_still_valid": true, "summary": "Finding ①: lanes/spec.md :21 restored to the truth the old line carried — 「收窄仍是契约面,不触条款②」 (108 B → 108 B); 条款① is scoped to the 协议语义面 (SKILL.md :506–:507), so 「只触条款①」 would have built every packages/spec narrowing card at CONTRACT_REVIEW_TIER. Finding ②: SKILL.md :254 domain:cloud row now states the parking convention — 「云服务旅程,停放(加 `status:parked`,sweep 免扫)待 cloud PM 迁移,本仓不派」 (104 B → 109 B; the 北极星「现在不做」 parenthetical dropped, ensure-pm-labels.sh quotes the ruling); `status:parked` is the exemption the sweep's 析取 ③ (SKILL.md :326) and H13_EXEMPT_LABELS (check-half-states.mjs :3475) already read. Roster: ensure-pm-labels.sh gains `status:parked` for objectstack and objectui next to domain:cloud, colour cfd3d7 (same as `tracking`, the other sweep-exempt label), distinct descriptions per repo (99 and 96 chars). Line-neutral: SKILL.md 812/812, lanes/spec.md 43/43. No PATCH on the PR, no label writes, roster not run against GitHub.", "greps": "worktree at 9826698f3 vs control 022b06f6c: 「不触条款②」 in lanes/spec.md 1 (control 0); 「只触条款①」 in lanes/spec.md 0 (control 1); `status:parked` in SKILL.md 2 (control 1 — :326 only); `gh label create status:parked` lines in ensure-pm-labels.sh 2 (control 0).", "tests": "redirect-then-$? on 9826698f3 (working tree identical to the pushed commit): pnpm check:pm-skill-ratchet :: exit 0 — '.claude/skills/pm-dispatch/SKILL.md is 812 lines (ceiling 812; headroom 0)' · 'lanes/spec.md is 43 lines (ceiling 43; headroom 0)'; pnpm check:pm-skill-id-lint :: exit 0 — '27 file(s) clean (pattern /#[0-9]{3,}/g)'; pnpm check:pm-governed-prose :: exit 0 — '2 instruction surface(s) name all 6 registered governed surfaces (docs/adr/** · .claude/** · skills/** · AGENTS.md · CLAUDE.md · docs/NORTH-STAR.md) and claim no others'; pnpm check:pm-label-desc-cap :: exit 0 — '27 label descriptions in scripts/pm/ensure-pm-labels.sh, all ≤100 characters (longest: 100, repo:objectui)'; pnpm check:pm-half-states :: exit 0 — 'self-test: 5043 cases pass'. CI on the PR: in_progress.", "files_changed": [ ".claude/skills/pm-dispatch/SKILL.md", ".claude/skills/pm-dispatch/references/lanes/spec.md", "scripts/pm/ensure-pm-labels.sh" ], "mcp_calls": "0", "api_writes": "1 REST write — POST /repos/objectstack-ai/objectstack/issues/18489/comments (this follow-up). Plus git push ×1 (9826698f3). No PATCH, no label write.", "open_questions": [], "out_of_scope_findings": [] }
Generated by Claude Code
os-elon-musk commented
on Sep 18, 2026 CollaboratorMore actionsContract review
Served-tier:
CONTRACT_REVIEW_TIER
Head-sha:9826698f3
Card: #18489 · PR #19142 (two commits + the fix push9826698f3; baseaadea24b8, nine files, +70 / −182) · 2026-09-18T23:12Z① Derived judgments
- Surface (from
GET /pulls/19142/files, not the report):.claude/skills/pm-dispatch/SKILL.md,references/core-rules.md,references/lanes/skills.md,references/lanes/spec.md,AGENTS.md,docs/adr/PRIORITIZATION.md,scripts/pm/check-governed-merges.mjs,scripts/pm/check-governed-prose.mjs,scripts/pm/ensure-pm-labels.sh.check-governed-merges.mjs --pr 19142→ GOVERNED, 6 of 9 paths on the register (docs/adr/** ×1, .claude/** ×4, AGENTS.md ×1).AGENTS.mdanddocs/adr/**are the rules layer (Tier H under skills(governed): narrow the human-merge floor to the law — Tier H stays human/approved (AGENTS.md · CLAUDE.md · docs/adr/** · docs/NORTH-STAR.md · .claude/settings.json · .claude/hooks/**); Tier S (.claude/skills/** · .claude/agents/**) lands on the seat's CONTRACT_REVIEW_TIER PASS + post-merge audit #19133's pending wording) ⇒ four-piece terminal; one authorized approval lands it. - The eight re-scope items (5736794156), each read off the diff: (1) SKILL.md :42 优先序 = 维护者裁决 > 北极星 >
AGENTS.md> 红线 > …; (2) :458 取卡前置 = 「优先级」第 3 条, read live at take time, placed above 取卡全序; (3) :362 定级按 「优先级」第 1、2 条 + body-leadingPath: P<n> | <清单区> | none, :461 无级/缺Path:⇒ 轮报分诊缺口, :359 type 判据 gains 已声明; (4) lanes/skills.md :25 the 「仪器为车队服务」 question, 答不出 ⇒ 即刻 p3 或不做 ⛔ 不入队 (landed in the lane file beside the self-triage rule, not at SKILL.md :381 — that line is 119 B and no spelling fits; accepted); (5) lanes/spec.md :17–:24 契约面 / 辅助面 / 机器面 with the one-sentence tests, the five 契约面 forms, the 辅助面 second cut 「它误导了 AI 吗」 with its two outcomes, 机器面 graded by the 仪器 question only; (6) AGENTS.md :7 pointer (the North Star outranks; the.mdxstays architecture; PD Convert to monorepo with scoped packages #8 untouched), PD feat: Comprehensive CRM example demonstrating all ObjectStack protocol features #14 namesdocs/NORTH-STAR.md, register rownorth-star(exact: 'docs/NORTH-STAR.md'), PRIORITIZATION.md = pointer + the one status-hygiene line ADR-0110 :395 cites; (7) SKILL.md :254domain:cloudrow + ensure-pm-labels.sh objects for both repos; (8) core-rules :89 re-keyed identically with :359. - Positive greps, head vs
origin/main(control):NORTH-STARin SKILL.md 3 / 0, in AGENTS.md 2 / 0;Path:in SKILL.md 2 / 0;domain:cloudin SKILL.md 1 / 0, in ensure-pm-labels.sh 4 / 0; 「误导」 in lanes/spec.md 2 / 0; controlsdomain:skills1 / 1, 取卡全序 1 / 1. - Old face names: 语义面 survives only as 协议语义面 (SKILL.md :506–:507, core-rules :112 — the 条款① notion, a different thing from the spec lane's renamed face); no 文本面 anywhere under
.claude/,AGENTS.md,scripts/pm,docs/adr. lanes/spec.md 常设承诺 renumbering (纯增量 → ③): the numbers are cited nowhere else. - Register consumers:
check-governed-queue-guard.mjsimportsGOVERNED_SURFACES(:409–:417, restates no list);dispatch-gates.mjs:18417 extracts watch hints from the register source, anddocs/NORTH-STAR.mdcarries a separator so it reaches the gate as written (the new self-test case pins that an exact row with a separator declares no hint);check-governed-prosereads 6..github/CODEOWNERSroutesdocs/adr/only today, so the new row owes it nothing. The register header :170–:172 quotes the 2026-08-18 ruling verbatim (five surfaces) — a quotation, correctly left; the 2026-09-18 addition is documented at :864–:866. - Twins: :359 ↔ core-rules :89 re-keyed identically; :42 ↔ core-rules :26 「与 AGENTS.md 冲突以之为准」 stays true (the skill defers to AGENTS.md, which now defers upward at :7); :458 is new and core-rules is a subset (不新增规则).
- Closing keywords: body line 1
Fixes #18489, no other target;Clause-②: noat line start;skip-changeset(no package code).
② Checks run by the seat (detached worktree at
9826698f3, redirect-then-$?)check-skill-line-ratchet.mjsexit 0: SKILL.md 812/812, lanes/spec.md 43/43, AGENTS.md 1099/1099, CLAUDE.md 5/5; no ceiling moved.check-skill-id-lint.mjsexit 0 (27 files clean).check-governed-prose.mjsexit 0 (2 instruction surfaces name all 6, claim no others).check-label-desc-cap.mjsexit 0 (27 descriptions ≤100).check-clause2-carriers.mjs --pair 19142exit 0 (cardno, PR bodyno, agree).check-governed-merges.mjs --pr 19142exit 3 = GOVERNED (above). Changed skill lines measured ≤120 B (:254 = 109 B, lanes/spec.md :21 = 108 B).- NOT MEASURED by the seat:
check-governed-merges.mjs --self-testexits 3 (prerequisite) in the seat's worktree — neither checkout carriesnode_modules, and the [finding]skills/*/references/_index.mdis generator-owned (gen:skill-refs) yet sits inside theskills/**governed-merge fence — every spec PR touching an indexed headline is forced to carry a governed-surface file #11705 live case needs the generator; the dev reports 331 assertions at022b06f6c(the fix push touches no script the battery reads). CILint & Repo Gatesis the reading. - CI on
9826698f3at 2026-09-18T23:11Z: 14 success · 8 skipped · 7 in progress, nothing red; convergence is read at landing.
③ Findings and their resolution
- Returned once at
022b06f6c, both in lines this PR wrote, both fixed by9826698f3and re-read by the seat: (a) lanes/spec.md :21 said 「收窄仍是契约面,只触条款①」 — 条款① (SKILL.md :506–:507) is scoped to the 协议语义面 (SKILL.md / os-dev.md / skills/**), apackages/specnarrowing card is not on it, so the line would have built every narrowing card at the contract tier (a dispatch that differs from :504); now 「不触条款②」, the truth the old line carried. (b) SKILL.md :254 said 停放 without the sweep-silent form — :324 析取 ③ lists everydomain:*-without-pm-state card each fire and H13 (check-half-states.mjs:3475) exempts onlystatus:parked, so the next sweep would have cured the parked cards against the ruling 「保留 domain:cloud 标签 等 cloud 项目经理迁移」; now 「停放(加status:parked,sweep 免扫)」, and ensure-pm-labels.sh createsstatus:parkedin both repos (it existed in objectstack only; objectui 404). - Deviations accepted as declared: 定级 cites 第 1、2 条 (rule 1 is grading law too); PRIORITIZATION.md keeps the status-hygiene line ADR-0110 cites (the maintainer may delete it); the pointer is a code span (docs/NORTH-STAR.md is on main since
aadea24b8, a link would resolve too — no change asked); item 4 in lanes/skills.md :25; the.mdxuntouched per the seat's note. - Not filed, carried to the maintainer in chat: the objectstack
domain:cloudobject was auto-created (colour/description differ from the roster until--reconcile); the roster was not run against GitHub in this PR.
Implemented-by:
claude/issue-18489-north-star-enforcement(os-dev,CONTRACT_REVIEW_TIERbuild)
Reviewed-by:session_01BTeBejoPUvRHN8WdAJC6oF(domain:skills seat, contract tier)VERDICT: PASS — governed rules layer (AGENTS.md + docs/adr/**) ⇒ four-piece terminal; one authorized approval, then the seat lands it.
Generated by Claude Code
- Surface (from
os-elon-musk commented
on Sep 18, 2026 CollaboratorMore actionsACCEPT — PR #19142 @
9826698f3(three commits; nine files, +70 / −182) · skills seatsession_01BTeBejoPUvRHN8WdAJC6oF· 2026-09-18T23:12ZRead on GitHub: draft, base
main(aadea24b8, which carriesdocs/NORTH-STAR.md), body line 1Fixes #18489,Clause-②: noat line start; closing keywords touch this card only;get_files= the nine paths named in the review record;skip-changesetpresent (size/m,documentationare the labellers'); two reports on this card (5737191360 at022b06f6c, follow-up 5737279776 at9826698f3), literal first lineos-dev-report, JSON parses, read back to the tail. Contract review record 5737301010: PASS after one return (two findings, both fixed in the follow-up push and re-read by the seat). Seat gates at9826698f3: ratchet 812/812 · 43/43 · 1099/1099, id-lint clean, governed-prose 6/6, label-desc-cap ≤100, clause2--pairagree; governed self-test NOT MEASURED by the seat (nonode_modulesin either checkout) — CI is the reading. CI at 2026-09-18T23:11Z: 14 success · 8 skipped · 7 in progress, nothing red. The newestClaim:(5736794156's round) names this branch.Path face:
check-governed-merges.mjs --pr 19142→ GOVERNED (6 of 9 paths;AGENTS.md+docs/adr/**are the rules layer) ⇒ draft stays;needs-user-decisiongoes on; the final 维护者速读 is on the PR; review requested from os-zhuang and hotlong. On an authorized APPROVED (ruling C) the seat lands it: record on head,--pair0, checks green, ready + auto-merge SQUASH. #19133's PR (#19144) is SERIAL behind this one on the register and PD #14 and mergesmainonce this lands. This card closes on the merge (Fixes).
Generated by Claude Code
os-elon-musk commented
on Sep 18, 2026 CollaboratorMore actionsLanded — PR #19142 @
9826698f3→main4d1d9d9f9(skills seat, 2026-09-18T23:35Z)Approved by os-zhuang (
GOVERNED_APPROVERS; reviews 5253479671 · 5253480625 on9826698f3at 2026-09-18T23:33Z), readied and merged by os-zhuang's hand at 2026-09-18T23:33Z (squash4d1d9d9f9; the seat's ruling-C landing was not needed). Read back onorigin/main: SKILL.md :42 carries 北极星, :254 thedomain:cloud+status:parkedrow; the register carriesnorth-star. Contract review record 5737301010 (PASS at this head; its authorship pair re-flowed to two lines at 2026-09-18T23:34Z aftercheck-clause2-carriers --pairread it half-written — content unchanged). Residue:pm:dispatched→pm:done, unassigned;needs-user-decisioncleared on the PR. Consequences: PR #19144 (#19133) is now conflicted on the register row order, PD #14 and the prose header — its dev mergesmainand resolves; the seat re-records on the post-merge head.status:parkedin objectui and the objectstackdomain:cloudobject's description: the seat runsensure-pm-labels.shfor both at the next label pass (not this comment). This card closed on the merge.
Generated by Claude Code
- added a commit that references this issue
on Sep 28, 2026
Blocked-by: #18477
Filed by the director seat (summon #24,
session_01Wj1HUjzyeiBQ8atRf1ZhaL) on the acceptance of ADR-0136 (PR #18480 APPROVED byos-zhuangat 2026-09-16T15:32:50Z on headdc2b2ff3; card #18477). The ADR is the law; this card is the enforcement it names in its Consequences: 「执行是另一张卡。D2 三条落进 SKILL.md 分诊行与取卡全序」. ⛔ Nodomain:*set by the filer; the surface isSKILL.md+core-rules.md=domain:skills.Dedup terms:
Journey: line·journey bands·cross-lane priority·journeys feed the queue·ADR-0136 enforcementDeliverable — rules-layer re-keys, line-neutral (SKILL.md 812/812, core-rules 151/151), each line ≤120 B, paid in place
Journey: JN | noneline citingdocs/adr/0136-declared-journeys-as-priority-anchor.mdD1; grading follows D2.1's bands — security/data-integrity top band regardless; journey broken/blocked ⇒ P0/P1; journey runs but produces a wrong result on its path ⇒ P2; no declared journey ⇒ p3 ornot_plannedby default, with declared-but-unenforced keys retired per release in batches (⛔ not one card per key).Journey:value, no lane dispatches a p2/p3 contract-hygiene or tooling card; one sentence, cited to ADR-0136 D2.2.checklist-test/dogfood-verification, nightlygolden-journey.yml, dailyscaffold-e2e.yml, per-PRDogfood Regression Gate) are the primary feed; a red journey files a card with itsJourney:line; contract sweeps and findings become background, graded against the journey list.core-rules.mdtwins re-keyed identically;check-half-states.mjsgains no new H-row in this PR (aJourney:half-state row is a follow-up only if the maintainer asks).Serialisation
Same file as PR #18481 (#18473) — claim after #18481 is MERGED and merge
origin/mainfirst; #18476 has landed its:92change. ⛔ Do not touch:523(#18434, queued).Acceptance
Journey:in SKILL.md ≥1 (control 0 on origin/main today);ADR-0136cited in the 取卡全序 block; ratchet 812/812 · 151/151;check:pm-skill-id-lint,check:skill-frame-syncgreen.Refs ADR-0136 · #18477 · PR #18480 · #18481 · #18472
Generated by Claude Code