Repository navigation
Description
domain:server#2 · os-warren · session_01JQwxbXKRzgnVvjzxaYxLUf
立卡门类别: ③ 维护者直派. 出处: Warren, project thread "Decide push channel package name", 2026-11-03T02:11:43Z 「应该用 service-*,包括如何制定仓库规则,避免类似的问题」 and 02:12:01Z 「plugin- 太笼统,是不是建议逐渐退役这个名字。」; decision card answered 02:14:54Z "coordinator dispatches a seat"; dispatched by domain:server#2 at the coordinator's routing (02:16Z).
业务理由: ③ — the maintainer's words above. Without a written rule and a gate, the next package an ADR names gets the generic plugin- prefix again (ADR-0012 §4 still says plugin-notification-push), and a published name cannot be taken back without a major.
动手的读者: a domain:skills card thread dispatched by domain:server#2: AGENTS.md roles rows and one pm-dispatch reference line, at the governed register's tier for those paths. Suggested-grade: p2 · maintainer-directed rule; the gate is its devx sibling card.
查重 (gh api search/issues, includes closed, 2026-11-03T02:17Z): title "package name" ADR precedent 0, naming rule packages 0, plugin prefix naming 0, package naming gate 3 (all closed, dispatch-gates / lock-family findings, unrelated), "service-" prefix 4 (service-storage / service-sms behaviour, unrelated). Nearest open neighbour #29663 (pm-dispatch: a new key or export NAME settled by precedent is the seat's call) covers authorable keys and exports, not package names; 0 duplicates. #29041 is the consumer (service-push).
Context
- Push channel: build the device registry routes (
/notifications/devices) and the APNs + FCM transport that ADR-0012 marks "MUST ship M1" #29041 asked for the push channel. ADR-0012 §4 names itplugin-notification-push; os-zhuang asked on the card (6592963202) whether a kernel service should beservice--prefixed. Warren ruledservice-push+ amend ADR-0012 (fable thread, 2026-11-03T02:11Z) and then: 「应该用 service-*,包括如何制定仓库规则,避免类似的问题」, 「plugin- 太笼统,是不是建议逐渐退役这个名字」. - Measured at
3d5933a9: noplugin-notification-*package exists; ADR-0012's inbox/email/webhook names were never built either. The channels that shipped aresms-channel.ts/email-channel.tsinservice-messagingdelegating to@objectstack/service-sms/@objectstack/plugin-email.packages/pluginsalready holds kind-named packages with noplugin-prefix (embedder-openai,knowledge-memory,knowledge-ragflow,organizations). The only written placement rule is the AGENTS.md roles table (packages/plugins/** | Implements spec contracts,packages/services/** | Kernel-managed services), which does not say how a new package is named or what wins when an ADR and the tree disagree. - The ten
plugin-*packages are published names with 15–392 references each outside their own directory (plugin-security392,plugin-auth259,plugin-hono-server183,plugin-audit157,plugin-sharing126,plugin-approvals93,plugin-email79,plugin-webhooks48,plugin-dev22,plugin-pinyin-search15). Renaming any of them is a public break (ADR-0087 tombstone,check-changeset-no-major), so the prefix is retired for NEW names only.
Wanted (rule text; the gate is the domain:devx sibling card filed beside this one)
- AGENTS.md roles table, two rows rewritten in place (zero line growth; the 1117-line ceiling holds):
packages/services/**: every new kernel-managed service (fills acore-servicesslot, registers a service, or holds transports/credentials) is@objectstack/service-<name>inpackages/services/service-<name>.packages/plugins/**: kind-named extensions (connector-*,driver-*,embedder-*,knowledge-*, ...); theplugin-prefix is frozen to the ten packages that carry it today and is not coined again.- One sentence (either row, or the ADR index README line 7): a package name in an ADR is a proposal; when the tree's precedent differs, the PR that creates the package follows the precedent and amends the ADR status line in the same change.
- pm-dispatch reference (the dev-order reference): the dev measures precedent before creating a package; an order that creates a package names the directory and the npm name explicitly.
- Not wanted: renaming any existing
plugin-*package or moving its directory. A later card may addservice-*alias packages (service-auth→plugin-auth,service-email→plugin-email) if the published-name break is ever paid for by a major.
Acceptance
- AGENTS.md line count unchanged or lower; the AGENTS.md line ratchet green.
- The rule text names the same frozen set of ten that the devx gate ratchets.
Activity
objectstack-fleet commentedon Nov 3, 2026
domain:server#2 · os-warren · session_01JQwxbXKRzgnVvjzxaYxLUf
Claim: PM loop round 1 · card thread · 2026-11-03T02:21Z
Session:
session_01JQwxbXKRzgnVvjzxaYxLUf(the seat); the card thread issession_01JQwxbWzSjXRKg3dUCvmJgBAccount:
os-warrenBranch:
claude/project-thread-e4t02fWorktree: the card thread's own container checkout
Domain:
domain:skills(maintainer-directed ③, routed todomain:server#2by the coordinator)Seat:
domain:server#2File surface:
AGENTS.md(two roles rows, in place), one pm-dispatch dev-order reference line under.claude/skills/pm-dispatch/references/;docs/adr/only if the ADR-precedence sentence cannot sit in the AGENTS.md rowContainer & model: card thread,
mode:thread,model: TIER_DEFAULT(--tiernames no path mandate; the governed rule text owes a CONTRACT_REVIEW_TIER review of record before landing),effort: project defaultClause-②: no
Metadata-protocol: none
Responsibility:
AGENTS.md roles table + pm-dispatch dev orders|no rule says how a new package is named or what wins when an ADR and the tree disagree|every future package author; reachable today (#29041's push channel)Thread-read: none
Premise: holds (seat measured on
origin/mainbefore filing: no naming rule in AGENTS.md roles rows; ten@objectstack/plugin-*packages)Serial constraints cleared: none owed; sibling gate card #29710 runs in parallel and must freeze the same ten names
Order: project file pm-orders/server/seat2/order-29709.md.
Generated by Claude Code
objectstack-fleet commentedon Nov 3, 2026
domain:server#2 · os-warren · session_01JQwxbWzSjXRKg3dUCvmJgB
os-dev-report
{ "issue": 29709, "status": "done", "branch": "claude/project-thread-e4t02f", "pr": "https://github.com/objectstack-ai/objectstack/pull/29717", "session": "session_01JQwxbWzSjXRKg3dUCvmJgB", "premise_still_valid": true, "summary": "AGENTS.md roles table: the packages/services and packages/plugins rows rewritten in place. A new kernel-managed service is @objectstack/service-NAME in packages/services/service-NAME; a new plugins-dir package is named by its kind and the plugin- prefix is frozen to the ten that carry it today (approvals, audit, auth, dev, email, hono-server, pinyin-search, security, sharing, webhooks), none renamed; the ADR-precedence sentence sits in the services row, so docs/adr is untouched. pm-dispatch execution-duties.md gains one 118-byte dispatch line (an order that creates a package names directory and npm name; the dev measures same-kind precedent first; rule lives in AGENTS.md), paid by retiring the review-section cloud-routing line that cross-repo-coordination.md lines 44 and 47 restate. Head 916228d2 (edit commit 5d342201 plus a merge of origin/main 0eb97fa4, which touches neither file).", "tests": "Rule text only, no tested behaviour changed, so no test or ablation is owed. Measured on c9636f1e: 18 packages under packages/services and 14 under packages/plugins, directory equals npm name for all 32; exactly ten @objectstack/plugin-* package names, the same ten as sibling #29710.", "gates": "dispatch-gates --commands derived 20 families; all 20 plus pnpm lint ran with exit 0 (prerequisite turbo build of formula and lint exit 0 first); --ran reconciliation: 20 derived, 20 run, 0 NOT-MEASURED, 0 UNRUN. check:pm-skill-ratchet readings: AGENTS.md 1050 lines (ceiling 1050), widest table row 768 B (pin 768); execution-duties.md 188 lines (ceiling 188); re-ran exit 0 after merging main. CI check-runs on PR 29717: in_progress at report time.", "line_budget": "AGENTS.md 1050 to 1050 (2 rows rewritten); execution-duties.md 188 to 188 (+1/-1); no skills/** file touched", "files_changed": [ "AGENTS.md", ".claude/skills/pm-dispatch/references/execution-duties.md" ], "deviations": [ "PR body: Human Minimum item 8 left unchecked because the os-dev 维护者速读 block is Chinese by definition and the retired line is quoted verbatim; the template headings were folded into the os-dev order (exception noted here)." ], "dogfood_battery": "n/a — no ! in the PR title and no (narrowing) arm", "mcp_calls": "0", "api_writes": "1 — relay fleet-write pr_create (run 41567184086, 7498 bytes sent and stored identical, label skip-changeset); this report comment via post-stamped.mjs makes 2", "open_questions": [], "security_findings": "none", "out_of_scope_findings": [] }Generated by Claude Code
objectstack-fleet commentedon Nov 3, 2026
triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U
Path: none
Triage: first-touch audit · p2 ·
domain:skillskept ·pm:dispatchedkept · 2026-11-03T02:54Z⛔ Not a claim.
check:package-naming(#29710): the maintainer asked for a repo rule against generic package names — is a CI gate part of that, or the rule text (#29709) alone? #29725, which covers only the gate in Gatecheck:package-naming: everypackages/services/package is@objectstack/service-*, and the@objectstack/plugin-*set is a ratchet frozen at today's ten #29710.Generated by Claude Code
objectstack-fleet commentedon Nov 3, 2026
domain:server#2 · os-warren · session_01JQwxbWzSjXRKg3dUCvmJgB
os-dev-report
{ "issue": 29709, "status": "done", "branch": "claude/project-thread-e4t02f", "pr": "https://github.com/objectstack-ai/objectstack/pull/29717", "session": "session_01JQwxbWzSjXRKg3dUCvmJgB", "premise_still_valid": true, "summary": "Patch round on the seat's contract review (PASS with two should-fixes, comment 6594127895), one commit 7187a55e, then a merge of origin/main c779611e (touches neither file); head 3e04cfa8. S1: the packages/plugins row now names only the kinds that live there (embedder-*, knowledge-*) and says drivers and connectors have their own directories (packages/drivers/driver-*, packages/connectors/connector-*), measured: 6 driver-* and 5 connector-* packages there. S2: the ADR-precedence sentence now opens 'For any new package, in this row or the one above', so it governs both rows; still in the services row, no line added. Frozen ten and the execution-duties line unchanged.", "tests": "Rule text only, no tested behaviour changed, so no test or ablation is owed. Measured on c9636f1e: 18 packages under packages/services and 14 under packages/plugins, directory equals npm name for all 32; exactly ten @objectstack/plugin-* package names, the same ten as sibling #29710.", "gates": "On 7187a55e: dispatch-gates --commands derived the same 20 families as the first round; all 20 plus pnpm lint exit 0 (turbo prebuild of formula and lint exit 0 first); --ran reconciliation 20 derived, 20 run, 0 NOT-MEASURED, 0 UNRUN. check:pm-skill-ratchet: AGENTS.md 1050 lines (ceiling 1050), widest table row 768 B (pin 768; rewritten rows 565 B plugins, 473 B services); execution-duties.md 188/188. After merging main c779611e: check:pm-skill-ratchet re-ran exit 0. CI on 3e04cfa8: in_progress at report time.", "line_budget": "AGENTS.md 1050 to 1050 (2 rows rewritten); execution-duties.md 188 to 188 (+1/-1)", "files_changed": [ "AGENTS.md", ".claude/skills/pm-dispatch/references/execution-duties.md" ], "deviations": [ "PR body: Human Minimum item 8 left unchecked because the os-dev 维护者速读 block is Chinese by definition and the retired line is quoted verbatim; the template headings were folded into the os-dev order (exception noted here)." ], "dogfood_battery": "n/a — no ! in the PR title and no (narrowing) arm", "mcp_calls": "0", "api_writes": "1 this round — this report comment via post-stamped.mjs; first round 2 (relay pr_create, report comment 6594018852)", "open_questions": [], "security_findings": "none", "out_of_scope_findings": [], "body_amendments": [ "What changes, packages/plugins bullet: replace 'a new package is named by its kind (`connector-*`, `driver-*`, `embedder-*`, `knowledge-*`, …)' with 'a new package here is named by its kind (`embedder-*`, `knowledge-*`, …); drivers and connectors have their own directories (`packages/drivers/driver-*`, `packages/connectors/connector-*`)'.", "What changes, packages/services bullet: replace 'Plus the ADR-precedence sentence: a package name in an ADR is a proposal' with 'Plus the ADR-precedence sentence, which opens For any new package, in this row or the one above: a package name in an ADR is a proposal'.", "Surviving-home citation: replace 'lines 44 (涉 cloud 即整卡归 cloud PM … ⛔ 不拆半边等读数) and 47' with 'lines 44 (涉 cloud 即整卡归 cloud PM), 46 (⛔ 不拆半边等读数) and 47'.", "Verification: AGENTS.md rewritten rows now measure 565 B (plugins) and 473 B (services), not 471 B and 422 B; gates re-ran on 7187a55e, same 20 families, all exit 0." ] }Generated by Claude Code
objectstack-fleet commentedon Nov 3, 2026
domain:server#2 · os-warren · session_01JQwxbXKRzgnVvjzxaYxLUf
Landing record · #29709 · 2026-11-03T04:24Z
77ce3d47344b9b02200606876d5a2d1d9c65ab06; head3e04cfa8; this card closed byFixes.7187a55e) → delta review PASS 6594410936 on3e04cfa8→ seat ACCEPT 6594431581 →pr_ready+ reviewers hotlong / os-zhuang requested by the seat → Warren approved the decision card at 2026-11-03T03:05Z → maintainer enqueued.service-*for new service packages,plugin-retired for new names, existing names not renamed), per Warren's 2026-11-03T02:11Z ruling; skip-changeset.check:package-naming: everypackages/services/package is@objectstack/service-*, and the@objectstack/plugin-*set is a ratchet frozen at today's ten #29710 (PR feat(devx): check:package-naming — packages/services/ packages are service-NAME after their directory, and the plugin- prefix is frozen at ten (#29710) #29739, in the merge queue); Push channel: build the device registry routes (/notifications/devices) and the APNs + FCM transport that ADR-0012 marks "MUST ship M1" #29041 lands aspackages/services/service-pushunder the rule (seat 4).pm:dispatchedremoved in the same stroke as this record.Generated by Claude Code