Skip to content

docs(pm-dispatch): register the repo:hotcrm exemplar-app lane — 多仓协调 entry + lanes/hotcrm.md charter - #10400

Draft
qq9340100 wants to merge 1 commit into
mainfrom
claude/issue-10294-hotcrm-lane
Draft

docs(pm-dispatch): register the repo:hotcrm exemplar-app lane — 多仓协调 entry + lanes/hotcrm.md charter#10400
qq9340100 wants to merge 1 commit into
mainfrom
claude/issue-10294-hotcrm-lane

Conversation

@qq9340100

Copy link
Copy Markdown
Collaborator

Fixes #10294

What

Registers the repo:hotcrm execution lane in the PM dispatch protocol. The seat is already live (the repo:hotcrm seam label and the five-repo pm state-machine vocabulary landed in scripts/pm/ensure-pm-labels.sh) while the lane was absent from the protocol text — the exact shape the lane table's own rule forbids (在流通而不在表 = 无主车道).

.claude/skills/pm-dispatch/SKILL.md — 681 → 682 lines, ceiling 682, headroom 0 (no ceiling raise)

  • 多仓协调 intro: hotcrm joins the repo roster as the fifth repo — the exemplar-app repo (元数据开发的 CRM 样板工程), outside the spec dependency chain like objectos. The out-of-chain framing (triage sweeps it; same repo:* execution-seat discipline) is now stated once for both repos, and the execution-seat discipline itself is deduplicated into a pointer to rule 4, which already carries it in full — that dedup pays for the growth (新增以删减付账).
  • Routing teeth: platform capability gaps discovered while building hotcrm are file-at-destination ordinary platform cards in objectstack/objectui (never seam cards, never hotcrm workarounds); the repo:hotcrm seam label stays reserved for true coordination cards.
  • Triage seat scope 四仓 → 五仓 across the state model (pm:retriage row), rule 4 (the repo enumeration deduplicates into a pointer to the roster in the intro), triage duties (release board: objectos and hotcrm both excluded — none unless one is later ruled) and routing (读五仓代码定落点).

NEW references/lanes/hotcrm.md (45 lines)

The seat's 岗位说明, anchored on the maintainer's two rulings quoted verbatim and untranslated (2026-08-20): 样板工程 built from metadata; 平台相关的功能应该在平台中实现 (a platform gap files an ordinary platform card upstream, with a Blocked-by: back-link — never a hotcrm workaround); 展现平台能力 (declared = enforced matters double in an exemplar); 不扩散需求 (startup-scope discipline, axis 4 of the decision frame as the lane's primary filter — by pointer, no fifth frame copy); 双版本兼容 (must RUN on objectstack community edition; enterprise capability on objectos is enhancement-only, never a hard dependency — a card that would break community-run is mis-scoped by definition). Follows the existing lane files' structure, 读锚 first bullet included.

scripts/pm/check-skill-line-ratchet.mjs — mandatory ratchet companion

CEILINGS row for the new file at landed count (45, headroom 0, same convention as the other lanes rows); the lane-coverage self-test case extended six → seven.

Verification (all at 09251f3, the final commit)

Gate families named at dispatch, plus the one family re-derived from the actual diff by node scripts/pm/dispatch-gates.mjs (no paths — the script takes the changeset from the merge-base itself): it additionally named check:cross-package-test-inputs (via scripts/**); run and green.

  • pnpm check:pm-skill-ratchet — exit 0; verdict lines: ".claude/skills/pm-dispatch/SKILL.md is 682 lines (ceiling 682; headroom 0)." and ".claude/skills/pm-dispatch/references/lanes/hotcrm.md is 45 lines (ceiling 45; headroom 0)."; self-test (incl. the extended seven-lane case) passes.
  • pnpm check:pm-skill-id-lint — exit 0; "17 file(s) clean".
  • pnpm check:pm-governed-prose — exit 0; "2 instruction surface(s) name all 5 registered governed surfaces … and claim no others."
  • pnpm check:pm-governed-merges — exit 0 (self-test).
  • pnpm check:skill-frame-sync — exit 0; "4 copies of the decision frame are structurally isomorphic across 3 files" (the charter references axis 4 by pointer; no fifth copy).
  • pnpm check:doc-authoring — exit 0; "381 files clean — no bare metadata literals."
  • pnpm --filter @objectstack/lint run check:doc-formula-expressions — exit 0; "22 record-scoped formula example(s) across 408 files / 1416 TS blocks judged clean."
  • pnpm check:cross-package-test-inputs — exit 0; "12 package(s) read outside themselves, all declared."
  • pnpm check:nul-bytes — exit 0.

Exit codes were captured directly from each command (per-gate output redirected to a file first, no pipeline in front of the status read).

Governed surface

This diff touches .claude/** — governed surface, one-path-hit rule. Draft PR, human merge only: never ready, never queued, never auto-merge. Review requested from os-zhuang. skip-changeset: the diff is entirely .claude/** + scripts/pm/**; nothing publishes.


Generated by Claude Code

…entry + lanes/hotcrm.md charter

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019T1sSZbQTnLhrK9HhNdNiB
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation skip-changeset PR has no user-facing published change; bypasses the changeset gate

Projects

None yet

Development

Successfully merging this pull request may close these issues.

pm-dispatch: register the repo:hotcrm lane — 多仓协调 entry + lanes/hotcrm.md charter (maintainer rulings 2026-08-20)

2 participants