Three measured shapes, and a delimiter that could not spell a library

The three cheapest missing shapes were added - prefix-learned-verb, prefix-module-learned-learned-verb, prefix-learned-verb-learned-learned - chosen by tests/shapes.rs rather than by intuition. None takes tail, and that is the whole reason they are affordable: tail holds the empty string, so a shape with it is a strict superset of the same shape without, and including it would have cost +225% on the candidate space instead of +15%. Measured after: 13 patterns, 4,363,170,660 candidates, exactly the 15% predicted.

And the diagnostic delimiter was fixed (D263). ORBISTOUN_WRITE split its clause left to right, so libkernel::sceFoo:1:0x1100 was five fields where three were expected and the whole clause was dropped - the bug behind two hundred and seventy-six runs that planted nothing. Read from the right instead, since the trailing fields are fixed. An existing rejection test immediately caught the first version being too permissive, which is the argument for writing them.

Outcome of the three shapes

Measured after the search ran. +5 names (782 -> 787), all in the predicted shapes: sceRudpRead, sceRudpTerminate, sceRudpWrite from prefix-learned-verb, and sceAudioPropagationPortalDestroy, sceAudioPropagationSystemDestroy from prefix-module-learned-learned-verb. The third shape found nothing.

Worth noting which names: not the ones that motivated the shapes. The measurement pointed at sceRudpBind/End/Init and the search returned Read/Terminate/Write. A shape generalises past the evidence for it, which is the entire argument for choosing shapes by measurement rather than by adding the specific names one wanted.

Reachability over the same 183-name sample moved 28 -> 43, so ten already-known names became spellable as well as the five newly found.

Both halves of the question, in one tool

tests/shapes.rs now also reports the fragment each unsplittable name stalls on, ranked - so it answers "which shape" and "which word" together. It immediately paid: twelve sceKernelApr* names were all stalling in the same place for want of Apr, a word the morning's learned reduction had dropped along with Batch and Mspace. The re-harvest during names brought it back. What remains is GpuMaskIdCommand (3 names), URL (2), and a tail of one-offs.

And one of the three came straight back out

prefix-learned-verb-learned-learned was the largest group the measurement found, and it lasted an afternoon. It found no names, and it cost 67% of every vocabulary round - because a round re-sweeps each pattern that uses the slot it grew, at full size, and that shape takes learned three times.

The ranking that put it third-cheapest was measuring its share of the whole sweep, which is a different quantity and ranks the opposite way. Caught by the narrowing test, which asserts a round stays under a tenth of the space and was seeing 13.7% (D264).

Left in place: 12 patterns, 3,963,913,884 candidates, and the two shapes that between them found five names.