Skip to content

Reconcile os-dev contract and pm-dispatch channel references with measured seat reality - #12440

Merged
os-steve merged 4 commits into
mainfrom
claude/issue-12123-osdev-channel-reality
Aug 26, 2026
Merged

Reconcile os-dev contract and pm-dispatch channel references with measured seat reality#12440
os-steve merged 4 commits into
mainfrom
claude/issue-12123-osdev-channel-reality

Conversation

@os-steve

@os-steveos-steve commented Aug 26, 2026

Copy link
Copy Markdown
Collaborator

Fixes#12123
Fixes#12111
Fixes#12229
Fixes#12204
Fixes#12226
Fixes#12133
Fixes#12188
Fixes#12341

Family dispatch (8 folded members, one PR): every member reconciles written channel/contract text with measured platform reality on the same three-file surface — .claude/agents/os-dev.md, .claude/skills/pm-dispatch/references/platform-readings.md, .claude/skills/pm-dispatch/references/rest-channel.md. GOVERNED surface: opened as DRAFT, stays draft, no auto-merge — maintainer reviews and merges by hand.

Ratchet readings (gate: check:pm-skill-ratchet, run at head 2377fb33)

filebefore (tree db8c2881)afterceiling
.claude/agents/os-dev.md468469470
references/platform-readings.md314314314
references/rest-channel.md878787

All adds paid by same-file cuts; every line within the 120-byte budget. Gate verdict lines: "os-dev.md is 469 lines (ceiling 470; headroom 1)", "platform-readings.md is 314 lines (ceiling 314; headroom 0)", "rest-channel.md is 87 lines (ceiling 87; headroom 0)".

Per-member coverage

Merge-queue readings: the arm-verification sequence in platform-readings now carries the superseding procedure — queue-ref positive is the decisive read (also when PR reads are stale for ~15 minutes after a human merge); on absence run update-branch first to surface a hidden conflict (a silent conflict never enters the queue and does not eject the armed PR); only then re-arm, where a 405 "already in the merge queue" on retry is the decisive positive. The superseded empty-fields no-op signature is explicitly recorded as refuted ("空回显≠未挂上").

Cut ledger (adds paid by same-file cuts; every dropped detail survives in git history at db8c2881)

  • os-dev.md: superseded curl additive-label spelling dropped (endpoint spelling lives in rest-channel.md); falsified "measured reachable from dev seats" claim replaced by the session-class conditional; clean-shutdown incident narrative (four same-shape stalls in one day) replaced by the newer post-remedy recurrence measurement; model-pin comment, filing-discipline passage, verify-lock rule 1, foreground rule 6, NUL paragraph and footer paragraph tightened in wording with all facts kept.
  • platform-readings.md: rate-limit-as-probe dual-duty claim (falsified by measurement) replaced; WebFetch rendered-page row folded into the payload row; churn-then-flip verification heuristic superseded by the augment procedure; evidence-detail compressions (exact timestamps, one of three OR-side examples, downgrade chain model names, second character-count figure, five-shape probe wording, GH-debug spelling) in rows otherwise untouched in meaning. Review amend: the seat-matrix row now records the gate variance (both dated readings plus the top-level split) instead of a uniform per-class claim; the net add is paid by tightening the silent-downgrade row's wording (facts kept).
  • rest-channel.md: global check-mark assertion replaced by the session-class-qualified header; merge-group counter tombstone, merged-by row, three-readings row and the draft-flip / issue-transfer items tightened.

Verification

  • check:pm-skill-ratchet green at head 2377fb33 (readings above; exit captured before any pipe).
  • Derived gate union (from node scripts/pm/dispatch-gates.mjs, no paths passed; derivation header named this repo) re-run as one AND-chain under the verify lock at head 2377fb33: check:agent-model-declared, check:agent-test-spelling, check:doc-authoring, check:doc-formula-expressions (after building its two prerequisite packages), check:nul-bytes, check:pm-governed-merges, check:pm-skill-id-lint, check:pm-skill-ratchet, check:skill-frame-sync — lock verdict line: "VERDICT command-exit 0 · held the lock 18s". check-governed-queue-guard is NOT MEASURED locally by design (it reads the CI event payload and refuses to pass without one); it runs in CI, and this PR's landing path (draft, no queue, no auto-merge) is the state it guards.
  • skip-changeset applied via the additive endpoint (HTTP 200 from this seat — the open-gate counterexample now recorded in the matrix row itself) and read back after the size-labeler ran: documentation, size/m, skip-changeset.

Generated by Claude Code

os-dev.md half of the channel-reality fold: label-step gated-seat fallback
(MCP read-union-write-readback) and objectui phantom-label mechanism
statement; zero-quota payload read tier + mcp_calls report field; slot
parking on the verify-lock queue; mechanical stall self-check; pre-installed
Chromium fact; commit-before-ablation companion clause; tail/PR-body
read-back and placeholder-word spelling for GitHub-bound text.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JANH3y7qe3MD8aLaLXci8N
@github-actionsgithub-actionsBot added size/m documentation Improvements or additions to documentation labels Aug 26, 2026
Repo-scoped probe replaces the rate-limit dual-duty claim; rate-limit
becomes the one-call credential discriminator; 2026-08-25 seat matrix
(subagent seats gated on reads AND writes, gh absent, MCP + git push fine);
payload tier added to the default read order and degradation ladder;
augment-5 queue procedure (queue-ref decisive read, update-branch conflict
surfacing, 405 retry positive) supersedes the churn heuristic; blocked
download recorded as not-proof-of-absence. Adds paid by same-file cuts.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JANH3y7qe3MD8aLaLXci8N
The channel-boundary header now states the marks were measured in a
session-gate-open seat and that gated seats (os-dev subagents and some
top-level seats, 2026-08-25) get 403 on the whole repo-scoped class, reads
and writes; probe-first with the rate-limit credential discriminator; the
additive-label row names the measured MCP read-union-write-readback
fallback; semantic-search fallback qualified for gated seats. Adds paid by
same-file cuts.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JANH3y7qe3MD8aLaLXci8N
@claudeclaudeBot added the skip-changeset PR has no user-facing published change; bypasses the changeset gate label Aug 26, 2026
PM review amend: the matrix row overclaimed (subagent seats uniformly
gated) with a same-day counterexample from the seat that wrote it. Now
records both readings — 2026-08-25 five-plus dev seats all gated, and the
2026-08-26 open-gate os-dev seat (additive POST 200, rate-limit 15000/hr)
— concluding gate state varies per container and the repo-scoped probe is
the only safe read. Net add paid by tightening the silent-downgrade row.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JANH3y7qe3MD8aLaLXci8N
@os-steve
os-steve marked this pull request as ready for review August 26, 2026 05:00
@os-steve
os-steve added this pull request to the merge queueAug 26, 2026
Merged via the queue into main with commit 04600d9Aug 26, 2026
29 checks passed
@os-steve
os-steve deleted the claude/issue-12123-osdev-channel-reality branch August 26, 2026 05:25
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentationImprovements or additions to documentationsize/mskip-changesetPR has no user-facing published change; bypasses the changeset gate

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[finding] The hardened restore idiom destroys UNCOMMITTED work — git checkout HEAD -- PATH wipes the implementation under test, and #11648's fix made this more likely, not less [finding] os-dev background-wait stall RECURRED after the written remedy — 2 of 5 devs in one wave, both under verify-lock contention; the rule exists and is not holding [finding] The prescribed HTML-comment report marker does not survive the comment sanitizer — measured twice in one shift, and the recovery leaves orphaned report comments a marker scan cannot see [finding] os-dev subagent seats have no direct GitHub REST channel — GITHUB_TOKEN is a placeholder, curl gets the session-gate 403, gh is absent — while dispatch protocol text assumes REST list endpoints are reachable [finding] The os-dev quota fix (#11365/#11364) is inert on container seats — REST is 403 there; a zero-quota read channel gets a dev from ~5,658 points to 3 MCP calls (measured)

2 participants

@os-steve@claude