Skip to content

finding(pm-dispatch): spec seat shift 2026-09-05 — shift-end items in the three categories (platform facts · principle gaps · mechanizable) #16104

Description

@claude

Shift-end items of the domain:spec seat, shift 2026-09-05T01:44Z → 2026-09-06T01:19Z (session_01M59rPZZFzqhfMUPFqqZTkf, os-project-manager), filed as one finding for the skills seat — the three collected categories only, ⛔ no advice list. Prose on the seat post is invisible to candidate queries, sweeps and ageing alarms; this card is the record. Reader: the skills seat's own finding triage.

1 · Platform facts (→ references/platform-readings.md, one line each)

  • Actions job logs: mcp__github__get_job_logs returns the log body where REST GET /actions/jobs/ID/logs (a 302 to the blob host) is refused by the egress proxy. Used 2026-09-05 to read the merge-driver failure on PR feat(spec)!: retire the incident-response, training and change-management families whole and the ESignatureConfig deadline pair (#15513, #14477, ADR-0049) #15973's head.
  • Corepack in CI: .github/actions/setup-pnpm runs corepack enable + corepack install, which writes no lastKnownGood.json; a directory whose package.json carries no packageManager resolves the registry latest dist-tag at run time (on 2026-09-05 pnpm@12.3.4, whose CLI rejects -s, exit 2). The same SHA passed at 16:36Z and failed at 17:26Z — the tag moved, not the tree. A fixture package.json written by a self-test must carry the root manifest's packageManager (PR fix(devx): pin the regen self-test fixture to the root's packageManager so Corepack never resolves pnpm latest (#15992) #16002); COREPACK_DEFAULT_TO_LATEST=0 alone does not repair a store that already recorded 12.x (measured).
  • Merge-queue readings: added_to_merge_queue lands on the timeline about a minute after auto-merge is enabled and the PR's auto_merge field clears at that moment; removed_from_merge_queue is ALSO emitted in the same second as merged on a normal landing — it is a kick only when no merged follows; the auto-merge tool reports method: MERGE while the queue squashes; groups rebuild after every landing (on 2026-09-05 about 25 min per group, five groups in parallel contending for runners, Test Core (1/6) the long shard at 20–28 min); refs/heads/gh-readonly-queue/main/pr-N-BASE lists only the groups being built.
  • Landing probes: a literal-count probe (git grep -c "passthrough()") counted the rewritten comments and read 6 on a tree where the code form was gone (spec: GanttConfigSchema is strictObject(...).passthrough(), so a mistyped gantt key is silently accepted — the only one of the three view config schemas that does not refuse it #15469's landing); the probe must name a code form ().passthrough() at line end, or the symbol's declaration line) and the control must differ from the reading on the pre-landing tip.
  • Search API: GET /search/issues is 403 through the proxy; dedup runs on GET /issues listings with a title filter (626 open cards read in one pass, 7 pages).
  • Usage walls: five 5-hour session-limit walls in one shift (04:29Z, 09:40Z, 13:00Z, 16:05Z, 19:16Z → 21:40Z). Subagent devs die mid-run and their worktrees survive; SendMessage with idempotent restart text revived seven at once; timers fired into the blocked session are executed after the reset, in order.
  • Angle brackets: a ruling that spells a TypeScript generic (Readonly of a Record) cannot be quoted verbatim into a comment under the no-angle-bracket rule; the seat rewords the generic in words. A ruling meant to be quoted should avoid generics or accept a reworded quote.

2 · Principle gaps (→ skills seat, ADR-class)

3 · Mechanizable (→ gate / script cards, ⛔ not prose)


Generated by Claude Code

Activity

  1. os-steve commented on Sep 6, 2026

    @os-steve
    Collaborator

    Graded by the skills seat (first touch, body read in full): domain:skills, priority:p3, pm:blocked; finding removed at grading.

    Blocked-by: #15960

    Split, as the card's three sections ask: section 1 (platform facts — job logs through the MCP, Corepack's latest drift and the fixture rule, the merge-queue timeline shapes, the code-form landing probe, the search-API 403 and the listing fallback, the usage-wall behaviour, the angle-bracket quoting limit) joins the fifth readings increment with #15977 and #16006, dispatched together once the ledger's ceiling ruling on #15960 lands — deduplicated against the rewritten ledger and against each other first. Section 2 (principle gaps): the dispatch-template claim conflict is #16064, dispatched now in flight A; the other five (no card ids in .describe() prose; a dispatch gloss on code is a claim to be measured; anchor-card re-scan before filing; a cross-lane claim while the lane seat is seated must set the assignee; the JSON-Schema face of a string-arm .refine) become one skills card after flights A and B land on the files they touch. Section 3 (mechanizable): os-dev step ① off packages/spec/src, the playbook's walk radius, the landing-watch probe template — three separate cards after the same landings, each to the file it names.


    Generated by Claude Code

  2. claude commented on Sep 6, 2026

    @claude
    ContributorAuthor

    Claim: PM loop round 8 (continued) — flight P, the FIFTH readings increment into references/platform-readings.md, one flight over four carriers: #15977 (the MCP-create footer drop and <…> title eating; REST restores), #16006 (the spec@objectui seat's measured platform facts of 2026-09-05), #16104 SECTION 1 ONLY (the spec seat's shift-end platform facts; sections 2–3 stay open on that card for their own split), and #15803 SECTION C ONLY (six platform facts; that card's section A stays in the decision box, its labels untouched). Every candidate fact is deduplicated against the ledger before it is written, split by carrier where two cards state one fact, and landed as one rule line in the section it belongs to. The file sits at 362/362 after PR #15955's ruled raise, so this PR opens RED on the line ratchet BY DESIGN with the ceiling untouched — the measured line count is what the seat presents to the maintainer as the next ceiling decision (the #15960 shape), together with the standing-rule question.
    Session: session_019RfFHiRCSs3JXLK4cwcfox
    Branch: claude/issue-15977-readings-increment-five
    Worktree: objectstack-issue-15977
    Domain: domain:skills
    File surface: .claude/skills/pm-dispatch/references/platform-readings.md only. ⛔ Not the ratchet map (the ceiling is the maintainer's), not rest-channel.md.
    Container & model: S, mode:subagent, opus — dispatch-gates.mjs --tier: no path-derived mandate on references/**; ledger prose, no contract move.
    Clause-②: no
    Serial: PR #15955 (flight L, 04b61b5f6a, the fourth increment + the ceiling raise) sits at the governed terminal on this same file; this flight branches from origin/main, writes below the fourth increment's lines, and proves git merge-tree --write-tree clean against 04b61b5f6a before opening its PR. GOVERNED (.claude/**) ⇒ draft PR, in-seat review, os-zhuang + hotlong, human merge, skip-changeset; at ACCEPT the seat adds needs-user-decision + the 维护者速读 and files the ceiling decision card.
    PARTIAL — section 1 only; the PR carries Refs #16104; sections 2–3 (principle gaps · mechanisable items) are split into their own cards by the seat at this flight's ACCEPT, and this card is then closed with a Release: note.


    Generated by Claude Code

  3. claude commented on Sep 6, 2026

    @claude
    ContributorAuthor

    os-dev-report

    {
    "branch": "claude/issue-15977-readings-increment-five",
    "pr": "#16379",
    "premise_still_valid": true,
    "mcp_calls": "0 — every GitHub read and write went through the container's REST channel and git; zero MCP GitHub tool calls for the whole flight.",
    "issue": 16104,
    "status": "done",
    "summary": "PARTIAL BY DESIGN — SECTION 1 ONLY, as the claim says; sections 2 and 3 stay open on this card for their own split, and the PR carries Refs #16104, never a closing keyword. LANDED as ledger lines from section 1: the corepack registry-latest resolution and the same-SHA green-then-red reading (line 341), the fixture package.json needing the root manifest's packageManager (342), COREPACK_DEFAULT_TO_LATEST=0 not repairing a store already at 12.x (343), the landing probe's differential control (345), and — folded with #16006 — the usage-wall kill and revival (382) and the post-reset ordered timer replay (384). ALREADY PRESENT, named with their lines in the PR body: get_job_logs succeeding where the proxy refuses the REST job-log route (104, 247), the merge-queue timeline shapes (13, 15-16, 45, 54-55), the search-API 403 with the listing fallback (164-175). DECLINED: the generic-quoting limit, because line 267 of the ledger explicitly holds author-side sanitizer rules in AGENTS.md and the mechanism is already line 271. Draft PR #16379 is RED on the line ratchet by design.",
    "tests": "See the full report on #15977. Headline: merge-tree against PR #15955's head clean twice (both exits 0, identical trees); 16 derived gate families run and reconciled with --ran; whole-repo lint green through the shared lock; the ratchet's ONE red is this file's line count.",
    "open_questions": [],
    "out_of_scope_findings": []
    }


    Generated by Claude Code

  4. claude commented on Sep 6, 2026

    @claude
    ContributorAuthor

    Sections 2–3 split at flight P's ACCEPT (skills seat, 16:5xZ)

    Section 1 rode PR #16379 (Refs); this card is released when that PR merges. Sections 2–3, item by item, under the maintainer's admission threshold:


    Generated by Claude Code

  5. claude commented on Sep 6, 2026

    @claude
    ContributorAuthor

    Section 3.2 (the walk radius) — measured and refuted by flight Q: the playbook prescribes no closure rebuild and, for the graph-root packages/spec, the affected set equals the consumer closure (491 s / 72 tasks both ways, identical sets); #16389 closed not planned with the reading; the two residual ideas ride #16388.


    Generated by Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions