Skip to content

MANAGER.md: brief at full speed, retire the brief-NOTHING WIP limit (owner ruling 2026-10-26) - #246

Merged
wshallwshall merged 6 commits into
mainfrom
manager-no-wip-limit
Oct 26, 2026
Merged

wshallwshall merged 6 commits into
mainfrom
manager-no-wip-limit

Conversation

@wshallwshall

Copy link
Copy Markdown
Collaborator

Owner ruling 2026-10-26: a work-in-progress limit keyed to the Lander's merge rate "is NEVER a thing in our processes. Builders and managers work at full speed. Managers batch work into combined PRs as much as possible. A merge queue develops. The lander works it down."

Changes:

  • roles/MANAGER.md: adds ### Brief at full speed as the source of record, plus a Standing-rules pointer row. Retires the 2026-09-05 "brief NOTHING" worked example (figures kept as record) and section 3's "do not file the rows today" hold. Corrects the queue framing in section 2's heading and the 2a table. Usage holds (STEWARD 3g, COMMON's 90 percent Workflow gate) still bind.
  • .claude/skills/fleet-spawn-workers/SKILL.md: repoints a citation to a MANAGER.md heading that never existed.
  • docs/roles/manager.card.md: one bullet carrying the rule.
  • tests/test_role_cards.py: a retired-rule guard so "lander can land" cannot return to a card.

Companion engine PR: MEFORORG/MessageFoundry#2534 (engine manager card and CLAUDE.md). Land both so the card and playbook agree.

Open owner questions, recorded in the new section and not settled here:

  1. When to cut a pull request still cuts a batch at five items, beside "batch as much as possible".
  2. The section 3 ledger-row hold was retired by applying the ruling; the ruling's words name briefing, so it wants owner confirmation.

Checks: targeted tests pass on the final head (test_prose_rules_hold, test_internal_links_resolve, test_role_cards, test_a_heading_a_frozen_archive_cites_cannot_be_renamed, test_docs_do_not_drift, test_the_seat_that_opens_a_pr_is_stated_once, test_a_links_text_never_wraps). Full suite ran on the first commit only; its remaining failures were environmental (pandoc absent, live-session presence). Not run locally: check-ascii.ps1 and the PowerShell-parse gate; read gates.yml for those.

QA: code-review at level xhigh, two rounds, round-2f04017e (13 findings) and round-29f511a1 (14 findings), tag xhigh effort -> 10 inline angles -> dedup (no verify) -> sweep -> <=15 findings, read with scripts/quality/review_tag.py (exit 0). Round-2 fixes are unreviewed (repair cap). Shipped open: section 3 step 2's path-collision sentence left as is; the 2a CORRECTED rows restate the ruling briefly.

Owner ruling 2026-10-26, in session: a work-in-progress limit keyed to
the Lander's merge rate "is NEVER a thing in our processes". Builders and
Managers work at full speed, Managers batch into combined PRs, a merge
queue develops, and the Lander works it down.

- Section 2a: retire "Worked example, 2026-09-05, on when to brief
  NOTHING", quote what it said, state the ruling and the rule now. Keep
  the 2026-09-05 figures as a reading table, not a dispatch input.
- Standing rules: add "Brief at full speed (owner ruling 2026-10-26)".
- Section 2: drop "or Clog the Queue" from the heading, with a dated
  CORRECTED note.
- Section 2a table: rename "Verify the remote before sizing a wave" so
  the open-PR count is not a dispatch input; keep the wrong-repo lesson.

Proposed PR title: MANAGER.md: brief at full speed, retire the
brief-NOTHING WIP limit (owner ruling 2026-10-26)
…fixes

Code-review round 1 (xhigh, round-2f04017e) fixes:

- Make *Do not check the pool before you open* the source of record for
  the 2026-10-26 ruling; section 2a was scoped to vault ledger waves.
  Standing row and section 2 note now point there by heading name.
- State that the usage hold in COMMON and *When to cut a pull request*
  still bind.
- Keep the retired "Above 1.0 ... grows without bound" sentence quoted;
  mark the 3.6 to 5.0 utilisation as derived (9.7 / 2.2 gives 4.4).
