TaleWater · Process Map

How we workDocuments · Agents · Skills

A snapshot of the operating model — the build loop that moves stories from idea to merged code, the source-of-truth documents that contain decisions, the agent roster that owns the writes, and the skills that codify recurring procedures. Reads top to bottom: how stories flow → what they edit → who edits → what's been codified.

Snapshot 2026-09-18 SoT for process · CLAUDE.md SoT for roster · OPERATING_MODEL.md Roster · 20 roles · 17 live
Section 1

The build loop

Every unit of work is a story — the thinnest change that runs end-to-end and answers one named question. A story moves through five lifecycle states and four build steps. There is exactly one human gate (Scoped → Next up) and one human checkpoint — acceptance verification of what Nate can see at merge time; a native device walk is deferred and tracked post-merge (S-A-41), never blocking the merge. Everything else flows.

State 1
Unscoped
Raw idea, tagged [A]–[F].
Lives in BACKLOG.md.
Inert.
State 2
Scoped
Shaped proposal — question / prereqs / acceptance / sizing.
Lives in BACKLOG.md.
Pool, not a queue.
State 3
Next up
Committed, per workstream.
Lives in BACKLOG.md.
Auto-promotes at step 1.
State 4
Active
Building.
Lives in Active_Story_<W>.md.
Optional <W>2 concurrent slot.
State 5
Done
Reconciled and logged.
Lives in Completed_Stories.md.
Most-recent first.
Nate's gate sits at Scoped → Next up. Agents scope and propose freely. Nothing builds until Nate commits scope + sequence at this gate. This is the only approval beat in the loop.
1
Define
By PM · auto-promote
Read top of Next up — Workstream X; expand into Active_Story_<W>.md; commit to main; push.
2
Spec
By Build-A / Build-B
Confirm against the workstream's SOR. For UI stories: read the canonical design HTML and extract every measurement.
3
Build
By Build-A / Build-B
In an isolated worktree on branch claude/<W>-NN-<slug>. Tests for testable logic are part of the build.
4
Reconcile
By builder · merge by Release Mgr
Rebase, update SOR, write Completed_Stories.md, queue-refill, push, open PR. The builder then invokes the Release Manager to merge — never runs gh pr merge itself. Merge gates on dev-green + whatever Nate can verify at merge time; a native device walk is deferred post-merge ("Device verified in build N").
Andon cord: empty Next up — Workstream X halts that workstream. Concurrency: steps 2–3 parallel within a workstream (P-22 disjoint); step 4 serializes. Worktree per story: P-19. Release gate (S-A-41): JS-only → over-the-air; native-trigger → device build. Walk tracked post-merge.

Section 2

Six parallel workstreams

The lane dimension. Every story belongs to exactly one workstream; story IDs (S-A-NN … S-F-NN) are per-workstream and clash-free by construction. A is the multiplier — its output is more parallelism for the others.

A
Operating model
& agents
PM
SoTCLAUDE.md
B
Product
architecture
Build-A
SoTSPEC.md §3–5
C
Operator
back-office
Build-A
SoTself-describing
(deferred SOR)
D
Consumer
surfaces
Build-A
SoTSPEC.md §6–7
E
Extraction
Build-B
SoTEXTRACTION.md
F
Business
readiness
Nate
SoTself-describing
(BUSINESS_READINESS.md)

Section 3

Documents — by collision class

The five classes from CLAUDE.md's shared-doc collision model. Class assignment is how concurrent sessions can edit shared state without locks: each class has a known resolution rule, and the rule is what makes parallelism safe.

Class 1 — Append-only

