Applies findings from the third simplify pass:
1. \`cliArgv\` is a module-level const, not a function — prebuiltCli is
read once at module init and never mutated, so the per-spawn function
allocation was pure overhead.
2. Help-snapshot failures surface via \`Effect.fail\` instead of \`throw\`,
symmetric with the \`Effect.fail\` already inside the partition above.
Keeps the failure typed in the Effect channel rather than as a defect.
3. \`prebuild-test-cli.ts\` skips the build when the binary is already
newer than every file in src/ — saves the 2.8s rebuild cost on every
subsequent invocation. Pass --force to bypass.
4. \`prebuild-test-cli.ts\` verifies the built binary is executable before
symlinking — catches a silently-failed build leaving stale output
instead of letting tests fail with confusing exec errors later.
Verified: 331/331 CLI tests pass; typecheck clean; skip-if-fresh + --force
behave as documented.