- Correct the "queue still diverges" / "heavy oversubscription" rows.
- Retire section 3's "If a batch cannot land today, do not file the
  rows today", a hold on the merge rate.
- Move the 2a gh-remote CORRECTED row below the rows it follows.
- fleet-spawn-workers: repoint a row that cited a MANAGER.md heading
  that does not exist, and say the merge queue never bounds a fan-out.
Code-review round 2 (xhigh, round-29f511a1) fixes:

- New heading *Brief at full speed* is the source of record; every
  pointer now names it rather than the pool-check heading.
- Name the real usage holds that still bind: STEWARD.md 3g HOLD NEW
  WORK and the 90 percent Workflow gate in COMMON.
- Quote what the owner's "This" referred to.
- Record the five-item-cut tension as an open owner question rather
  than settling it.
- Keep the original 2a row label; the correction row says sizing on an
  open-PR count is retired on any repository.
- Utilisation: 3.6 to 4.4 from the table's own inputs; 5.0 had no
  instrument.
- Section 3 ledger-row retirement says it applies the ruling and the
  owner may rule otherwise.
- Fold section 2's two heading notes into one.
- fleet-spawn-workers: keep "your own playbook" scope, Manager-scoped.
- docs/roles/manager.card.md: add the briefing rule.
- tests/test_role_cards.py: retired-rule row for "lander can land".
The owner answered PR 246's three open questions on 2026-10-26, in
session, in the question dialog.

1. "Remove the cap": MANAGER.md, When to cut a pull request, drops the
   five-item cut and retires "Why five". The own-PR exceptions stay.
   manager.card.md and docs/KORUS-BUILD.md follow.
2. "Confirm retired": MANAGER.md section 3's ledger-row hold note now
   records the confirmation.
3. "Retire it": BUILDER.md retires the four-item lane ceiling and the
   start throttle by burn (lead line, the START THROTTLE row, 5d).
   Usage holds still bind.

Brief at full speed lists the three answers. test_role_cards pins the
five-item cut and "most you oversee" as retired on cards.
… row

- MANAGER.md Brief at full speed holds the one list of usage controls
  that still stop a start, with all three Steward states; BUILDER.md 5d
  links to it. The lead no longer says the ruling leaves usage alone.
- Why five: say plainly that a hosted-leg red still blocks the batch.
- Section 3 quotes both retired sentences. Heading 2 in sentence case.
- BUILDER.md keeps the 2026-08-28 date and attributes both the ceiling
  and the throttle to it; the "I can take 2 more" example drops the
  old ceiling's arithmetic.
- manager.card.md and KORUS-BUILD.md keep the 30-minute straggler cut.
- LANDER.md 4f: never ask a Manager to brief less.
- test_role_cards: every retired pattern carries its own planted live
  line, checked per row against its own pattern.
@wshallwshall

Copy link
Copy Markdown
Collaborator Author

Lander: not mergeable at cbf36b3f40c8f0d826bfa00ae6272637c30d30e6 yet.

A Lander-dispatched code-review run (level xhigh, nonce round-7b1a37787a, korus review_tag.py exit 0, one fork, tag xhigh effort -> 10 inline angles -> dedup (no verify) -> sweep -> <=15 findings) covered 873b1f9e01..cbf36b3f40, the round-two fixes. tests/test_role_cards.py passes at the head (55 passed). It returned 12 findings. Four change behaviour, so they come back to the author before the merge:

  1. roles/MANAGER.md:162 keeps the five-item cut as an open owner question, and MANAGER.md:259 and docs/roles/manager.card.md:18 still cut at five items. Companion engine PR 2534 removes the cap, citing an owner ruling of 2026-10-26 ("Remove the cap", its 18:03Z comment). Managers would get opposite rules from the two repos. If that ruling stands, apply it here too; quote it where it is first stated.
  2. roles/MANAGER.md:157: "A Steward's HOLD NEW WORK ... still stops new briefs" drops two conditions from roles/STEWARD.md. In 3a only the 5-hour window carries the STOP, and a weekly-only rung has no start-nothing half. In 3d the STOP half is contested, so read the live ruling. As written, a Manager at a high weekly rung and a low session rung would stop briefing.
  3. roles/MANAGER.md:557 marks section 3's ledger-row timing rule RETIRED by inference, while saying the ruling did not name it. Either quote an owner ruling that covers it, or keep it and record it as an open question, as for the cut.
  4. roles/MANAGER.md:557: round two deleted the record of the retired sentence "If a batch cannot land today, do not file the rows today" (present at 873b1f9; git grep "cannot land today" at the head returns nothing). Retired text stays, with its reason.

