Skip to content

feat(orchestrating-agent-relay): teach the orchestrator to hand out an observer link - #92

Open
willwashburn wants to merge 1 commit into
mainfrom
claude/agent-relay-skills-review-a8mgtd-observer-orchestrator
Open

feat(orchestrating-agent-relay): teach the orchestrator to hand out an observer link#92
willwashburn wants to merge 1 commit into
mainfrom
claude/agent-relay-skills-review-a8mgtd-observer-orchestrator

Conversation

@willwashburn

@willwashburn willwashburn commented Aug 3, 2026

Copy link
Copy Markdown
Member

Summary

The orchestrator is exactly the role that should hand a watching human a way to follow a run — and this skill, the canonical one for running a team autonomously, never mentioned observation at all. No observer link, no warning against building one from the workspace key.

That silence is a root cause of the problem the rest of this series is cleaning up: a lead reading this skill has no sanctioned way to answer "can I watch?", so it reaches for the only pattern it has ever seen, https://agentrelay.com/observer?key=<rk_live_...> — an administrative credential in a URL.

Adds agent-relay observer (and the get_observer_url MCP equivalent) in the four places a lead actually looks:

  • the Quick Reference table, next to the other one-line commands
  • a new bootstrap step after spawning workers, with the narrowing and revoke flags
  • the paste-worthy protocol template, which is what people actually copy into a lead prompt
  • the Common Mistakes table, for a lead that already built the unsafe URL

Each states the default posture — read-only, 24-hour expiry, agent DMs excluded — and why a workspace key can't take its place: it's administrative, and the realtime endpoint rejects it outright, accepting only a scoped token with stream:read.

Requires the command and MCP tool from AgentWorkforce/relay#1422; worth merging after it.

Observation for a follow-up

This skill is now 517 lines with a 25-row Common Mistakes table, and has grown into something closer to an incident log than a skill. Much of it is genuinely hard-won (the 30–60s cold-start gap before a worker's first ACK, stale connection.json pointing at a dead broker, broker not being a DM-able name), but several rows restate prose from the sections above them.

The natural fix is progressive disclosure — move troubleshooting to references/troubleshooting.md and keep the SKILL.md at model + bootstrap + protocol. I didn't do it here because prpm.json enumerates package files individually, so a reference file that isn't added to files ships a skill pointing at something that doesn't exist. Worth doing deliberately rather than as a rider on this change.

Part of a series from a review of the Agent Relay skills and plugins.

Test Plan

  • Each of the four edits applied with a uniqueness assertion on its anchor, so none could land in the wrong place or twice
  • Verified all observer references render in the expected sections (Quick Reference row, new step, protocol template, mistakes table)
  • prpm.json parses; version bumped 2.2.0 → 2.3.0 with the README table kept in sync
  • Commands used match --help on a build of the current CLI (agent-relay observer, --channels, --include-dms, --expires, observer revoke)
  • Tests added/updated — n/a, this repo has no test tooling

Screenshots

n/a


Generated by Claude Code

Review in cubic

…n observer link

The orchestrator is exactly the role that should give a watching human a
way to follow a run, and this skill never mentioned observation at all —
no observer link, no warning against building one from the workspace key.
That silence is why leads reach for `?key=<rk_live_...>`: it is the only
pattern they have seen.

Adds `agent-relay observer` (and the `get_observer_url` MCP equivalent)
in the four places a lead actually looks: the Quick Reference table, a
new bootstrap step after spawning, the paste-worthy protocol template,
and the Common Mistakes table. Each states the default posture —
read-only, 24h expiry, agent DMs excluded — and why a workspace key can
never take its place.

Requires the command and tool from AgentWorkforce/relay#1422.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Jmke9G9s7ftrN49opNmdx1
@coderabbitai

coderabbitai Bot commented Aug 3, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@willwashburn, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 35 minutes

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 8b31bbe7-e984-45b5-9187-74a3c03ad637

📥 Commits

Reviewing files that changed from the base of the PR and between 0f3fcf2 and 3572a05.

📒 Files selected for processing (3)
  • README.md
  • prpm.json
  • skills/orchestrating-agent-relay/SKILL.md

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 3572a05f2c

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +176 to +180
> **Never build an observer URL from the workspace key.** `rk_live_` is an
> administrative credential — it can send messages, spawn agents, and change
> workspace settings — and a URL query string is not a place to put one. The
> realtime endpoint rejects it anyway; only a scoped observer token with
> `stream:read` is accepted.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Replace the plugin's workspace-key observer URLs

When users invoke any of the shipped Claude plugin workflows, this new safety rule is bypassed: I checked plugins/claude-relay-plugin/skills/relay-team/SKILL.md:27, relay-fanout/SKILL.md:27, and relay-pipeline/SKILL.md:27, and all three still mandate printing https://agentrelay.com/observer?key=<the actual key>. Those entry points therefore expose the administrative workspace credential and, according to this newly documented invariant, give users a URL that the realtime endpoint rejects; update them to obtain and print a scoped observer URL instead.

Useful? React with 👍 / 👎.

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No issues found across 3 files

Re-trigger cubic

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants