Skip to content

0.60.0

The merge train’s procedure moves to pi-anchorloop; Straw Boss binds its seams

Section titled “The merge train’s procedure moves to pi-anchorloop; Straw Boss binds its seams”

Boss decisions 2026-11-06: two skills, integrating and deploying, hold the generic train procedure (pi-anchorloop 2.10.1); anchorloop names only generic seams; Straw Boss’s session prompt binds them.

  • Requires pi-anchorloop 2.10.1 or newer when the merge train is on. A main or integrator that cannot load integrating or deploying calls the tower with why=blocked naming pi-anchorloop and merges nothing. README states the requirement in both languages.
  • main.md gains a ## Seam bindings block, inside the integration markers, that binds all six seams: Handoff route (car slip by call_tower why=shared, forwarded by the tower to the one integrator, which answers the coordinator by intercom), Batch owner (the project’s one integrator main, opened by the tower with boss_open_main, closed on its idle milestone; worktrees ~/.herdr/worktrees/<repo>/train-<code>), Approval (the boss, quoted in the slip’s auth; auto or strict per integration.targets), Record (trains/<project>/<app>.json in the state folder), Escalation route (call_tower blocked, idle milestone, a deploy announcement as shared), Settings (apps.json integration). It sits in main.md because that is the system prompt of every main, so a coordinator and the integrator each hold exactly one block. With the train off the block drops out and anchorloop’s defaults apply (ask the boss before a merge or a deploy). The main prompt grows from 500 to 680 words with the train on (481 off, unchanged).
  • integrator.md shrinks from 1200 to about 290 words. It keeps the role, the project skill’s name, the slip’s routing, the name, the ledger, the tower calls, the reviewer role, and the UAT page; the slip block, departure, assembly, review, red handling, urgent and fix-forward lanes, deploy, rollback, and UAT are integrating and deploying. docs/specs/2026-11-06-seam-bindings.md maps every old line to its new home.
  • apps-config.md’s Merge train section keeps the apps.json fields and points to integrating’s Project skill contract for the heading table (heading names unchanged). planning.md, tower.md, and tower-run.md follow: the tower forwards the slip as it came and relays nothing back.
  • Docs and tests. docs/how-it-works.md Merge train describes the bindings; tests/prompts.test.ts checks that the block names all six seams in order and is the only one, and tests/trainswitch.test.ts that a main gets it with the train on and none with it off.

Design: docs/specs/2026-11-06-seam-bindings.md.