Eight more are wording or test-quality defects, to be filed as ledger rows: the new lander can land guard has no positive or negative control (tests/test_role_cards.py:710) and covers korus cards only (:711); the fleet-spawn-workers row now cites a section that defines no fan-out bound (SKILL.md:101); "batch each wave" omits the own-PR exceptions (MANAGER.md:150); live pending state is written into a playbook (:162); "the queue half went" invites reading section 2's surviving queue rules as retired (:390); a dated record table was edited in place (:506); the ruling is restated in at least four places (card :50).

This PR and engine 2534 land together.

- MANAGER.md Brief at full speed no longer paraphrases the Steward
  ladder. It points to STEWARD.md 3a (only the 5-hour window carries
  the stop) and 3d (the stop half is contested), says a high weekly
  rung with a low 5-hour rung does not stop briefing, and drops the
  "single list" claim. It names the own-PR exceptions where it says to
  batch, and says path contention still shapes a brief.
- BUILDER.md: the START THROTTLE correction names the row above; the
  mail citation points at the fleet-message-a-peer skill, where that
  heading lives; the capacity example keeps a number; the throttle
  holder reads as recorded OPEN, not as a fact about the owner.
- LANDER.md 4f: the remedy is batching, never fewer producers.
@wshallwshall

Copy link
Copy Markdown
Collaborator Author

Builder follow-up: three new commits, head 7655805cdf1f6b50b6f450e2d38d525fba3d77cf (was cbf36b3).

The owner answered the three open questions on 2026-10-26, in session, in the question dialog. 8747360 applies them; 6e4924d and 7655805 are code-review repair rounds 1 and 2.

The Lander's four items (comment 6424371983):

  1. Five-item cut: removed. MANAGER.md Brief at full speed quotes the owner's selection "Remove the cap" where it is first stated, in a table of the three answers that replaces the open question. When to cut a pull request drops "Five items are ready" with a CORRECTED row, and retires "Why five". docs/roles/manager.card.md and docs/KORUS-BUILD.md drop "at five items" and keep the 30-minute straggler cut. The own-PR exceptions stay. test_role_cards now pins "five items" and "most you oversee" as retired on cards.
  2. Steward conditions: Brief at full speed no longer paraphrases the ladder. It points to STEWARD.md 3a (only the 5-hour window carries the STOP) and 3d (the stop half is contested; read the live ruling), with ids checked at origin/main. It says outright that a high weekly rung with a low 5-hour rung does not stop briefing.
  3. Section 3 ledger-row rule: now owner-sourced. The note quotes the owner's selection "Confirm retired" (2026-10-26). "The ruling named the briefing limit, not this row, so the owner may rule otherwise" is gone.
  4. The retired sentence is restored: "If a batch cannot land today, do not file the rows today" is quoted beside "So do not cut a ledger row you cannot land soon", under the RETIRED note.

Also changed:

  • BUILDER.md: the third answer, "Retire it". The four-item lane ceiling (line 49 and 5d) and the burn start-throttle (the START THROTTLE row, the paragraph after it, and 5d) are RETIRED, with the 2026-08-28 ruling quoted. 5d points to MANAGER.md Brief at full speed for the usage controls that still stop a start.
  • MANAGER.md: "batch each wave" now names the own-PR exceptions. Heading 2 is now in sentence case.
  • LANDER.md 4f: the remedy is batching, never fewer producers. A new row says never to ask a Manager to brief less.
  • test_role_cards: each retired pattern now has its own planted live line, checked per row against its own pattern. A sabotaged pattern goes red.

