Skip to content

pm-dispatch: merge domain:engine and domain:services into domain:server (maintainer 「甲」, 「就叫 server 吧」), with a no-interrupt transition — and move packages/qa (dogfood) to domain:devx #24907

Open

Description

@objectstack-fleet

Filing gate ③: a task the maintainer set. In the triage seat's chat, triage proposed 「甲:只合并 engine 和 services」, with the packages/qa → devx move alongside it. The maintainer answered 「甲」, asked 「现在处理合适吗,各个车道都在开发」, and named the lane: 「就叫 server 吧」. Filed by the triage seat (#6015, session_01AavokzJ5DndAwitDXvKy4U). ⛔ Not a claim.

Reader (who acts): the domain:skills seat, in one PR on the governed surface. It lands by its tier: Tier H, the maintainer's approval.

Why (measured over the last 14 days, objectstack)

Name

domain:server: the maintainer's word, 「就叫 server 吧」. Both domain:engine and domain:services fold into it. The table row reads 「服务端运行时:引擎 + 服务插件」, and its scope is the union of the two current rows. If domain:cli later merges too (to be re-measured in two weeks), the name already fits.

The transition (no freeze, no interruption of in-flight work)

  1. The PR:
    • The lane table (.claude/skills/pm-dispatch/SKILL.md, about :161–162) replaces the engine and services rows with one domain:server row, and moves packages/qa from cli's row to devx's.
    • references/lanes/engine.md and references/lanes/services.md merge into references/lanes/server.md.
    • scripts/pm/ensure-pm-labels.sh creates domain:server.
    • scripts/pm/check-half-states.mjs and scripts/pm/check-skill-line-ratchet.mjs treat domain:engine and domain:services as aliases of domain:server, so a seat's sweep and the half-state checks still see every card.
    • ADR text is history and stays untouched.
  2. From the merge on, triage labels new cards domain:server, and labels packages/qa cards domain:devx.
  3. One batch relabel, by triage, of the domain:engine and domain:services cards that are not in flight: pm:queue, pm:blocked, pm:on-hold, the decision cards and the unlabelled ones (about 32 cards today).
    • ⛔ Cards in pm:dispatched (5 engine and 2 services today) keep their label until they land.
  4. Seats: at each seat's next shift handover, the engine seats ([PM seat] domain:engine — 🟢 os-project-manager #6367, and [PM seat] domain:engine · seat 2 — ⏳ vacant #20966, which is vacant) and the services seats ([PM seat] domain:services — 🟢 os-justin #6021, [PM seat] domain:services · seat 2 — ⏳ vacant #21118) become domain:server seats 1–4. ⛔ No seat is renamed mid-shift, and in-flight claims finish under their own label.
  5. Cleanup: once domain:engine and domain:services have zero open cards, remove the aliases and the two labels (a small follow-up PR, the same lane).

Done when

Dedupe

The open domain:skills cards were checked: none touches the lane table. New.


Generated by Claude Code

Activity

  1. changed the title [-]pm-dispatch: fold `domain:services` into `domain:engine` (maintainer 「甲」), with a no-interrupt transition — and move `packages/qa` (dogfood) from `domain:cli` to `domain:devx`[/-] [+]pm-dispatch: merge `domain:engine` and `domain:services` into `domain:server` (maintainer 「甲」, 「就叫 server 吧」), with a no-interrupt transition — and move `packages/qa` (dogfood) to `domain:devx`[/+] on Oct 20, 2026
  2. objectstack-fleet commented on Oct 20, 2026

    @objectstack-fleet
    ContributorAuthor

    Parked for the maintainer: 「这个合并不着急,设置成维护者处理,等我有空的时候再说」 (the triage seat's chat). Triage seat · session_01AavokzJ5DndAwitDXvKy4U · 2026-10-20T13:53Z

    • State: pm:queue → pm:awaiting-maintainer. No seat dispatches this card. It restarts on the maintainer's word, here or in chat.
    • Open question for that restart (the maintainer asked 「是否建议 cli 一起合并」): measured over 14 days of objectstack PR title scopes:
      • 364 name a domain:cli package, and 55 of them (15%) also name a domain:server package. Examples: the 18.x ceremony and walled steps (feat(cli,driver-sql)!, feat(objectql,cli,plugin-webhooks)!, feat(cli,plugin-sharing)!) and fix(objectql,runtime).
      • That is more cross-boundary PRs than engine↔services itself (30).
      • Triage's lean: fold domain:cli into domain:server in the same transition. One alias step, one relabel batch and one seat rename at handover cost less than two migrations. packages/qa still goes to domain:devx.

    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

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions