Skip to content
cccskills
FreePublished on GitHub

background-watch-hook

Run durable `vibe watch` waits for PR reviews, CI, files or external signals, then resume the Agent in the right Session.

The English summary is being prepared. Showing the original description.

See how to install

Files included (7)

  • SKILL.md5.1 KB
  • references/waiters.md33.1 KB
  • scripts/_github_actions_wait.py5.4 KB
  • scripts/_github_wait_common.py16.3 KB
  • scripts/wait_action.py8.9 KB
  • scripts/wait_issue.py16.5 KB
  • scripts/wait_pr.py137.6 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Background Watch Hook

Use vibe watch for a durable wait that resumes an Agent when an external event arrives. The waiter detects events; the follow-up Agent verifies live state and acts. A success candidate is not merge authorization.

Contract and lifecycle

Waiter exitMeaning
0One new reportable event; summary on stdout
75 (or configured retry code)Still waiting; no Agent turn
64 plus avibe-watch: no-event on stderrQuiet completed cycle: retire once, re-arm forever
124 or other terminal failureNotify the Agent and stop

A bare 64 is an error. Keep diagnostics on stderr. A once Watch waiting for its first event uses a retry code, not 64. Forever waiters need durable cursors or edge detection; a persistent true condition is not a new event. Avibe serializes follow-ups, re-arms after they settle, and pauses rapid repeated events for repair.

  • Read vibe watch add --help before first use; inspect/update with vibe watch <list|show|update|pause|resume|remove>.
  • --timeout bounds each cycle (default six hours); --lifetime-timeout bounds the whole Watch. Use 0 for an intentionally unbounded PR delivery loop.
  • Remove the Watch at close-out. Do not use detached shells for durable waits.

Session targeting

  • Inside an Avibe-injected Agent shell, omitting the target continues this conversation.
  • Use --session-id <id> only when resuming a different existing Agent Session.
  • Use --create-session --same-scope for one visible sibling Session; use --create-session-per-run --same-scope for a separate visible Session per event.
  • Use --scope-id <scopes.id> instead of --same-scope for an explicit scope.
  • If --cwd is omitted, Avibe uses the command's current working directory.

Preferred PR + CI watch

Use --forever and one owner-specific state file for the whole loop. Seed and arm before the watched push/review trigger; for a new PR, create it first, then immediately seed/arm. Keep the same Watch and cursor across all later rounds.

  • wait_pr.py --workflow <actual-name> combines PR activity with exact-head CI; repeat --workflow for every required workflow. Omit --sha to follow pushes.
  • --coalesce-success: keep half-success quiet; report one same-head CI/review success candidate. Findings, errors and unfamiliar results remain reportable.
  • --actionable-only drops review triggers and empty envelopes; --settle 20 batches review bursts. New CI failures bypass settle. Final gates belong to pr-delivery-loop, including the stricter qualification of Codex reactions.
  • Set --timeout 0 on both sides of the -- command separator; six quiet hours is not a PR failure. Verify workflow names: missing CI is never green.
  • Never reseed or replace its state between rounds. Filters/reporting modes are part of cursor ownership; enable them on the initial seed and armed command.
  • Cursor corruption, ownership conflicts or write failures require repair with evidence preserved, not a fresh baseline. Retryable GitHub failures keep waiting.

Run scripts from the loaded Skill directory, not a guessed installation path:

BACKGROUND_WATCH_HOOK_DIR="<directory containing the loaded SKILL.md>"
STATE_FILE="$HOME/.avibe/state/watch-cursors/pr-151-review.json"
BRANCH="$(gh pr view 151 --repo avibe-bot/avibe --json headRefName --jq .headRefName)"

uv run --no-project "$BACKGROUND_WATCH_HOOK_DIR/scripts/wait_pr.py" \
  --repo avibe-bot/avibe --pr 151 --branch "$BRANCH" \
  --workflow lint --coalesce-success --actionable-only \
  --state-file "$STATE_FILE" --seed-state

vibe watch add \
  --name "Watch PR 151 review and CI" --forever --timeout 0 \
  --message "PR #151 has an event. Follow pr-delivery-loop; verify live gates, handle findings/errors, and keep half-success silent." \
  -- \
  uv run --no-project "$BACKGROUND_WATCH_HOOK_DIR/scripts/wait_pr.py" \
    --repo avibe-bot/avibe --pr 151 --branch "$BRANCH" \
    --workflow lint --coalesce-success --actionable-only \
    --settle 20 --state-file "$STATE_FILE" --interval 60 --timeout 0

After confirming the seeded Watch is live, push or trigger review. Check exactly one live Watch per owner/PR/concern at each round's end. The state file stages reports until delivery acknowledgement, so an undelivered report may replay; never discard it merely to avoid a duplicate.

Other waits and troubleshooting

Use wait_pr.py without CI arguments for PR-only activity; use wait_action.py for standalone Actions and wait_issue.py for issues. Do not combine --new-prs with CI options. --catch-up and explicit cursors deliberately replay history, not routine re-arming. Keep Watch messages short and action-oriented; reference loaded policy rather than restating it on every fire.

Detailed waiter reference covers alternative commands, filters, replay, authentication, and cursor/settle internals. Read it only for those tasks or a concrete failure, not for routine PR monitoring.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Audit and improve the prompt surface of Avibe Agents across backends (Claude, Codex/GPT, OpenCode) — global and project rules, Agent system prompts, Skills, delegation briefs, and Task and Watch messages — using real run evidence. Use when an Agent misbehaves (stalls, over-asks, over-reaches, ignores or over-applies a rule), after a model or backend change, or when the user asks to review, clean up, or tighten prompts.

The English summary is being prepared. Showing the original description.

avibe-bot/avibe630Updated Oct 19, 2026

Use Avibe's local Computer Use CLI for carefully bounded desktop observation and actions.

The English summary is being prepared. Showing the original description.

avibe-bot/avibe630Updated Oct 19, 2026

Deliver Avibe, avibe-bot-backend, avibe-docs, avault, and vault-sandbox PRs from worktree and implementation through Codex review, CI, and Merge. Use it for implementation work on every Agent backend.

The English summary is being prepared. Showing the original description.

avibe-bot/avibe630Updated Oct 19, 2026

Safely inspect and modify local Avibe configuration, routing, runtime settings, watches, scheduled tasks, Avibe Cloud remote access, and operational state. Also use it to report an Avibe bug, send product feedback, or file a feature request from the current conversation.

The English summary is being prepared. Showing the original description.

avibe-bot/avibe630Updated Oct 19, 2026

Use Avibe Harness for durable Agent delegation, Sessions, scheduled Tasks, Watches, Runs, queues, and work that must continue beyond the current turn.

The English summary is being prepared. Showing the original description.

avibe-bot/avibe630Updated Oct 19, 2026

Use Avibe Vault for API keys, tokens, passwords, protected credentials, authenticated HTTP requests, or digest signing without exposing secret values to the agent.

The English summary is being prepared. Showing the original description.

avibe-bot/avibe630Updated Oct 19, 2026

See all skills by avibe-bot

Report a problem with this skill