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
{{ message }}
Repository navigation
pm-dispatch SKILL: M-grade cards default to the subagent backend with per-dispatch model tiering — cloud reserved for L/XL, long-lived, browser-verify (maintainer ruling 2026-08-12) #7944
The factual precondition was confirmed before the ruling: the Agent tool takes a per-dispatch model parameter (sonnet / opus / haiku / fable) that overrides the agent definition's frontmatter pin; resolution order is env CLAUDE_CODE_SUBAGENT_MODEL → per-call param → frontmatter → inherit.
The revision (supersedes the 2026-08-10 「M 及以上默认云卡」 default)
S mechanical + M ⇒ mode:subagent (the PM's own container), with per-dispatch model tiering: S-mechanical sonnet, M opus, judgment-heavy fable; the mandatory claude-fable-5 clause for cards editing .claude/skills/pm-dispatch/** is unchanged and unaffected by size.
Cloud (mode:cloud) reserved for: L/XL cards; work that must outlive the PM session; browser/dogfood verification; and build-heavy M cards by explicit judgment (the shared-container contention that motivated the old default — docs/instruction M cards never hit it).
Rationale on record: cloud's three fixed taxes (archival debt — measured up to 11 forgotten containers on one seat; the create_session/poke/subscribe/collect plumbing; per-card container+clone startup) vs the subagent's one real cost (dies with the PM session — mitigated by the measured branch-early + report-at-draft-PR contract, SendMessage transcript revival, and the worktree handoff protocol).
Consequence: the archive duty applies only to cloud cards, shrinking the forgotten-container surface to L-grade dispatches.
Landing notes
Edits the backend/sizing section of .claude/skills/pm-dispatch/SKILL.md; ⚠️ ratchet headroom 0 — additions offset in-PR.
Model tiering mandatory clause: dispatch with model: claude-fable-5.
Batch conversion + claim — this card is the carrier of a consolidated dispatch (maintainer: 「刚才几个卡片可以合并开发」, 2026-08-12).
Composition — ONE os-dev subagent (mode:subagent, model: claude-fable-5 — this batch is itself the first run under the backend revision this card lands), two PRs:
Dispatched (PM loop round 4, skills seat): os-dev subagent, model: claude-fable-5, launched 2026-08-12 ~07:5xZ inside the PM session's container — the first dispatch under the backend revision this very batch lands (subagent for docs-M work; per-dispatch model param confirmed working). Two draft PRs expected per the composition above. Collection: os-dev-report comment here + the subagent's direct return channel; ADR-class terminal (human merge) on both.
{
"issue": 7944,
"status": "done",
"branch": "claude/issue-7944-pm-skill-backend-and-reads",
"pr": "https://github.com/objectstack-ai/objectstack/pull/7946",
"batch_members": {
"7944": "PR₁ https://github.com/objectstack-ai/objectstack/pull/7946 (Fixes #7944, Fixes #7942)",
"7942": "rides PR₁",
"7943": "PR₂ https://github.com/objectstack-ai/objectstack/pull/7948 (branch claude/issue-7943-agents-principles)"
},
"premise_still_valid": true,
"summary": "Both draft PRs open, both ADR-class awaiting human merge. PR₁ revises SKILL.md's dispatch backend per the 2026-08-12 ruling (S-mechanical + M ⇒ subagent with per-dispatch tiering; cloud reserved for L/XL / outlive-session / browser-verify / build-heavy-M; archive duty narrows to cloud cards; rationale recorded in references/dispatch-runbook.md) and adds the seat-post read boundary (body + comments newer than the body's last edit) with detail in references/seat-post-protocol.md — SKILL.md held at exactly 686 lines (ceiling 686, headroom 0), every addition offset in touched sections, offsets itemized in the PR body. PR₂ rewrites AGENTS.md principles-only: 1050 → 818 lines, 84,665 → 66,935 chars, 123 → 0 issue-ID citations; all 15 Prime Directives whole, rulings kept date + verbatim, RELEASE-OWNED anchor row byte-preserved (check:docs-audit-scope green), CLAUDE.md mirror updated in the same PR, id-lint scan set extended to AGENTS.md with no waiver (same-PR travel; dead os-dev waiver entry deleted, self-test now 10 cases); dropped-with-rationale list in the PR body for line-by-line review.",
"tests": "PR₁ worktree: check:pm-skill-ratchet green (686/686, headroom 0; self-test 5/5); check:pm-skill-id-lint green (8 files; self-test 9/9); check:skill-frame-sync green (4 copies isomorphic; self-test 12/12); check:doc-authoring green (375 files); check:nul-bytes green (7279 files; self-test 75 assertions). PR₂ worktree: check:pm-skill-id-lint green ('9 file(s) clean' incl. AGENTS.md at 0; updated self-test 10/10); check:pm-skill-ratchet green (SKILL.md untouched); check:skill-frame-sync green; check:doc-authoring green; check:nul-bytes green; check:docs-audit-scope green (affected-docs 56 + audit-scope 22 self-test cases; 'release-owned pages are in scope and read-only: 9 page(s)'). CI on both PRs: in_progress at report time — honest reading; PM owns convergence.",
"open_questions": [],
"out_of_scope_findings": []
}
skip-changeset: applied and read back on both PRs (7946: documentation, size/s, skip-changeset; 7948: size/xl, skip-changeset). Worktrees removed; no servers or monitors started.
Review: ACCEPT — PR #7946 (PR₁) + PR #7948 (PR₂), both at the ADR-class terminal: awaiting a human merge
First run of the subagent backend for an M docs batch, for the record: zero containers provisioned, zero archive debt, report via the direct return channel + on-card dual drop — the plumbing the ruling was bought for.
Verified against GitHub and the branches, not the report:
PR docs(pm-dispatch): subagent default for S+M with per-dispatch model tiering; seat-post read boundary #7946 (SKILL.md, 3 files): held at exactly 686 lines (ratchet ceiling untouched, offsets itemized in the PR body and spot-checked); #[0-9]{3,} = 0. Backend revision verified in the diff (「资源与后端(维护者 2026-08-12 裁定…)」 — S+M ⇒ subagent, cloud's reserved list, archive duty narrowed, rationale in references/dispatch-runbook.md); seat-post 读侧闭环 rule verified in both SKILL.md and references/seat-post-protocol.md (my first greps missed the wording — settled by reading the diff, not by trusting the claim). Mandatory claude-fable-5 clause intact. CI: fully green (Check Changeset re-ran to success; ESLint + TypeScript conclusions = success).
PR docs(agents): principles-only AGENTS.md rewrite — lessons distilled in place, no issue-ID citations #7948 (AGENTS.md + CLAUDE.md + id-lint, 3 files): 1050 → 818 lines, 123 → 0 issue-IDs (measured on the branch); all 15 Prime Directives present (counted in the section, content spot-checked); 「AGENTS.md wins」 present ×1; CLAUDE.md mirror at 0 IDs. Dropped-with-rationale list reviewed line by line — every entry is narrative/measurement whose normative content survives; nothing binding lost. Two flagged judgment calls both accepted: the header-side restatement of the wins-rule (additive, faithful, not an inversion) and the deletion of the dead os-dev waiver entry (blessed by the script's own header; the waiver mechanism stays self-tested with a synthetic entry — sound). check:docs-audit-scope green (RELEASE-OWNED anchor byte-preserved). CI: Check Changeset success; ESLint + TypeScript in_progress at review time — an honest reading; a red triggers a patch round before merge, and this seat is subscribed.
Terminal state: both PRs stay visibly hanging — the maintainer merges by hand. On landing, members close as: #7944 + #7942 via PR₁; #7943 via PR₂. The closing batch (#7945 + #7947, one subagent, one PR) dispatches when PR #7946 reaches MERGED.
Activity
os-zhuang commentedon Aug 12, 2026
Batch conversion + claim — this card is the carrier of a consolidated dispatch (maintainer: 「刚才几个卡片可以合并开发」, 2026-08-12).
Composition — ONE os-dev subagent (
mode:subagent,model: claude-fable-5— this batch is itself the first run under the backend revision this card lands), two PRs:claude/issue-7944-pm-skill-backend-and-reads): SKILL.md — this card's backend/tiering revision + pm-dispatch SKILL: seat-post reads cover only comments newer than the last body edit (token-waste fix, maintainer-approved) #7942's seat-post comment-read boundary.Fixes #7944,Fixes #7942. Ratchet headroom 0 — offsets in-PR.claude/issue-7943-agents-principles): AGENTS.md principles-only rewrite per AGENTS.md principles-only rewrite — the largest remaining per-dev-session text cost (maintainer-approved) #7943 (its cautions binding: human-readable, 「AGENTS.md wins」 preserved, CLAUDE.md mirror consistent, ID-lint extended with an order-independence waiver if needed).Fixes #7943.Claim: PM loop round 4 (skills seat)
Session:
session_012Gg6rMAti8ZaueWb6BRsDnBranch: the two branches above, both off
origin/main(≥8d80e12, post-#7938)Worktree: dedicated worktrees inside the PM session's container (subagent backend)
Domain:
domain:skillsFile surface:
.claude/skills/pm-dispatch/SKILL.md+references/seat-post-protocol.md(PR₁);AGENTS.md+CLAUDE.mdmirror +scripts/pm/check-skill-id-lint.mjsscan-set (PR₂). Stop on breach; explain in the report.Container & model: docs-only M batch,
mode:subagent(per the ruling this batch implements),model: claude-fable-5(mandatory clause)Serial constraints cleared: SKILL.md hot-file queue empty (principles-only batch fully landed — PR #7936
ab19075, PR #79388d80e12); zero open PRs touch SKILL.md, AGENTS.md, or os-dev.md (checked at claim time). Members #7942 / #7943 are not independent candidates (membership noted on each).Both PRs ADR-class: draft, human merge.
Generated by Claude Code
os-zhuang commentedon Aug 12, 2026
Dispatched (PM loop round 4, skills seat): os-dev subagent,
model: claude-fable-5, launched 2026-08-12 ~07:5xZ inside the PM session's container — the first dispatch under the backend revision this very batch lands (subagent for docs-M work; per-dispatch model param confirmed working). Two draft PRs expected per the composition above. Collection: os-dev-report comment here + the subagent's direct return channel; ADR-class terminal (human merge) on both.Generated by Claude Code
os-zhuang commentedon Aug 12, 2026
{ "issue": 7944, "status": "done", "branch": "claude/issue-7944-pm-skill-backend-and-reads", "pr": "https://github.com/objectstack-ai/objectstack/pull/7946", "batch_members": { "7944": "PR₁ https://github.com/objectstack-ai/objectstack/pull/7946 (Fixes #7944, Fixes #7942)", "7942": "rides PR₁", "7943": "PR₂ https://github.com/objectstack-ai/objectstack/pull/7948 (branch claude/issue-7943-agents-principles)" }, "premise_still_valid": true, "summary": "Both draft PRs open, both ADR-class awaiting human merge. PR₁ revises SKILL.md's dispatch backend per the 2026-08-12 ruling (S-mechanical + M ⇒ subagent with per-dispatch tiering; cloud reserved for L/XL / outlive-session / browser-verify / build-heavy-M; archive duty narrows to cloud cards; rationale recorded in references/dispatch-runbook.md) and adds the seat-post read boundary (body + comments newer than the body's last edit) with detail in references/seat-post-protocol.md — SKILL.md held at exactly 686 lines (ceiling 686, headroom 0), every addition offset in touched sections, offsets itemized in the PR body. PR₂ rewrites AGENTS.md principles-only: 1050 → 818 lines, 84,665 → 66,935 chars, 123 → 0 issue-ID citations; all 15 Prime Directives whole, rulings kept date + verbatim, RELEASE-OWNED anchor row byte-preserved (check:docs-audit-scope green), CLAUDE.md mirror updated in the same PR, id-lint scan set extended to AGENTS.md with no waiver (same-PR travel; dead os-dev waiver entry deleted, self-test now 10 cases); dropped-with-rationale list in the PR body for line-by-line review.", "tests": "PR₁ worktree: check:pm-skill-ratchet green (686/686, headroom 0; self-test 5/5); check:pm-skill-id-lint green (8 files; self-test 9/9); check:skill-frame-sync green (4 copies isomorphic; self-test 12/12); check:doc-authoring green (375 files); check:nul-bytes green (7279 files; self-test 75 assertions). PR₂ worktree: check:pm-skill-id-lint green ('9 file(s) clean' incl. AGENTS.md at 0; updated self-test 10/10); check:pm-skill-ratchet green (SKILL.md untouched); check:skill-frame-sync green; check:doc-authoring green; check:nul-bytes green; check:docs-audit-scope green (affected-docs 56 + audit-scope 22 self-test cases; 'release-owned pages are in scope and read-only: 9 page(s)'). CI on both PRs: in_progress at report time — honest reading; PM owns convergence.", "open_questions": [], "out_of_scope_findings": [] }skip-changeset: applied and read back on both PRs (7946: documentation, size/s, skip-changeset; 7948: size/xl, skip-changeset). Worktrees removed; no servers or monitors started.
Generated by Claude Code
os-zhuang commentedon Aug 12, 2026
Review: ACCEPT — PR #7946 (PR₁) + PR #7948 (PR₂), both at the ADR-class terminal: awaiting a human merge
First run of the subagent backend for an M docs batch, for the record: zero containers provisioned, zero archive debt, report via the direct return channel + on-card dual drop — the plumbing the ruling was bought for.
Verified against GitHub and the branches, not the report:
#[0-9]{3,}= 0. Backend revision verified in the diff (「资源与后端(维护者 2026-08-12 裁定…)」 — S+M ⇒ subagent, cloud's reserved list, archive duty narrowed, rationale inreferences/dispatch-runbook.md); seat-post 读侧闭环 rule verified in both SKILL.md andreferences/seat-post-protocol.md(my first greps missed the wording — settled by reading the diff, not by trusting the claim). Mandatoryclaude-fable-5clause intact. CI: fully green (Check Changeset re-ran to success; ESLint + TypeScript conclusions = success).check:docs-audit-scopegreen (RELEASE-OWNED anchor byte-preserved). CI: Check Changeset success; ESLint + TypeScript in_progress at review time — an honest reading; a red triggers a patch round before merge, and this seat is subscribed.Terminal state: both PRs stay visibly hanging — the maintainer merges by hand. On landing, members close as: #7944 + #7942 via PR₁; #7943 via PR₂. The closing batch (#7945 + #7947, one subagent, one PR) dispatches when PR #7946 reaches MERGED.
Generated by Claude Code