Repository navigation
Commit 00a4593
pm-dispatch: seats settle ruling conflicts, whole-tree lane moves and a standing model/effort word themselves (#26467)
<!-- claude-projects-attribution: {"github_login":"os-warren"} -->
_Requested by **Warren** · [project
thread](https://claude.ai/code/project/chan_01U5RdnAAmkSQmZbqh6FtqZ8?thread=cmsg_01U5RdnAAmkSQmZbqh6FtqZ86fSdTREudyRc2UtxkkM9SP)_
Fixes #26387
Clause-②: no
Metadata-protocol: none
## 维护者速读
- **改了什么**:pm-dispatch 技能的三条规则改由席位自己判:① 卡的某一项与已接受的 ADR
或已记录的裁决冲突时,席位砍掉冲突项、余项照派,卡上行首 `Ruling-ref:` 引出处并逐字引原话,不再挂 `pm:retriage`
等分诊;② 卡的余项按实测文件清单整个落在某车道的包树里时,该车道席自己改
`domain:*`,审计评论同笔列路径与新旧标签,不再绕分诊一圈。限制:只对未派发卡;带 `needs-user-decision`、open
`Blocked-by:` 或 `security` 的卡仍走分诊;降级、关卡、其它砍范围仍归人工地板。③ 卡线程的档位与 effort
由席位自己推导(`dispatch-gates --tier` 过卡的路径定档,effort
按卡难度),写进派发令,协调者照派发令开线程,不再等你一句话;你说过的常设原话有则引作 `reason:`。
- **为什么改**:你 2026-10-27
的原话:「这种问题为什么要问分诊,你可以自己判断」「你两个座位可以处理10张卡啊,问题不在座位」「同时立一张skills卡优化技能」;第 ③
条是你 04:10Z 在决策卡上的选择「B:只写第 4 项」,加你 04:11Z 的原话「#26076: 回一句「同意」用 Fable 档加
xhigh,就能开工。这种为什么需要我确认,你应该自己决定」;#26076 为这一句话从 01:3xZ 等到 04:11Z。卡上量到 spec
车道 13 张队列卡只能派 3 张,其中两张(#26000 与 ADR-0141 D8 冲突、#25653 余项全在
`packages/spec`)是席位能判却去问了分诊。
- **风险与回滚**:只改 `.claude/skills/pm-dispatch/**` 七个文件的 17
行(+17/−17),无脚本、无门禁、无发布面;每个文件行数不变(棘轮 headroom 0 ⇒
0)。风险在措辞被读宽:席改标只在「余项整树归本席」时成立,`security` 卡与已派发卡明确排除。回滚 = revert 本 PR。卡的第
3 项(同轴串行改按文件面)按你的 B 选项没有写入。
- **先看**:① `references/dispatch-runbook.md`
派发前置节的两行(砍范围的边界)与卡线程节的两行(席位自推导档位与 effort);②
`references/execution-duties.md` 候选节新增的两行「席改标」定义与限制;③ `SKILL.md` 红线第 34
行、`pm:retriage` 状态行与认领模板的 `reason:`。
- **两分钟验证**:`pnpm check:pm-skill-ratchet` —— 全绿,七个被改文件各自 headroom 0;`git
grep -n "pm:retriage" .claude/skills/pm-dispatch` 列出的每处可对照本 PR
的三条新规则逐行读。
- **需要你做的**:无,席位落地(Tier S:`.claude/**`,契约复核 PASS + 席位 ACCEPT 后由席位
ready/arm)。
## What changes
Items **1**, **2** and **4** of the card. Triage's first grade (comment
6431784222) put 1 and 2 on the maintainer's word; item 4 joined on his
decision-card tap at 2026-10-27T04:10Z, verbatim **「B:只写第 4 项」** (seat
amendment 6433559693). Item 4 then took the wider shape of his later
words (04:11Z, relayed verbatim in 6433564592; amendment 2, 6433756084).
Item 3 (area-axis serial → file-surface serial) stays ⛔ out under that
same tap.
**Ruling-ref** (the card quotes the maintainer verbatim, `domain:spec`
seat 1 project thread, 2026-10-27): 「任务很多,还能加速吗」 (01:39Z) ·
「你两个座位可以处理10张卡啊,问题不在座位」 (01:41Z) · 「这种问题为什么要问分诊,你可以自己判断。#26000:带
`pm:retriage`。它和已裁的 ADR-0141 D8 冲突,在等分诊答复。」 (01:42Z) ·
「同时立一张skills卡优化技能」 (01:42Z).
Every file stays at its line ceiling: a rule added replaces or retires a
line in the same file (AGENTS.md Prime Directive 14), never a re-wrap.
Each line is ≤120 bytes; the one table row stays under the file's
341-byte row pin (269 → 329 bytes).
### Item 1 — seat-settled scope against governing text
(`references/dispatch-runbook.md`, 派发前置)
Before (one line):
```text
- 砍范围、降级、关卡是卡的命运,归人工地板 ⛔ 不借改卡裁;读数落认领 `Premise:` 行。
```
After (two lines — the first is the new exit, the second keeps the floor
for everything else):
```text
- 卡项与既裁冲突 ⇒ 席砍该项再派 ⛔ 不问分诊;行首 `Ruling-ref:` 引既裁出处,原话逐字。
- 其余砍范围、降级、关卡归人工地板 ⛔ 不借改卡裁;读数落认领 `Premise:` 行。
```
Cutting an item the card itself contradicts is the seat reading a ruling
the maintainer already made (triage-duties 不呈 list: 既裁执行), so it is not
a new adjudication channel: the seat drops only the conflicting item,
dispatches the rest, and the card carries the `Ruling-ref:` line (the
key triage already uses, 6431784222; `check-prior-rulings.mjs` treats a
`Ruling-ref:` comment as a pointer, never as a ruling) with the
governing text quoted verbatim. 降级 and 关卡 — and any other 砍范围 — stay
with the human floor. Example (body only, not in the skill): #26000 vs
ADR-0141 D8.
Retired to pay the line, same file (`卡线程` section):
```text
- 终报 `needs_decision` ⇒ 席位附四维分析与推荐,并入决裁批次呈维护者裁;⛔ 无裁决线程。
```
Surviving homes: `SKILL.md` 升级与决策 「dev 的 `needs_decision` 一律呈人工:PM
附四维分析与推荐…⛔ 不代答」 and `references/coordinator.md` 五
「席位写四维分析加推荐,卡并入决裁批次由维护者人工裁;⛔ 无裁决线程、无代裁」 — the retired line restated
both, word for word in effect.
### Item 2 — lane move for an unambiguous remainder
`SKILL.md` L34 (红线), before / after:
```text
- ⛔ 分诊席永不认领卡、派发 dev 飞或写代码;执行席只在本车道认领,永不改 `domain:*`。
- ⛔ 分诊席永不认领、派发或写码;执行席只在本车道认领,改 `domain:*` 仅限整树归本席。
```
`SKILL.md` L112 (`pm:retriage` row), before / after — the two asks the
seat now settles are named as ⛔ not triage's; the list keeps 改判, 跨域 PR
指定车道 (the 跨域例外路径 at L173 still has triage designate the lane for a PR
that cannot be split), 改路由 for the remainder that is not whole-tree, 拆卡
and 裁 dev 报告的分叉:
```text
| `pm:retriage` | 向分诊提问(改判、跨域 PR 指定车道、改路由、拆卡、裁 dev 报告留下的分叉),定车道与改路由限未派发卡,异议评论写明所求;与现行 `pm:*` 并存、⛔ 不摘原标;带本标签的 `pm:queue` 卡跳过派发 |
| `pm:retriage` | 向分诊提问(改判、跨域 PR 指定车道、改路由、拆卡、裁 dev 报告留下的分叉;既裁冲突砍项与整树席改标归执行席 ⛔ 不问),定车道与改路由限未派发卡,异议评论写明所求;与现行 `pm:*` 并存、⛔ 不摘原标;带本标签的 `pm:queue` 卡跳过派发 |
```
`references/execution-duties.md` 候选与批次 — two new lines after 「候选 = …」
define the exception and its limits (the term 席改标 is the one the other
files point at):
```text
- 席改标:卡余项实测路径整落本席包树 ⇒ 本席改 `domain:*`,审计评论列路径与新旧标同笔。
- 席改标限未派发卡;带 `needs-user-decision`、open `Blocked-by:` 或 `security` 的 ⛔ 不改,仍问分诊。
```
Same file, 认领 L60 (the release-time remainder), before / after:
```text
- 同笔 `Release:` 行点名已落项与余项去向;余项需换道/拆分加 `pm:retriage`,自队列重新认领。
- 同笔 `Release:` 行点名已落项与余项;余项整树归他席 ⇒ 点名该席改标,拆分加 `pm:retriage`。
```
Retired to pay the two lines, same file: 派发 L91 「模型分档是 PM 的逐卡显式决定;档位值单源在
dispatch-gates 常量,⛔ 本文不写模型名。」 (surviving homes in the same file: L72
「档位引 `dispatch-gates --tier --repo 仓`⛔ 不凭记忆;天花板拼常量名并同行引据,⛔ 不抄模型 id」 and
「档位逐次派发显式传参,永不省略」) and L140 「对外发布的技能包是平台最大的对外价值,评估恒整包整体。」 (a rationale
line; its rule survives at 复核 「触 `skills/**` 的 PR 加问整包价值密度:从整包加载的客户
agent 座位读」 and in `os-dev.md` 「触 `skills/**` …两个读数缺一不可…整包
before/after」).
`references/cross-repo-coordination.md` L32 and L40, before / after:
```text
- 执行座位信任标签,只在本车道认领;误标 ⛔ 不自行改,挂 `pm:retriage` + 异议评论同笔。
- 执行座位信任标签,只在本车道认领;误标挂 `pm:retriage`+异议同笔,整树归本席者席改标。
```
```text
- 复核记录带 `Implemented-by:`/`Reviewed-by:`;`pm:retriage` 改路由只对未派发卡。
- 复核记录带 `Implemented-by:`/`Reviewed-by:`;改路由(`pm:retriage` 或席改标)只对未派发卡。
```
(L40 keeps 改路由只对未派发卡 for both channels.) Example (body only): #25653 —
remainder all `packages/spec`, card `domain:server`.
### The triage side (`references/triage-duties.md`), so the triage seat
knows it no longer answers these two
L78 before / after:
```text
- `pm:retriage` 每 fire 先答异议评论所求,答后同笔摘标;须维护者答的进收件箱,标照摘。
- `pm:retriage` 每 fire 先答所求、同笔摘标;须维护者答的入箱;既裁砍项与席改标退回执行席。
```
L76 said the same rule from the lane side (「⛔ 不定级不改标」) and now carries
the one exception, before / after:
```text
- 车道席可附证据/前提重验,⛔ 不定级不改标;每张卡欠一次分诊首触,车道 ⛔ 不自分诊。
- 车道席可附证据/前提重验,⛔ 不定级,改标限席改标;每张卡欠一次分诊首触,⛔ 不自分诊。
```
### Item 4 — the seat derives a card thread's tier and effort; the
maintainer's word is no precondition
**Ruling-ref:** 「#26076: 回一句「同意」用 Fable 档加
xhigh,就能开工。这种为什么需要我确认,你应该自己决定」 and 「是skills有问题吗」, the maintainer,
2026-10-27T04:11Z (relayed verbatim in comment 6433564592; dispatch
order amendment 2, 6433756084), after his tap 「B:只写第 4 项」 at 04:10Z.
Held cost: #26076 (`docs/adr/**`, MANDATORY ceiling) waited from 01:3xZ
to 04:11Z for that one word.
The lines that conditioned a card thread's model and effort on a
per-card maintainer message (every hit of `原话` / `逐卡` / `model:` /
`effort` in `.claude/skills/pm-dispatch/**` that does so — the full hit
list is in the report):
`references/dispatch-runbook.md` 卡线程 L138, before (one line) / after
(two lines — the standing word, and how it is cited):
```text
- 请 coordinator 开线程附维护者原话消息:它只凭维护者明言设线程的 model 与 effort。
```
```text
- 档位与 effort 席位自推导 ⛔ 不等维护者原话:`--tier` 过路径,MANDATORY 即绑;effort 按难度。
- 派发令写两者与推导(`--tier` 行或难度读数),协调者照令开线程;常设原话有则作 `reason:`。
```
Retired to pay the line, same file (卡线程 section):
「容器重启杀本地后台循环:席位等服务端信号(PR 订阅事件、座位 Routine),本地 watcher 可选。」 — its rule
survives in `SKILL.md` 入口与角色 「项目席唤醒 = PR 订阅 + 每项目一个自建自绑的巡查
routine,默认每小时;⛔ 无 `send_later` 链」.
`references/coordinator.md` 四 L33, before / after:
```text
- 席位请线程附维护者原话,coordinator 开线程那一笔同设 model 与 effort(`dispatch-runbook.md`)。
- 按派发令所写的 model 与 effort 开线程,⛔ 不等维护者原话;常设原话有则席位引作 `reason:`。
```
`references/execution-duties.md` 派发 L118 (the effort ladder), before /
after — the ladder itself is unchanged; the standing word is now a
second source for `max`:
```text
- S 机械 `medium`;M `high`(默认);L/XL/`security`/p1/契约复核/四轴分析 `xhigh`;`max` 凭维护者点名。
- S 机械 `medium`;M `high`(默认);L/XL/`security`/p1/契约复核/四轴分析 `xhigh`;`max` 凭点名或常设令。
```
`SKILL.md` claim template, the `Container & model` line's `model:`
placeholder (fenced; the file stays 319 lines): `reason:` now reads
「reason:(逐卡裁决,或常设档位令的 id 与时刻)」 so a standing word, where one exists, is
cited there; the derivation that `dispatch-gates.mjs` requires for a
ceiling tier is the MANDATORY hit `--tier` printed (or a `reason:`), and
a ceiling nobody derived is still a half-state, and `post-stamped` still
refuses it. The exits the tier text already has (一行级机械文本降档, 额度耗尽豁免,
主动预降) are untouched.
Hits read and left alone: `coordinator.md` L31 (where the tier and
effort are derived — unchanged), L19 (the lane analogue: 维护者 ⛔ 不逐卡点名车道),
`execution-duties.md` L72 (`--tier` citation) and L117 (effort written
into the claim and the order), `dispatch-runbook.md` L135 (the seat
hands the order with a suggested effort), `filing-gate.md` L16–17 and
`instrument-discipline.md` L9 (原话 for filing cards and new gates — a
different rule), `reading-discipline.md` L28 (原话 for a maintainer's
stop).
### One hit the order's hypothesis 1 foresaw as a class
(`references/lanes/ui.md` L8)
The grep over `pm:retriage` and `domain:*` found one more line that
states the same rule (誤标 ⛔ 不自改) and would have contradicted L32 for the
ui seat; it is in the claimed surface (`.claude/skills/pm-dispatch/**`)
and is reworded in place, before / after:
```text
- ⛔ 不产 `domain:*`、type 与定级,中央分诊唯一生产;误标 ⛔ 不自改,挂 `pm:retriage`+异议同笔。
- ⛔ 不产 `domain:*`、type 与定级,分诊唯一生产;误标 `pm:retriage`+异议同笔,整树归本席除外。
```
Hits read and left alone because they state a different rule:
`execution-duties.md` L8 (候选 excludes `pm:retriage` cards), `SKILL.md`
L29 and L104 (never dispatch a `pm:retriage` card), `SKILL.md` L170 (who
first PRODUCES `domain:*` — a seat move changes an existing label, it
produces none), `triage-duties.md` L63 (duplicate cards stay triage's),
`state-machine.md` 34–41 (挂标者/摘标者 roles, unchanged),
`platform-readings.md` L130 (banned-account recovery),
`lanes/director.md` L55, `lanes/hotcrm.md` L8 and L51 (single-lane repos
never produce `domain:*`).
### Ratchet readings (`pnpm check:pm-skill-ratchet`, before → after,
lines)
| file | before | after | ceiling | headroom |
|:--|--:|--:|--:|--:|
| `.claude/skills/pm-dispatch/SKILL.md` | 319 | 319 | 319 | 0 |
| `references/dispatch-runbook.md` | 245 | 245 | 245 | 0 |
| `references/execution-duties.md` | 188 | 188 | 188 | 0 |
| `references/cross-repo-coordination.md` | 47 | 47 | 47 | 0 |
| `references/triage-duties.md` | 103 | 103 | 103 | 0 |
| `references/lanes/ui.md` | 23 | 23 | 23 | 0 |
| `references/coordinator.md` | 49 | 49 | 49 | 0 |
No CEILINGS row moves; no raise is claimed (ruling A on token rows
covers `skills/**`, not this ratchet). Widest `SKILL.md` table row 329
bytes against the 341-byte pin.
### Done-when reading: the spec lane's 「dispatchable / open `pm:queue`」
Read over REST at 2026-10-27T04:02Z, `is:issue state:open label:pm:queue
label:domain:spec`: **9** open (the card measured 13 at 01:41Z; #26000
is closed and #25653 dispatched since, both answered by triage at R694
before this PR).
- Under the text on `main`: **0 / 9** dispatchable. Seven are held by
the area axis against an in-flight card of the same `area:*` unless the
seat measures disjoint file surfaces (#26424 ↔ #25653 identity; #26324
and #26076 ↔ #26370/#26220/#25767 devpath, #26324 also hot-file behind
#26220; #26170, #26142, #26128, #26112 ↔ #25785 i18n); two carry no
triage first grade yet (#26437, #25579).
- Under this PR's text: **0 / 9** — no card in today's queue is held by
either rule this PR changes. What it buys is the next #26000 or #25653:
a ruling conflict is settled by the seat in the same round, a whole-tree
remainder is relabelled in one write. The seven area-axis holds are the
card's item 3 and the two ungraded cards are triage's first grade;
neither is this PR's.
## Why
See 维护者速读 and the Ruling-ref above: the maintainer's words settle who
judges these two asks; the card measured one round where ten of thirteen
cards were held by rule text, not capacity.
## Tests
No code, tests or scripts change. The local gate union below is the test
surface for `.claude/skills/pm-dispatch/**`; the reading is on the final
commit `7d2aaefe` (three commits; the union was run on each head).
## Acceptance notes
- `references/triage-duties.md` 人工地板 line 「卡的命运(关 not planned、降级、撤回、砍半)」
is left as is: a cut forced by a ruling the maintainer already made is
既裁执行 (the 不呈 list, same file), not the seat deciding a card's fate; the
new runbook line says so in the only place a seat reads before cutting.
- The order pointed at the audit on #26184 comment 6425678185 「Part A, §
pm-dispatch」; Part A has no pm-dispatch section (it is the
published-skills gap table). The card's own measured round is the only
source used.
- The notification path for a release-time remainder that belongs to
another seat (`execution-duties.md` L62 「点名该席改标」) rides the existing
cross-seat rule (`cross-repo-coordination.md`
「跨座位请求…在目标卡留一条评论,该评论点名席位与步骤」); no new channel.
## Verification
Local gate union on head `7d2aaefe` (derived with `node
scripts/pm/dispatch-gates.mjs --commands --repo
objectstack-ai/objectstack`, 22 families for the 7 changed files; every
exit code captured before any pipe; reconciled with `--ran`: 「22 derived
famil(ies) accounted for — 21 run, 1 NOT-MEASURED」). The same union was
run on the earlier heads `500a14a8` and `50710116` with the same result.
<details><summary>22 derived families — 21 exit 0, 1 NOT
MEASURED</summary>
```text
node scripts/check-closing-keyword-parity.mjs :: exit 0
node scripts/check-closing-keyword-parity.mjs --self-test :: exit 0
node scripts/check-comment-mask-corpus.mjs :: exit 0
node scripts/pm/check-governed-queue-guard.mjs --self-test :: exit 0
node scripts/pm/check-harness-current.mjs --self-test :: exit 0
pnpm --filter @objectstack/lint run check:doc-formula-expressions :: exit 3 NOT MEASURED — PREREQUISITE NOT MET (reads a built packages/spec dist; no package is built for a .claude/** diff); CI's Lint & Repo Gates runs it
pnpm check:agent-test-spelling :: exit 0
pnpm check:cross-package-test-inputs :: exit 0
pnpm check:doc-authoring :: exit 0
pnpm check:driver-memory-census :: exit 0
pnpm check:gitlink-declared :: exit 0
pnpm check:nul-bytes :: exit 0
pnpm check:pm-expected-skips :: exit 0
pnpm check:pm-governed-merges :: exit 0
pnpm check:pm-governed-prose :: exit 0
pnpm check:pm-half-states :: exit 0
pnpm check:pm-label-write :: exit 0
pnpm check:pm-skill-id-lint :: exit 0
pnpm check:pm-skill-ratchet :: exit 0
pnpm check:refd-timer-probe :: exit 0
pnpm check:skill-frame-sync :: exit 0
pnpm check:watch-hint-literal :: exit 0
```
</details>
Ratchet verdict lines on `7d2aaefe` (`node
scripts/pm/check-skill-line-ratchet.mjs`, exit 0): each of the seven
files reads 「is N lines (ceiling N; headroom 0)」 with N as in the table
above; `SKILL.md` 「widest table row is 329 bytes (pin 341)」.
`check:pm-skill-id-lint` 「104 file(s) clean」. `check:role-word` run
beyond the union: exit 0, no new occurrence. Repo-wide scans (`pnpm
lint`, `test:repo`, `check:pm-dispatch-gates`) are CI's.
Reverse check, by hand: on the pre-change tree the five quoted rule
lines still read as the order quotes them (read at `75afeffd`); the grep
hit lists above were taken on the final tree with `grep -rn
"pm:retriage"`, `grep -rn -F "domain:*"`, `grep -rn "原话"`, `grep -rn
"effort"` over `.claude/skills/pm-dispatch/`.
## Human Minimum
- [x] 1. Schemas start as Zod; `packages/spec` holds no runtime logic.
(n/a — no code)
- [x] 2. Every name I added uses the casing for its kind. (no
identifiers added)
- [x] 3. No formatter ran; `pnpm lint` is CI's (repo-wide scan).
- [x] 4. One issue, one branch off an up-to-date `main` (`75afeffd`),
one pull request.
- [x] 5. Publishes nothing: `.claude/**` only, `skip-changeset` declared
at `pr_create`; the two declaration lines are at the top of this body.
- [x] 6. `packages/spec` not touched.
- [x] 7. No hand edits to `content/docs/references/`,
`packages/*/CHANGELOG.md` or `content/docs/releases/`.
- [x] 8. Title, body and comments are in English; the Chinese is the
维护者速读 and verbatim rulings, both required by AGENTS.md Communication.
- [x] The *Before Submitting* list in CONTRIBUTING.md is done.
---
_Generated by [Claude
Code](https://claude.ai/code/session_01JQwxbZjAKY4aTUi9cTbjd8)_
---------
Co-authored-by: objectstack-fleet[bot] <objectstack-fleet[bot]@users.noreply.github.com>
Co-authored-by: Claude <noreply@anthropic.com>1 parent f8f4095 commit 00a4593
7 files changed
Lines changed: 17 additions & 17 deletions
File tree
- .claude/skills/pm-dispatch
- references
- lanes
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
31 | 31 | | |
32 | 32 | | |
33 | 33 | | |
34 | | - | |
| 34 | + | |
35 | 35 | | |
36 | 36 | | |
37 | 37 | | |
| |||
109 | 109 | | |
110 | 110 | | |
111 | 111 | | |
112 | | - | |
| 112 | + | |
113 | 113 | | |
114 | 114 | | |
115 | 115 | | |
| |||
308 | 308 | | |
309 | 309 | | |
310 | 310 | | |
311 | | - | |
| 311 | + | |
312 | 312 | | |
313 | 313 | | |
314 | 314 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
30 | 30 | | |
31 | 31 | | |
32 | 32 | | |
33 | | - | |
| 33 | + | |
34 | 34 | | |
35 | 35 | | |
36 | 36 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
29 | 29 | | |
30 | 30 | | |
31 | 31 | | |
32 | | - | |
| 32 | + | |
33 | 33 | | |
34 | 34 | | |
35 | 35 | | |
36 | 36 | | |
37 | 37 | | |
38 | 38 | | |
39 | 39 | | |
40 | | - | |
| 40 | + | |
41 | 41 | | |
42 | 42 | | |
43 | 43 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
135 | 135 | | |
136 | 136 | | |
137 | 137 | | |
138 | | - | |
| 138 | + | |
| 139 | + | |
139 | 140 | | |
140 | 141 | | |
141 | 142 | | |
142 | 143 | | |
143 | 144 | | |
144 | 145 | | |
145 | 146 | | |
146 | | - | |
147 | | - | |
148 | 147 | | |
149 | 148 | | |
150 | 149 | | |
151 | 150 | | |
152 | 151 | | |
153 | 152 | | |
154 | | - | |
| 153 | + | |
| 154 | + | |
155 | 155 | | |
156 | 156 | | |
157 | 157 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
| 9 | + | |
| 10 | + | |
9 | 11 | | |
10 | 12 | | |
11 | 13 | | |
| |||
57 | 59 | | |
58 | 60 | | |
59 | 61 | | |
60 | | - | |
| 62 | + | |
61 | 63 | | |
62 | 64 | | |
63 | 65 | | |
| |||
88 | 90 | | |
89 | 91 | | |
90 | 92 | | |
91 | | - | |
92 | 93 | | |
93 | 94 | | |
94 | 95 | | |
| |||
114 | 115 | | |
115 | 116 | | |
116 | 117 | | |
117 | | - | |
| 118 | + | |
118 | 119 | | |
119 | 120 | | |
120 | 121 | | |
| |||
137 | 138 | | |
138 | 139 | | |
139 | 140 | | |
140 | | - | |
141 | 141 | | |
142 | 142 | | |
143 | 143 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
8 | | - | |
| 8 | + | |
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
73 | 73 | | |
74 | 74 | | |
75 | 75 | | |
76 | | - | |
| 76 | + | |
77 | 77 | | |
78 | | - | |
| 78 | + | |
79 | 79 | | |
80 | 80 | | |
81 | 81 | | |
| |||
0 commit comments