Uh oh!
There was an error while loading. Please reload this page.
docs(pm-dispatch): cloud-card comms is event-driven by ruling — notes-21 verify-before-toggle, PR subscription as hard step - #7794
Conversation
…-21 verify-before-toggle, PR subscription as hard step (#7755) Three validated deltas from the 2026-08-11 spec-lane shift, per the maintainer's same-day rulings, plus the bbe056b rider folded in: - mode:cloud backend: record the cross-session-messaging roster limitation (CCR cloud sessions unreachable via ListAgents/SendMessage) and the ruling that the event-driven architecture is the standing solution — no roster re-tests, no local-machine migration. - Operational note 21, amended in place: after an empty-field enable, verify queue membership FIRST (queue branch, ~20-30s allowance); never issue a disable between an enable and its verification — an out-of-order 'added to merge queue' webhook means that disable can cancel a real enqueue (#7655 negative / #7657 positive, same day). - 入队与落地 B / mode:cloud delivery contract: cloud-card PR subscription elevated from accompanying-discipline bullet to numbered hard step (lesson 4), with the #7672 vs #7655/#7657 A/B measurement; the bullet stays as a pointer. - Rider bbe056b (cloud-card archival) folded into the B-section archival bullet: merged+report-reviewed criteria, review_ready batch sweep, the never-archive-before-merge boundary (#7265/#7325), unarchive caveat. Ratchet headroom was 0 (ceiling 2568): all additions offset in-file by moving residual narrative verbatim to references/incidents.md (append-only, five new sections with provenance) and reflowing touched paragraphs. SKILL.md stays exactly 2568 lines; MAX_LINES untouched. Fixes#7755 Co-Authored-By: Claude <noreply@anthropic.com>
The latest updates on your projects. Learn more about Vercel for GitHub. 1 Skipped Deployment
|
os-zhuang
commented
Aug 11, 2026
CI note: the Check Changeset red is the expected shape for this PR, not a defect. The diff is Generated by Claude Code |
Uh oh!
There was an error while loading. Please reload this page.
Fixes#7755
Three validated deltas to
.claude/skills/pm-dispatch/SKILL.mdfrom the 2026-08-11 spec-lane shift, executing the maintainer's same-day rulings (「当前事件驱动架构即长期方案」/「云卡通信课题就此收档 … 不再追」/「没有计划 把 PM 席迁到常驻本地机」), plus thebbe056brider folded in. All three targets were re-located semantically on post-#7766 compressed text (the card body predates the compression); everything verified againstorigin/mainat2701e95.The three deltas
mode:cloudbackend — roster limitation on record. New paragraph after 监控与转向: CCR cloud sessions do not register in the cross-session messaging roster (ListAgentsdoesn't list them,SendMessageby session ID returns not-reachable; the doc's visibility precondition — sender holds a claude.ai login on the first-party API — is not met by CCR container credentials). Ruling: the event-driven architecture IS the standing solution; ⛔ no roster re-tests, no local-machine migration. Measurement detail in references §「跨会话消息 roster 限制实测」.git ls-remote, ~20–30s allowance); ② branch present ⇒ done, no toggle; ③ absent after wait AND queue visibly churned ⇒ ONE toggle, re-verify by notes 1 criteria; ④ (retained) disable on a settled member doesn't remove membership but clears the auto-merge flag. Hard rule: ⛔ never a disable between an enable and its queue verification. Narrative in references §「spec: re-type TenantPlan / sys_environment.plan as an opaque plan identifier #7655 armed 窗口 disable 撤单实测」.mode:clouddelivery contract (实测三课 → 实测四课): the moment the cloud card's draft PR exists,subscribe_pr_activityit — an unsubscribed cloud-card PR is a polling liability. A/B evidence: fix(spec): lower equality triples with a $field comparand to {$eq: ref} (#7597) #7672 (unsubscribed, merge found minutes late by polling) vs spec: re-type TenantPlan / sys_environment.plan as an opaque plan identifier #7655/feat(spec): rule and enforce submitBehavior.url — relative-only, declared-field interpolation, URL-escaped (#7496) #7657 (subscribed, second-level delivery, zero polling). The 随行纪律 bullet stays as a pointer; the B-section boundary bullet is rewired to note the non-conflict with the report-time boundary post-[skill] pm-dispatch: 5 lessons from the domain:metadata seat's first term (8 cards MERGED / 0 rework / 4 dev-side falsifications) #6644 L2.Rider (
claude/pm-dispatch-spec-5ls2tr@bbe056b) — adopted, adaptedStill applicable: its batch-sweep, never-archive-before-merge (#7265/#7325) and unarchive-caveat content was absent from post-#7766 main. Folded into the existing B-section archival bullet rather than as a standalone
mode:cloudparagraph — post-#7766, the archival rule's single home is 入队与落地 B (the 随行纪律 bullet already points there), and a second paragraph would have created the competing-entry shape the card forbids. The rider's 6-line original text is preserved verbatim in references §「云卡归档欠账与 dirty 自救实测」 with provenance.Ratchet discipline (headroom was 0)
MAX_LINES = 2568and SKILL.md was exactly 2568 lines atorigin/main. All additions (~+30 gross) are fully offset within touched paragraphs by the #7766 convention: residual narrative moved verbatim toreferences/incidents.md(append-only tail, five new sections, each with a 出处 line: #7655 sequence evidence, roster measurement, subscription A/B, #6072 perception-gap tale, archival-debt + rider text) and by reflowing the narrow-wrapped paragraphs already being edited. SKILL.md lands at exactly 2568 lines; MAX_LINES untouched.Verification
pnpm check:pm-skill-ratchet✅ (2568/2568, headroom 0)pnpm check:skill-frame-sync✅ (4 copies isomorphic)pnpm check:doc-authoring✅ (375 files clean)pnpm check:nul-bytes✅pnpm --filter @objectstack/lint run check:doc-formula-expressions✅ (after building the lint dependency closure)§「…」pointer in SKILL.md verified to resolve to a real section header inreferences/*.md(script check, zero missing)No changeset:
.claude/-only change (internal agent tooling), per repo convention —skip-changesetat acceptance.Landing: skills updates are ADR-class (#7548) — this PR stays draft; ⛔ no auto-merge, no queue entry; the maintainer reviews and merges by hand.
🤖 Generated with Claude Code
https://claude.ai/code/session_01MJrrkG5usF1W3mX6RLyxNA
Generated by Claude Code