Skip to content

Commit fb3a056

Browse files
committed
chore(pm): re-pin the thirteen rewritten ceilings at their landed counts
All thirteen fall, none rises: platform-readings 397->359, rest-channel 88->82, release-aftercare 58->50, true-green 34->32, compile-surfaces 26->24, lanes engine 40->32, services 28->27, cli 31->29, devx 39->38, skills 35->33, spec 46->43, hotcrm 57->53, director 77->72. Every widest table-row pin is untouched, compile-surfaces included, because its widest row is unchanged byte for byte. The cross-file move declared on platform-readings needed one maintenance edit the header itself prescribes. Its destination no longer stands 73 lines above the 314 it moved from — the rewrite handed 38 of those ruled lines back — so the two ruledRaises records together read as an over-claim and the gate refused them. The third-increment record is retired, which is the header's own remedy for a ruled raise since given back; the intake record stays, so the declaration reads +11 against a net source decrease of 20 for a move that took +10. Under-pricing the move is the failure the header warns about, and this errs the other way. The move's `was`, its sources and their pre-move ceilings are untouched. Ratchet green including its 155-case self-test; check-published-list-mirrors, check-ratchet-remedy-authority, check-skills-token-ratchet and dispatch-gates (1445 cases) all green on the edited script. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019RfFHiRCSs3JXLK4cwcfox
1 parent 13e8b27 commit fb3a056

1 file changed

Lines changed: 81 additions & 29 deletions

File tree

scripts/pm/check-skill-line-ratchet.mjs

