Skip to main content
These commands start, remove and read work items, the issues on the factory’s Work page. None of them sends session content. Every command takes --json, plus --url and --app-id when your config lacks them. A failed command prints the reason and exits 1.

outerlayer work build

Start work on an item. A host builds it, or with --local you do.
Without --local, the command records a build request naming who asked. A host takes the item when it has a free slot. Only a build request makes an item startable for a host. The command never links your session or takes a claim. A failed build never retries itself: run work build again. With --local, the item goes on Work with no build request, so no host takes it. The command prints:
With --json, these are the branch and launchCommand fields. That session links itself and holds the item’s claim. An item already on Work needs no --local: start a session with OUTERLAYER_WORK=<number>. A Linear or Jira key must belong to a team or project the factory connected, and the tracker must be able to read it. See also: Launch a session, Run work on your machines, Connect a tracker. Link the calling session to an existing item. The session hooks run this for you.
It also takes or renews the session’s 20-minute claim on the item. If a host or another session holds one, the output names the holder and no claim is taken. Linking twice is a no-op. See also: Launch a session.

outerlayer work remove

Withdraw your own addition of an item, recording why. Nothing is deleted.
The item leaves Work once no live addition remains. Removing again succeeds and changes nothing.

outerlayer work status

Print one item’s stage, section, gate results, linked pull requests and sessions, and additions, as JSON. The output is indented; with --json it is one line.
no live item for <repo>#<n>: check --issue and --repo.

outerlayer work list

List live work items.
--claimed with --unclaimed is refused (invalid_query). Linked sessions and pull requests never block an item.

outerlayer work comment

Post one comment on an item’s general thread, or on one criterion’s thread.
Give at most one of --pass, --fail, --attach, --ready.
A verdict naming a criterion is refused with verdict_on_criterion and nothing is stored. A plain comment starts no agent: only a person’s fail on the general thread does. See also: Review and merge.

outerlayer work threads

Print an item’s general thread, then each criterion thread with proof or a comment, and who each waits on.
See also: Review and merge.

outerlayer work pr

Declare that a pull request belongs to this session’s work item. Running it twice is a no-op.
See also: Declare a pull request.

outerlayer work open-pr

Open this session’s pull request, or edit the one already open on its branch.
  • Host build (an item key is the credential): the gateway opens or edits it as the factory’s GitHub App, from the claim’s branch. No gh runs. OUTERLAYER_WORK must be set. Refusals: Opening the pull request.
  • Your own session: runs gh pr create, or gh pr edit, under your login, then declares it as work pr does. If declaring fails, run work pr <number>.
Run it again after changing the title or description. See also: Declare a pull request.

outerlayer work claim, renew, release

Take, extend or give up a host’s claim on an item, so two hosts never build it at once. The runner makes these calls. release also gives up the calling session’s own lease. Flags, help text and outcomes call a claim a lease.
Claiming again with the same key extends the claim. Releasing twice returns the recorded release time and outcome both times. A release with an outcome shows as an attempt on the item’s page. outerlayer work release also releases the calling session’s own lease. A session that names an item holds a lease on it, and the item’s review stays closed until that lease ends. Run inside a session with no --host, the command releases that session’s lease, so review opens without closing the session. It never releases another session’s lease, and --outcome applies only to a host’s claim. Releasing a session’s lease needs work.insert, not work.claim. A later tool call in the same session takes the lease again. The build skill runs this as its last step in a local session.
See also: Run work on your machines.

Permissions