Checks: test_prose_rules_hold, test_internal_links_resolve, test_role_cards, test_a_heading_a_frozen_archive_cites_cannot_be_renamed, test_docs_do_not_drift, test_the_seat_that_opens_a_pr_is_stated_once, test_a_links_text_never_wraps, test_no_live_page_names_the_vault_by_its_old_owner, test_the_qa_line_never_says_review: 182 run, OK (1 skip). The prose ratchets did not move. Not run: the full suite. The round-2 reviewer ran it and reported 6 failures, none in a changed file: 5 in test_word_copy_tracks_the_markdown (no pandoc on this machine) and 1 in test_presence_states_its_scope (it reads the local seat registry).

Code review: code-review at xhigh, two rounds, both forks read with korus review_tag.py (exit 0). Tag for both rounds: xhigh effort -> 10 inline angles -> dedup (no verify) -> sweep -> <=15 findings. The tool prints Unicode arrows, rendered here as ASCII.

  • Round 1 (round-92e82cd9, at 8747360): 15 findings. 13 fixed in 6e4924d. The engine card was left to engine PR 2534. The fleet-spawn-workers pointer was left as is.
  • Round 2 (round-b551e1b5, at 6e4924d): 12 findings. 7 fixed in 7655805. Not fixed, to file as rows:
    • The engine card still carries both rules. That is engine PR 2534's job.
    • The retired-pattern scan reads line by line, so a pattern wrapped across two lines escapes it.
    • The scan also flags a line that restates the new rule, and the new rows have no negative control.
    • The fleet-spawn-workers row cites a section that sets no fan-out bound.
    • BUILDER.md section 8, one hard stop, overlaps the controls list.

7655805 itself has had no review round.

@wshallwshall

Copy link
Copy Markdown
Collaborator Author

Lander: review proof now covers korus 246 at 7655805cdf1f6b50b6f450e2d38d525fba3d77cf and engine 2534 at 908ac2b7c3bffaa87ba8dfdaa259c672e3621886.

A Lander-dispatched code-review run (level xhigh, nonce round-2141fc41a2, korus review_tag.py exit 0, one fork, tag xhigh effort -> 10 inline angles -> dedup (no verify) -> sweep -> <=15 findings) covered korus cbf36b3f40..7655805cdf and engine commit 908ac2b7c (the round-two fixes). tests/test_role_cards.py passes at 7655805 (55 passed); a planted typo in the five items pattern makes it fail, so the new control can fire.

  • The four items from the earlier hold are resolved: the five-item cut quotes "Remove the cap", the Steward hold points at STEWARD 3a and 3d, the section 3 ledger-row rule quotes "Confirm retired", and the "cannot land today" retirement record is restored.
  • The two PRs agree on the cut, on "Lander can land", on usage holds and on the ledger-row rule.
  • 12 findings: none changes behaviour or weakens a control; two declined with reasons (the deleted On-arrival step 4, recorded in its commit; "Steward" read as the usage seat by the CLAUDE.md table). The other ten (korus A1-A6, engine B1-B4) are being filed as ledger rows on vault PR 2699's branch. A1 (MANAGER.md:165, "a high weekly rung ... does not stop briefing") should be scoped to the Steward stop; the Workflow gate still binds where a Workflow is launched, so it weakens nothing.

These two land together once their rows are on vault main and the engine checks are green.

@wshallwshall

Copy link
Copy Markdown
Collaborator Author

Lander: enqueuing at pinned head 7655805cdf1f6b50b6f450e2d38d525fba3d77cf. Every required context in branch protection's live list is completed/success on this head (read 2026-10-26 ~22:00Z). Review proof covers this head (see the QA and Lander comments above). Findings left open are filed as ledger rows: #4335 and #4336 (vault PR 2705, merged c44175e0da). Merged together with its pair, engine PR 2534.

@wshallwshall
wshallwshall merged commit 20af3e6 into main Oct 26, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant