Skip to content

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

Closed

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. added
    enhancementNew feature or request
    pm:queueReady for the PM dispatch loop
    pm:dispatchedDispatched to a dev agent by /pm-dispatch
    on Aug 2, 2026
  3. 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

  4. 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

Labels

enhancementNew feature or requestpm:dispatchedDispatched to a dev agent by /pm-dispatch

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions