Repository navigation
Commit 2667e24
docs(pm-dispatch): hotcrm lane charter grades at first touch per the single-lane rule (#24521)
Fixes #24517
Clause-②: no
## What this changes
Two lines of `.claude/skills/pm-dispatch/references/lanes/hotcrm.md`,
and nothing else in the PR:
```diff
@@ line 8 @@
-- ⛔ 不产 `domain:*`、type 与定级,纪律全文在 SKILL.md 多仓协调规则 4。
+- ⛔ 不产 `domain:*`;机械三务(含首触定级)按 cross-repo-coordination.md 单车道仓条自理。
@@ line 33 @@
-- 投机功能形状不入队:走决策箱或关 not planned;定级归分诊或维护者,本席只供证据。
+- 投机功能形状不入队:走决策箱或关 not planned;定级按 filing-gate.md,理由落卡,维护者可否决。
```
## Ruling and 口径
- **Ruling of record:** objectstack-ai/hotcrm#2178, answer A. The
maintainer's 「A」 is recorded by the `repo:hotcrm` seat in comment
`6265194393`, and it matches the director's delta `6264888052`. The
director's ledger comment `6265393657` carries it as item 3 of batch
371.
- **口径**, verbatim from `6264888052`. This session cannot reach the
hotcrm API, so the text is taken from the card body's quotation:
> the skills lane opens one text PR on `lanes/hotcrm.md:8` and `:33`
(pointer to `cross-repo-coordination.md`, the grading sentence aligned),
⛔ nothing else in that PR.
## How each line meets the card
- **`:8`** points at the single-lane-repo clause of
`cross-repo-coordination.md`, which is its lines 9 and 10: 「单车道仓
`repo:*` 席自理机械三务,⛔ 不产 `domain:*`」 and 「机械三务 = 自扫 sweep、自打 `type`、自做
`finding` 首触定级」.
- It keeps 「⛔ 不产 `domain:*`」, and it no longer says the seat produces no
grade.
- The dead pointer 「SKILL.md 多仓协调规则 4」 is gone.
- `type` is not named on the line. It reaches the seat through the
pointer, because 「机械三务」 includes 「自打 `type`」.
- **`:33`** keeps the speculative-shape half verbatim. It replaces
「定级归分诊或维护者,本席只供证据」 with three things: grading by `filing-gate.md` (its
〈定级判据〉 section starts at its line 34), the reason posted on the card,
and the maintainer's veto.
- **The byte budget forced one split.** The full sentence 「首触按
filing-gate.md 定级判据定级,理由落卡,维护者可否决」 after the kept half measures 141
bytes, and the line rule allows 120. The file is also at 53 of 53 lines,
so no line could be added.
- So "first touch" rides on `:8` as 「机械三务(含首触定级)」.
- `:33` carries the criterion, the reason on the card and the veto, at
exactly 120 bytes.
## Acceptance notes (out of scope, not changed)
- `lanes/hotcrm.md:51` reads 「`domain:*` 与 type 留给分诊」. It still differs
from the single-lane rule on `type`, and after this PR it also differs
from what `:8` points at. The 口径 excludes it, and the card body records
it. Carrier: the card body.
- `cross-repo-coordination.md:37` (its rule 4) reads
「分诊座位唯一生产:定级/路由/type/查重/shadow/`duplicate_of`;执行席永不定级或路由裸卡」, with no
single-lane-repo carve-out.
- Its lines 7 to 10 scope central triage to the multi-lane repos, and
they give first-touch grading to the single-lane `repo:*` seat.
- The specific clause governs a hotcrm card, so the two files agree on
who grades one. The general sentence is unscoped text.
- Not filed: it is a text-drift observation. Carrier: none.
## Verification, at head `d4c8bb3ae`
- **Acceptance grep:** `grep -c '多仓协调规则'
.claude/skills/pm-dispatch/references/lanes/hotcrm.md` answers `0` (exit
1). The control word `单车道仓` in the same file answers `1` (exit 0).
- **Line budget:**
- 53 lines before and 53 after, against a ceiling of 53: `✓
check-skill-line-ratchet:
.claude/skills/pm-dispatch/references/lanes/hotcrm.md is 53 lines
(ceiling 53; headroom 0).`
- `:8` went from 89 to 108 bytes, and `:33` from 110 to 120 bytes.
- The 120-byte line rule, read from the ratchet's own `lengthVerdict`:
`lanes/hotcrm.md: every line is within 120 bytes (or structurally
exempt).`
- **Derived gate list:** `node scripts/pm/dispatch-gates.mjs --commands
--repo objectstack-ai/objectstack` gave 17 commands. Each exit code was
captured before any pipe, and all 17 exited 0.
- `--ran` reconciliation: `✓ dispatch-gates --ran: 17 derived famil(ies)
accounted for — 17 run, 0 NOT-MEASURED (a DERIVED zero — all 17 recorded
an exit code and none of them is 3).`
- `check:pm-skill-id-lint`: `✓ check-skill-id-lint: 87 file(s) clean
(pattern /#[0-9]{3,}/g).`
- `check:pm-skill-ratchet`: exit 0. `check:skill-frame-sync`: exit 0.
`check:nul-bytes`: exit 0.
- `check:doc-formula-expressions` first refused with `PREREQUISITE NOT
MET` (exit 3), because `@objectstack/formula` and `@objectstack/lint`
were not built. After `turbo run build --filter=@objectstack/formula
--filter=@objectstack/lint` under the verify lock (exit 0, 4 of 4 tasks
cached), it re-ran at exit 0.
- The derivation also names `pnpm check:pm-settings-deny-roster` as a
roster under `.claude`. It ran at exit 0.
- **Changeset:** none. `.claude/**` publishes nothing, so
`skip-changeset` is declared with this PR's create.
- **No ablation:** a text change to an agent protocol file pins no
tested behaviour.
## 维护者速读(草稿)
- **改了什么**:hotcrm 车道岗位说明里的两行字。
- 第 8 行删掉指向已不存在章节的死链,改为指向 `cross-repo-coordination.md` 的单车道仓规则,仍写明本席不产
`domain:*`。
- 第 33 行把「定级归分诊或维护者,本席只供证据」改为本席按 `filing-gate.md` 定级,理由落卡,维护者可否决。
- **为什么改**:您在 hotcrm#2178 裁了 A,即 hotcrm
席首触自己定级。旧文本仍禁止它定级,还指向一个早已搬走的章节,席位照旧文本做事就会违背裁决。
- **风险与代价(含回滚)**:纯文字,只动内部协议文件,不发布任何东西。第 51 行在 type
上与单车道仓规则仍不一致,口径明令排除,卡正文已记录。回滚即 revert 本 PR。
- **席位意见**:
- **你要做的**:无需操作。本 PR 属 Tier S,由席位达档复核后入队落地。
---
_Generated by [Claude
Code](https://claude.ai/code/session_01HEdP5tPhqQfzwRmKDxwn85)_
Co-authored-by: Claude <noreply@anthropic.com>1 parent 5876b54 commit 2667e24
1 file changed
Lines changed: 2 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
8 | | - | |
| 8 | + | |
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
| |||
30 | 30 | | |
31 | 31 | | |
32 | 32 | | |
33 | | - | |
| 33 | + | |
34 | 34 | | |
35 | 35 | | |
36 | 36 | | |
| |||
0 commit comments