Skip to content

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
mainfrom
claude/issue-7498-decision-four-lens
Closed

pm-dispatch SKILL: require a four-lens block on every needs-user-decision card, Blocked-by-aware batch selection, round-brief decision flags#7552
huangyiirene wants to merge 1 commit into
mainfrom
claude/issue-7498-decision-four-lens

Conversation

@huangyiirene

Copy link
Copy Markdown
Collaborator

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-decision card

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 published skills/objectstack-pm-dispatch/SKILL.md), with the axis count, order, and binding sentence compared structurally by the gate — and its AXIS_MAP lives in scripts/. 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-sync stays 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)

  • Step 3 selection rule: among pm:queue candidates, a card named by any open card's Blocked-by: line now sorts ahead of plain queue items (fan-out ≥ 1), computed at selection time from the greppable Blocked-by: lines — the same reverse index the unlock sweep already reads; no stored label. Placed after the existing 扇出 ≥ 2 and target: tiers so the standing ruling-backed order is preserved and "named sorts ahead" lands against ordinary queue items.
  • Step 9 round brief: the decision-inbox health metric now requires the triage seat's brief to flag decision cards with open downstream dependents (first instance: spec: rule the submitBehavior.url semantics — objectui#4190 dead-ends on it #7496 ← objectui#4190), noting it went live same-day via a standing instruction on seat post [PM seat] triage (objectstack-wide) — 🟢 Routine #6015 and this change makes it durable.
  • Considered-and-declined record: the step-3 「不要为此发明新标签」 paragraph now records the 2026-08-11 rejection of a blanket priority:*/pm:unblocks label on depended-upon cards (derived decaying property — the gradient-rot shape the target:v17 ruling refused; no-reader labels banned; release-critical chains covered by target:v17 propagation), 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 pass
  • pnpm check:skill-frame-sync — 4 copies structurally isomorphic, 3 axes, 4 count mentions agree, self-test 12 cases pass
  • pnpm check:doc-authoring — 375 files clean
  • pnpm --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 clean

Changeset

None — internal agent tooling (.claude/** only), docs-only for the agent protocol; releases nothing. skip-changeset applies (label applied separately; the PM applies/confirms at acceptance).


Generated by Claude Code

…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
@vercel

vercel Bot commented Aug 11, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated (UTC)
objectstack Ignored Ignored Aug 11, 2026 5:11am

Request Review

os-help commented Aug 11, 2026

Copy link
Copy Markdown
Collaborator

Closing on the maintainer's direct instruction — provenance, per the execution-record discipline:


Generated by Claude Code

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 skip-changeset PR has no user-facing published change; bypasses the changeset gate

Projects

None yet

Development

Successfully merging this pull request may close these issues.

pm-dispatch SKILL: require a four-lens analysis block on every needs-user-decision card

3 participants