Lines changed: 81 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -525,7 +525,11 @@ export const CEILINGS = new Map([
525525
// `ruledRaises` records quoting their own rulings, which is what keeps that
526526
// declaration's `was` at this file's literal pre-move 314 while the move's own
527527
// raise still reads +10 against the sources' −11.
528-
['.claude/skills/pm-dispatch/references/platform-readings.md', 397],
528+
// Lowered 397 → 359 by the rules-only rewrite (maintainer 2026-09-04:
529+
// 「各条规则的出处叙事、事故复盘 根本不重要啊,不需要写入skills啊」) — provenance dates,
530+
// ruling citations and incident narrative left; every rule stayed. Landed count,
531+
// headroom 0, same convention (lowering is always legitimate).
532+
['.claude/skills/pm-dispatch/references/platform-readings.md', 359],
529533
// Per-operation REST/GraphQL/git channel mapping — which fleet operation has
530534
// a REST twin (each row executed in a real session, provenance date carried
531535
// per row), the handful that are GraphQL-only, and the queue-routing
@@ -561,7 +565,11 @@ export const CEILINGS = new Map([
561565
// file's own header already routes the queue-section readings there and
562566
// refuses to keep a second copy, so nothing is left behind but the rows that
563567
// are channel mappings. Landed count, headroom 0, same convention.
564-
['.claude/skills/pm-dispatch/references/rest-channel.md', 88],
568+
// Lowered 88 → 82 by the rules-only rewrite (maintainer 2026-09-04:
569+
// 「各条规则的出处叙事、事故复盘 根本不重要啊,不需要写入skills啊」) — provenance dates,
570+
// ruling citations and incident narrative left; every rule stayed. Landed count,
571+
// headroom 0, same convention (lowering is always legitimate).
572+
['.claude/skills/pm-dispatch/references/rest-channel.md', 82],
565573
['.claude/skills/pm-dispatch/references/review-checklist.md', 84],
566574
['.claude/skills/pm-dispatch/references/landing-operations.md', 80],
567575
// Release-aftercare duties — what a lane PM still owes AFTER a tagged release
@@ -574,7 +582,11 @@ export const CEILINGS = new Map([
574582
// deliberately not restated here: a live number copied into a neighbour's
575583
// comment goes stale the next time that file moves — which is what happened to
576584
// the arithmetic this sentence replaces.
577-
['.claude/skills/pm-dispatch/references/release-aftercare.md', 58],
585+
// Lowered 58 → 50 by the rules-only rewrite (maintainer 2026-09-04:
586+
// 「各条规则的出处叙事、事故复盘 根本不重要啊,不需要写入skills啊」) — provenance dates,
587+
// ruling citations and incident narrative left; every rule stayed. Landed count,
588+
// headroom 0, same convention (lowering is always legitimate).
589+
['.claude/skills/pm-dispatch/references/release-aftercare.md', 50],
578590
['.claude/skills/pm-dispatch/references/seat-post-protocol.md', 105],
579591
// Per-repo「真绿」跑法索引 — the canonical test invocation, the gates a CI-log
580592
// grep cannot see, and the local preflight, one fact per line per repo. Added
@@ -586,7 +598,11 @@ export const CEILINGS = new Map([
586598
// (that one is the published `skills/` catalog, and only it). Set at the landed
587599
// line count read from this ratchet's own run — headroom 0, same convention as
588600
// the entries above.
589-
['.claude/skills/pm-dispatch/references/true-green.md', 34],
601+
// Lowered 34 → 32 by the rules-only rewrite (maintainer 2026-09-04:
602+
// 「各条规则的出处叙事、事故复盘 根本不重要啊,不需要写入skills啊」) — provenance dates,
603+
// ruling citations and incident narrative left; every rule stayed. Landed count,
604+
// headroom 0, same convention (lowering is always legitimate).
605+
['.claude/skills/pm-dispatch/references/true-green.md', 32],
590606
// Per-surface compile/typecheck coverage index — which surfaces a repo-wide
591607
// typecheck actually reaches, which are compiled only by their own package's
592608
// script, and the frozen ones. #12098: after true-green.md above it was the
@@ -598,7 +614,11 @@ export const CEILINGS = new Map([
598614
// from this ratchet's own run — headroom 0, same convention. ⚠️ Its seven
599615
// over-120B lines are all `table` rows, structurally exempt and NOT
600616
// re-wrappable; they are metered instead by MAX_TABLE_ROW_BYTES below.
601-
['.claude/skills/pm-dispatch/references/compile-surfaces.md', 26],
617+
// Lowered 26 → 24 by the rules-only rewrite (maintainer 2026-09-04:
618+
// 「各条规则的出处叙事、事故复盘 根本不重要啊,不需要写入skills啊」) — provenance dates,
619+
// ruling citations and incident narrative left; every rule stayed. Landed count,
620+
// headroom 0, same convention (lowering is always legitimate).
621+
['.claude/skills/pm-dispatch/references/compile-surfaces.md', 24],
602622
// Plain-language digest of the corpus's binding rules, one rule per line, added
603623
// under the 2026-09-04 rules-only ruling so the maintainer reviews the rules
604624
// instead of the corpus. Set at the landed line count (headroom 0, same
@@ -612,23 +632,51 @@ export const CEILINGS = new Map([
612632
// 2026-08-23) — the patrol-anchor sentence was carried verbatim by all seven
613633
// lanes and now lives once in SKILL.md 执行座位职责, so every lane drops it.
614634
// cli.md pays −2 because it was carrying the map's last line of headroom.
615-
['.claude/skills/pm-dispatch/references/lanes/engine.md', 40],
635+
// Lowered 40 → 32 by the rules-only rewrite (maintainer 2026-09-04:
636+
// 「各条规则的出处叙事、事故复盘 根本不重要啊,不需要写入skills啊」) — provenance dates,
637+
// ruling citations and incident narrative left; every rule stayed. Landed count,
638+
// headroom 0, same convention (lowering is always legitimate).
639+
['.claude/skills/pm-dispatch/references/lanes/engine.md', 32],
616640
// Lowered 30 → 28 and 35 → 31 as the other two SOURCES of the cross-file
617641
// move recorded on platform-readings.md above. A per-repo gate reading in a
618642
// lane charter is read by one lane and missed by the other six, which is the
619643
// whole defect the move repairs: services.md gave up the two aggregate-
620644
// reading boundaries, cli.md the required-check set with its `in_progress`
621645
// and advisory clauses. Landed counts, headroom 0, same convention.
622-
['.claude/skills/pm-dispatch/references/lanes/services.md', 28],
623-
['.claude/skills/pm-dispatch/references/lanes/cli.md', 31],
624-
['.claude/skills/pm-dispatch/references/lanes/devx.md', 39],
625-
['.claude/skills/pm-dispatch/references/lanes/skills.md', 35],
626-
['.claude/skills/pm-dispatch/references/lanes/spec.md', 46],
646+
// Lowered 28 → 27 by the rules-only rewrite (maintainer 2026-09-04:
647+
// 「各条规则的出处叙事、事故复盘 根本不重要啊,不需要写入skills啊」) — provenance dates,
648+
// ruling citations and incident narrative left; every rule stayed. Landed count,
649+
// headroom 0, same convention (lowering is always legitimate).
650+
['.claude/skills/pm-dispatch/references/lanes/services.md', 27],
651+
// Lowered 31 → 29 by the rules-only rewrite (maintainer 2026-09-04:
652+
// 「各条规则的出处叙事、事故复盘 根本不重要啊,不需要写入skills啊」) — provenance dates,
653+
// ruling citations and incident narrative left; every rule stayed. Landed count,
654+
// headroom 0, same convention (lowering is always legitimate).
655+
['.claude/skills/pm-dispatch/references/lanes/cli.md', 29],
656+
// Lowered 39 → 38 by the rules-only rewrite (maintainer 2026-09-04:
657+
// 「各条规则的出处叙事、事故复盘 根本不重要啊,不需要写入skills啊」) — provenance dates,
658+
// ruling citations and incident narrative left; every rule stayed. Landed count,
659+
// headroom 0, same convention (lowering is always legitimate).
660+
['.claude/skills/pm-dispatch/references/lanes/devx.md', 38],
661+
// Lowered 35 → 33 by the rules-only rewrite (maintainer 2026-09-04:
662+
// 「各条规则的出处叙事、事故复盘 根本不重要啊,不需要写入skills啊」) — provenance dates,
663+
// ruling citations and incident narrative left; every rule stayed. Landed count,
664+
// headroom 0, same convention (lowering is always legitimate).
665+
['.claude/skills/pm-dispatch/references/lanes/skills.md', 33],
666+
// Lowered 46 → 43 by the rules-only rewrite (maintainer 2026-09-04:
667+
// 「各条规则的出处叙事、事故复盘 根本不重要啊,不需要写入skills啊」) — provenance dates,
668+
// ruling citations and incident narrative left; every rule stayed. Landed count,
669+
// headroom 0, same convention (lowering is always legitimate).
670+
['.claude/skills/pm-dispatch/references/lanes/spec.md', 43],
627671
// repo:hotcrm lane charter (maintainer rulings 2026-08-20: exemplar-app repo —
628672
// platform capabilities implemented upstream, 展现平台能力, 不扩散需求, runs on
629673
// community edition). Set at landed line count (headroom 0, same convention).
630674
// 45 → 44: same patrol-anchor hoist deletion as the six lanes above.
631-
['.claude/skills/pm-dispatch/references/lanes/hotcrm.md', 57],
675+
// Lowered 57 → 53 by the rules-only rewrite (maintainer 2026-09-04:
676+
// 「各条规则的出处叙事、事故复盘 根本不重要啊,不需要写入skills啊」) — provenance dates,
677+
// ruling citations and incident narrative left; every rule stayed. Landed count,
678+
// headroom 0, same convention (lowering is always legitimate).
679+
['.claude/skills/pm-dispatch/references/lanes/hotcrm.md', 53],
632680
// Project Director seat charter (maintainer ruling 2026-08-27, verbatim in the
633681
// file: 「项目总监 由人工定期指挥,负责处理 contract-review 类别的和需要决裁的。」) — a
634682
// human-invoked seat owning the contract-review chain, the adjudication duty and
@@ -640,7 +688,11 @@ export const CEILINGS = new Map([
640688
// directive; the file sat at headroom 0 with no losslessly compressible slack in
641689
// the touched sections (arithmetic in the raising PR), so the directive is the
642690
// ruling that pays for exactly the two lines it dictates.
643-
['.claude/skills/pm-dispatch/references/lanes/director.md', 77],
691+
// Lowered 77 → 72 by the rules-only rewrite (maintainer 2026-09-04:
692+
// 「各条规则的出处叙事、事故复盘 根本不重要啊,不需要写入skills啊」) — provenance dates,
693+
// ruling citations and incident narrative left; every rule stayed. Landed count,
694+
// headroom 0, same convention (lowering is always legitimate).
695+
['.claude/skills/pm-dispatch/references/lanes/director.md', 72],
644696
// 399 → 405 (#11126): maintainer-ruled (2026-08-23, option B, quoted in that
645697
// PR) — the +6-line cross-repo dispatch-gates caveat, sized so the queued
646698
// #11137 (395→399 on main) and this PR's +6 compose to exactly 405.
@@ -830,22 +882,22 @@ export const CROSS_FILE_MOVES = new Map([
830882
date: '2026-09-04',
831883
delta: 34,
832884
},
833-
{
834-
// The third increment, ruled the same day as the one above and in the
835-
// same way. Quoted beside this entry's ceiling too, where the +39 is
836-
// accounted for member by member. Copied from there, not paraphrased.
837-
ruling:
838-
'the third-increment raise on `.claude/skills/pm-dispatch/references/platform-readings.md`'
839-
+ ' — maintainer, decision batch #34, 2026-09-04, verbatim and untranslated:'
840-
+ ' 「决裁批 #34 同意」 on the presented recommendation, item 1 = A; and the director'
841-
+ ' record\'s own sentence for that item: "raise the ceiling by the measured +39,'
842-
+ ' 358 → 397". Measured per member rather than estimated: attribution-footer'
843-
+ ' scoping +12, the MCP-side rate refusal read as a window reading +6, the CDN'
844-
+ ' cause behind the payload channel\'s absence rule +5, and the Routine transport'
845-
+ ' family +16 = +39 exactly.',
846-
date: '2026-09-04',
847-
delta: 39,
848-
},
885+
// RETIRED HERE, and retired rather than re-numbered, because the ceiling
886+
// above no longer stands high enough to carry both records. The rules-only
887+
// rewrite gave 38 of these 73 ruled lines back (397 → 359), so 35 of them
888+
// still stand while the destination is only 45 above `was` — and a set of
889+
// records claiming more than that reads as an over-claim, which is exactly
890+
// what `crossFileMoveVerdict` refused. The header names the remedy: a ruled
891+
// raise since given back is spent, so retire its record. The THIRD-INCREMENT
892+
// record is the one retired (maintainer, decision batch #34, 2026-09-04,
893+
// 「决裁批 #34 同意」, +39, quoted in full beside the ceiling above) rather
894+
// than the intake-family record below it, and the choice is the conservative
895+
// direction rather than a preference: 34 declared against 35 actually
896+
// standing prices this move at +11 for a raise that took +10, while keeping
897+
// the +39 instead would price it at +6 — under-pricing the move is the
898+
// failure the header warns about. Neither ruling is reopened by this: both
899+
// are still quoted beside the ceiling, which is where a reader gets back to
900+
// them, and the lines they bought are the lines this rewrite handed back.
849901
],
850902
sources: [
851903
['.claude/skills/pm-dispatch/references/lanes/cli.md', 35],

0 commit comments

Comments
 (0)