# Exit codes and gates Which `wikitool` commands can stop and wait for a person - exit 42 - and for which gate, generated from the command records. What each exit code means, and how a caller reacts to it, is [AGENTS.md § Tool error contract](../../AGENTS.md#tool-error-contract). What a gate is and why it is enforced in code is [AGENTS.md § Gates](../../AGENTS.md#gates). This page lists which commands declare a gate, and every cause for which a command exits 42. ## Gates by command ### guideline-push - [`export guidelines`](commands/guideline-export.md#export-guidelines) ### human-intervention-required (`new project` only) - [`new`](commands/pages.md#new) ### mass-update - [`publish`](commands/git.md#publish) ### publish-remote - [`publish`](commands/git.md#publish) ### rebase-review - [`sync`](commands/git.md#sync) - [`publish`](commands/git.md#publish) ### upload-review - [`upload accept`](commands/raw-material-and-uploads.md#upload-accept) ## Exit 42 causes - [`new`](commands/pages.md#new): new project: The provider cannot create the project itself (Super Productivity's `access: "api"`); the output says what a human has to create - [`upload accept`](commands/raw-material-and-uploads.md#upload-accept): Upload Review Gate: `--confirm` is absent or does not match the manifest's current token - [`sync`](commands/git.md#sync): Rebase-review gate: `/` moved and both sides changed the same file, generated files aside; the output lists the upstream commits, the overlapping files and their diff - [`publish`](commands/git.md#publish): Mass-Update Gate: `--threshold` (default 10) or more counted files would be committed, or the `--confirm` token does not match this changeset - [`publish`](commands/git.md#publish): Rebase-review gate: `/` moved and both sides changed the same file; the output lists the upstream commits, the overlapping files and their diff - [`publish`](commands/git.md#publish): Publish-Remote Gate: `.wikitool-remotes.json` exists and the push URL of `--remote` is not listed in it, or `--remote` resolves to no push URL - [`export guidelines`](commands/guideline-export.md#export-guidelines): Guideline Push Gate: `--push` without `--confirm`, or with a token that does not match the current set of targets