---
name: lane-check-via-main-pool-prebuilt-xtask
description: "Check a fresh worktree lane in ~30s by claiming the MAIN checkout's warm target as a sequential pool — and claim it with the already-built xtask.exe, never `cargo run -p xtask`."
metadata: 
  node_type: memory
  type: project
  originSessionId: 3af0675c-3744-4c28-b1ba-0f1bf9c1a162
  modified: 2026-08-04T06:26:28.291Z
---

A fresh `.worktrees/<lane>` has no `target/`, so a naive `cargo check` there is a full cold
dependency build. Sequential pool sharing is the sanctioned path (AGENTS.md), and it makes a
lane check ~25-32s instead of minutes:

1. `<main>/target/debug/xtask.exe pool-claim --pool <main>/target --label <lane>` — run the
   ALREADY-BUILT binary with cwd = the lane worktree. `pool_claim` reads `owner_tree` from
   `current_dir()`, so the claim carries the lane's identity. `cargo run -p xtask` from the
   lane would cold-build xtask into the lane's empty target first — the exact waste being
   avoided.
2. `CARGO_TARGET_DIR=<main>/target cargo check -p <crate> --tests` (and clippy) from the lane.
3. `xtask.exe pool-release --pool <main>/target` when pausing or done.

**Note:** `pool-release` drops the LANE, not the owner — `POOL-OWNER.json` still names the last
lane's worktree as `owner_tree`, so the next tree to build there is still refused until it
claims. That refusal is by design and prints the command; tell a peer before they hit it.

Measured 2026-08-04 (hertz): two lanes checked + clippy'd this way, 23-32s each, no
`SPT_POOL_FOREIGN` refusal, no concurrent second tree. Kin:
[[pool-claim-holder-death-is-not-lane-state]], [[worktree-pool-claim-false-orphan]],
[[worktrees-under-project-root]].
