Most free-tier AI work fails at handoff, not at the model. A shift ends, the context leaves with one person, and the next driver restarts from zero. Three named roles and one wiki page keep that state where the whole team can reach it.
Name the roles before the first prompt. The Driver holds the keyboard and the intent. The Scribe owns the run page and the exit note. The Gatekeeper runs the smoke suite and decides promotion.
Ownership decays when it stays implied. An unnamed scribe is a conversation without a transcript. Named roles turn a session into a shift that someone can inherit on Monday.
The one-page run
Paste this into the team wiki and fill it at the start of every shift.
# Shift Run - <date> - <shift_id>
Driver: <name>
Scribe: <name>
Gatekeeper: <name>
Entry: make bench-up
Last green: make test-smoke @ <utc timestamp> @ <short sha>
Gate: open | held | blocked
Threads: max 2, each with an owner and one next command
Exit note: one past-tense sentence naming the next action
Two threads is a cap, not a target. Anything beyond two becomes a ticket and leaves the page. The page has to stay short enough to read once, out loud, during a handoff.
The Scribe writes the page, not the Driver. Separation matters because the person deep in a change cannot see which thread is still open. The Scribe asks one question per thread: who owns it and what is the next command.
Smoke before you claim the shift
The Driver runs this before touching the task. It proves the environment, not the change.
#!/usr/bin/env bash
# shift-smoke.sh - run at the start of every shift
set -euo pipefail
SHIFT_ID="${SHIFT_ID:-$(date -u +%Y%m%dT%H%MZ)}"
BRANCH="$(git rev-parse --abbrev-ref HEAD)"
SHA="$(git rev-parse --short HEAD)"
need() { command -v "$1" >/dev/null || { echo "missing: $1"; exit 2; }; }
need git
need make
echo "shift=$SHIFT_ID branch=$BRANCH sha=$SHA"
make bench-up
make test-smoke 2>&1 | tail -n 5
echo "last_green=$(date -u +%FT%TZ) sha=$SHA"
The final line is the contract. Copy it into the run page verbatim. A missing last-green line means the shift has no known-good state, so the Gatekeeper holds the gate closed.
Keep the smoke target small. It should finish in a couple of minutes and touch only the paths a new driver needs. A smoke suite that takes twenty minutes gets skipped, and a skipped gate is worse than no gate.
Handoff in three lines
The exit note is always the same shape. Three lines, past tense, no narrative.
exit: driver passed 2 threads to the gatekeeper
next: rerun make test-smoke after the lockfile change
blocked: none
Write it in the run page, not in chat. Chat scrolls away and the next shift never reads it. A wiki page survives the person who wrote it.
The Gatekeeper reads the exit note before reading any code. That order matters. A held gate explains itself in one line, and the next shift knows where to start.
Where the free tier fits
The Driver drafts in free model sessions and the Gatekeeper re-runs the suite on the free server option. That split keeps review on a clean machine instead of the Driver's laptop. Both the free model access and the free server option are availability claims the vendor makes; confirm the current limits and specs on their pricing page before you build a rotation around them, because free-tier terms move.
Disclosure: This article was prepared as part of MonkeyCode's product outreach.
The playbook stands without that tool. Swap in any provider and the roles, the run page, and the smoke contract still apply.
Gate decision table
Proposed defaults, not vendor guidance. Tune the thresholds to your own week.
| Signal | Threshold | Action |
|---|---|---|
| Threads without an owner | 2 or more per week | Add a Scribe, cut to one thread |
| Gate held across two shifts | 48 hours | Shrink the change or split it |
| Smoke flaky twice in a week | 2 failures | Fix the test before new work |
| Secret pasted into a prompt | Any occurrence | Rotate the key, log it, hold the gate |
| Run page stale over one day | 24 hours | Close it with an exit note |
Slow rotation is cheaper than rework. A gate held two shifts usually means the change was too large, not that the reviewer was slow.
Limitations and who should skip this
The playbook adds roughly ten minutes per shift. Solo developers will spend more on the page than they save. Teams with a working CI promotion lane already have the gate, so add roles only if handoff notes are missing.
The smoke suite still has to fit the free server's disclosed specs. If the suite needs heavy memory or a long build, run it elsewhere and keep only the fast checks on the shared box. Nothing here gives you an SLA, and free tiers can change with little notice.
Skip this for regulated code where every prompt needs a retention policy. Skip it when no one on the team can review the output, because a Gatekeeper without authority just stamps approvals. Skip it if your only goal is throughput today; the roles pay off on the second shift, not the first.
Start with one shift
Try the shape once before inviting a second person. Spin a free server, run the smoke script, and paste the last-green line into an empty run page. If that single line is already useful, add the Scribe on the next shift and let the roles grow from evidence.
Top comments (0)