Repository navigation
pm-dispatch: the domain table splits the governed-surface mechanism across two lanes — anchor instruction-architecture and governance-enforcement files to domain:skills #9528
Description
Activity
os-support-ai commented
on Aug 18, 2026 CollaboratorMore actionsClaim: PM loop round 1 (skills seat, post-takeover)
Session:session_01WswfK2yNYT9hNnMH6TzAwL
Branch:claude/issue-9528-domain-table-skills-anchor
Worktree:objectstack-issue-9528
Domain:domain:skills
File surface:.claude/skills/pm-dispatch/SKILL.md(domain-lane table rows + guards-index only; ratchet 682/682 headroom 0 — additions paid by cuts inside the same file) (stop on breach; explain in the report)
Container & model: M,mode:subagent,model: claude-fable-5— dispatch-gates --tier output this round: "MANDATORY: claude-fable-5 … .claude/skills/pm-dispatch/SKILL.md ⇢ '.claude/skills/pm-dispatch/**' — clause ① of the model-tiering ruling"
Clause-②: no — internal instruction text; changes no contract accept/reject behaviour, widens no public surface
Serial constraints cleared: predecessor same-file PR #9523 (SKILL.md, #9495 retirement) MERGED 2026-08-18 07:53Z, so the hard same-file serial this card's body names is discharged; zero open PRs touch.claude/skills/**(open-PR list read this round); read-coupled sibling: devx PR #9527 (#9403, AGENTS.md PD#14 rewrite) in flight — file surfaces disjoint (AGENTS.md vs SKILL.md), no pin in this card asserts #9527's behaviour; merge-order reconciliation already recorded on #9403.Premise re-verified against
origin/main@53fc099(post-#9523): thedomain:skillstable row still carries only the two skill roots;AGENTS.mdstill has no owner row in the table;scripts/(门禁类) still sits unqualified in the devx row;check-governed-merges.mjsexists underscripts/pm/**. Blocked-by #9495 closed via merged PR #9523.Governed surface ⇒ deliverable is a DRAFT PR, human merge only.
Generated by Claude Code
os-support-ai commented
on Aug 18, 2026 CollaboratorMore actions{ "issue": 9528, "status": "done", "branch": "claude/issue-9528-domain-table-skills-anchor", "pr": "https://github.com/objectstack-ai/objectstack/pull/9536", "premise_still_valid": true, "summary": "Amended the domain-lane table in .claude/skills/pm-dispatch/SKILL.md per the 2026-08-18 maintainer ruling: the domain:skills row now carries root AGENTS.md + root CLAUDE.md (instruction-architecture files), .github/CODEOWNERS (governance-routing half), and gates/audits whose SUBJECT is the governed surface itself (currently scripts/pm/check-governed-merges.mjs, referencing the existing guards-index row); the domain:devx row states the SUBJECT divider inline in its scripts/(gate-class) entry. Both edits extend existing single-line table rows in place: diff is 2 lines changed / 0 added, so the 682/682 ratchet is held with no payment cut owed. Draft PR on the governed surface — human merge only; skip-changeset applied via read-modify-write and read back (labels: size/xs, skip-changeset).", "tests": "Base origin/main @ 02ebb6f (re-fetched; moved from 53fc099 since claim — premises re-verified on 02ebb6f before editing). Gate union re-derived post-commit via node scripts/pm/dispatch-gates.mjs (no paths; change set 1 file vs merge base 02ebb6f5b) = exactly the six dispatched families, none added. All re-run at final head 53b34c8 on a clean tree, all exit 0: check:pm-skill-ratchet (SKILL.md 682/682 ceiling, headroom 0; references files at their own ceilings, untouched) · check:pm-skill-id-lint (9 files clean) · check:pm-governed-merges (--self-test 25 assertions) · check:skill-frame-sync (4 copies isomorphic) · check:doc-authoring (377 files clean) · lint check:doc-formula-expressions (after building the lint dependency closure — first run failed on missing @objectstack/formula dist in the fresh worktree, not on the diff). scripts/check-nul-bytes.mjs exit 0. files_changed: .claude/skills/pm-dispatch/SKILL.md only (+2/-2). Deviations: none; CI convergence left to PM per standing terms.", "open_questions": [], "out_of_scope_findings": [] }
Generated by Claude Code
Generated by Claude Code
os-support-ai commented
on Aug 18, 2026 CollaboratorMore actionsACCEPT — PR #9536 (reviewer of record: skills seat, session
session_01WswfK2yNYT9hNnMH6TzAwL). Governed surface ⇒ terminal three-step applies: this conclusion lands here, the PR stays draft awaiting a human merge (⛔ no seat flips it ready / enqueues / arms auto-merge), and the round report lists it under "awaiting a human merge".Checklist conclusions, verified against GitHub / a local run at the PR head
53b34c8— not the report's self-description:- Shape: draft, base
main, first lineFixes #9528. Changed files = exactly.claude/skills/pm-dispatch/SKILL.md(+2/−2, two table rows extended in place) — matches the claimed file surface;skip-changesetpresent. - Content vs the ruling: the
domain:skillsrow now anchors rootAGENTS.md+ rootCLAUDE.md,.github/CODEOWNERS, and SUBJECT-is-the-governed-surface gates (namingcheck-governed-merges.mjsby pointer to the guards index, no duplication; future same-subject clause present); thedomain:devxrow states the SUBJECT divider inline while keeping its original content verbatim. Maintainer quote carried untranslated. All four anchors the card required are present. - Ratchet: 682/682 held with a genuinely zero-line diff — no payment owed, no re-wrap used (verified from the patch: pure in-row extension).
- Local gate re-run at
53b34c8(my own run):check-skill-line-ratchetexit 0 ·check-skill-id-lint9 files clean ·check-skill-frame-sync4 copies isomorphic ·check-governed-merges --self-test25 assertions. Report's local-gate head matches the PR's current head. - Deviation: none.
@maintainer: this PR is ready for your sitting — merging it makes the domain-table anchoring live for the triage seat's next routing round.
Generated by Claude Code
- Shape: draft, base
os-support-ai commented
on Aug 18, 2026 CollaboratorMore actionsClose-out accounting (skills seat, session
session_01WswfK2yNYT9hNnMH6TzAwL): PR #9536 MERGED 2026-08-18 09:52Z via the maintainer's own enqueue (merge-is-review sitting), landed asda808c6. Card auto-closed viaFixes(verified:closed_bythis PR only). Removing the stalepm:dispatchedlabel (read-modify-write, read back). The domain-table anchoring is live: instruction-architecture files, CODEOWNERS and governed-surface-subject gates now route todomain:skills; the devx row carries the SUBJECT divider.
Generated by Claude Code
Blocked-by: #9495
Maintainer ruling (2026-08-18, PM chat, skills-seat session
session_01Rn7aaamsR99FXRqLcpL99q), verbatim: 「skills 相关的应该都归你管,为什么派给了 devx」 — stated after a measured collision: the devx lane extended the ADR gate toskills/**(#9511, landed) in the same hours the skills lane retired that gate under the #9495 ruling (PR #9523) — opposite directions on one mechanism, hours apart, because the domain table anchors by file location and the governance mechanism's files sit in devx territory (scripts/门禁类,.github/**) while the governed surfaces and protocol text sit in skills territory.AGENTS.mdhas no owner in the table at all — the skills seat claims it in its seat post, but triage routes from the table, which is how #9403 landed in devx.Change (the 域车道 table in
.claude/skills/pm-dispatch/SKILL.md)Add to the
domain:skillsrow (and state the boundary in the devx row where needed):AGENTS.md,CLAUDE.md— instruction-architecture files (all agent-facing constitution text);.github/CODEOWNERS— the governance-routing half of the governed surface;scripts/pm/check-governed-merges.mjs, already underscripts/pm/**) and any future gate/audit whose subject is the governed surface itself.Boundary kept honest:
domain:devxretains genuine dev-tooling gates (lint machinery, doc gates,scripts/general 门禁类) — the divider is the gate's SUBJECT: a gate that governs agent-instruction surfaces routes to skills; a gate that governs code/docs quality routes to devx.Serial constraint: the table lives in
SKILL.md, which PR #9523 (the #9495 retirement) currently edits — hard same-file serial, dispatch after #9523 merges. Fable (clause ① path mandate); ADR-class human merge. In-flight devx cards (#9403, #9519) finish where they are per the no-mid-flight-transfer rule; cross-lane coordination notes already on #9513/#9403.