← Marketplace
1 agent
3 chests
2 contexts
1 loop
1 table
9 belts6 yokes
Production Review Runner
An agent that checks a release on your live site after deploy: confirms the commit is live, runs your checks with test traffic labelled and vendor calls mocked, and records an evidence-backed PASS/FAIL/BLOCKED row. Needs a local agent with Playwright, plus a read-only GitHub token in a vault (key name GITHUB_TOKEN). Setup steps are in the HARNESS SETUP box.
Run Production Review Runner using Yoke Credits. Compute, AI calls, and retained storage are metered. New organizations receive $1 in credits; at least $1 available is required to launch.
No subscription · pause whenever you like
The board
commsdatarelation
What's inside
- agent
- Production Review Agent
- chests
- Prod Review Side Chest, Prod Review Staging Chest, Prod Review Chest
- contexts
- PRODUCTION REVIEW INSTRUCTIONS, HARNESS SETUP (fill in)
- loop
- Production Review Loop
- table
- prod_review_notes
Swarm file
View the swarm file (463 lines)
# Production Review Runner: built from a Cmd+B board capture, then sanitized (generic ids/names; agent config, chest items and table rows are NOT carried).
# Belt/loader layout is grid-position based: keep the tiles adjacent as placed. Set the loop to FIRE ON DEMAND and give the agent a local runtime. See SETUP.md.
pipes = []
cam_x = 0.0
cam_y = 0.0
cam_zoom = 1.0
prompt_loaders = []
http_fetch_loaders = []
webhook_loaders = []
trash = []
last_seq = 0
last_hash = ""
[[agents]]
id = "prod-loader-6"
name = "Prod Review Loader 6"
gx = 17
gy = 4
width = 1
height = 1
system_prompt = ""
projects = []
has_session = false
last_status = ""
template_id = "builtin-yoke"
overrides = []
unplaced = false
created_by = ""
[[agents]]
id = "prod-belt-9"
name = "Prod Review Belt 9"
gx = 16
gy = 4
width = 1
height = 1
system_prompt = ""
projects = []
has_session = false
last_status = ""
template_id = "builtin-belt"
overrides = []
unplaced = false
created_by = ""
[[agents]]
id = "prod-belt-8"
name = "Prod Review Belt 8"
gx = 15
gy = 4
width = 1
height = 1
system_prompt = ""
projects = []
has_session = false
last_status = ""
template_id = "builtin-belt"
overrides = []
unplaced = false
created_by = ""
[[agents]]
id = "prod-loader-5"
name = "Prod Review Loader 5"
gx = 13
gy = 4
width = 1
height = 1
system_prompt = ""
projects = []
has_session = false
last_status = ""
template_id = "builtin-yoke"
overrides = []
unplaced = false
created_by = ""
[[agents]]
id = "prod-belt-5"
name = "Prod Review Belt 5"
gx = 8
gy = 4
width = 1
height = 1
system_prompt = ""
projects = []
has_session = false
last_status = ""
template_id = "builtin-belt"
overrides = []
unplaced = false
created_by = ""
[[agents]]
id = "prod-belt-4"
name = "Prod Review Belt 4"
gx = 4
gy = 4
width = 1
height = 1
system_prompt = ""
projects = []
has_session = false
last_status = ""
template_id = "builtin-belt"
overrides = []
unplaced = false
created_by = ""
[[agents]]
id = "prod-belt-3"
name = "Prod Review Belt 3"
gx = 3
gy = 4
width = 1
height = 1
system_prompt = ""
projects = []
has_session = false
last_status = ""
template_id = "builtin-belt"
overrides = []
unplaced = false
created_by = ""
[[agents]]
id = "prod-belt-6"
name = "Prod Review Belt 6"
gx = 9
gy = 4
width = 1
height = 1
system_prompt = ""
projects = []
has_session = false
last_status = ""
template_id = "builtin-belt"
overrides = []
unplaced = false
created_by = ""
[[agents]]
id = "prod-belt-2"
name = "Prod Review Belt 2"
gx = 2
gy = 4
width = 1
height = 1
system_prompt = ""
projects = []
has_session = false
last_status = ""
template_id = "builtin-belt"
overrides = []
unplaced = false
created_by = ""
[[agents]]
id = "prod-belt-1"
name = "Prod Review Belt 1"
gx = 1
gy = 4
width = 1
height = 1
system_prompt = ""
projects = []
has_session = false
last_status = ""
template_id = "builtin-belt"
overrides = []
unplaced = false
created_by = ""
[[agents]]
id = "prod-agent"
name = "Production Review Agent"
gx = 11
gy = 4
width = 2
height = 2
system_prompt = ""
projects = []
has_session = false
last_status = ""
overrides = []
unplaced = false
created_by = ""
[[agents]]
id = "prod-side-chest"
name = "Prod Review Side Chest"
gx = 11
gy = 7
width = 2
height = 2
system_prompt = ""
projects = []
has_session = false
last_status = ""
template_id = "builtin-chest"
overrides = []
unplaced = false
created_by = ""
[[agents]]
id = "prod-instructions"
name = "PRODUCTION REVIEW INSTRUCTIONS"
gx = 13
gy = 0
width = 2
height = 1
system_prompt = ""
projects = []
has_session = false
last_status = ""
template_id = "builtin-context"
doc_text = """
PRODUCTION REVIEW AGENT: HOW TO CHECK A RELEASE IN PRODUCTION
You are woken when the Production Review loop delivers a package. Each package is one check of one release (one or more merged PRs) at one commit, on the LIVE site.
Package (JSON): {"task":"prod_review","repo":"<owner/repo>","prs":[<numbers>],"sha":"<short sha of the deployed commit>","site":"<https://your-site>","fired_at_utc":"<clock>","suite":"<what to check, free text>","authorized_by":"<agent or person who asked>"}
If task is not "prod_review", or sha or site is missing, or it says "probe" or "ignore", do nothing.
1. CONFIRM THE DEPLOY. Before any page load, check that the package commit is really live: the GitHub deployments API shows that sha with state=success for the production environment, and a served asset or build marker matches. If it is not live yet, poll a few times (do not loop fast; the GitHub API is rate-limited). If it still is not live, write BLOCKED and report.
2. OPEN THE RECORD. In the table prod_review_notes create the row with key prod_pr<PR numbers joined by _>_<first 7 chars of sha> (add _r2, _r3 for re-runs). Set started_at_utc from the clock, never guessed.
3. PROTECT REAL DATA (every run, no exceptions):
- Label your traffic as internal/test before the first page load (for example a test cookie or flag your site recognises), so analytics and ads do not count you as a visitor.
- Intercept requests to analytics, ads and session-recording vendors, and to your own collect/ingest endpoints. Answer them with a mocked 200 and assert on the ATTEMPTED requests; never let them reach the vendor.
- Never submit real forms, book real meetings, buy anything or sign in with real accounts.
- Keep page loads to the minimum the checks need; production sites rate-limit.
Any run without these protections needs explicit approval from the requester for that ONE run. Log it as an exception in standing_notes; it is not a standing change.
4. RUN THE CHECKS named in the package's suite field, in a real browser (headed if your analytics drops headless browsers), with screenshots and request logs as evidence. This job is READ-ONLY: never change settings, content, secrets or data, and never spoof network headers.
5. WRITE THE RESULT to the same row: checks [{id, st: PASS | FAIL | BLOCKED, ev}], counts, fails, blocked (check + reason), deploy evidence (sha, environment, state, time), timing, open_questions, finished_at_utc, and one history line {at_utc, change}. Use BLOCKED, never PASS, for anything you could not observe (for example server-side events you cannot see). Never write people's names, emails or tokens into a row. Add a one-line summary for the row to the _index row.
6. RECOMMEND, DO NOT ACT. If something is broken, say FAIL and recommend fix-forward or rollback, with the evidence. Never roll back or redeploy yourself.
7. REPORT. Send the requester ONE short message: site, PRs, commit, verdict (PASS / FAIL / BLOCKED), counts, any FAILs or blockers, and timing. No acknowledgements or progress updates.
8. KEEP STANDING NOTES. When you learn something reusable (a harness quirk, a vendor behaviour, an approved exception), add it to the row named standing_notes in prod_review_notes. Never put secrets there.
"""
overrides = []
unplaced = false
created_by = ""
[[agents]]
id = "prod-stage-chest"
name = "Prod Review Staging Chest"
gx = 6
gy = 4
width = 1
height = 1
system_prompt = ""
projects = []
has_session = false
last_status = ""
template_id = "builtin-chest"
overrides = []
unplaced = false
created_by = ""
[[agents]]
id = "prod-table"
name = "prod_review_notes"
gx = 11
gy = 1
width = 2
height = 2
system_prompt = ""
projects = []
has_session = false
last_status = ""
template_id = "builtin-table"
overrides = []
unplaced = false
created_by = ""
[[agents]]
id = "prod-loader-4"
name = "Prod Review Loader 4"
gx = 11
gy = 6
width = 1
height = 1
system_prompt = ""
projects = []
has_session = false
last_status = ""
template_id = "builtin-yoke"
overrides = []
unplaced = false
created_by = ""
[[agents]]
id = "prod-belt-7"
name = "Prod Review Belt 7"
gx = 14
gy = 4
width = 1
height = 1
system_prompt = ""
projects = []
has_session = false
last_status = ""
template_id = "builtin-belt"
overrides = []
unplaced = false
created_by = ""
[[agents]]
id = "prod-loader-3"
name = "Prod Review Loader 3"
gx = 10
gy = 4
width = 1
height = 1
system_prompt = ""
projects = []
has_session = false
last_status = ""
template_id = "builtin-yoke"
overrides = []
unplaced = false
created_by = ""
[[agents]]
id = "prod-loader-1"
name = "Prod Review Loader 1"
gx = 5
gy = 4
width = 1
height = 1
system_prompt = ""
projects = []
has_session = false
last_status = ""
template_id = "builtin-yoke"
overrides = []
unplaced = false
created_by = ""
[[agents]]
id = "prod-loader-2"
name = "Prod Review Loader 2"
gx = 7
gy = 4
width = 1
height = 1
system_prompt = ""
projects = []
has_session = false
last_status = ""
template_id = "builtin-yoke"
overrides = []
unplaced = false
created_by = ""
[[agents]]
id = "prod-loop"
name = "Production Review Loop"
gx = 0
gy = 4
width = 1
height = 1
system_prompt = ""
projects = []
has_session = false
last_status = ""
template_id = "builtin-loop"
overrides = []
unplaced = false
created_by = ""
[[agents]]
id = "prod-chest"
name = "Prod Review Chest"
gx = 18
gy = 4
width = 2
height = 2
system_prompt = ""
projects = []
has_session = false
last_status = ""
template_id = "builtin-chest"
overrides = []
unplaced = false
created_by = ""
[[agents]]
id = "prod-harness"
name = "HARNESS SETUP (fill in)"
gx = 16
gy = 0
width = 2
height = 1
system_prompt = ""
projects = []
has_session = false
last_status = ""
template_id = "builtin-context"
doc_text = """
HARNESS SETUP: replace every YOUR_* value before the first run.
Repository: YOUR_REPO (owner/repo)
Live site: YOUR_SITE_URL
Production environment name (as shown in GitHub deployments): YOUR_PRODUCTION_ENVIRONMENT
Git access: a read-only GitHub token stored in your vault under the key name GITHUB_TOKEN (needs to read deployments). Read it by name; never write it into any file, row or message.
Deploy marker: how to tell which build is live (for example a served asset hash or a version string): YOUR_DEPLOY_MARKER
Internal/test traffic label: the cookie or flag your site recognises as test traffic: YOUR_TEST_TRAFFIC_LABEL (set it before the first page load)
Vendor hosts to intercept and mock: YOUR_VENDOR_HOSTS (analytics, ads, session recording)
Your own collect/ingest endpoints to intercept: YOUR_COLLECT_ENDPOINTS
Suite (optional): the checks you usually run after a release and what each covers.
Browser: Playwright with a Chromium browser on this machine.
Reusable habits:
- Confirm the deploy through the GitHub deployments API plus a served-asset or build marker before testing.
- Mock vendor calls with a 200 rather than aborting (aborting makes some SDKs retry), and assert on the attempted requests.
- Use a headed browser if your analytics drops headless traffic.
- Avoid coordinate clicks on app pages; scroll or move the mouse instead.
- Build curl arguments as arrays in a script, and test the request construction against a local echo server before spending real production requests.
- Watch the shared GitHub API rate limit; do not loop.
- A run without the data protections needs the requester's one-off approval and an entry in standing_notes.
"""
overrides = []
unplaced = false
created_by = ""
[agent_runtimes]
[agent_harnesses]
[agent_models]
[node_orientations]
[agent_slugs]
[spawned_by]
[node_creator]
[[wires]]
from = "prod-agent"
to = "prod-table"
[[wires]]
from = "prod-table"
to = "prod-agent"
[[wires]]
from = "prod-instructions"
to = "prod-agent"
[[wires]]
from = "prod-harness"
to = "prod-agent"