Appearance
land.mjs
Commits the working tree, runs the advisory checks, and pushes it to dev — the whole landing as one command. Nothing here refuses a push; CI proves the sha on a runner.
Contributor tooling › land.mjs
What it does
Stages every change, commits it under the subject line given, runs npm run check:advisory (typecheck, lint, the unit and UI suites) and pushes to origin/dev. The advisory result is printed, red or green, and the push goes either way (ADR-0018). Proof is CI's job: the push runs the whole gate on a runner and marks the sha, and production takes only a sha marked green.
dev is the only branch that carries work (ADR-0012), so a landing opens no lane and leaves no merge to resolve.
Usage
Run it from the repository root, on dev:
bash
npm run land -- "The subject line this commit carries"Replace the following:
The subject line this commit carries: one clause under 72 characters, held to the subject rules intools/commit-lint.mjs. Leave the argument off when the tree is clean and only unpushed commits remain.
Options
No options.
Inputs and outputs
Prints the commit it is advising on, then the advisory run's own output, then the push, and exits 0 once the commit is on origin/dev. A red advisory prints a loud notice and the command to read CI's verdict later, then pushes anyway.
Exits 1 without pushing on any of four conditions. The checkout is not on dev; the tree carries changes and no subject line was given; the commit was refused; the push was refused.
Examples
Land a change from a clean start — stage, commit, advise, push:
bash
npm run land -- "Colonies bank the stocks their officer lease displays"Push commits already made here, without adding another:
bash
npm run landRead CI's verdict on what was landed:
bash
node tools/forge.mjs ci-status <sha>Notes
The advisory run takes about three minutes. A red advisory is not a stop: fix what is red and land again, and the fix lands as its own commit on top.
The window before a landing is covered by tools/hooks/session-checkpoint.mjs, which records the working tree every turn. Work that has not been landed yet is still recoverable from there.
tools/hooks/pre-commit runs the commit-scope guard (tools/guards/commit-scope-check.mjs) on the commit this makes; a staged path the territory map does not partition refuses it.
A checkout on any branch other than dev is refused rather than landed.
Source
tools/land.mjs — part of Contributor tooling