Skip to content

pm-dispatch: SKILL.md principle-only (815 → 319 lines) — dispatch / review / landing detail relocated into per-phase references, core-rules.md retired - #19805

Merged
huangyiirene merged 9 commits into
mainfrom
claude/issue-19716-skill-md-principle-only
Sep 23, 2026
Merged

huangyiirene merged 9 commits into
mainfrom
claude/issue-19716-skill-md-principle-only

Conversation

@objectstack-fleet

Copy link
Copy Markdown
Contributor

Fixes #19716

Clause-②: no

维护者速读(草稿)

改了什么:PM 协议主文 .claude/skills/pm-dispatch/SKILL.md 从 815 行压到 319 行,只留原则——红线、优先级、入口与角色(含参数表)、新增的「阶段细则索引」表、全体座位的不变量、状态模型、域车道、受管面的「路径分叉」块、升级与决策(含四轴框架单源)、报告契约、机械守卫索引、模板与表。派发 / 分诊 / 座位生命周期 / 读数纪律 / 多仓协调 / 入队与落地的细则逐字搬进六份按阶段读的 references(五份新建:seat-lifecycle.md、reading-discipline.md、cross-repo-coordination.md、triage-duties.md、execution-duties.md;既有的 landing-operations.md 吸收「入队与落地」),每份第一行写明哪个座位在哪个 fire 读它。references/core-rules.md(SKILL.md 的人读摘要副本,151 行)删除,所有指向它和被搬章节的指针重定向。行数棘轮把 SKILL.md 上限从 819 降到 319,新文件按落地行数入表,棘轮总量下降。

为什么改:决策批 #213 第 4 项,维护者原话「1 2 4 同意」,项目原文「协议主文 819 → 约 300 行(红线 + 状态模型 + 入口 + 索引),派发 / 复核 / 入队细则各成一份按阶段读的 reference;同时删 core-rules.md 双份」。目的是每个座位每次 fire 只读本阶段的文件,不再整本重读 815 行外加 151 行的副本。

风险与代价(含回滚):纯搬迁,无语义变化——被搬的 465 条规则行里 459 条逐字相同,5 条只改了指针拼写(指向新家),1 条自指指针删除;「⛔」行数搬前搬后相等(对合并基点 558 对 558,对派发基点 559 对 559;都不计被删副本自带的 59 行)。代价落在指针:部分 references 的指针行受 120 字节行宽与零余量约束,只写文件名不写章节名(章节标题在新文件里原样保留);两个门禁脚本各改了一处指向路径(自测通过)。SKILL.md 落在 319 行——高于「约 300」但低于 340 上限——多出的部分是 check:pm-governed-prose 锚定在 SKILL.md 里的受管面路径分叉块(28 行)加索引表(11 行)。回滚 = revert 本 PR(一个 squash commit);棘轮上限已降,回滚时抬回需维护者裁决引用。

席位意见:(席位填写)

你要做的:本 PR 属 Tier S(路径全在 .claude/** 与 scripts/pm/**),由 skills 席在席内契约复审 PASS 后走队列落地,不需要你点击。若对新文件命名、或 SKILL.md 保留 319 行而非约 300 行有异议,在本 PR 评论一句即可。

What this PR does

Relocation, not deletion — decision batch #213 item 4 (maintainer, verbatim: 「1 2 4 同意」). Every rule line of SKILL.md on the base (fae870352, 815 lines) ends up in exactly one place: SKILL.md if it is principle, otherwise one per-phase reference. references/core-rules.md (the declared subset / human digest, 151 lines) is deleted. No rule added, no rule dropped, no gate / hook / ratchet / roster added; os-dev.md, AGENTS.md and skills/** untouched.

Six destination files, one commit each (the branch is bisectable by destination):

destination opens with (which seat reads it on which fire) lines
references/execution-duties.md (new) 执行席每次 fire 读本文:候选、认领、派发、收集、复核;落地窗口另读 landing-operations.md。 183
references/seat-lifecycle.md (new) 每个座位每次 fire 读本文:开轮互斥读数之前读〈开轮互斥〉,收班之前读其余各节。 96
references/triage-duties.md (new) 分诊席每次 fire 开局读本文;本文是分诊座位的全部职责。 120
references/reading-discipline.md (new) 任一座位在取读数、引读数或核验 main 的那一刻读本文,所有 fire、所有阶段。 37
references/cross-repo-coordination.md (new) 分诊席每次 fire 路由与查重前读本文;执行席跨仓认领、派发或转移时读本文。 51
references/landing-operations.md (existing, absorbs 入队与落地) 执行席在落地窗口(ACCEPT 之后至 MERGED)读本文;入队与落地条款与 A–D 操作细则都在此。 69 → 101

Why two files beyond the card's suggested shape: 平台读数纪律 and 多仓协调 are read by BOTH seats (readings are taken on every fire; cross-repo routing is triage's, cross-repo claiming/dispatch is execution's). Folding either into one seat's phase file would make the other seat skip it — a rule dropped in effect — and keeping both in SKILL.md lands it at 367 lines, over the 340 ceiling. Each gets a single-section file whose title is the section heading, so every 〈heading〉 pointer still resolves.

Section → destination (base line spans of SKILL.md at fae870352)

base span section destination
1–76 frontmatter, intro, 红线, 优先级 (42–44 rewritten, see pointers), 入口与角色 stays (SKILL.md)
77–92 入口与角色 · the 开轮互斥 bullets seat-lifecycle.md 〈开轮互斥〉
94–158 全体座位的不变量, 状态模型 (table + bullets) stays
159–194 平台读数纪律 reading-discipline.md
195–244 多仓协调 cross-repo-coordination.md
245–271 域车道 (table + bullets) stays
272–296 座位贴协议 seat-lifecycle.md 〈座位贴协议〉
297–312 Epic 子树车道 seat-lifecycle.md 〈Epic 子树车道〉
313–431 分诊座位职责 triage-duties.md
432–435 执行座位职责 heading + intro bullet execution-duties.md
436–481 / 482–511 / 512–573 / 574–597 候选与批次 / 认领 / 派发 / 收集 execution-duties.md 〈候选与批次〉〈认领〉〈派发〉〈收集〉
598–612 复核 (the verdict rules) execution-duties.md 〈复核〉
613–641 复核 · ACCEPT 之后的路径分叉 … 本段只适用本循环派发的 dev PR stays, under the new heading ## 路径分叉 — check:pm-governed-prose anchors its SKILL.md region on exactly these two lines, and check-expected-skips.mjs's self-test pins the 入队资格 line at 637
642–674 入队与落地 landing-operations.md 〈入队与落地〉 (644, a self-pointer to that very file, dropped)
675–690 / 691–698 / 699–707 轮次报告与节奏 / 停止条件与待命 / 断粮与跨墙恢复 seat-lifecycle.md (收班)
708–815 升级与决策 (frame block 737–757 byte-identical, md5 abff5f852c8fd09b79ec0623439aa4f0), 报告契约, 机械守卫索引, 模板与表 stays

New in SKILL.md: ## 阶段细则索引 (a 6-row table: file · which seat reads it on which fire · sections it carries), one pointer line in 入口与角色 to 〈开轮互斥〉, and the ## 路径分叉 heading. SKILL.md: 815 → 319 lines (≈ 300 target, ≤ 340 ceiling; the excess over 300 is the retained 28-line governed-prose block plus the 11-line index).

Proof: relocation, not deletion

Measured by an independent verifier over the working tree against git show de4ed33fd:… (the merge base; script in the report):

  • Moved content lines (non-blank, non-heading, in the spans above): 465 — 459 verbatim, 5 rewritten (pointer retargets inside moved text, listed below), 1 dropped (644, the self-pointer), 0 missing.
  • Retained SKILL.md lines: 302 / 302 present in their original order (the three rewritten and the one dropped 优先级 line excepted, listed below).
  • 「⛔」 lines, against the PR's merge base de4ed33fd: before 617 (SKILL.md 194 + references/** 423, of which core-rules.md 59) — after 558 (SKILL.md 68 + references/** 490). Excluding the deleted duplicate's own 59 lines: 558 == 558. (Against the dispatch base fae870352 the same proof reads 618 → 559, the one-line difference being docs(pm): a suspended seat account is a dead session — takeover, re-rendered records, retriage, durable state #19795's edit to seat-post-protocol.md, merged in.)
  • Decision frame block: byte-identical, only its line position changed (check:skill-frame-sync and -freshness green).

Pointer retargets (every one in place, same line count, ≤ 120 bytes)

Inside moved text (the 5 rewrites): 89 「三章程(本文、core-rules、本席章程)」→「SKILL.md、阶段 references、本席章程」(the touch-check set follows where the rules now live; core-rules gone); 183 「(见认领节)」→「(见 execution-duties.md 认领)」; 491 「照抄 模板与表 节」→「照抄 SKILL.md 模板」; 612 「见 升级与决策 节」→「见 SKILL.md 〈升级与决策〉」; 694 「按收集节②」→「按 execution-duties.md 收集节②」.

In SKILL.md: 42 drops the 「核心条款」 tier from the priority chain (the file it named is deleted; no new tier introduced); 43 now points at references/** and 〈阶段细则索引〉 instead of core-rules.md; 44 「一条规则在本文与核心条款一处改动,另一处同 PR 同改」 dropped — its whole object is the deleted duplicate; 56 「见 Epic 子树车道 节」→ references/seat-lifecycle.md 〈Epic 子树车道〉.

In references (line 3 unless noted): review-checklist.md → execution-duties.md 〈复核〉; compile-surfaces.md → execution-duties.md; true-green.md, lanes/devx.md:19, lanes/skills.md:10 → SKILL.md 〈路径分叉〉; lanes/{cli,devx,engine,services,skills,spec}.md → seat-lifecycle.md; seat-post-protocol.md → seat-lifecycle.md 〈座位贴协议〉; lanes/triage.md:2 → triage-duties.md; instrument-discipline.md, platform-readings.md → reading-discipline.md; filing-gate.md → triage-duties.md 与 reading-discipline.md; lanes/hotcrm.md, lanes/ui.md:3/13/19/21 → cross-repo-coordination.md; contract-review.md:3 → landing-operations.md 〈入队与落地〉 (lines 13 / 19 byte-identical, #19061 step ④'s); external-contributions.md → landing-operations.md. Where the retargeted line sits at the 120-byte cap in a headroom-0 file, it cites the file without the 〈heading〉; the heading itself is unchanged inside the destination.

In scripts: scripts/pm/dispatch-gates.mjs 25403 / 26508 — the two self-test specimens that named references/core-rules.md now name references/state-machine.md (an internal references file that exists; the assertion, "carries no mandate", is unchanged); scripts/pm/check-half-states.mjs 15523 (H65 prescription) plus its two docblock lines 15104 / 15171 — SKILL.md 〈分诊座位职责〉 → references/triage-duties.md 〈分诊座位职责〉.

Ceiling map (scripts/pm/check-skill-line-ratchet.mjs), before → after

entry before after
SKILL.md 819 319 (降恒合法)
references/landing-operations.md 69 101 — declared CROSS-FILE MOVE, source SKILL.md 819 → 319: +32 against −500, authorised by #14685 item 5 (comment 5520452691)
references/core-rules.md 151 row and table-row pin removed with the file
references/seat-lifecycle.md · reading-discipline.md · cross-repo-coordination.md · triage-duties.md · execution-duties.md — 96 · 37 · 51 · 120 · 183 (new rows at landed count; table-row pins 0, they carry no table)
map total down 132 lines (−500 −151 +32 +487); the gate reports the declared moves' total down 477

Gates (exits captured before any pipe)

All families below ran on 8df1e7e52; after merging origin/main (de4ed33fd, three commits: #19792, #19795 and a spec changeset, none touching scripts/pm/**) the ratchet family, check:pm-skill-id-lint, check:skill-frame-sync, check:skill-frame-freshness, check:pm-governed-prose and check:nul-bytes were re-run on the merged head f20de6220, all exit 0, and --ran re-reconciled there (derived list unchanged).

The five the card names: check:pm-skill-ratchet exit 0 (SKILL.md is 319 lines (ceiling 319; headroom 0); declared cross-file moves: 2, total ceilings down 477 lines; self-test 157 cases) · check:pm-skill-id-lint exit 0 (34 files clean) · check:skill-frame-sync exit 0 (one declared copy, coherent) · check:skill-frame-freshness exit 0 (current with origin/main) · check:pm-governed-prose exit 0 (2 instruction surfaces name all 6 governed surfaces).

Derived by node scripts/pm/dispatch-gates.mjs --repo objectstack-ai/objectstack --commands (50 families from the merge-base change set, 29 paths) and reconciled with --ran: Run reconciliation — 50 derived, 50 run, 0 NOT-MEASURED, 0 UNRUN, every family recorded with its exit code (dispatch-gates --ran exit 0; the one extra, check:skill-frame-freshness, is outside the derivation). Among them check:pm-half-states exit 0 (4897 cases; the H65 battery reads the retargeted prescription), check:pm-governed-merges exit 0, check:pm-expected-skips exit 0 (its SKILL.md enqueue-bar pin still holds — the line stayed), check-governed-queue-guard.mjs --self-test exit 0, check-harness-current.mjs --self-test exit 0, check:doc-authoring exit 0, check:nul-bytes exit 0, check:commit-card-trailers exit 0. check:pm-dispatch-gates exit 0 — ✓ dispatch-gates self-test: 1905 cases pass (the battery took 713.0s on this box; run detached as its header prescribes, exit captured to a file). check:doc-formula-expressions (derived only because dispatch-gates.mjs is edited) exit 0 after its prerequisite turbo run build --filter=@objectstack/formula --filter=@objectstack/lint under the verify lock (VERDICT command-exit 0): 22 record-scoped examples across 456 files clean.

Changed lines: 623 additions + 710 deletions = 1,333 (under the 5,000 human-merge threshold). check-governed-merges.mjs --branch claude/issue-19716-skill-md-principle-only (offline, merge-base): exit 3 GOVERNED — Tier S(席内达档复核落地), .claude/** ×26, scripts/pm/* not on the register, size 1,333 ≤ 5,000; the --pr reading (head repo) is in the report.

Readings on the base that differ from the card

  • references/lanes/director.md and scripts/pm/git-history.mjs carry no core-rules reference on fae870352 (git grep -c core-rules → 0 for both). The 「三章程 touch list」 the card attributes to git-history.mjs is SKILL.md line 89 (the tool is git-history.mjs touch); it is rewritten as listed above.
  • The 「本车道」 sentence (base line 266) stays in 域车道 and was left untouched; PR pm-dispatch: the pre-dispatch in-flight read covers every lane's pm:dispatched claims #19792 landed on origin/main while this branch was in flight and the merge brought the ruled wording in cleanly (now SKILL.md line 175). Nothing of another card's is pre-applied here.

Acceptance notes

  • Two gate docblocks — scripts/pm/check-clause2-carriers.mjs 3940–3941 and scripts/pm/check-governed-queue-guard.mjs 272–273 — attribute 「记录 = 同形评论落 PR 或卡」 to SKILL.md 〈入队与落地〉; the phrase is nowhere in SKILL.md on the base (pre-existing staleness). Left untouched: retargeting the pointer would keep a false claim. 承接者: skills seat (a one-line docblock correction when either file is next edited).
  • scripts/pm/check-clause2-carriers.mjs prose that says "SKILL.md's handover sentence" (its CLAIM_HANDOVER_SENTENCE_LINES twin now lives in execution-duties.md 〈认领〉, byte-identical) — file-name-only prose, no heading pointer; left. 承接者: same.
  • check:doc-formula-expressions is derived for this change set only through dispatch-gates.mjs being edited; it needs @objectstack/formula and @objectstack/lint built first (exit 3 = prerequisite, not a finding, until built).

Changeset

skip-changeset: every changed path is under .claude/** or scripts/pm/**, which are in no package's files[] — nothing published moves.


Generated by Claude Code

…n-duties.md

Relocation only — every rule line moves verbatim; the ACCEPT path-fork block
(the check:pm-governed-prose region) stays in SKILL.md under its own heading
路径分叉, and the five section pointers that named 〈派发〉/〈复核〉 are retargeted.

Co-authored-by: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Wnstp2kTth7sGXfr8fXypc
…rences/seat-lifecycle.md

Relocation only: the 开轮互斥 bullets of 入口与角色, 座位贴协议, Epic 子树车道,
轮次报告与节奏, 停止条件与待命 and 断粮与跨墙恢复 move verbatim; SKILL.md keeps
one pointer line per moved block and the six lane charters plus
seat-post-protocol retarget their 〈座位贴协议〉 pointer.

Co-authored-by: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Wnstp2kTth7sGXfr8fXypc
Relocation only — the section moves verbatim under its own title; the triage
lane charter retargets its pointer.

Co-authored-by: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Wnstp2kTth7sGXfr8fXypc
Relocation only — the section moves verbatim; instrument-discipline,
platform-readings and filing-gate retarget their pointer line.

Co-authored-by: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Wnstp2kTth7sGXfr8fXypc
Relocation only — the section moves verbatim; the hotcrm and ui lane charters
retarget their 〈多仓协调〉 pointers.

Co-authored-by: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Wnstp2kTth7sGXfr8fXypc
Relocation only — the clause block lands ahead of the existing A–D operating
detail; the file's opening line now names its reader and fire; contract-review
(line 3 only) and external-contributions retarget their pointer.

Co-authored-by: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Wnstp2kTth7sGXfr8fXypc
…inter to it and to the moved sections

core-rules.md was the declared subset of SKILL.md; with the phase references in
place it is a maintained duplicate. 优先级 drops the 核心条款 tier and the
twin-maintenance line whose object no longer exists; SKILL.md gains the
阶段细则索引 (which seat reads which reference on which fire); the two
dispatch-gates self-test specimens that named core-rules.md now name
state-machine.md; check-half-states' H65 prescription names triage-duties.md.

Co-authored-by: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Wnstp2kTth7sGXfr8fXypc
…the per-phase references in the ratchet map

SKILL.md lowered to its landed count (降恒合法); landing-operations.md raised
69 → 101 as a declared CROSS-FILE MOVE sourced from SKILL.md (+32 against −500);
core-rules.md's row and table pin leave with the file; the five new per-phase
references enter at their landed counts with 0-byte table pins. Map total goes
down. Self-test: 157 cases pass.

Co-authored-by: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Wnstp2kTth7sGXfr8fXypc
@github-actions github-actions Bot added size/xl documentation Improvements or additions to documentation labels Sep 23, 2026
@objectstack-fleet objectstack-fleet Bot added the skip-changeset PR has no user-facing published change; bypasses the changeset gate label Sep 23, 2026
@objectstack-fleet

Copy link
Copy Markdown
Contributor Author

Contract review

Served-tier: CONTRACT_REVIEW_TIER
Head-sha: f20de622096a24ba951f0d21ce2137ce80a193f5

① Derived judgments

Rendered in-seat by the skills seat 1 session at the served tier the maintainer named (ruling record 5771798588; 「契约复审继续用 fable 不变」 5788482806 of this date). The contract is the card #19716's ruled shape — decision batch #213 item 4, the maintainer's 「1 2 4 同意」, executed as the director's 直派 and re-pointed at 05:40 UTC of this date: relocation, not deletion, no semantic change; SKILL.md ≈ 300 lines with a ceiling of at most 340; core-rules.md deleted with every pointer retargeted; one reader line per phase file; ⛔ no rule added or dropped, ⛔ no gate, ⛔ no change to os-dev.md / AGENTS.md / skills/**; the five named gates green; Tier S, skip-changeset, one PR Fixes the card.

  • (a) The diff — measured by this seat on a review worktree at the head. Nine commits on merge-base de4ed33fd (one per destination file, the deletion, the ratchet map, a merge of origin/main); 29 files, +623 / −710 = 1,333 changed lines, all under .claude/skills/pm-dispatch/** plus three scripts/pm/** pointer edits; os-dev.md, AGENTS.md, skills/** and dispatch-runbook.md untouched (git diff --stat empty), contract-review.md touched at :3 only (:13 / :19 are Retire the in-seat clause-② contract review — the rule, its gate label, and the 9k-line checker's gate role #19061 step ④'s, byte-identical).
  • (b) SKILL.md — 815 → 319 lines, principle only. Headings on the head: 红线 · 优先级 · 入口与角色 (with its args table) · 阶段细则索引 (new, six rows: file · who reads it on which fire · sections carried) · 全体座位的不变量 · 状态模型 · 域车道 · 路径分叉 (the ACCEPT path fork, kept because check:pm-governed-prose anchors its region there and check-expected-skips.mjs pins its 入队资格 line) · 升级与决策 · 报告契约 · 机械守卫索引 · 模板与表. The four-axis block sits at :241–:261, md5 abff5f852c8fd09b79ec0623439aa4f0 — byte-identical to origin/main's (the seat's own md5). Ruling 5780497628's :266 sentence rides at :175 in the ruled wording (no 「本车道」), brought in by the merge of origin/main, nothing of another card's carried by this diff.
  • (c) Relocation proven, not asserted — the seat's own multiset diff. Non-empty lines of SKILL.md + references/** on the merge-base (the deleted duplicate excluded) against the head: 46 distinct lines gone, 62 new, and every one of them is a pointer retarget (〈section〉 → the phase file), a heading level (### → ## inside the phase files), a phase file's title or reader line, the new index table, or the three 优先级 lines that named the deleted duplicate (the 核心条款 tier and its twin-maintenance rule) — no rule sentence lost or reworded. 「⛔」 lines: 558 before (SKILL.md 194 + references 364, the duplicate's 59 excluded) and 558 after (68 + 490) — equal, measured by the seat.
  • (d) The six phase files — seat-lifecycle.md 96, reading-discipline.md 37, cross-repo-coordination.md 51, triage-duties.md 120, execution-duties.md 183 (new), landing-operations.md 69 → 101 (absorbs 入队与落地) — each opening with one line naming which seat reads it on which fire (read by the seat). Two files beyond the card's suggested four: both sections are cross-seat, and keeping them in SKILL.md would land it at 367, over the 340 ceiling — the dev's reason stands. core-rules.md deleted; git grep core-rules on the head finds only the ratchet's own history comments; the pointers at old :43 / :89 and in nine lane charters and six references retargeted in place at ≤ 120 bytes.
  • (e) The ratchet map. SKILL.md ceiling 819 → 319 (headroom 0), landing-operations.md 69 → 101 as a declared cross-file move paid by SKILL.md's cut (the gate's own line: 「+32 against a net decrease」), the five new files added at their landed counts with table pins 0, the core-rules.md row and its pin removed; the gate reports 「declared cross-file moves: 2, total ceilings down 477 lines」 — the map's total goes down, as the ruling admits.
  • (f) Gates — re-run by this seat on the review worktree at the head after pnpm install --frozen-lockfile --offline. check:pm-skill-ratchet 0 (157 self-test cases; SKILL.md 319 / 319); check:pm-skill-id-lint 0 (34 files); check:skill-frame-sync 0 and check:skill-frame-freshness 0; check:pm-governed-prose 0 (both instruction surfaces still name all six governed surfaces); check:doc-authoring 0; check:pm-expected-skips 0 (the enqueue-bar pin holds); check-half-states.mjs --self-test 0 (4897 — its H65 prescription string retargeted); check-harness-current.mjs --self-test 0 (26); check-governed-merges.mjs --pr 19805 exit 3 — GOVERNED, Tier S (.claude/** ×26; the three scripts/pm files not on the register; 1,333 changed lines, under the human-merge threshold). The dev's derivation: 50 families by --commands, --ran 50 / 50 / 0 NOT-MEASURED, the 1905-case dispatch-gates self-test (its two specimen paths retargeted) run detached at 713 s. CI at the head at the seat's read: 32 latest-per-name check runs — 19 success, 10 skipped, 3 in progress; the landing waits for green and the expected-skips roster.

② Semver level

None — no release. .claude/** and scripts/pm/** are in no package's files[]; skip-changeset written through label-write.mjs with read-back (the dev's report).

③ Boundary flags

Implemented-by: claude/issue-19716-skill-md-principle-only
Reviewed-by: session_01Wnstp2kTth7sGXfr8fXypc

VERDICT: PASS

@huangyiirene
huangyiirene marked this pull request as ready for review September 23, 2026 07:31
@huangyiirene
huangyiirene added this pull request to the merge queue Sep 23, 2026
Merged via the queue into main with commit f151ef2 Sep 23, 2026
38 of 39 checks passed
@huangyiirene
huangyiirene deleted the claude/issue-19716-skill-md-principle-only branch September 23, 2026 08:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation size/xl skip-changeset PR has no user-facing published change; bypasses the changeset gate

Projects

None yet

2 participants