Rebase-safe by construction
Rule. New entries only. Two sessions adding rows resolve at rebase via keep-both-adds. Two sub-flavors: append-anywhere (order doesn't matter) and prepend-at-top (order matters; resolver splices above the just-landed entry).
PRINCIPLES.md
Cross-story doctrine, numbered P-XX. Append-anywhere.
Builder
GAPS.md
Build-vs-spec deltas surfaced at reconcile.
Builder
AUDIT.md
Critical findings register, with re-raise conditions.
QA / Review
DEFECTS.md
Acceptance-defect register — malfunctions seen on a built, installed app, grouped by build. Stood up 2026-06-07.
PM
Reviews/
Review records — one dated file per record (process-prune-<date>.md, ad-hoc reviews). Append-by-file. The weekly-cycle ledger is closed history (Weekly Review retired 2026-08-21).
Chief-of-Staff
Completed_Stories.md
Prepend-at-top — most-recent-first. Conflict resolver splices above prior entry.
Builder
Decisions_Archive.md
Read-only. Preserves pre-migration D-XX entries.
Nate

Class 2 — Per-section disjoint

P-22 protected
Rule. Two concurrent stories may not edit the same top-level ## §N in the same SOR. Disjointness is checked at step 1; overlap blocks the proposal.
SPEC.md
Product as-built. Shared by B (§3–5) and D (§6–7) — disjoint by section.
Build-A
EXTRACTION.md
Extraction pipeline + prompt; concurrent E stories serialize by section.
Build-B
CLAUDE.md
This file. Workstream A's SoT — the operating contract.
PM

Class 3 — Single-owner

PM-owned · propose-and-apply
Rule. One designated writer. Other sessions propose edits; the owner applies and commits. PM is live at .claude/agents/pm.md (S-A-42) and is the single writer for every class-3 doc below — invoke via the Agent tool or plain English in chat.
BACKLOG.md
Queue state. The contended doc. Step-4 in-story queue refill is the pre-authorized exception.
PM
QUESTIONS.md
Open questions. Adds are append-safe; resolution edits (strike + SOR pointer) are PM-only.
PM
OPERATING_MODEL.md
This page's source — procedure inventory + agent roster.
PM
PREREQUISITES.md
Account / toolchain / real-world setup.
PM
SHIPCHECKLIST.md
Pre-ship binary gate. Consulted at release, not at read-in.
PM
V2_STRATEGY.md
MVP → MVB strategy. Nate-curated — PM proposes, Nate applies.
Nate
VISION.md
Aspirational (not-yet-built) scope. Nate-curated.
Nate
README.md
Meta-index of the docs folder.
PM

Class 4 — Story-scoped exclusive

Claimed by the running story
Rule. Owned by one story for its lifetime, cleared at step-4 reconcile. The public claim is the step-1 commit on main (standalone promote) OR the refs/claims/active-story/<W> ref plus the pushed build branch (run-mode fold, S-A-163) — read it via tools/active-stories/active_stories.py, never a bare glob of main.
Active_Story_<W>.md
Primary slot per workstream. A, B, C, D, E exist today; F created on first promotion.
Builder
Active_Story_<W>2.md
Concurrent second slot. Nate-initiated only — not auto-opened.
Nate

Class 5 — Derived

Regenerated from sources, not hand-edited
Rule. Outputs of a generator. Collisions resolve by re-running the generator; not edited directly by sessions.
V2_STRATEGY.html
Branded render of V2_STRATEGY.md.
Generated
docs/dashboard.html
Live operational view of all six workstreams. Regenerated by tools/dashboard/generate.py; auto-commits to main.
Generated
docs/wbr.html
V2 portfolio-status board (S-A-103). Regenerated by tools/portfolio/; the file keeps its historical name.
Generated
docs/process-map.html
This page. The operating-model map — build loop, documents, roster, skills. Regenerated by tools/process-map/generate.py from the live .claude/agents/* + .claude/skills/* + the process SORs; auto-commits on a process change (S-A-64).
Generated

Also visible to sessions but outside the model: MEMORY.md (Nate's auto-memory index, outside the repo) — practically append-only for new index lines, single-owner (Nate) for reshuffles.


Section 4

The agent roster

20 roles. 17 are live agents — each a .claude/agents/<name>.md file with name+description frontmatter — and Nate stands in for the rest. Each role's remit is bounded enough that the boundary holds without in-session supervision; that boundary is what each agent inherits. Live agents are shown first. This roster is generated from the live agent files — going live is writing the file.

PM

Live ✓
Process owner · story gate · class-3 writer
PM is the single writer for these docs; all other sessions propose, PM applies and commits. V2_STRATEGY.md and VISION.md are different — PM drafts those but does NOT apply (Nate's gate; PM surfaces the draft and stops).
SoRs owned
BACKLOG.mdQUESTIONS.mdOPERATING_MODEL.mdPREREQUISITES.mdSHIPCHECKLIST.mdREADMEsCLAUDE.md
Today: live at .claude/agents/pm.md. Invocable as subagent_type: "pm" or via plain English. Nate still judges product-scope calls.

Ops

Live ✓
Branch · worktree · stash gatekeeper
The gatekeeper for branches, worktrees, and stashes. Owns branch+worktree claim arbitration, inventory, stale cleanup, stash sweeps, story-numbering, defect-numbering (including 'is DEF-NNNN free?'), main-worktree hygiene. Surfaces findings and routes class-3 writes to PM; doesn't author project files itself.
SoRs owned
none — acts on git / worktree state
Today: live at .claude/agents/ops.md. The canonical answer for "what's in flight" and "next free story number."

Release Manager

Live ✓
Merge queue · release pipeline
Owner of merge POLICY, not merge EXECUTION. Every PR opens via scripts/pr-open-automerge.sh, which arms GitHub native auto-merge, so a green PR merges itself with no session alive. Confirms the branch is canonical (Ops governs branch state) and merges only on a green required CI check — refuses red or pending unless Nate overrides; recovers a moved main by merging origin/main into the story branch, never force-push; hands post-merge cleanup to Ops.
SoRs owned
none — acts on git / GitHub state
Today: live at .claude/agents/release-manager.md. Never pushes to main; never removes worktrees (Ops does). Plain-English output only.

Chief-of-Staff

Live ✓
CRM steward · crm.talewater.app
The steward of the CRM (crm.talewater.app, the internal business-ops site served from docs/). ADVISORY — it knows what the site is for and what belongs on it; each page's generator is owned by its own tool, and it writes no class-3 doc directly. The Weekly Review ritual it used to run was retired (see "What was removed").
SoRs owned
Reviews/ ledgertools/portfolio/ · docs/wbr.html
Today: live at .claude/agents/chief-of-staff.md. Invoke for "what is the CRM?" or where a new business-ops page belongs.

QA

Live ✓
Test strategy · test-net health · CEG
The owner of test strategy + automated-test-net health + CEG invocation across the whole test pyramid. ADVISORY (like Chief-of-Staff): decides which tier/framework a story-shape gets, keeps the Maestro flows + e2e gate current, decides when the blind CEG second-reader pays (P-35). Not the test-author-of-record (story authors write their own tests) and writes no doc directly — TESTING.md/BACKLOG/QUESTIONS via PM, audit findings to AUDIT.
SoRs owned
TESTING.mdfindings → AUDIT.md
Today: live at .claude/agents/qa.md. Invoke for "which test tier does this need?", "audit our test health", or "run the e2e net." Class-3 edits (TESTING.md) route through PM.

Design Intake

Live ✓
Design → code intake-boundary owner
The single owner of the design-to-code intake boundary. Invoked by a scheduled poll of _inbox/ (no-ops when empty) or a manual 'intake the latest design handoff'. Boundary-owning serializer — routes, never decides scope, never edits SPEC or builds the screens.
SoRs owned
Design/ visual SOR (via PM)Scoped entries → PM
Today: live at .claude/agents/design-intake.md. Reconciles a Design/_inbox/ handoff bundle into the visual SOR + Scoped stories. Invoke with "intake the latest design handoff."

Bug Intake

Live ✓
Bug-report pickup-boundary owner
The single owner of the bug-report pickup boundary (self-healing arc #3a). Invoked by a scheduled poll (no-ops when empty) or a manual 'process the bug reports'. Boundary-owning serializer like PM/Ops/Release Manager/Design Intake — routes, doesn't auto-fix (that's #3b) or decide scope; a DEFECTS append is class-1 it may do directly, BACKLOG/QUESTIONS route through PM.
SoRs owned
DEFECTS.md appendBACKLOG/QUESTIONS → PM
Today: live at .claude/agents/bug-intake.md. Drains the Supabase bug_reports queue, transcribes each voice note, triages each. Invoke with "process the bug reports."

Review

Live ✓
Independent diff review · bisect
The per-story code-review reader of record. ADVISORY (like QA): reads the diff, RETURNS all findings including audit-grade ones as a stably-shaped block for the invoking reconcile to append to AUDIT.md (DEF-410 — Review's own cwd isn't reliably the story's worktree, so it writes no file itself), plus a compact summary for the Completed_Stories entry. Not the test-net owner (QA), not a fixer (reports; the author or /code-review --fix applies), not a scope-decider.
SoRs owned
writes to AUDIT.mdno class-3 ownership
Today: live at .claude/agents/review.md. The per-story code-review reader of record at step-4 reconcile; runs the bisect-first protocol (P-05) on regressions. Advisory — reports, never blocks merge.

audio-pipeline

Live ✓
The standing domain expert on capture and the recording transport, device capture through server transport to transcript-delivered-to-extraction, and the whole recording experience: did the recording survive, and does the user know? ADVISORY — reads, judges, reports; never blocks, never edits app source, never decides scope. The standing authority on AUDIO_PIPELINE.md and CAPTURE_RELIABILITY.md as living knowledge, and on the recurrence signal — it proposes their content; principal-engineer holds the write lock (no document custody).
SoRs owned
none

audit-sweep

Live ✓
The scoped read-only reader the codebase-audit skill fans out, one per subsystem. Reads ONE subsystem against the six audit lenses (semantic duplication, pattern drift, dead flows, misplaced abstractions, defensive-bloat census, lifecycle-concurrency census) and returns a compact per-lens summary with file:line evidence. Never edits, never writes a doc, never decides scope — the auditing session holds the cross-subsystem judgment.
SoRs owned
none

auto-fixer

Live ✓
The executor half of the self-healing loop (arc #3b), completing Bug Intake (#3a). It is the one serializer that writes app source (fenced the same as every other serializer otherwise — no merge/worktree/scope authority). Process/build-loop defects touching agent definitions or class-3 docs route to PM; hard/native-trigger/ambiguous/product-scope/sim-only defects go on a fork list for Nate.
SoRs owned
none

build-loop

Live ✓
The standing domain expert on the machinery the product is built with: scripts/, tools/, .claude/ agents+skills, .github/ CI and scheduled automation, root build configs. ADVISORY — reads, judges, reports; never blocks a merge, never edits the machinery, never decides scope. Distinct from the serializers that OPERATE the loop (Ops, Release Manager, PM): they own execution at one boundary, this owns the domain's memory and its recurrence signal.
SoRs owned
none

defect-validate

Live ✓
The read-only reader for re-validating a batch of DEFECTS.md entries against the current tree. For each entry it reads the claim, checks the cited sites in the current tree, and returns STILL-OPEN / ALREADY-FIXED / CANNOT-TELL with file:line evidence. Read-only: never edits DEFECTS.md, never fixes the defect, never decides scope — it returns verdicts and the invoking session applies them.
SoRs owned
none

extraction-review-miner

Live ✓
The acting half of the tuning-feedback loop. Clusters by the SPECIFIC wrong attribute named in each comment, never a whole observation from one thumbs-down — the mixed-signal handling is load-bearing. Routes real code and viewer bugs directly to DEFECTS.md (class-1, direct), routes extraction-methodology findings as a drafted Scoped-entry proposal handed to PM (BACKLOG.md is class-3), advances TUNING.md entry status in place, and returns a fix/will-fix/needs-scoping digest.
SoRs owned
none

extraction-tuner

Live ✓
The standing owner of the extraction domain across both halves: rule and eval QUALITY, and the domain's SETTLED PRODUCT DECISIONS — what extraction emits, what surfaces, what pins, and which forks Nate has ALREADY ruled on. It REMEMBERS rulings, it never MAKES them; a stale BACKLOG fork saying 'awaits Nate's gate' is not evidence a question is open. Also the original remit: 'the model is ignoring this rule', 'which rung does this need?', 'is the golden set healthy?', 'audit our extraction quality'.
SoRs owned
none

principal-engineer

Live ✓
The standing architecture and anti-complexity conscience, the 'are we being stupid?' check. Use for a load-bearing or hard-to-reverse technical decision (a P-40 fork), before a big or novel build, when a design smells over-built, or when asked 'is this sound?', 'is this over-engineered?', 'did we try this before?'. ADVISORY — reads the design record, PRINCIPLES, and the diff, applies delete-before-optimize, bind-don't-build, and prevention-first, and returns a required verdict schema (recommendation, confidence, tier-tagged evidence, complexity delta, operational burden, reversibility, ranked concerns, invalidating assumptions, disconfirming pass).
SoRs owned
none

sprint-planner

Live ✓
The read-only per-workstream planner the sprint-plan skill fans out, one per in-scope workstream. Reads that workstream's BACKLOG slice, its Active_Story file, and its SOR, and returns a P-22/P-36-checked ranked proposal with per-story scope sketches and named collisions. Ephemeral and advisory: it is a call shape, not a roster role — it proposes, never promotes, never writes BACKLOG.md or any class-3 doc, never decides scope.
SoRs owned
none

Build-A

Pending
Product builder, lane 1
Code, schema, and screen work across Workstreams B (architecture), D (consumer), and C (back-office, when codable without backend). Owns step-3 build. Does not propose new scope; does not write extraction prompts.
SoRs owned
SPEC.md §3–5, §6–7
Today: Nate plus in-session Claude. Stands up when the boundary holds without supervision.

Build-B

Pending
Extraction builder
Workstream E — extraction prompt iteration, harness changes, findings docs, pipeline-stage proposals. The "what the prompt produces" lives in SPEC.md §5; the "how" lives in EXTRACTION.md.
SoRs owned
EXTRACTION.mdSPEC.md §5
Today: Nate plus in-session Claude. Same pattern as Build-A — only the lane differs.

Research

Pending
Open questions · deep research
Investigates open questions needing external info (web, library source, SDK docs, prior art). Owns Research Material/ — standalone .mds cross-referenced with backlog entries. Does not decide — presents findings.
SoRs owned
Research Material/adds to QUESTIONS.md
Today: Nate plus Claude (the deep-research skill). Stands up as a scheduled review agent — extraction-quality and audit-pass reviews.

Handoffs — who hands what to whom

  • PM→Builder publishes Active_Story_<W>.md at step-1 auto-promote (the story-promote skill) — onto main, or onto the story's own build branch when the promote is folded (S-A-163).
  • Builder→Ops claims the branch + worktree (canonical name, next story number) before step-3 build or any doc-work session.
  • Builder→QA at step-3 pre-handoff: QA reads whether the covering flow + tests are adequate; the automated net runs.
  • Builder→Review at step-4 reconcile: independent diff-read for correctness + reuse/simplification; audit-grade findings land in AUDIT.md.
  • Builder→Release Mgr at step-4: invokes it with the PR number + acceptance signal + branch/worktree. The builder never runs gh pr merge.
  • Builder→PM at step-4 reconcile: new PRINCIPLES.md / GAPS.md / AUDIT.md / DEFECTS.md entries + queue refill.
  • Release Mgr→Ops post-merge cleanup directive — the branch + worktree to remove.
  • Any role→PM single-owner-doc edits: propose and stop. PM applies + commits.
  • Design Intake→PM a consumed Design/_inbox/ bundle's net-new screens → fully-shaped Scoped entries.
  • Bug Intake→DEFECTS a drained, transcribed, triaged bug-report queue → a DEFECTS.md append (auto-fixable) or a fork list (needs-Nate).
  • QA→Nate findings that need human verification (suspect device behavior, off extraction output).

Section 5

Skills — codified procedures

A procedure becomes a skill when it's multi-step with non-trivial sequencing and has real failure cost if re-derived from prose. One of these without the other stays inline in CLAUDE.md. The bar is deliberately tight; most procedures stay inline. Skills live in .claude/skills/<name>/SKILL.md and run cold without reading the operating contract first. Written = a .claude/skills/<name>/ directory exists; pending = named in OPERATING_MODEL.md §3 with no directory yet.

Written ✓

Codified, runnable cold
capture-triage
The single entry point for ANY report that a recording broke — 'the recording stopped', 'capture died', 'the indicator was off', 'I lost audio', 'it got stuck', 'why didn't I get a notification'.
codebase-audit
The whole-codebase audit runbook — a periodic, no-story-context, read-only inspection hunting what static gates and per-story diff review structurally cannot see: semantic duplication (same logic, different tokens), cross-session pattern drift (the same problem solved N ways), dead flows (reachable code no user path exercises), misplaced abstractions, a defensive-bloat census (recovery machinery growing while the defect rate doesn't fall), and a lifecycle-concurrency census (what runs on launch, foreground and background, how many at once, on which database connection).
cx-audit
The customer-experience audit — a read-only, black-box scenario matrix for one whole feature area (audio capture, recording→day, sign-in, sharing, the map…) from the user's side.
debug-discipline
The pre-theory debugging gate.
extraction-rule
The enforcement-ladder procedure for building or fixing an extraction rule — the answer to 'the model is ignoring a rule in the prompt; what do we do?' A prompt rule is a probability nudge, not a guarantee, and every rule added lowers adherence to all the others, so the fix is never 'reword it or stack another.' Classify the rule's kind first (existence, irreducibly model-side, vs surfacing, which defaults to code policy over model-emitted attributes), then diagnose the failure by running it N times, then enforce at the LOWEST rung that holds it — 0 delete / 1 encode-in-code / 2 hybrid / 3 measured-eval-case / 3.5 decompete / 4 second-pass-call.
fix-defects
Drain the TaleWater DEFECTS.md OPEN register and land the safe fixes — the orchestration loop for the self-healing arc's fix half (#3b).
micro-change
The fast path for a small, authorised, reversible PROCESS change — prose in a skill, agent or process doc, or a deterministic generator plus its regenerated output.
process-prune
On-demand leaning-out. Dedupes restated rules to one canonical home, then runs the delete-biased "make requirements less dumb" pass. The session applies reversible technical simplifications inside an approved scope; product, money, destructive and assurance trade-offs go to Nate as forks.
any session, on demand
prompt-diet
The delete-before-optimize pass for an LLM prompt — the prompt-side counterpart to process-prune.
readiness-gate
The admission gate that replaces the manual "go" (S-A-77).
sprint
Start or close a TaleWater sprint from its brief file in `Project Documentation/Sprints/`.
sprint-plan
Assemble a ranked, dependency-checked sprint proposal across one, a named set, or all workstreams — one consolidated review instead of spinning up N sessions to paste together.
story-build
Step 3 — build. Claims the worktree through Ops, passes the P-19 fail-closed pwd/branch check, builds exactly what the Active_Story names. Carries tests-as-definition-of-done, P-16 native-verify, and the pre-handoff Claude-verifies pass (incl. P-14 canonical-design diff).
Builder
story-promote
Step 1 — auto-promote. Reads top of Next up, expands to full Active_Story shape, removes from backlog, commits, pushes. In run-mode the commit is the FIRST COMMIT OF THE STORY'S BUILD BRANCH and there is no step-1 PR (S-A-163); standalone promotes still land on main. Covers preflight (in-flight branch check, story numbering, P-22 disjointness) and the step-1 claim sequence.
PM
story-reconcile
Step 4 — reconcile. Rebase, SoR update, Completed_Stories entry, queue-refill, tsc, push, open PR, then invoke the Release Manager to merge. Carries the two-path release gate (native-trigger vs JS-only/OTA) and the reconcile-the-process pass.
Builder

Pending

Remaining priority order
canonical-design-comparison
P-14's five-step diff against canonical HTML. Gates every product-UI story's device handoff — the most-failed pre-handoff check before P-14 codified it.
Build-A
bisect-first-on-regression
P-05 protocol. When a previously-passing check fails, the first move is to bisect / re-execute the last known good state — before debugging forward.
QA / Review
worktree-sim-walk
2nd Metro on an alt port + dev-client deep link — walk a story's worktree build on the sim without disturbing another session's Metro.
Builder

Two procedures graduated into agents rather than skills: the main-moved merge-recovery and post-merge worktree cleanup now live in the Release Manager + Ops remits, not a .md skill. Most other procedures stay inline in CLAUDE.md — single-step, single-judgment, or already-named-once rules (iOS build via npm scripts, EAS env-var key delivery, doc-class assignment, P-22 disjointness as a story-promote preflight, and so on).


Closing

How this hangs together

Story flows down the build loop. Each step is owned by an agent role; the only human gate is Scoped → Next up, the only human checkpoint is step-4 acceptance. The story edits documents — and the document's collision class decides how a parallel session can safely edit the same file at the same time. The role that owns the document applies the edit (or, for class 3, applies edits proposed by other sessions). The skills are what make this runnable cold: a PM agent invoking story-promote does the right thing without re-reading CLAUDE.md.

Today vs. tomorrow. Today, 20 roles and 17 live agents, with Nate standing in for the rest. Each filled seat turns a tab-switch in Nate's head into an explicit protocol call: a Scoped entry, a QUESTIONS.md Q, a branch claim through Ops, a merge invocation to the Release Manager, a chat message routed through PM. PM was the first seat — the highest-leverage one, because the single-owner write-lock changes everyone else's proposal pattern; Ops, Release Manager, Chief-of-Staff, QA, Design Intake, Bug Intake, and Review followed by carving the git-state, merge, CRM-stewardship, test-net, design-intake, bug-intake, and diff-review surfaces out of Nate's hands. Tomorrow, every role an agent, and Nate's job is judging the boundaries instead of performing all the work.