pm-dispatch SKILL: require a four-lens block on every needs-user-decision card, Blocked-by-aware batch selection, round-brief decision flags - #7552
Closed
huangyiirene wants to merge 1 commit into
Conversation
…sion card (#7498) Two maintainer rulings of 2026-08-11, one PR: 1. Four-lens block: every needs-user-decision card carries a required four-line analysis block (platform long-term coherence / measured business pull / AI-agent error-resistance / startup scope discipline), one line per lens, at step-0 filing and step-8 escalation time. The block is defined inside the existing three-axis frame as its card-face serialization (one frame, not a second one); the frame's gate-anchored structure is unchanged, keeping check:skill-frame-sync green without touching the other three synced copies outside this card's file surface. 2. Scope extension (issue comment, 03:11Z): step-3 selection now sorts pm:queue candidates named by any open card's Blocked-by: line ahead of plain queue items, computed at selection time from the greppable lines (no stored label); step-9's decision-inbox metric flags decision cards with open downstream dependents; the declined blanket priority:*/pm:unblocks label option is recorded for future readers. Line ratchet paid by extracting four step-8 narrative passages verbatim to references/incidents.md (append-only): SKILL.md 3027 -> 3043 lines (ceiling 3050). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Lm8fPF2HR2Ty2iTFLHpafm
|
The latest updates on your projects. Learn more about Vercel for GitHub. 1 Skipped Deployment
|
huangyiirene
marked this pull request as ready for review
August 11, 2026 05:38
This was referenced Aug 11, 2026
Collaborator
|
Closing on the maintainer's direct instruction — provenance, per the execution-record discipline:
Generated by Claude Code |
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 #7498
Implements both maintainer rulings of 2026-08-11 recorded on the card (body + the 03:11Z scope-extension comment), in one PR, inside the card's file surface (
.claude/skills/pm-dispatch/SKILL.md+references/**only).Ruling 1 — required four-lens block on every
needs-user-decisioncardneeds-user-decisioncard to carry a four-line analysis block — one line per lens — at step-0 filing and step-8 escalation time: ① platform long-term coherence, ② measured business pull, ③ AI-agent error-resistance, ④ startup scope discipline. The evidence line (2026-08-11 re-review reversed 4 of ~30 ledger recommendations:publicPicker.sortis read by the public lookup route but stays undeclared after #7467 — one key of the enforced-never-declarable gap remains #7485, [finding][services] datasourcepool还有两处静默丢弃:turso 整块、mongodb 的两个 timeout 键(#5714/#5931 拒绝集合覆盖不到的剩余面) #7243, objectui#4165, objectui#3804) is recorded with it.How the merge respects
check:skill-frame-sync. The escalation frame exists as four gate-synchronized copies across three files (.claude/skills/pm-dispatch/SKILL.md,.claude/agents/os-dev.md, and two copies in the publishedskills/objectstack-pm-dispatch/SKILL.md), with the axis count, order, and binding sentence compared structurally by the gate — and its AXIS_MAP lives inscripts/. Changing the frame's axis count 3→4 is therefore a four-copy + gate-map edit, all outside this card's file surface. So the merge is expressed as: one frame, whose card-face serialization is the four-lens block — ②↔axis 1 (实际业务需求), ①↔axis 2 (项目长远合理性), ③↔axis 3 (防 AI 犯错), and ④ promotes the startup-focus principle already embedded in axis 1 to its own required line. The block text states explicitly it is NOT a second frame. The gate-anchored declaring/binding sentences and the three axis entries are structurally untouched;check:skill-frame-syncstays green. If the maintainer wants the frame itself renumbered to four axes across all four copies + the published mirror, that is a follow-up card with a wider file surface (noted in the report's open_questions).Ruling 2 — scope extension (03:11Z comment)
pm:queuecandidates, a card named by any open card'sBlocked-by:line now sorts ahead of plain queue items (fan-out ≥ 1), computed at selection time from the greppableBlocked-by:lines — the same reverse index the unlock sweep already reads; no stored label. Placed after the existing扇出 ≥ 2andtarget:tiers so the standing ruling-backed order is preserved and "named sorts ahead" lands against ordinary queue items.priority:*/pm:unblockslabel on depended-upon cards (derived decaying property — the gradient-rot shape thetarget:v17ruling refused; no-reader labels banned; release-critical chains covered bytarget:v17propagation), with the revisit condition (population well past today's ~6 cards).Line ratchet
SKILL.md 3027 → 3043 lines (ceiling 3050, headroom 7). Additions paid for by extracting four step-8 narrative passages verbatim to
references/incidents.md(append-only, each with an 出处 line per that file's convention): the 第三档 #5373 example, the 两条元判据 precedent narratives (both bullets), and the business-need axis precedent block (#5021/#4988/#4834, #5021 vs #4936). Main-file rules keep a one-line anchor + pointer in each spot.Same-day churn guard
#7492 (Operational note 1 merge-queue membership criterion) and #7493 (发版板 queries / cloud contradiction) are open undecided cards on this file — this diff touches neither Operational note 1 nor the 发版板 section nor step 9's release-blockers metric; edits are orthogonal to both questions.
Gates run locally (all green)
pnpm check:pm-skill-ratchet— 3043/3050, self-test 5 cases passpnpm check:skill-frame-sync— 4 copies structurally isomorphic, 3 axes, 4 count mentions agree, self-test 12 cases passpnpm check:doc-authoring— 375 files cleanpnpm --filter @objectstack/lint run check:doc-formula-expressions— green after building the dependency closure (pnpm --filter '@objectstack/lint^...' build)pnpm check:nul-bytes— 7000 files cleanChangeset
None — internal agent tooling (
.claude/**only), docs-only for the agent protocol; releases nothing.skip-changesetapplies (label applied separately; the PM applies/confirms at acceptance).Generated by Claude Code