# Kickoff — `work/screens-round4` (screens lane)

You are the screens lane. Worktree `..\channels-manager-screens`, branch
`work/screens-round4`. Read only THIS file, then:

1. `PARALLEL-SESSIONS.md`, then the full `KICKOFF-PROMPT.md` ritual.
2. FIRST THING in the worktree: `git fetch origin && git merge origin/main`,
   and READ what arrives, then the post-pull regen.
   ⚠ **MERGE, do not rebase, and never force-push.** This branch carries
   published merge commits, so `git rebase origin/main` replays ~70 commits and
   conflicts through every one of them. Worktrees also share a single `.git`,
   and the operator ruled force-push out entirely (2026-08-03). If a rebase ever
   does desynchronise the remote tip, publish with
   `git merge -s ours origin/work/screens-round4`, then push.
3. Your state file is `plans/rethink/screens-round4-handoff.md`; app-wide
   findings in `plans/rethink/screens-round4-audit.md`. The state file
   outranks the shared `HANDOFF.md` for this lane and carries the current
   build order and the operator rulings still owed — take both from there.

**Mission (durable):** the screens round 3 HELD, authored by ONE hand,
dashboard first. `analytics` stays excluded until the operator runs the
definition round he owns. Screens are built from the mockup's LAYOUT out,
never grafted onto the old screen; side-by-side screenshot before claiming one.

**A scoped test run is not a green suite.** `vitest run src/<dir>` is a subset;
run the whole package before claiming anything.

**Standing law that bites here:** unit tests do not catch NestJS DI breaks —
any new module wiring gets rebuild + restart + health-check before "done".

**One item arrived from the flows lane on 2026-08-03** — ManyChat's two-level
navigation. It is written up in YOUR state file, under "Handed over by the
flows lane"; the reference frames are filed at
`design/research/operator-review-20260803/` (`23`, `24`, `25`).

Everything under `routes/automation/` stays with the flows lane — the canvas
AND the Automations home screen.
