You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Delete the published skills/objectstack-pm-dispatch skill — a stale three-state copy of the internal PM protocol with no known consumer, shipped into every new app — and retire its catalog row, docs page, frame-sync copy, tier-table entry, ratchet pins and gate fixtures (maintainer ruling 2026-09-10) #17311
Filed by the domain:skills execution seat (session session_01MoTv7pn338AZ71owsp19gQ, GitHub os-justin) at 2026-09-10T05:4xZ under the maintainer's direct instruction in this seat's chat session (直派通道; labels set by this seat, ⛔ not a triage grading). Claimed and dispatched at once: scripts/pm/dispatch-gates.mjs became free when PR #17294 merged.
裁决 — the maintainer's words, verbatim and untranslated (chat, 2026-09-10)
The question, 03:1xZ: 「对外发布的 skills/objectstack-pm-dispatch/SKILL.md 这个很老了,和现在的也完全不一致吧?是否建议删除。」
The ruling, 05:3xZ: 「发布版 skills/objectstack-pm-dispatch 删」
This is 删已发布能力 — a manual-floor item — ruled by the maintainer in those words. ⚠️ It reverses the 2026-09-03 batch-3 ruling, item 4 option B, which narrowed the decision-frame COPIES to two and kept the published copy (scripts/check-skill-frame-sync.mjs:2–:4: 「exists as TWO hand-written copies across two files (#5798, narrowed to two by the 2026-09-03 batch-3 ruling, item 4 option B — see COPIES below)」). The newer ruling wins; quote both in the PR body.
Measured, 2026-09-10T02:5xZ–05:4xZ (origin/main)
skills/objectstack-pm-dispatch/ = SKILL.md (726 lines) + rules/dev-template.md; last touched 2026-09-03 (7b19b9ea), five commits since it was created 2026-09-01. The internal protocol .claude/skills/pm-dispatch/SKILL.md has 33 commits and was touched today.
Content parity: the published copy describes a three-state board (pm:queue / pm:dispatched / needs-user-decision + Blocked-by:). None of pm:on-hold, pm:blocked, pm:awaiting-maintainer, pm:retriage, pm:epic, pm:seat, Clause-②, 总监/director, 多仓, dispatch-gates, Restart-when, os-dev appears in it. The only mechanically synced part is the decision-frame block (check:skill-frame-sync COPIES).
Ships to third parties: npm create objectstack installs every catalog skill into a new app (packages/create-objectstack/src/created-summary.test.ts:58 names it), and npx skills add objectstack-ai/objectstack/skills --skill '*' installs it into existing projects. Known consumers: none — hotcrm installs no skill (measured 02:56Z); the maintainer runs the PM loop from objectstack sessions with the metadata repo attached.
What to delete and every reference that must move with it (file:line on origin/main; re-measure on your worktree)
Deleteskills/objectstack-pm-dispatch/SKILL.md and skills/objectstack-pm-dispatch/rules/dev-template.md.
skills/README.md:49 — the catalog row.
packages/spec/scripts/build-skill-docs.ts:121 — the docs-page entry; then regeneratecontent/docs/ai/skills-reference.mdx (:55 table row, :188 section) with that tool, ⛔ never hand-edit the generated page.
scripts/check-skill-frame-sync.mjs:130–:150 — the published-pm COPIES entry, and the header (:2–:10) that says two copies. With one copy left the gate's isomorphism comparison has no pair; scripts/check-skill-frame-freshness.mjs imports COPIES. Measure what each gate does with a one-entry COPIES and keep both green: the seat's reading is that the anti-dormancy scan (「keeps a dev-side copy from quietly coming back」) is still worth running over one copy, and that a gate whose comparison population was removed by this ruling is DISCHARGED, not weakened — say which of the two you did and why, in the PR body. ⛔ Do not retire either gate script outright without stating that reading.
scripts/check-skills-token-ratchet.mjs:362 and :458 (+ the comment at :454) — pinned ceilings for the two deleted files; measure whether the ratchet refuses a pinned path that no longer exists.
scripts/check-skill-compatibility-version.mjs:148, :552 and the fixtures at :622, :632, :642 — the register entry and its self-test fixtures (move the fixtures to a surviving catalog skill).
scripts/check-doc-authoring.mjs:1807–:1809 and scripts/check-empty-changeset.mjs:631–:632 — self-test fixtures that spell the path; re-point them at a surviving catalog skill.
scripts/pm/check-governed-merges.mjs:211 and :3661 — comment-only mentions; correct the wording.
scripts/skill-identifier-liveness-ledger.json:4/:10/:16 — three ledger entries for the deleted file.
packages/create-objectstack/src/created-summary.test.ts:58 — the expected installed-skill list; measure whether skills-install.ts or any template enumerates skills by name (if it does, that is source and owes a changeset per the gate).
git ls-files skills/objectstack-pm-dispatch is empty; node scripts/pm/dispatch-gates.mjs --self-test green (dead-glob refusal not tripped; the two cases above removed or re-pointed); --tier skills/objectstack-data/SKILL.md still prints the skills/** mandate.
pnpm -s check:skill-frame-sync and check:skill-frame-freshness green with the stated reading; check:skills-token-ratchet, check:skill-compatibility, check:doc-authoring --self-test, check:empty-changeset --self-test, check:pm-governed-merges, check:skills-paths / check:skill-examples / doc-links green; the docs page regenerated and its gate green; packages/create-objectstack tests green.
Gate list derived with dispatch-gates.mjs --commands over the full change set and every family run; changeset per check-changeset-presence (the seat expects: test-only in create-objectstack ⇒ none; if skills-install.ts or a template changes ⇒ the gate decides).
PR body: Fixes #<this card>, both quotes verbatim at the head, the reversal of the 2026-09-03 item-4 B ruling stated, before/after for every reference above, ## 维护者速读(草稿), ## Acceptance notes. Governed (skills/** + scripts/pm/**) ⇒ draft, four-piece, ⛔ never ready / enqueued / auto-merged / approved by any seat.
Filed by the
domain:skillsexecution seat (sessionsession_01MoTv7pn338AZ71owsp19gQ, GitHubos-justin) at 2026-09-10T05:4xZ under the maintainer's direct instruction in this seat's chat session (直派通道; labels set by this seat, ⛔ not a triage grading). Claimed and dispatched at once:scripts/pm/dispatch-gates.mjsbecame free when PR #17294 merged.裁决 — the maintainer's words, verbatim and untranslated (chat, 2026-09-10)
The question, 03:1xZ: 「对外发布的 skills/objectstack-pm-dispatch/SKILL.md 这个很老了,和现在的也完全不一致吧?是否建议删除。」
The ruling, 05:3xZ: 「发布版 skills/objectstack-pm-dispatch 删」
This is 删已发布能力 — a manual-floor item — ruled by the maintainer in those words.⚠️ It reverses the 2026-09-03 batch-3 ruling, item 4 option B, which narrowed the decision-frame COPIES to two and kept the published copy (
scripts/check-skill-frame-sync.mjs:2–:4: 「exists as TWO hand-written copies across two files (#5798, narrowed to two by the 2026-09-03 batch-3 ruling, item 4 option B — see COPIES below)」). The newer ruling wins; quote both in the PR body.Measured, 2026-09-10T02:5xZ–05:4xZ (
origin/main)skills/objectstack-pm-dispatch/=SKILL.md(726 lines) +rules/dev-template.md; last touched 2026-09-03 (7b19b9ea), five commits since it was created 2026-09-01. The internal protocol.claude/skills/pm-dispatch/SKILL.mdhas 33 commits and was touched today.pm:queue/pm:dispatched/needs-user-decision+Blocked-by:). None ofpm:on-hold,pm:blocked,pm:awaiting-maintainer,pm:retriage,pm:epic,pm:seat,Clause-②, 总监/director, 多仓,dispatch-gates,Restart-when,os-devappears in it. The only mechanically synced part is the decision-frame block (check:skill-frame-syncCOPIES).npm create objectstackinstalls every catalog skill into a new app (packages/create-objectstack/src/created-summary.test.ts:58names it), andnpx skills add objectstack-ai/objectstack/skills --skill '*'installs it into existing projects. Known consumers: none — hotcrm installs no skill (measured 02:56Z); the maintainer runs the PM loop from objectstack sessions with the metadata repo attached.What to delete and every reference that must move with it (file:line on
origin/main; re-measure on your worktree)skills/objectstack-pm-dispatch/SKILL.mdandskills/objectstack-pm-dispatch/rules/dev-template.md.skills/README.md:49— the catalog row.packages/spec/scripts/build-skill-docs.ts:121— the docs-page entry; then regeneratecontent/docs/ai/skills-reference.mdx(:55 table row, :188 section) with that tool, ⛔ never hand-edit the generated page.scripts/check-skill-frame-sync.mjs:130–:150— thepublished-pmCOPIES entry, and the header (:2–:10) that says two copies. With one copy left the gate's isomorphism comparison has no pair;scripts/check-skill-frame-freshness.mjsimports COPIES. Measure what each gate does with a one-entry COPIES and keep both green: the seat's reading is that the anti-dormancy scan (「keeps a dev-side copy from quietly coming back」) is still worth running over one copy, and that a gate whose comparison population was removed by this ruling is DISCHARGED, not weakened — say which of the two you did and why, in the PR body. ⛔ Do not retire either gate script outright without stating that reading.scripts/pm/dispatch-gates.mjs— theMANDATORY_TIER_GLOBSentryglob: 'skills/objectstack-pm-dispatch/SKILL.md'(:10633; a dead glob is refused by the self-test), the population line :19182, and the self-test cases at :21002 and :21022 (「the published PM skill is covered by its own entry AND skills/**」); the docblock's mention of the published PM skill as a frame-copy file. Theskills/**entry (PR pm-dispatch: reserve the contract-review tier for the skills seat and the spec seat’s clause-② review; default tier elsewhere; the director’s tier is the maintainer’s per-summon choice #17294) stays and still covers the rest of the catalog.scripts/check-skills-token-ratchet.mjs:362and:458(+ the comment at :454) — pinned ceilings for the two deleted files; measure whether the ratchet refuses a pinned path that no longer exists.scripts/check-skill-compatibility-version.mjs:148,:552and the fixtures at:622,:632,:642— the register entry and its self-test fixtures (move the fixtures to a surviving catalog skill).scripts/check-doc-authoring.mjs:1807–:1809andscripts/check-empty-changeset.mjs:631–:632— self-test fixtures that spell the path; re-point them at a surviving catalog skill.scripts/pm/check-governed-merges.mjs:211and:3661— comment-only mentions; correct the wording.scripts/skill-identifier-liveness-ledger.json:4/:10/:16— three ledger entries for the deleted file.packages/create-objectstack/src/created-summary.test.ts:58— the expected installed-skill list; measure whetherskills-install.tsor any template enumerates skills by name (if it does, that is source and owes a changeset per the gate)..claude/skills/pm-dispatch/SKILL.mdand itsreferences/**(owned by A metadata project's cards live in that project's repo — hotcrm's decision cards included; only platform problems are filed on objectstack/objectui: fix the three SKILL.md rows and the core-rules twins that send them to the objectstack inbox #17288's dev, in flight in parallel — :509 「决策框架拷贝所在文件」 stays literally true with an empty set);.claude/agents/os-dev.md. If a gate forces an edit there, stop and reportblockedrather than edit.Acceptance
git ls-files skills/objectstack-pm-dispatchis empty;node scripts/pm/dispatch-gates.mjs --self-testgreen (dead-glob refusal not tripped; the two cases above removed or re-pointed);--tier skills/objectstack-data/SKILL.mdstill prints theskills/**mandate.pnpm -s check:skill-frame-syncandcheck:skill-frame-freshnessgreen with the stated reading;check:skills-token-ratchet,check:skill-compatibility,check:doc-authoring --self-test,check:empty-changeset --self-test,check:pm-governed-merges,check:skills-paths/check:skill-examples/ doc-links green; the docs page regenerated and its gate green;packages/create-objectstacktests green.dispatch-gates.mjs --commandsover the full change set and every family run; changeset percheck-changeset-presence(the seat expects: test-only increate-objectstack⇒ none; ifskills-install.tsor a template changes ⇒ the gate decides).Fixes #<this card>, both quotes verbatim at the head, the reversal of the 2026-09-03 item-4 B ruling stated, before/after for every reference above,## 维护者速读(草稿),## Acceptance notes. Governed (skills/**+scripts/pm/**) ⇒ draft, four-piece, ⛔ never ready / enqueued / auto-merged / approved by any seat.Generated by Claude Code