factory-landlisted
Install: claude install-skill schmug/shipofclaudius
Run the `factory-land` dynamic workflow bundled with this plugin by calling the Workflow tool with its bundled script path, injecting the bundled gate binary:
```
Workflow({ scriptPath: "${CLAUDE_PLUGIN_ROOT}/.claude/workflows/factory-land.js", args: { pr: 900, repo: "owner/name", gateBin: "${CLAUDE_PLUGIN_ROOT}/packages/factory-gate/bin/gate.mjs" } })
```
Always pass `gateBin` as shown so the gate that runs is the one bundled with **this** plugin checkout rather than whatever happens to sit in the target repo. Without it the workflow falls back to a relative `packages/factory-gate/bin/gate.mjs`, which only resolves when the cwd is a repo that vendors the gate itself.
Args: `pr` (**required** — the PR number; `number` also accepted), `repo?`, `execute?` (default `false`), `issue?` (override the `Closes #N` routing), `evidence?` (the `{ fixtureTest, redOnBase, greenOnHead }` block returned by `factory-issue-fix`), `gateBin?`, `gateFromRef?` (default `main`), `readonlyAgent?` (default `Explore`). For the full, current list read the header comment / `meta` block in `${CLAUDE_PLUGIN_ROOT}/.claude/workflows/factory-land.js`, or the repo README "Arguments" table.
**STAGE-BY-DEFAULT.** A bare run gathers, gates, and returns the verdict plus the exact audit comment it *would* post — writing **nothing at all**, not even that comment. `execute: true` is the caller's recorded gate decision that lets it comment, label, and merge (single gated squash-merges are agent-decided under the