skills(pm-dispatch): write the maintainer's base adjudication principle into the four-axis frame - #17734
Draft
claude[bot] wants to merge 2 commits into
Draft
skills(pm-dispatch): write the maintainer's base adjudication principle into the four-axis frame#17734claude[bot] wants to merge 2 commits into
claude[bot] wants to merge 2 commits into
Conversation
…-axis frame Write the maintainer's 2026-09-10 instruction into the head of the four-axis decision frame as a named base principle (three clauses, verbatim), with the derived precedence spec > implementation > documentation on the same lines. Paid at 812/812 by three density folds in the same section; the matching core-rules clause replaces its derived-only line at 151/151. Claude-Session: https://claude.ai/code/session_01MCLBsUgfykL74aU716rzVK Co-authored-by: Claude <noreply@anthropic.com>
…ored section The frame is pasted and judged between its declaring and binding anchors; a head placement above the declaring sentence is outside that span. Same three lines, same count. Claude-Session: https://claude.ai/code/session_01MCLBsUgfykL74aU716rzVK Co-authored-by: Claude <noreply@anthropic.com>
Contributor
Author
维护者速读(终稿)改了什么 — 把你 2026-09-10 那句「我们的项目以objectstack 协议为准,文档应该以实际实现为准。协议不正确的应该先修改协议。」逐字(仅逗号按该文件惯例用半角)写进 PM 派发技能 SKILL.md 的四轴决策框架块,命名为「基本裁决原则」,紧接四条轴之后、「推荐意见必须基于这四条轴」那句之前;同三行写清推导序:spec 声明 > 实现 > 文档面;声明而未兑现是实现缺口(补实现或退役,不在消费端收窄);未声明的键随实现,文档随之。core-rules 摘要同笔改一行。 为什么改 — 这是你点名要写进 skills 的决裁基本原则。此前每张「声明与实际不一致」的卡都在各席位手里重新推导这条序,分诊席两个 fire 内就推了六次,结论会漂。写成具名原则后,分诊、裁决和派发词直接引用它。 风险与代价(含回滚) — 两个文件都在行数上限,新增三行由同节三处重复表述的合并支付,本席逐句核过没有规则丢家;框架块的 md5 会变,之后每份派发词从 main 取新块。四道门(行数棘轮、框架同构、框架新鲜度、id-lint)本席在该 head 亲自重跑全绿。回滚 = revert 本 PR,无发布物。 席位意见 — 席内按契约复审档复核通过:三句原话与卡上一致(仅逗号宽度),推导序与卡的四条要点一一对应,派发位置(锚点之内)比派发词的建议更正确——dev 实测了 head 位置会落在框架提取范围之外。建议合并。 你要做的 — 受管面:请人工合并 PR #17734(本席不翻 ready、不入队、不挂 auto-merge)。若原则措辞你想再改一字,说一声,补丁轮由本席续派。 Generated by Claude Code |
This was referenced Sep 12, 2026
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 #17389
What
Writes the maintainer's base adjudication principle into the four-axis decision frame of
.claude/skills/pm-dispatch/SKILL.md〈升级与决策〉 as a named principle (**基本裁决原则**), quoted verbatim with its date, inside the frame block next to the two maintainer quotes already embedded there (2026-08-04, 2026-08-27). The three clauses, verbatim and untranslated (director chat, 2026-09-10):The same lines carry the derived reading the next adjudicator applies mechanically: the shape
@objectstack/specdeclares is above the actual implementation, which is above every documentation face; a declared arm the implementation does not honour is an implementation gap (implement it or retire it through a spec card, never narrow it in a consumer); an undeclared key follows its implementation and the documentation follows the implementation. The third clause fixes the order: a wrong protocol is corrected first, as its own card.Same PR: the matching clause in
references/core-rules.md〈升级与决策〉 replaces that file's derived-only line with the named principle (net 0 lines).Landing points
.claude/skills/pm-dispatch/SKILL.md— three lines (now 751–753) inserted inside the frame block, between the fourth axis and the binding sentence 「推荐意见必须基于这四条轴给出理由…」, in the binding sentence's paragraph so no blank line is spent. The block stays 734–755. Paid at 812/812 by three density folds inside the same 〈升级与决策〉 section:references/decision-analysis.mdis already carried above the block (「分析模板见 …」), so no rule loses its home.No re-wrap was used as payment; every payment deletes restated content, and every clause of each folded line survives in the folded line.
.claude/skills/pm-dispatch/references/core-rules.md— line 143 rewritten (120 B) to carry the principle's three clauses in digest form; 151/151.Line budget
.claude/skills/pm-dispatch/SKILL.md.claude/skills/pm-dispatch/references/core-rules.mdChanged-line byte lengths (all ≤ 120 B): 104 · 116 · 116 (principle) · 116 · 119 · 118 (folds) · 120 (core-rules).
Verification (head
ea98fed9d)Named gates, exit captured before any pipe, all on
ea98fed9d:pnpm check:pm-skill-ratchet→ exit 0 —✓ check-skill-line-ratchet: declared cross-file moves: 1, total ceilings down 9 lines.pnpm check:skill-frame-sync→ exit 0 —✓ check-skill-frame-sync: the one declared copy of the decision frame is internally coherent (.claude/skills/pm-dispatch/SKILL.md; …) 4 axes: business-need → long-term-soundness → ai-authoring-safety → startup-scope-discipline; binding sentence present in it; 1 count mention(s) agree; 74 markdown files scanned for undeclared copies.pnpm check:skill-frame-freshness→ exit 0 —✓ check-skill-frame-freshness: the decision frame in this tree is current with origin/main (fetched just now). 1 copy across 1 file; 4 axes …; 0/1 framework files are byte-identical to the ref (wording differences are not drift).pnpm check:pm-skill-id-lint→ exit 0 —✓ check-skill-id-lint: 27 file(s) clean (pattern /#[0-9]{3,}/g).pnpm check:nul-bytes→ exit 0 —check-nul-bytes: OK (scanned 8435 text file(s) … no raw ASCII control bytes).Derived gate list (
node scripts/pm/dispatch-gates.mjs --commands, no paths, derived atea98fed9d: 16 families) run in full and reconciled:✓ dispatch-gates --ran: 16 derived famil(ies) accounted for — 16 run, 0 NOT-MEASURED. Every family exit 0: closing-keyword-parity (+ --self-test), comment-mask-corpus, governed-queue-guard --self-test, lintcheck:doc-formula-expressions(first run refused with exit 3 PREREQUISITE NOT MET on an unbuilt@objectstack/formula; rebuilt@objectstack/formula+@objectstack/lintunderscripts/pm/os-verify-lock.sh—VERDICT command-exit 0— and re-ran: exit 0,9 @example(s) judged clean across 1387 packages/spec/src files), agent-test-spelling, doc-authoring, driver-memory-census, nul-bytes, pm-governed-merges, pm-governed-prose, pm-skill-id-lint, pm-skill-ratchet, refd-timer-probe, skill-frame-sync, watch-hint-literal.Path face:
node scripts/pm/check-governed-merges.mjs --test …→⛔ GOVERNED — a human merge is the review record for this PR(2 of 2 paths hit.claude/**; exit 3 is that script's GOVERNED code).Deviations from the dispatch route
scripts/check-skill-frame-sync.mjs:COPIESdeclares ONE copy with an anti-dormancy scan;check:skill-frame-freshnessjudges that copy's structure againstorigin/main). No second copy was written. The frame's structure (4 bullets, declaring and binding anchors) is unchanged, which is what both guards judge; the principle is a non-bullet paragraph, invisible to the axis parser by design (ENTRY_STARTadmits only list bullets and**Axisparagraphs).start/bindinganchors, and the dispatch's own md5 was taken from the bold opener), so a head placement lands outside the span an anchored paste carries — measured: with the head placement the opener-to-拍板 span was byte-identical toorigin/main(md522f2339f…). The principle therefore sits inside the anchors, immediately before the binding sentence; the block md5 at 734–755 is now3327d02c56f8a0eca88569dad2270f32.Acceptance notes
check:skill-frame-sync/-freshnessstill reads 「四维决策框架两份拷贝的同构与新鲜度」 — one copy since the published PM skill was deleted; a one-word doc nit outside this card's declared surface. 承接者: none known.维护者速读(草稿)
改了什么:把您 2026-09-10 那句「以 objectstack 协议为准,文档以实际实现为准,协议不正确先改协议」写进 PM 派发技能的四轴决策框架里,命名为「基本裁决原则」,逐字引用带日期;同一处写清推导序:spec 声明 > 实现 > 文档面。core-rules 摘要同笔改一行。
为什么改:每次遇到「声明与实际不一致」的卡,各席位都在重新推导这条原则,结论会漂移;写成具名原则后,分诊与裁决直接引用它,不再各自推。
风险与代价(含回滚):两个文件都在行数上限,新增三行用同节三处重复表述的合并支付,内容无丢失;门禁全绿。回滚 = revert 本 PR,无发布物、无 changeset。
席位意见:
你要做的:确认原则措辞与推导序无误后人工合并;不需要其他动作。
Generated by Claude Code