Skip to content

把 pm-dispatch 泛化为正式发布的 skill——任何 ObjectStack 项目(hotcrm、客户项目)可装即用,含平台问题上报规程 #4607

Description

@os-zhuang

维护者拍板:把 .claude/skills/pm-dispatch(内部 PM 派发机制)的通用内核泛化为 skills/ 发布目录里的正式 skill,供第三方 ObjectStack 项目(如 hotcrm、客户项目)经 npx skills add objectstack-ai/objectstack/skills 安装使用。

范围

新增 skills/pm-dispatch/SKILL.md(发布版,无 metadata.internal),包含项目无关的内核:

  • 队列标签状态机(pm:queue / pm:dispatched / needs-user-decision)与标签初始化;
  • 认领协议(同账号多会话:认领评论 + 竞态验证;跨账号:assignee 即身份)与僵尸认领回收;
  • backlog 持续分诊判据(具体缺陷直接入队 / 设计卡进维护者收件箱 / 截断正文先修复)+ 派发前过时前提核查(读评论、对照 main 近期历史);
  • 批次独立性(文件不相交,拿不准串行)与派发后端(会话内子 agent / mode:cloud);
  • 复核契约(以 GitHub 实况为准、结构化 JSON 回报、ACCEPT/REWORK≤2/ESCALATE)与合并政策(复核过 + CI 绿 → 入 merge queue 或按项目惯例);
  • 升级判据(产品语义分歧或破坏性动作才问维护者;恢复不变量/排序/验证策略自决,事后报告 + 否决窗口)与两轴决策分析(项目长远合理性 × 防 AI 写代码犯错——两轴本身即通用);
  • 多 PM 按仓库分片 + 分片登记表 + 跨分片移交协议;容器资源纪律(重型阶段互斥锁、堆上限、范围化构建、PID 精确操作、worktree 清理);
  • 内嵌通用开发 agent 规程模板(worktree-first、范围=issue、报告契约、needs_decision 而非猜)供 PM 注入派发 prompt——不依赖自定义 agent 类型,任何项目可用;
  • Upstream reporting 节(维护者点名要求):应用项目开发中发现平台(ObjectStack)缺陷的上报规程——先对照平台 main 做过时前提核查;最小复现 + 钉版本,绝不在应用侧加容忍性 workaround;上报 issue 带 Part of <app-repo>#N 回链、不打对方队列标签(平台侧 PM 自行分诊);应用侧任务以 Blocked-by: 挂起或钉版本登记解除条件。

配置约定:skill 读取项目的 .claude/pm-dispatch.json(仓库清单、backlog 归属、batch 默认、门禁/规范文件指针);无配置时零配置起跑(当前仓库 = 唯一分片 = backlog)。

边界

  • objectstack 自己的内部版(.claude/skills/pm-dispatch)本 PR 不动(其 objectstack 专属规则照旧);后续可另行瘦身为「发布版 + 内部配置」;
  • 遵守 template-consistency.test.ts 的目录边界:发布版不得带 metadata.internal;检查 skills 目录的注册/文档惯例(scaffolder REGISTRY、docs 是否需要列出)并按既有形态补齐;
  • changeset 按门禁要求(不发布 npm 包则空 frontmatter,涉 create-objectstack 注册则如实标记)。

维护者原话背景:「我建议泛化为正式发布的 skill」;第三方项目场景:hotcrm、客户项目,开发中可能发现平台问题需要上报。

Activity

  1. self-assigned this
    on Aug 2, 2026
  2. os-zhuang commented on Aug 2, 2026

    @os-zhuang
    ContributorAuthor

    认领:PM 循环第 5 轮(追加,维护者拍板立项)
    分支:claude/issue-4607-published-pm-dispatch-skill
    Worktree:objectstack-issue-4607


    Generated by Claude Code

  3. os-zhuang commented on Aug 2, 2026

    @os-zhuang
    ContributorAuthor

    PM 复核:ACCEPT ✅(PR #4621,已转正并挂自动合并,CI 全绿后进队列)

    对照 issue 验收点逐项核过:

    • 发布目录 skills/objectstack-pm-dispatch/SKILL.md(807 行,domain: process,无 metadata.internal),覆盖队列标签状态机、认领协议 + 僵尸认领回收、持续分诊 + 过时前提核查、批次独立性、复核契约(ACCEPT / REWORK≤2 / ESCALATE)、两轴升级判据原文、多 PM 分片 + 移交、资源纪律、内嵌通用开发 agent 规程模板;
    • Upstream 上报协议单列成节:先对照平台 main 核过时前提 → 最小复现 + 钉版本 + 引用被违反的契约 → 应用侧绝不加容忍性 workaround → 上报带 Part of #N 回链、不打对方队列标签 → 应用侧任务挂 Blocked-by: 或钉版本登记解除条件;
    • 配置约定 .claude/pm-dispatch.json,无配置零配置起跑;项目 conventions 文件冲突时优先;
    • 防回退验证真实(三次还原态运行均响亮失败:docs 生成物回退 → exit 1;删目录留注册项 → exit 1;发布版加 internal 标记 → 边界测试失败);
    • 内部版 .claude/skills/pm-dispatch 未动,空 frontmatter changeset,未触碰 releases。

    一处对 issue 原文的偏离,已按仓库既有惯例接受:目录名用 objectstack-pm-dispatch 前缀而非原文的裸名 pm-dispatch(发布目录 9 个 skill 全部 objectstack-* 前缀;裸名会与内部版同名双 skill 冲突)。如坚持裸名,改名成本一次 git mv + 注册表一行,可随时否决。


    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

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions