Skip to content

skills(pm-dispatch): write the maintainer's base adjudication principle into the four-axis framework — 「以 objectstack 协议为准,文档以实际实现为准」, spec > implementation > documentation #17389

Description

@os-litant

Addendum (director seat, 2026-09-10T11:0xZ) — the principle has three clauses, verbatim and untranslated: 「我们的项目以objectstack 协议为准,文档应该以实际实现为准。协议不正确的应该先修改协议。」 The third clause fixes the ORDER: when the protocol is judged wrong, the spec change lands first and consumers block on it — a consumer never implements a wrong arm, never narrows or widens a spec-declared shape locally, and never adds an author-settable key the spec does not declare. Write all three clauses; the precedence paragraph below is the derived reading.
Filed by the director seat (summon #21, session_01QVMnxyWBx8cAQMsV6akDV9) on the maintainer's instruction, verbatim and untranslated (director chat, 2026-09-10T10:5xZ):

我们的项目以objectstack 协议为准,文档应该以实际实现为准。 这个是决裁的基本原则,应该写入skills

Routed domain:skills under the maintainer direct-dispatch channel (the instruction names the work); pm:queue. ⛔ Not claimed. The director seat writes rulings, not skill text.

What to write, and where

The principle, as a named base principle of adjudication — the maintainer's sentence quoted verbatim with its date, in the four-axis decision framework block of .claude/skills/pm-dispatch/SKILL.md 〈升级与决策〉, next to the two maintainer quotes already embedded there (2026-08-04 创业阶段聚焦, 2026-08-27 不渐进), and in the framework's synced copy (check:skill-frame-sync / -freshness guard both copies; find the second copy by the guard, do not guess). The operational reading the director derived when executing decision batch #112 (seat post #12708, ledger 5617477212), which the text should carry so the next adjudicator applies it mechanically:

  • Precedence: the shape @objectstack/spec declares > the actual implementation (the read site) > every documentation face (TS types in objectui, registry inputs, JSDoc, README, liveness ledgers).
  • A key or arm the spec declares that an implementation does not honour is an implementation gap: implement it, or file a spec card to retire it (ADR-0049 enforce-or-remove) — never narrow it locally in a consumer.
  • A key the spec does not declare follows its implementation; its documentation faces are corrected to what the implementation does.
  • Documentation drift is repaired toward the implementation; only a ruling with a cited source makes it a contract defect (this half already exists as 「说明书脱节不进:有裁定出处才是 (b),否则改文档」 and 「协议为基准:spec 与代码不一致默认改代码对齐;改协议单独立卡」 — keep those lines, and make the four-axis block cite the principle they derive from).

Same PR: the matching clause in references/core-rules.md (SKILL.md and core-rules change together by the seat's own rule).

Constraints the dispatch must carry

  • SKILL.md is under the line ratchet (pnpm check:pm-skill-ratchet: line count never rises). Net budget for this change: +3 lines in the framework block, paid by deletion elsewhere in the file — the maintainer's instruction is the authority for the content, not for raising the ceiling.
  • Governed surface: contract-review tier build (skills seat), draft PR with ## 维护者速读(草稿), request review from os-zhuang and hotlong, human merge. check:skill-frame-sync and check:skill-frame-freshness must pass on the PR.
  • ⛔ Do not restate the principle in prose elsewhere; one named principle, two synced copies, one core-rules clause.

Dedup

git grep on origin/main for 协议为基准 / 说明书脱节 / 实际实现 across SKILL.md, core-rules.md, decision-analysis.md, AGENTS.md (2026-09-10T10:5xZ): the two derived clauses exist; the base principle with the maintainer's wording does not, and the four-axis block does not cite it. Open domain:skills cards read by title: none about this principle. Refs: seat post #12708 (summon #21 ledger 5617477212 records the ruling and its application to objectui#7759 / #4631 / #4044 / #8568 / #8754), #17285 (the tier ruling set), #17359 (sibling skills evaluation).


Generated by Claude Code

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions