Cloud Agent runbook — Brainforge Slack Assistant modernization
Status: Active
Owner: Uttam Kumaran
Last updated: 2026-03-28
Related: slack-bot-modernization-plan.md · ROADMAP.md · brainforge-assistant app · ARCHITECTURE.md · architecture entries
Linear: Brainforge Slack Assistant Modernization · meta ticket PLT-1247 (delegate: Cursor)
Purpose
This runbook is the single source of truth for Cursor Cloud Agent (or any agent with equivalent tools) to execute, verify, and update Linear for the Slack assistant modernization without replacing the ticket graph. Child issues remain the unit of ship; this doc defines the loop and stop conditions.
Aligns with internal harness thinking: knowledge/plans/engineering/cloud-agent-automation-backlog.md, knowledge/plans/engineering/cloud-agent-data-environment-report.md.
Execution graph (do not collapse)
Work these issues in dependency order (respect blockedBy in Linear):
| ID | Title (short) |
|---|---|
| PLT-1237 | Finalize Railway-first v2 architecture / ADR |
| PLT-1238 | v2 TypeScript scaffold on Railway |
| PLT-1239 | Test vs prod Slack app isolation |
| PLT-1240 | AI SDK + Azure + tools |
| PLT-1241 | Fixture replay tests + CI gating |
| PLT-1242 | Durable state + idempotency |
| PLT-1243 | Vertical slice on test assistant app |
| PLT-1244 | HITL approval path |
| PLT-1245 | Shadow run + metrics |
| PLT-1246 | Production cutover (human-heavy) |
Rule: Do not open one PR that claims multiple unrelated issues unless the team explicitly agrees; prefer one primary issue per PR with links in the description.
Standard agent loop (each issue)
- Pick the next unblocked issue in the project (or the one the human names in the Cloud Agent prompt).
- Branch using Linear’s suggested branch name (e.g.
uttam/plt-1238-...). - Implement per acceptance criteria; keep scope tight.
- Run local checks (TypeScript, tests) as appropriate for touched paths.
- Open PR with required body sections (Summary / Changes / Impact / Related) and Linear ID in title for integration.
- Update Linear: comment with PR link, what changed, what’s left; move state per team norms.
- Verify (when the issue requires runtime checks):
- Test Slack app only until cutover ticket.
- Use Slack MCP (or test channel) to confirm behavior when applicable.
- Stop at any human gate (below); leave a Linear comment:
Blocked: human gate — <exact step>.
Human-only gates (hard stops)
Agent must not silently bypass these; request human action and pause.
- Slack app manifest changes, Event Subscriptions URLs, Assistant settings, OAuth reinstall in workspaces where the agent lacks admin.
- Production bot token / signing secret rotation or Railway prod env changes (unless org policy explicitly allows agent automation).
- Production cutover timing and approval (PLT-1246).
- GitHub settings the agent cannot change: branch protection, required reviewers, auto-merge policy.
- 1Password / secrets retrieval if Cloud Agent has no
opor approved secret store access.
Tools Cloud Agent should have (target)
| Tool | Why |
|---|---|
| Linear MCP | Issues, states, comments, dependencies, project visibility |
| GitHub (CLI or MCP) | Branch, commit, PR, read checks |
| Slack MCP | Post/read test channel; validate assistant behavior |
| Railway MCP (or CLI + token) | Deploy test service, logs, env for test environment |
| Repo checkout | Default for Cloud Agent |
If Railway MCP is missing or read-only, agent documents exact human steps for deploy and still ships code + PR.
Kickoff prompt template (paste into Cursor Cloud Agent)
Use the repo path and first ticket:
Follow knowledge/engineering/brainforge-slack-assistant/cloud-agent-runbook.md.
Project: Brainforge Slack Assistant Modernization (Linear).
Start with PLT-1237 (architecture/ADR). If 1237 is done, follow blockedBy order for PLT-1238 and PLT-1239 in parallel only if safe.
Railway-first; test Slack app only until PLT-1246.
Comment on each touched Linear issue with PR link and verification notes.
Stop at any human gate and comment "Blocked: human gate" with the exact step.Owner checklist (human) — get Cloud managing the project
- Wire MCPs on Cloud Agent — Same capabilities as local where possible: Linear, Slack, GitHub, Railway (test scope).
- Confirm secrets policy — What Cloud Agent may read (e.g. Railway test token in approved store); prod stays gated.
- Move PLT-1237 to “ready” and start Cloud Agent with the kickoff prompt above (or delegate from PLT-1247).
- Merge policy — Decide: required human review vs auto-merge when CI green + label; document in PLT-1247 or here.
- Slack test app — Ensure test app request URL points at test Railway service before agent runs live verification tickets.
After this runbook ships
Close PLT-1247 when:
- This file exists in repo and is linked from the modernization plan.
- Human gates and loop are agreed (update this doc if policy changes).