# Auto-lander enrollment — wp-content

Status: DONE (enrolled 2026-08-13)
Source request (owner): enroll this repo into the overdeck auto-lander primitive so sessions stop getting stuck landing by hand.

## What is enrolled

- `master` is trunk-owned: a pre-push guard (`.dev-config/hooks/pre-push`, `harness.landGuardRef=refs/heads/master`) rejects every raw or forced push to `origin/master`. This is not an error to work around.
- Landing goes through the land queue: `git config harness.landQueue` = `stage-a`. Concurrent landings serialize FIFO; one conductor gates an isolated candidate (merge onto fresh `origin/master` → dep install → typecheck of touched packages → project test command) and only a green candidate fast-forwards `origin/master`.

## How agents land work here

```bash
~/.claude/bin/od-worktree add <slug>          # NEVER edit the shared main checkout
cd .worktrees/<slug>                          # work + commit on the wt/<slug> branch
bash .claude/scripts/ship.sh land wt/<slug> .worktrees/<slug>   # run from repo root, NOT inside the worktree
```

Exit 0 = landed on `origin/master`, worktree removed, branch deleted. Exit 20 = read the JSON `stage`/`next`/`detail`, fix, re-run (idempotent). NEVER hand-type the merge/push cascade; NEVER push `master` directly.

## Known limits (open follow-ups)

- The frozen test gate (`.claude/scripts/ship.sh` TESTCMD) covers `press-zone-backend/api` only; plugin/theme changes ride typecheck-of-touched-packages plus that backend suite.
- Landing does NOT update the served site: the `devzone-wordpress` container bind-mounts the main checkout working tree, which is independent of `origin/master`. Deploy model is a separate plan.
