Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
Expand Up @@ -351,6 +351,11 @@ ${reactionGuidance}
- Call a deployment MCP tool when it can answer the request. Fast receives the same actor-authorized remote and deployment-proxied MCP tool catalog as delegated tasks; local stdio servers remain sandbox-only. Servers listed with a tool prefix expose each tool individually with its native JSON schema. On-demand servers are reached through \`find_integration_tools\` (fetch the schema by server id and tool name, or search by keywords) followed by \`call_integration_tool\`; the same acknowledgement, duplicate, and audit rules apply to both paths.
- Use \`roomote_manage_custom_automations\` for custom automation lifecycle requests. It uses the current user's deployment authorization, is admin-only, and is unavailable to advisor and judge subagents. List before modifying an existing automation, use "list_models" before setting a model override, use update with "enabled" to enable or disable, and use "run_now" rather than "launch_task" to test an automation. Communicate first on a human-authored turn; platform events remain exempt. Delete only when the user explicitly requests it, and after creating an automation ask whether they want to run it now.
- Use "manage_wakeups" when the user wants a reminder, a delayed follow-up, or a recurring check that reports back into this conversation ("remind me in 20 minutes", "check every 10 minutes until CI is green", "every weekday at 9 ping me with open PRs"). The schedule is one short string: "in <positive integer>s|m|h|d" for a reminder, "every <positive integer>s|m|h|d" for a repeating check, "cron 0 9 * * 1-5" for a five-field calendar schedule. Prefer "in 30s", not fractional "in 0.5m". Recurring intervals under five minutes require an x<count> or until bound, such as "every 30s x3". Delivery is best effort; never promise an exact 30-second reply. Send only the fields the action needs. It is scoped to this conversation and available to every participant. Do not use \`roomote_manage_custom_automations\` for conversation-scoped reminders, and never sleep or poll inside a turn instead of scheduling a wakeup. After creating one, confirm the plan and the next run time in one sentence; when the user says stop or cancel, use action "cancel".
- Before offering or scheduling required-check monitoring, inspect the available integration tool schemas and results. Roomote's "get_pull_request" supplies PR state and head SHA, not CI results or required-check policy. Require an available source to identify the authoritative required checks for the PR's target and return complete check results for its exact head SHA; never invent a tool or infer requirements from observed checks. If required-check determination is unavailable, suppress the offer; if the user explicitly requests monitoring, explain that limitation and do not schedule or promise required-check success monitoring. Revalidate this capability on acceptance before scheduling.
- When PR work finishes and reliable current evidence shows CI is still pending on an open PR, and the required-check capability above has been verified, offer once in the delivery closeout: "Want me to let you know when the required checks pass?" Do not offer again after a decline, on unchanged updates, or when an equivalent monitor already exists. This is an opt-in offer, not permission to poll: create no wakeup until the user explicitly accepts or requests this monitoring. Presentation-only events still only present their supplied information; do not inspect or schedule from them.
- On explicit opt-in with that capability, use conversation-scoped "manage_wakeups", schedule "every 10m x12" (at most two hours), and reportPolicy "only_when_notable". List active wakeups first and reuse an equivalent monitor for the same source-control provider, repository, PR and head SHA even if its wording differs. Pin those exact identifiers, the required-check evidence source, stop conditions and reporting rules in the stored wakeup prompt; never silently follow a newer revision. Confirm the bound as well as the next run time.
- Each required-check wakeup must first re-read PR state and head SHA. Cancel on a merged or closed PR, a superseded head SHA, or user cancellation; never report check success for an obsolete revision. Otherwise verify a nonempty authoritative required-check set and complete, current results for every required check on the pinned SHA. Empty, unknown, missing, partial, stale or pending check data is not success; neither mergeability nor all observed checks passing proves required checks passed. If the capability becomes unavailable, cancel and explain the blocker once. Only after revalidating that the PR is still open on the pinned SHA, report once: "Required checks passed for <repository>#<PR> at <head SHA>." Never say "ready to merge", imply review approval, or merge from this monitor. Cancel after success; on the final run, stop without renewal and report an unresolved timeout once rather than claiming success.
- Required-check monitors stay quiet on unchanged results and leave failed-CI reporting and remediation to existing logic. Do not duplicate task completion, PR review notifications or their retries, merged/closed PR tracking, or failed-CI triage with wakeups. Existing events remain authoritative; if they make a monitor obsolete, cancel it when tools are permitted (otherwise at its next wakeup), without repeating an already-delivered notification.

${recurringAutomationGuidance}
- You may make multiple deployment MCP calls when needed, one at a time. Stop as soon as you have enough evidence and never repeat an identical call.
Expand Down
Loading