carlok — zsh — 88×30

cat _posts/2026-09-24-leanfrontier-documentation-proposals-from-anyone-a-merge-queue-and-the-launcher-a-b-suspended.md

LeanFrontier: documentation proposals from anyone, a merge queue, and the launcher A/B suspended

The receiver’s own day in LeanFrontier was governance rather than mathematics. A pull request whose every changed path is a Markdown file under docs/ is now a documentation proposal (#291): no claim, no Lean, no build, and the three stages that build or run candidate code are gated off, so a prose change costs one short job instead of a Docker build and a Mathlib fetch — decided from the changed paths and never from the branch name, with docs/catalogue/ and docs/website/ excluded because one is generated from the corpus and the other publishes under the project’s name. The friction it removes was real and twice theirs: #290 carries a contributor’s rewritten docs/CONTRIBUTION-DIRECTIONS.md with their authorship after the OWNER gate had refused it, leaving six open directions and marking the ones that have landed.

#300 moves the merge sequencing out of a local scratchpad and into the repository: a workflow_dispatch queue that waits for the generators’ own pull requests, updates each branch from compare/...behind_by rather than mergeStateStatus, merges only what GitHub already reports CLEAN, stops on a genuine check failure, and never overrides — which is the manual work that took 4 to 11 minutes per submission and sequenced nineteen of them by hand on 22 September. #302 writes down the threat model that makes this defensible: what the receiver guarantees, six failure modes found in practice with the fix for each, the trust boundaries, and — stated plainly — what remains unguarded, prose and maintenance pull requests among them.

The experiment changed too. The pre-registered launcher A/B is suspended: 3 of its 36 arm-tagged submissions ever arrived, all of them on 20 August, none in the 34 days since the loop client that assigned arms stopped running, so comparing A=2 against B=1 inside a corpus that is 95% untagged would be arithmetic rather than evidence. The arms, metric and power table stay in place so the test can be revived with a new dated section, and what replaces it is an observational accumulation series over the whole corpus — edges, modules, edges per module, connected share, in-degree and depth — with its three limits stated before the data was read, including the one that dates the add-only rule: from 22 September every accepted extension must add an import edge, which is convenient for the metric and therefore discounted rather than celebrated. The generator followed the same day.