docs(pm-dispatch): register the repo:hotcrm exemplar-app lane — 多仓协调 entry + lanes/hotcrm.md charter - #10400
Draft
qq9340100 wants to merge 1 commit into
Draft
docs(pm-dispatch): register the repo:hotcrm exemplar-app lane — 多仓协调 entry + lanes/hotcrm.md charter#10400qq9340100 wants to merge 1 commit into
qq9340100 wants to merge 1 commit into
Conversation
…entry + lanes/hotcrm.md charter Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019T1sSZbQTnLhrK9HhNdNiB
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #10294
What
Registers the
repo:hotcrmexecution lane in the PM dispatch protocol. The seat is already live (therepo:hotcrmseam label and the five-repo pm state-machine vocabulary landed inscripts/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)hotcrmjoins the repo roster as the fifth repo — the exemplar-app repo (元数据开发的 CRM 样板工程), outside the spec dependency chain likeobjectos. The out-of-chain framing (triage sweeps it; samerepo:*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 (新增以删减付账).repo:hotcrmseam label stays reserved for true coordination cards.pm:retriagerow), 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 companionCEILINGS 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 namedcheck:cross-package-test-inputs(viascripts/**); 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