agent-prompt-audit
Audit and improve the prompt surface of Avibe Agents across backends (Claude, Codex/GPT, OpenCode) — global and project rules,…
Run durable `vibe watch` waits for PR reviews, CI, files or external signals, then resume the Agent in the right Session.
Claude Code
$ npx -y skills add avibe-bot/avibe --skill background-watch-hook --agent claude-code
Codex
$ npx skills add avibe-bot/avibe --skill background-watch-hook -a codex -y
Cursor
$ npx skills add avibe-bot/avibe --skill background-watch-hook -a cursor -y
Gemini CLI
$ npx skills add avibe-bot/avibe --skill background-watch-hook -a gemini-cli -y
GitHub Copilot
$ npx skills add avibe-bot/avibe --skill background-watch-hook -a github-copilot -y
OpenCode
$ npx skills add avibe-bot/avibe --skill background-watch-hook -a opencode -y
Windsurf
$ npx skills add avibe-bot/avibe --skill background-watch-hook -a windsurf -y
name: background-watch-hook slug: background-watch-hook description: Run durable `vibe watch` waits for PR reviews, CI, files or external signals, then resume the Agent in the right Session. version: 0.20.0
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.
| Waiter exit | Meaning | | --- | --- | | `0` | One **new** reportable event; summary on stdout | | `75` (or configured retry code) | Still waiting; no Agent turn | | `64` plus `avibe-watch: no-event` on stderr | Quiet completed cycle: retire once, re-arm forever | | `124` or other terminal failure | Notify 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.
`vibe watch <list|show|update|pause|resume|remove>`.
the whole Watch. Use `0` for an intentionally unbounded PR delivery loop.
`--create-session-per-run --same-scope` for a separate visible Session per event.
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.
repeat `--workflow` for every required workflow. Omit `--sha` to follow pushes.
enqueue, removal (with GitHub's reason), and `MERGED` (with merge commit/ref). These survive filters, success coalescing, and restart/delivery acknowledgement. Keep this same Watch through queue validation; PR-head CI is not merge-group CI. On removal, inspect the reason and associated queue run, then follow `pr-delivery-loop` recovery. Only `MERGED` readback permits close-out.
success candidate. Findings, errors and unfamiliar results remain reportable.
batches review bursts. New CI failures bypass settle. Final gates belong to `pr-delivery-loop`, including the stricter qualification of Codex reactions.
`--review-stall-minutes` (default 30, `0` disables) is reported as `Codex review stalled`, again each further window it lasts; the follow-up re-requests the review as `pr-delivery-loop` says.
is not a PR failure. Verify workflow names: missing CI is never green.
part of cursor ownership; enable them on the initial seed and armed command.
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 0After 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.
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](references/waiters.md) 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.
The local-first Agent OS — your AI partner lives on your own machine. Drive the official Claude Code, Codex & OpenCode from your browser or any chat app.
Audit and improve the prompt surface of Avibe Agents across backends (Claude, Codex/GPT, OpenCode) — global and project rules,…
Use Avibe's local Computer Use CLI for carefully bounded desktop observation and actions.
Use Avibe Harness for durable Agent delegation, Sessions, scheduled Tasks, Watches, Runs, queues, and work that must continue…
Use Avibe Vault for API keys, tokens, passwords, protected credentials, authenticated HTTP requests, or digest signing without…
Safely inspect and modify local Avibe configuration, routing, runtime settings, watches, scheduled tasks, Avibe Cloud remote…
Build, inspect, update, restore, or share Avibe Show Pages for visual explanations, diagrams, reports, or interactive prototypes.…
Direct browser control via CDP for web interaction: automation, scraping, testing, screenshots, and site/app work. Also covers…
Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling…