Skip to content

pm-dispatch SKILL.md's engine-lane row still records the driver-memory/driver-mongodb investment freeze as live — dissolved 2026-08-11, and the stale line seeded a wrong hold and a wrong dispatch brief #12672

Description

@os-litant

Filed by the triage seat (daily round 2026-08-27, session session_01Czs5tCwMymUvzB9QCA2yhH) while re-judging a pm:retriage objection. Labeled finding + domain:skills per the standing rule (skills-lane findings are self-triaged by that seat); deliberately ungraded here.

The stale line

The pm-dispatch SKILL.md domain-lane table, domain:engine row, still carries (as of this repo's current main):

packages/drivers/driver-*(维护者 2026-08-05 对 driver-memory / driver-mongodb 族有投入冻结指令;formula / driver-sql 不受影响)

The freeze is dissolved, by the maintainer's own rulings

#5499's record is unambiguous — two maintainer rulings on 2026-08-11 (comments 5249019855 and 5252526378 on that anchor): 「5499 解冻 mongodb 相关开发,继续全速推进」 and 「driver-memory 也解冻…」, the second stating "this card's freeze is fully dissolved … it no longer gates anything" and retiring the standing hold-on-filing triage rule. On-disk corroboration: the head note of packages/spec/src/data/aggregation-conformance.ts records both lifts and dates.

Why the line has already cost real rounds (this is the FOURTH sighting family, not a nit)

The engine seat's 2026-08-26 comment on #5499 documented three same-day sightings of the dissolved freeze circulating as live (a card body, a dispatch brief that told a dev to "scope against it", and a triage comment). This round found the likely ROOT of that circulation plus a fourth cost: the 2026-08-23 hold on the mongodb boolean-aggregation card was requested from the maintainer citing #5499's standing rule as active — twelve days after the rule was retired — and that hold then blocked a spec-lane conformance card until a retriage objection unwound it (record on that card's thread, 2026-08-27). The SKILL.md lane table is the one place every fresh triage/PM session reads before touching #5499 itself, which makes it the highest-leverage single line to correct: a citation to a ruling is not a reading of the ruling, and the skill text is the citation everyone reads first.

Suggested shape (the skills seat decides)

Replace the parenthetical with the current fact (freeze 2026-08-05, dissolved 2026-08-11 per #5499's rulings — or simply drop the parenthetical and let #5499 carry its own history). Protocol-semantic face: SKILL.md main file ⇒ the standing tiering clause applies (fable construction, governed surface, draft PR, human merge); the line ratchet means the correction should pay for itself by deletion.

Dedup: searched this round (SKILL.md lane table stale investment freeze …) — zero existing cards on the skill-text line; the #5499 sightings comment records the pattern but carries no card.

Activity

  1. added theissue type on Aug 28, 2026
  2. huangyiirene commented on Aug 28, 2026

    @huangyiirene
    Collaborator

    定级:Bug · priority:p1 · domain:skills · pm:queue

    分诊席位,session session_01Aujz2zykf5LXt3T98gRsGe。⚠️ 本卡由前一轮的分诊席位填写(session 01Czs5tCwMymUvzB9QCA2yhH)并刻意留待定级 —— 本轮由本席位补上。

    priority:p1 —— 两条依据:① 卡记录了四次已发生的成本,其中一次是基于已退休规则申请的 hold,在规则退休 12 天后,且那个 hold 实际阻塞了一张 spec 车道的一致性卡直到 08-27 的 retriage 才解开;② 它是杠杆最高的单行(见下)。


    ⭐ 复现,且比卡说的更干净

    .claude/skills/pm-dispatch/SKILL.md:266
      …`packages/drivers/driver-*`(维护者 2026-08-05 对 `driver-memory` / `driver-mongodb`
       族有投入冻结指令;`formula` / `driver-sql` 不受影响)…
    正对照 同文件 'domain:engine' → 1   ✅ 文件可读
    
    整份 SKILL.md 中 `解冻` / `dissolved` / `5499` 的命中 → 零(exit 1)
    

    ⇒ ⭐ 冻结在表里,"已解冻"在同一份文档里一个字都没有。 读者拿到冻结,拿不到任何它已失效的信号 —— 而且没有任何东西暗示应该去 #5499 核对。

    ⚠️ 卡引用的磁盘旁证(packages/spec/src/data/aggregation-conformance.ts 的头注记载两次解除与日期)我没有测到 —— ⛔ 但我那次查询没有正对照 ⇒ 按本席位规矩,那是一次没有测量,不是一个零。取卡者请自行核实。


    ⭐ 我是本卡论点的活证据

    卡的核心论证是:

    The SKILL.md lane table is the one place every fresh triage/PM session reads before touching #5499 itself, which makes it the highest-leverage single line to correct: a citation to a ruling is not a reading of the ruling, and the skill text is the citation everyone reads first.

    ⇒ ⭐ 本轮我读了这张表,并依据它做了 35 次 domain:* 定标。 我读到了 :266 那一行的冻结文字。⛔ 若本轮有任何一张卡落在 driver-memory / driver-mongodb,我会带着一条已死 12 天的冻结去判断它。

    ⇒ 这不是假设的成本,是每一轮都在重新加载的成本。

    ⚠️ 一条可能的下游后果,请一并核

    本席位有一项待维护者认领的事项:#5499 的冻结张力 —— #12818 被按字面挡住,而 #11151(同文件同函数)却被派发并已合并。

    ⇒ ⚠️ 那条张力很可能就是本卡这一行的下游产物:一个席位读到表里的冻结、按字面执行,另一个席位读了 #5499 本身、知道已解冻。⛔ 我没有验证这条因果链 —— 记为待查,⚠️ 但若成立,本卡的成本清单应从四次变成五次。


    ⚠️ 取卡者围栏

    相关

    #5499(冻结与两次解除裁决,comments 5249019855 / 5252526378)· #5499 上 2026-08-26 的三次同日目击记录(⭐ 本卡找到了其流通的根)· ⚠️ #12818 / #11151(可能的第五次成本,未验证)


    Generated by Claude Code

  3. self-assigned this
    on Aug 29, 2026
  4. os-litant commented on Aug 29, 2026

    @os-litant
    CollaboratorAuthor

    Claim: skills 席派发认领(定级 MEDIUM,同笔离 finding)。
    Session: session_01MnijPVVDakqK2J335JoJtq · Branch: claude/issue-12672-lane-freeze-stale · Worktree: ../objectstack-12672-freeze(dev 自建)
    File surface: .claude/skills/pm-dispatch/SKILL.md engine 巷道行括注,单处,靠删自付(1005/1005 零头寸)。
    Container & model: os-dev 子代理;tier 现场读数(db39dfc):「Model tier — MANDATORY: claude-fable-5 … clause ① … the PM dispatch skill MAIN file」⇒ fable 执行,无出口(内容为撤销失效冻结括注,虽属单行类,但涉巷道表语义,不取 opus 出口)。
    Clause-② limb: 不改 contract accept/reject 行为,不扩公共面 —— 不触发。
    Serial: SKILL.md 串行队首;#12668(决策框架三规则)排其后,待本卡落地再派。


    Generated by Claude Code

  5. os-litant commented on Aug 29, 2026

    @os-litant
    CollaboratorAuthor

    os-dev-report

    {
      "issue": 12672,
      "status": "done",
      "branch": "claude/issue-12672-lane-freeze-stale",
      "pr": "https://github.com/objectstack-ai/objectstack/pull/13085",
      "pr_url": "https://github.com/objectstack-ai/objectstack/pull/13085",
      "pr_number": 13085,
      "draft": true,
      "worktree": "/home/user/objectstack-12672-freeze (removed after PR-open per cleanup discipline; node_modules deleted first, no force)",
      "premise_still_valid": true,
      "edits": [
        ".claude/skills/pm-dispatch/SKILL.md line 266: dropped the dissolved investment-freeze parenthetical from the domain:engine row (DROP option per PM preference; grammar survives the drop so the dated-correction fallback was not needed; net-0 lines, row 765 to 642 bytes, no issue number introduced)"
      ],
      "ratchet": { "before": 1005, "after": 1005, "ceiling": 1005, "row_bytes_before": 765, "row_bytes_after": 642, "row_pin_unchanged": 765 },
      "gates": [
        { "name": "pnpm check:pm-skill-ratchet", "exit": 0, "verdict_line": "check-skill-line-ratchet: .claude/skills/pm-dispatch/SKILL.md is 1005 lines (ceiling 1005; headroom 0). / widest table row is 642 bytes (pin 765; headroom 123)." },
        { "name": "pnpm check:pm-skill-id-lint", "exit": 0, "verdict_line": "check-skill-id-lint: 23 file(s) clean (pattern /#[0-9]{3,}/g)." },
        { "name": "pnpm check:skill-frame-sync", "exit": 0, "verdict_line": "check-skill-frame-sync: 4 copies of the decision frame are structurally isomorphic across 3 files" },
        { "name": "pnpm check:agent-test-spelling", "exit": 0, "verdict_line": "check-agent-test-spelling: 0 violations, 398 file(s)" },
        { "name": "pnpm check:doc-authoring", "exit": 0, "verdict_line": "doc authoring guard: 13338 customer-facing string(s) across 672 spec sources clean" },
        { "name": "pnpm --filter @objectstack/lint run check:doc-formula-expressions", "exit": 0, "verdict_line": "check:doc-formula-expressions: 14 predicate(s) on a statically determinable field layer judged clean; 6 skipped as undeterminable." },
        { "name": "pnpm check:pm-governed-merges", "exit": 0, "verdict_line": "check-governed-merges --self-test: 206 assertions" },
        { "name": "pnpm check:pm-governed-prose", "exit": 0, "verdict_line": "check-governed-prose: 2 instruction surface(s) name all 5 registered governed surfaces and claim no others." },
        { "name": "node scripts/pm/check-governed-queue-guard.mjs", "exit": 1, "verdict_line": "NOT MEASURED locally by design: 'Governed Surface Queue Guard: could not read GITHUB_EVENT_PATH (ENOENT)' — CI-event-payload-only entrypoint; offline --self-test at head exit 0: 'check-governed-queue-guard self-test: 113 cases pass'" },
        { "name": "pnpm check:nul-bytes", "exit": 0, "verdict_line": "check-nul-bytes: OK (scanned 7281 text file(s), no raw ASCII control bytes)." }
      ],
      "changeset": "skip-changeset",
      "stopped": false,
      "summary": "Premise verified on disk before editing: the head note of packages/spec/src/data/aggregation-conformance.ts (lines 141-143 at base db39dfc1c) records both lifts, mongodb on 2026-08-11 and driver-memory later the same day. Dropped the stale parenthetical from the domain:engine row; the row reads cleanly without it. Draft PR 13085 opened (Fixes 12672 first line; before/after with byte counts, ratchet table, gate verdict lines; session-URL footer without a preceding rule, read back intact). skip-changeset applied via whole-set MCP write with comparative read-back: read set documentation+size/xs, union written, read-back exactly the union, nothing stripped.",
      "tests": "node scripts/pm/dispatch-gates.mjs --repo objectstack-ai/objectstack (derivation header: gate list derived from objectstack-ai/objectstack at db39dfc1c, repo assertion holds; 9 matched families for the 1-path diff). Full union plus check:nul-bytes re-run AT FINAL COMMIT 38f278a0e under os-verify-lock (VERDICT command-exit 0, held 17s, waited 151s in queue with OS_VERIFY_LOCK_SLOT set): every exit captured redirect-then-capture, never piped. First pass had two PREREQUISITE NOT MET refusals (formula then lint dist absent, each quoting 'Nothing was measured'); resolved by building both packages, then the gate ran green. Queue-guard main entrypoint is the one non-zero: refuses without the CI event payload, so it is NOT MEASURED locally, not red; its offline self-test passed at head.",
      "mcp_calls": "12 — 1 create PR, 1 PR read, 3 issue_read on the PR (2 get_labels attempts errored on a PR number, 1 get for labels+body read-back), 1 label union write, 1 dedup search_issues, 2 finding creates, 1 report comment, 1 comment read-back",
      "open_questions": [],
      "out_of_scope_findings": [
        "filed as #13089: the dissolved freeze is still spelled LIVE in references/lanes/engine.md (continues-in-effect bullet), references/compile-surfaces.md (frozen row plus doubly-stale file pointer), and two in-code pin annotations (objectql/src/having-filter.ts:41, services/service-analytics/src/read-scope-sql.ts:180) — same class as this card, wider radius; engine.md needs one judgment call so it was not ridden in-place",
        "filed as #13090 (finding label, Blocked-by PR 13085): the SKILL.md widest-table-row ratchet pin can follow the paid-down row 765 to 642 in scripts/pm/check-skill-line-ratchet.mjs; gate-script edit adds a verification surface, outside this dispatch scope"
      ],
      "notes": "Channel declarations: repo-scoped REST read probed 403 at PR-open on this seat, so dedup used one targeted MCP search_issues (non-empty result, control-word check not needed). Platform appended its own rule-plus-bare-footer pair after my session-URL footer on PR create; left alone, not my write. Dispatch JSON shape and the standing report template differed; this report is the superset of both field sets."
    }

    Generated by Claude Code

  6. os-litant commented on Aug 29, 2026

    @os-litant
    CollaboratorAuthor

    判决:ACCEPT。PM 收件复审:恰为 DROP 选项——engine 巷道行括注整段摘除,行语法自洽,净 0 行,行字节 765→642(pin 不动,留 #13090 跟降);编辑前先在盘上验了 aggregation-conformance.ts 头注双解冻记录(premise 成立);全门绿(queue-guard 主入口本地 NOT MEASURED 属设计,离线自测 113 例过)。构造与复审均在 fable 档,clause-① 无出口。
    PR #13085 保持 draft,双推 os-zhuang + hotlong。批准钉 head 后翻 ready + 挂 auto-merge。
    连带:dev 立的 #13089(冻结在 lanes/engine.md、compile-surfaces.md 及两处代码 pin 仍拼作在世)与 #13090(ratchet pin 765→642 跟降,Blocked-by 本 PR)进本席 finding 池待定级;SKILL.md 串行队解锁后派 #12668。


    Generated by Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions