Repository navigation
feat(pm): count outside demand in the daily summary and put human-opened cards first within a priority - #29572
Conversation
…ned cards first within a priority The director's daily summary gains an outside-demand line with three numbers read at summary time: cards opened in the window by human accounts, their share of the window's closed cards, and the open human-opened cards with no pm:* state, each with its age. The candidate order breaks a same-level tie by author before Bug and age; it never raises a card's priority and never jumps p0. Every App author counts as the fleet. h67ReadOrder, the only scripts/pm reader that sorts candidates by priority, takes the same leg between rank and age; the H67 self-test pins it on two cards of one priority. Both ratcheted texts stay at their ceilings: director.md folds its one-bullet boundary section into the charter, execution-duties.md merges the two action-surface lines. Co-authored-by: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01J8VVAjYZRbZ8TG8TRzG5zd
The ruling-implementation re-check of the action surface was merged into the action-surface line to buy the tie-break's line; a merge is a re-wrap and does not pay a ratchet. Drop the line instead and keep its content in the work-item surface, which now names the ruling's items beside the card's and the triage comment's. Co-authored-by: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01J8VVAjYZRbZ8TG8TRzG5zd
Co-authored-by: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01J8VVAjYZRbZ8TG8TRzG5zd
|
domain:skills#1 · huangyiirene · session_01J8VVAnMUWA9rufXzFaEh4J Contract-review-claim: session_01J8VVAnMUWA9rufXzFaEh4J · head 7d105ed · 2026-11-02T19:00Z The seat review runs at CONTRACT_REVIEW_TIER in an isolated subagent (the seat session is not at that tier). |
|
domain:skills#1 · huangyiirene · session_01J8VVAnMUWA9rufXzFaEh4J Contract reviewServed-tier: Reviewer: an isolated contract reviewer at CONTRACT_REVIEW_TIER, read-only on GitHub (REST reads only; nothing written, pushed or commented), fed the card body and comments, the PR body, the net diff against the merge-base, the head's check-runs, contract-review.md and review-checklist.md. The dev report was read as input, not as conclusions; every count below is this review's own measurement. No environment variable value is printed anywhere in this record; the one token-bearing run passed it by substitution and never echoed it. ① Derived judgmentsThe card's three Change items, its two done-when lines, the claim's surface and the PR's claims, one at a time:
② Semver levelNone. No published package, no ③ Boundary flags
④ Design judgmentPer hits file, against the card's scenario (the maintainer wants one reading of how much of the week answers demand from outside the fleet, and wants a human-opened card reached before a fleet-opened one of the same priority, with no new mechanism):
Must-fix: none. Should-fix:
Check-runs at record time (2026-11-02T19:18Z): 51 check-runs on 7d105ed, all completed, 31 success, 20 skipped, 0 failure, 0 in progress (a first read a few minutes earlier had 3 in progress: Live half-state sweep, Test Core (1/8), Type Check · consumer gates; all three are success now). Success: Lint & Repo Gates, TypeScript Type Check, Test Core (and shards 1/8, 2/8), Governed Surface Queue Guard, Test UI, Lint · ESLint, Lint · docs & code guards, Lint · repo & tooling gates, Lint · scoped · tooling self-tests, Lint · scoped · slot lookup & corpus, Lint · scoped · query-options erasure, Lint · PM dispatch-gates, Lint · CI, release & engine gates, Type Check · workspace / source gates / debt ledger / consumer gates, PR-body guards, Check Changeset, Check PR Size, Dogfood Regression Gate, Plan Test Core shards, Auto Label, filter, Live half-state sweep, Live required-set sweep, Platform checklist gate sweep, Release section-coverage sweep, Snapshot the board to the archive branch. Skipped by path filter: Build Core, Build Docs, Build UI Deps, Lint UI, Type Check UI, Build & E2E UI, Live E2E UI, UI Published Artifacts, Temporal Conformance, Dogfood Verify CLI, Schedule gate and the opt-in lanes. Combined status Implemented-by: VERDICT: PASS with should-fixes (S1 the seat-account question on a follow-up card; S2 the window test named on line 77; S3 PR-body figures) Generated by Claude Code |
…mes its window test A card is fleet-authored when an App opened it or when its body opens with a seat signature, since seat-operated human accounts file cards too. h67ReadOrder reads the signature with readSignatureLine, the one reader record-recognisers.mjs also imports, and the H67 self-test pins a seat-signed human card behind an older fleet card next to the same card with the signature off its first line. The daily-summary and candidate-order lines carry the same definition, and the summary query names the local created_at / closed_at window test that the since listing needs. All edits are in place: both files stay at their ceilings. Co-authored-by: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01J8VVAjYZRbZ8TG8TRzG5zd
|
domain:skills#1 · huangyiirene · session_01J8VVAnMUWA9rufXzFaEh4J Contract reviewServed-tier: Reviewer: an isolated contract reviewer at CONTRACT_REVIEW_TIER, read-only on GitHub (REST reads only; nothing written, pushed or commented), fed cr23's PASS on 7d105ed, the seat's amended ruling (a card is fleet-authored when its author is a [bot] App OR its body's first line is a seat signature), the delta diff, the net diff against the merge-base, the PR body, the head's check-runs. This record judges only what moved since 7d105ed; cr23's judgments stand where the lines are unchanged. The dev's figures were read as input; every count below is this review's own measurement. No environment variable value is printed anywhere in this record. ① Derived judgmentsThe delta, one claim at a time:
② Semver levelNone, unchanged from cr23. No published package, no ③ Boundary flags
④ Design judgmentPer hits file, against the card's scenario (one reading of how much of the week answers demand from outside the fleet; a human-opened card reached before a fleet-opened one of the same priority; no new mechanism), on what moved:
Must-fix: none. Should-fix:
Check-runs at record time (2026-11-02T19:53Z): 50 check-runs on cbc61eb, all completed, 31 success, 19 skipped, 0 failure, 0 in progress (a first read a few minutes earlier had 15 in progress, a second had Test Core 1/8 alone; all are success now). Success: Lint & Repo Gates, TypeScript Type Check, Test Core (and shards 1/8, 2/8), Governed Surface Queue Guard, Test UI, Lint · ESLint, Lint · docs & code guards, Lint · repo & tooling gates, Lint · scoped · tooling self-tests, Lint · scoped · slot lookup & corpus, Lint · scoped · query-options erasure, Lint · PM dispatch-gates, Lint · CI, release & engine gates, Type Check · workspace / source gates / debt ledger / consumer gates, PR-body guards (×2), Check PR Size, Dogfood Regression Gate, Plan Test Core shards, Auto Label, filter, Live half-state sweep, Live required-set sweep, Platform checklist gate sweep, Release section-coverage sweep, Snapshot the board to the archive branch. Skipped by path filter: Check Changeset (label), Build Core, Build Docs, Build UI Deps, Lint UI, Type Check UI, Build & E2E UI, Live E2E UI, UI Published Artifacts, Temporal Conformance, Dogfood Verify CLI, Schedule gate and the opt-in lanes. Combined status Implemented-by: VERDICT: PASS with should-fixes (S1 Generated by Claude Code |
Number two needs the window's closed cards, and the default listing is open-only, so the query line names the all-state listing again. Edited in place; the file stays at its ceiling. Co-authored-by: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01J8VVAjYZRbZ8TG8TRzG5zd
|
domain:skills#1 · huangyiirene · session_01J8VVAnMUWA9rufXzFaEh4J Contract-review-claim: session_01J8VVAnMUWA9rufXzFaEh4J · head f64ec72 · 2026-11-02T19:57Z The seat review runs at CONTRACT_REVIEW_TIER in an isolated subagent (the seat session is not at that tier). |
|
domain:skills#1 · huangyiirene · session_01J8VVAnMUWA9rufXzFaEh4J Contract reviewServed-tier: Reviewer: an isolated contract reviewer at CONTRACT_REVIEW_TIER, read-only on GitHub (REST reads only; nothing written, pushed or commented). This is a DELTA record: it judges cbc61eb → f64ec72 and carries forward cr23's full review of 7d105ed (comment 6586209918) and cr26's delta review of cbc61eb (comment 6586977645), whose judgments on every other line of the three files are unchanged by this delta. No environment variable value is printed anywhere in this record. ① Derived judgments
② Semver levelNone, unchanged from cr23 and cr26. Governed rules text only on this delta, no published package; ③ Boundary flags
④ Design judgmentOne word restored in place, one redundant parenthetical dropped to pay for it, no line added, no re-wrap, ceiling held, 2 B of headroom gained on the line: the right size of change for a one-line correction on an 86-line charter at its ceiling. The line now says the one thing the previous head's edit had lost (the ①② listing includes closed cards) while keeping the one thing that edit had gained (the local window test on Must-fix: none. Should-fix: none new (cr26's S3, the 141 B comment line in check-half-states.mjs, is carried forward as cosmetic and does not need a new head). Check-runs at record time (2026-11-02T21:45Z): 50 check-runs on f64ec72, all completed, 31 success, 19 skipped, 0 failure, 0 in progress (read by the seat after the reviewer finished; the reviewer's session ended before its own final read). Success includes Governed Surface Queue Guard, Lint & Repo Gates, Lint · PM dispatch-gates, Lint · repo & tooling gates, Lint · scoped · tooling self-tests, Live half-state sweep, TypeScript Type Check and its four sub-gates, Test Core, Test UI, Dogfood Regression Gate, PR-body guards. Skipped by path filter: the build, UI, E2E and opt-in lanes. Tier S ( Implemented-by: VERDICT: PASS Generated by Claude Code |
|
domain:skills#1 · huangyiirene · session_01J8VVAnMUWA9rufXzFaEh4J 维护者速读
席位核对 — ACCEPT · domain:skills#1 · head
|
domain:skills#1 · huangyiirene · session_01J8VVAnMUWA9rufXzFaEh4J
Requested by Irene · project thread
Fixes #29467
Clause-②: no
Metadata-protocol: none
维护者速读
lanes/director.md职责四新增三行;execution-duties.md同级平手规则;check-half-states.mjs的h67ReadOrder。node scripts/pm/check-half-states.mjs --self-test,预期末行 H67 组 158/158 全过。What changes
lanes/director.md, duty four): the summary lists an outside-demand line, defined in three new lines. The three numbers are read when the summary is written: (1) cards opened in the window by non-fleet authors; (2) the share of the window's closed cards that non-fleet authors opened; (3) the open non-fleet cards with nopm:*state, each named with its age. The query is spelled out and posted with the line. For 1 and 2 it takes the all-statesincelisting from the window start, which is a superset, and counts a card only when itscreated_at(for 1) orclosed_at(for 2) falls in the window. For 3 it takes the open listing. Pull requests are excluded from all three.user.typeBot, every[bot]login,github-actions[bot]included), OR whose body's first non-empty line is a seat signature. Seat-operated human accounts file cards too, and the card's own measurement excluded seat posts. Every other card is non-fleet.execution-duties.md): within one level of the order, a non-fleet card sorts first, thenBug, then card age. The rule never raises a card's level and never jumpspriority:p0.h67ReadOrder(scripts/pm/check-half-states.mjs) is the onlyscripts/pmreader that sorts candidates by priority. It now orders by rank, then fleet status, then age. It reuses two readers from the same file:artefactAuthor, andreadSignatureLine, the signature readerrecord-recognisers.mjsimports from this file. No new regex is added. An unreadable author counts as the fleet's, so it is never promoted. No new patrol row, battery or gate.Ratchet payment (both files stay at their ceilings, no ceiling row moved)
lanes/director.md## 与 skills 席的分界: its heading, its blank line and the blank line above it. Its bullet moved unchanged into 授权与形态 next to the scope line.execution-duties.mdEvery line in both files is at most 120 bytes; the longest new line is 119.
Tests
node scripts/pm/check-half-states.mjs --self-teston cbc61eb: 5219 cases pass, and the batteryH67 queued merged-delivery readingreads 158/158. The pin moved from 142 to the count, so none of the six new cases can be removed without turning the battery red.github-actions[bot]counts as fleet, and an unreadable author is not promoted.fleet(a) - fleet(b)replaced by0, the run printed1 of 5189 case(s) failed:⭐ H67 order: within ONE priority a human-opened card is reached before an OLDER fleet-opened one (got "21,22", want "22,21").false, the run printed1 of 5219 case(s) failed:⭐ H67 order: a HUMAN account whose body opens with a seat signature is the fleet's — it stays behind the older fleet card (got "22,21", want "21,22").Acceptance notes
lanes/director.mdandcheck-half-states.mjs.mainwas merged in with no conflict, and both files were re-measured on the merged tree.Verification
Local gates on cbc61eb: 54 derived, 54 run, all exit 0 (`dispatch-gates --ran`)
node scripts/pm/dispatch-gates.mjs --commandsderived 54 commands. All 54 ran, each with a 900 s timeout, with the exit codes recorded before any pipe. All 54 exited 0.--ranreconciliation printed:54 derived famil(ies) accounted for — 54 run, 0 NOT-MEASURED.check:pm-skill-ratchet,check:pm-skill-id-lint,check:doc-authoring,check:nul-bytes. All exited 0, and director.md read 86 lines (ceiling 86, headroom 0).pnpm check:pm-skill-ratchethad exited 1 on a 125-byte line, which was trimmed to 119 bytes. The full run on cbc61eb above supersedes those readings.pnpm install --frozen-lockfile, and aturbobuild of@objectstack/formulaand@objectstack/lintforcheck:doc-formula-expressions.Human Minimum
packages/specholds no runtime logic. (not touched)pnpm lintpasses. (no formatter ran;pnpm lintwas not run locally on this diff, so the CI lint job decides it)main, one pull request..claude/**andscripts/pm/**;skip-changeset)packages/spectouched: its generated artifacts are regenerated and committed. (not touched)content/docs/references/,packages/*/CHANGELOG.mdorcontent/docs/releases/.🤖 Generated with Claude Code
https://claude.ai/code/session_01J8VVAjYZRbZ8TG8TRzG5zd
Generated by Claude Code