Skip to content

Workflow — engineering

Engineering has two review points, and they do different jobs. Read Team workflow in Discord first for the parts every discipline shares.

Before you submit — the review gate

Your code is reviewed while it is still shelved, before it reaches the depot. Shelve your changelist and request review — MCP request_review with shelve: true, or /review in Discord with the changelist number and task code. The review server reads the shelf, scores the risk, and opens a thread in #code-review.

This is the gate that replaces a pull request, and it is the one that catches problems while they are cheap. It is unchanged. See Self-review workflow and Perforce workflow.

After you submit — the notice

Once the changelist is in, the bot announces it in #engineer-submission within about a minute and opens a thread named after the task code. This is the record of what landed, not a second gate: the reviewing already happened on the shelf.

The buttons on that post still work, and they are worth using for a submit that skipped the shelf review — a hotfix, a config tweak, a wiki page. Looks good closes it out. Needs changes pings you in the thread with the reason.

Your workspace name

If your workspace is named rp_engineer_<your Discord name> — rp_engineer_kevin, rp_engineer_gabriel — the bot matches it to you automatically on your first submit. Engineers share the _01 guest login, so the workspace is what tells the bot which engineer submitted.

That naming is a convenience, not a requirement. If your workspace is named for something else, run /link once and pick it from the list; you do not need anybody's help for that. /roster Engineer shows whether your account is linked yet.

Your changelist description

<TASK-CODE> [Your Name] what changed

CORE-005 [Kevin] rune component: cache the verb lookup
TOOL-003 [Gabriel] review server: retry p4 describe on timeout

The task code has to be the first thing on the line, otherwise the bot does not see it. [Gabriel Li] CORE-005 ... reads as no task code.

What lands in your channel

Source/, Config/, tools/, scripts/ and Rephrased Wiki/ all route to engineering by folder. So does anything submitted by someone carrying the Engineer role, whatever they touched.

Content/Rephrased/Gameplay/, Levels/ and Input/ are shared with design. If you hold the Engineer role your submits there come to engineering; if a designer touches them, they go to design. Folders alone never decide it.

Nothing is announced for Content/Developers/<You>/ or __Builds/. Prototype there as noisily as you like.

If a notice says "unlinked"

It means the bot could not match your workspace to a Discord account — a workspace named something like khanlon_FinalBoss_Laptop, or a Discord name that normalises differently from your workspace suffix. The notice still posts. Run /link yourself and pick the workspace from the list; it takes a moment and every later submit from it is named correctly. You do not need a producer for this.

Reporting a bug

/bug → Engineer files into #bugs and pings the engineering lead. Use it for anything that is broken rather than unfinished: a crash, a failing build, a system that does not do what the wiki says it does.

Change history

  • 2026-09-17 — Gabriel Li — First version: shelf review gate and post-submit notice described as separate steps.