Watch an Elixir/Phoenix PR for new review comments (bot + human) and CI results via a background watcher that wakes Claude only on real events.

MITAuto-check passedAI & LLM Engineering

Install Phx Watch PR

skills CLI
$ npx skills add oliver-kriska/claude-elixir-phoenix --skill phx-watch-pr -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install oliver-kriska/claude-elixir-phoenix phx-watch-pr --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/oliver-kriska/claude-elixir-phoenix.git skills-src && mkdir -p .claude/skills && cp -r skills-src/targets/pi/skills/phx-watch-pr .claude/skills/phx-watch-pr && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
phx-watch-pr
GitHub stars
565
Token cost
~1.9k tokens
SKILL.md length
811 words
Files
3 (incl. scripts, references)
Skills in repo
109
Repo updated
First seen
Licence
MIT

At a glance

Watch an Elixir/Phoenix PR for new review comments (bot + human) and CI results via a background watcher that wakes Claude only on real events.

  • Works in 3 steps: Parse Arguments → React Per Event → Stop
  • Tasks that involve LLM observability
  • SKILL.md covers Usage, Iron Laws, Workflow and Integration, plus 1 more section
  • Runs Shell scripts from its folder; calls gh, jq and codex

What it does

Phx Watch PR is an agent skill from oliver-kriska/claude-elixir-phoenix. Watch an Elixir/Phoenix PR for new review comments (bot + human) and CI results via a background watcher that wakes Claude only on real events. Use after opening a PR or pushing, while waiting on CI or reviewers.

Its SKILL.md is about 1.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 4 other files, including scripts and reference files (for example `references/watcher-mechanics.md` and `scripts/watch-pr.sh`).

It sits in AI & LLM Engineering, covering LLM observability. It works with Elixir. The repository describes itself as: Claude Code plugin for Elixir/Phoenix/LiveView — 26 specialist agents, Iron Laws enforcement, and Tidewave MCP integration. Plan features with parallel research agents, execute… The licence is MIT.

When your agent uses it

  • Tasks that involve LLM observability

Example prompts

  • “/phx-watch-pr”

Requirements

  • A Bash shell

Workflow steps

3 steps, taken from the step headings in SKILL.md.

  1. Parse Arguments
  2. React Per Event
  3. Stop

What it can do on your machine

Read from SKILL.md and the folder at commit 9767a82. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 1 file in scripts/ (Shell), which the agent can run.

    Shell commands in SKILL.md call:

    • gh
    • jq
    • codex

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use gh, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Phx Watch PR loads about 1.9k tokens when it runs, and up to ~3.6k if it reads all its reference files. Until then it costs about 56 tokens; SKILL.md has 811 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~56
When it runs · the whole SKILL.md, loaded when a task matches
~1.9k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~3.6k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from oliver-kriska/claude-elixir-phoenix at commit 9767a82, republished under its MIT licence (© oliver-kriska). 811 words, ~1,921 tokens.

Download SKILL.mdSave it as .claude/skills/phx-watch-pr/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
name
phx-watch-pr
description
Watch an Elixir/Phoenix PR for new review comments (bot + human) and CI results via a background watcher that wakes Claude only on real events. Use after opening a PR or pushing, while waiting on CI or reviewers.

Watch PR (Token-Conscious)

Watch a PR's reviews, comments, and CI with a background watcher that wakes Claude ONLY on real events — no foreground sleep loops, no context bloat. The watcher polls quietly in its own process; nothing enters context until something genuinely changed.

Usage

/skill:phx-watch-pr 42                 # watch reviews + comments + checks
/skill:phx-watch-pr 42 --checks-only   # CI only (delegates to gh pr checks --watch)
/skill:phx-watch-pr 42 --fix           # on actionable review, draft fixes too
/skill:phx-watch-pr 42 --codex         # + request Codex cloud review, loop until clean
/skill:phx-watch-pr 42 --codex --codex-rounds 2   # cap re-review rounds (default 3)

Iron Laws

  1. NEVER foreground-poll with sleep in the session — use the background watcher (Monitor / run_in_background). Foreground polling bloats context and straddles the 5-min cache TTL
  2. Deltas ONLY enter context — never dump full gh JSON. The watcher emits one-line events; read .claude/watch/pr-{n}.jsonl on demand
  3. Silence is not success — the watcher MUST emit on PR closed/merged, CI failure, repeated gh errors, and watchdog timeout — not just "new comment". A silent watcher looks identical to a hung one
  4. NEVER auto-post replies or auto-push — hand off to /skill:phx-pr-review for responses; show drafts and get approval. ONE exception: passing --codex IS the consent to post the @codex review trigger comment (and its per-round re-requests) — nothing else is ever auto-posted
  5. Bound every watch — default MAX_DURATION 3600s (7200s with --codex); always stop on terminal state. Codex rounds are bounded by --codex-rounds (default 3) — each round costs cloud quota

Workflow

Step 1: Parse Arguments

Extract PR number (from number or URL — URL also yields the repo). Detect --checks-only / --fix / --codex / --codex-rounds N. Baseline timestamp = now; events are "new since baseline", so old reviews don't re-fire.

With --codex, the default is to POST @codex review — the flag IS that consent (Iron Law 4). Skip the trigger ONLY when the connector bot (chatgpt-codex-connector[bot]) has itself reacted to / reviewed the current head SHA. The repo's CI "Codex" check and any local codex exec / /skill:phx-review --codex / /skill:phx-codex-loop run are DIFFERENT mechanisms from the GitHub connector — they NEVER satisfy the skip. When unsure, post. The connector auto-registers PRs on ready (its absence surfaces later as codex_timeout), so check ITS reactions before posting a redundant trigger:

bash
HEAD_AT=$(gh api "repos/{owner}/{repo}/commits/$(gh pr view {n} --json headRefOid -q .headRefOid)" --jq .commit.committer.date)
BOT=$(gh api "repos/{owner}/{repo}/issues/{n}/reactions" | jq -r --arg t "$HEAD_AT" \
  '[.[] | select(.user.login == "chatgpt-codex-connector[bot]" and .created_at >= $t) | .content] | unique | join(",")')

(gh api --jq accepts no --arg — pipe through standalone jq.)

Definitive check first: a connector-bot comment or review containing Reviewed commit: {sha} that matches the current head sha means that state IS reviewed (clean if it says "Didn't find any major issues") — trust it over timestamps, which are client-set and can skew. Then:

Connector-bot signal on current headAction
+1 reactionConnector already reviewed this head clean — no trigger, no codex round; watch CI/humans only
eyes + a codex review already submitted since $HEAD_ATFindings already posted — skip the watch; run the codex_review action (Step 3) now
eyes onlyReview in flight — do NOT post; export WATCH_CODEX=1 WATCH_CODEX_SINCE=$HEAD_AT (no trigger id) and watch
none (or reactions predate head)Post the trigger and capture its id:
bash
TRIGGER_ID=$(gh api --method POST "repos/{owner}/{repo}/issues/${PR}/comments" \
  -f body="@codex review" --jq '.id')

Export WATCH_CODEX=1 WATCH_CODEX_TRIGGER_ID=$TRIGGER_ID to the watcher env and set MAX_DURATION 7200. Round counter starts at 1.

Step 2a: --checks-only Path

No custom poller needed — gh pr checks --watch blocks until all checks finish, then exits. Run via Bash with run_in_background: true:

bash
gh pr checks {n} --watch --fail-fast --interval 10

Exit code is the signal: 0 = pass, 1 = fail, 8 = pending. On exit, report the conclusion; on failure, offer /skill:phx-investigate with the failing job log (gh run view {run-id} --log-failed).

Show full SKILL.md (305 more words)Show less
Step 2b: Full Watch Path

Start the Monitor tool (preferred — streams each event line back) on:

scripts/watch-pr.sh {n} reviews,comments,checks

Monitor is a deferred tool — load its schema FIRST via ToolSearch (select:Monitor); calling it blind fails with InputValidationError (use only the params its schema lists). A Monitor watch ends within 30 min (10 in -p runs, CC 2.1.271+), so export WATCH_SEGMENT=1740 (540 in -p) and set timeout_ms = 1800000 (600000). The script emits rearm before that. Where Monitor is unavailable (Bedrock/Vertex/Foundry), run the same script via Bash run_in_background: true — it exits on the first terminal event instead. Stay idle or keep working until an event lands.

Step 3: React Per Event
EventAction
review / comment (actionable)Summarize the delta; with --fix draft fixes + mix compile && mix test; route reply drafting to /skill:phx-pr-review {n}
check conclusion failureOffer /skill:phx-investigate on the failing job
codex_ackNote "codex is reviewing (~15–20 min on large PRs)"; keep waiting
codex_reviewStop the watcher. Run /skill:phx-pr-review {n} --bots-only (fix → reply → resolve; user approves and pushes). If rounds < --codex-rounds: post @codex review again, restart watcher with the new trigger id, round+1. Else: report remaining findings, stop
codex_cleanCodex is clean (👍 reaction OR a "Didn't find any major issues" bot comment). If checks also green → terminal success "codex + CI clean"; else keep watching CI
codex_timeoutInform: repo likely lacks the Codex connector; continue as a plain watch
rearmNot terminal. Start the same command again with WATCH_RESUME=1 added — it restores baseline, seen events and check state from the delta file
merged / pr_closed / watchdog / watch_errorStop, report final state

A codex_review whose /skill:phx-pr-review --bots-only fetch finds zero unresolved codex threads also counts as clean (summary-only review).

Step 4: Stop

The watcher self-terminates on terminal states. To stop early: TaskStop the background task or cancel the monitor.

Integration

text
push / open PR → /skill:phx-watch-pr {n} ──(new review)──► /skill:phx-pr-review {n}
                              ├──────(CI fail)─────► /skill:phx-investigate
                              ├──(--codex: codex_review)─► /skill:phx-pr-review --bots-only → push → re-request → watch (≤3 rounds)
                              ├──(--codex: codex_clean + CI green)─► done: codex + CI clean
                              └──────(merged)──────► done

References

  • references/watcher-mechanics.md — cache TTL math, Monitor vs run_in_background vs ScheduleWakeup, rate-limit notes

© oliver-kriska, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 2 other files (scripts, references) in targets/pi/skills/phx-watch-pr of oliver-kriska/claude-elixir-phoenix.

  • SKILL.md
  • references/watcher-mechanics.md
  • scripts/watch-pr.sh

Open the folder on GitHubat commit 9767a82

Compare with similar skills

Phx Watch PR next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Phx Watch PR compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Phx Watch PR this skilloliver-kriska/claude-elixir-phoenix565—~1.9kAutomated safety check: PassMIT
Elixir Architectmaxim-ist/elixir-architect145—~7.6kAutomated safety check: PassMIT
Phoenix Frameworkpodlove/radiator136—~562Automated safety check: PassMIT
Elixir Expertpass-agent/loomkin1811 repos~796Automated safety check: PassMIT
Usage Rulesbradleygolden/claude-marketplace-elixir176—~4.9kAutomated safety check: NotesMIT
Elixir Prodavila7/claude-code-templates33k8 repos~486Automated safety check: PassMIT

Similar skills

  • Elixir Architect

    maxim-ist/elixir-architect

    A skill your agent uses when designing or architecting Elixir/Phoenix applications, creating comprehensive project documentation, planning OTP supervision trees, defining domain models with Ash…

    145 GitHub stars~7.6k tokensUpdated 10 mo ago
    AI & LLM EngineeringAuto-check passed
  • Phoenix Framework

    podlove/radiator

    Use this skill working with Phoenix Framework. An agent skill from podlove/radiator.

    136 GitHub stars~562 tokensUpdated 16 days ago
    AI & LLM EngineeringAuto-check passed
  • Elixir Expert

    pass-agent/loomkin

    Expert in Elixir, Phoenix Framework, and OTP. An agent skill from pass-agent/loomkin.

    181 GitHub starsUsed in 1 repo~796 tokens
    AI & LLM EngineeringAuto-check passed
  • Usage Rules

    bradleygolden/claude-marketplace-elixir

    Search for package-specific usage rules and best practices from Elixir packages.

    176 GitHub stars~4.9k tokensUpdated 9 mo ago
    AI & LLM EngineeringAuto-check: notes
  • Elixir Pro

    davila7/claude-code-templates

    Write idiomatic Elixir code with OTP patterns, supervision trees, and Phoenix LiveView.

    33k GitHub starsUsed in 8 repos~486 tokens
    AI & LLM EngineeringAuto-check passed
  • Phoenix

    ericrisco/rsc-harness

    A skill your agent uses when building an Elixir web app with Phoenix — contexts, Ecto schemas, changesets and migrations, LiveView, channels and PubSub, the generators, and the boundary between…

    180 GitHub stars~2.9k tokensUpdated yesterday
    AI & LLM EngineeringAuto-check: notes

More from oliver-kriska/claude-elixir-phoenix

All 109 skills in this repo
  • Codex Ab

    oliver-kriska/claude-elixir-phoenix

    Run an A/B codex review experiment — holistic codex review vs 3 focused dimension passes (security, ecto, liveview) on the branch diff, classify findings, report a panel-value verdict.

    565 GitHub stars~977 tokensUpdated 5 days ago
    Auto-check passed
  • Audit

    oliver-kriska/claude-elixir-phoenix

    Project health audit and health check — architecture, performance, tests, dependencies, code quality.

    565 GitHub stars~2k tokensUpdated 5 days ago
    Auto-check passed
  • Compound Docs

    oliver-kriska/claude-elixir-phoenix

    Searchable Elixir/Phoenix/Ecto solution documentation system with; Use when consulting past solutions…

    565 GitHub stars~528 tokensUpdated 5 days ago
    Auto-check passed
  • Compound Docs

    oliver-kriska/claude-elixir-phoenix

    Searchable Elixir/Phoenix/Ecto solution documentation system with YAML frontmatter.

    565 GitHub stars~547 tokensUpdated 5 days ago
    Auto-check passed
  • Deploy

    oliver-kriska/claude-elixir-phoenix

    Elixir/Phoenix deployment patterns — Dockerfile, fly.toml, runtime.exs, mix release, rel/ overlays.

    565 GitHub stars~1.1k tokensUpdated 5 days ago
    Auto-check passed
  • Deps Update

    oliver-kriska/claude-elixir-phoenix

    Bump outdated Hex deps — inventory, snapshot changelogs, update, fix breaks, split reviewable PRs (patches bundled, majors solo).

    565 GitHub stars~1.4k tokensUpdated 5 days ago
    Auto-check passed

Works with

Questions about Phx Watch PR

What does Phx Watch PR do?

Watch an Elixir/Phoenix PR for new review comments (bot + human) and CI results via a background watcher that wakes Claude only on real events. Phx Watch PR is an agent skill from oliver-kriska/claude-elixir-phoenix. Watch an Elixir/Phoenix PR for new review comments (bot + human) and CI results via a background watcher that wakes Claude only on real events.

When should I use Phx Watch PR?

Phx Watch PR fits situations like: tasks that involve LLM observability.

How do I install Phx Watch PR in Claude Code?

Run `npx skills add oliver-kriska/claude-elixir-phoenix --skill phx-watch-pr -a claude-code`. Or copy the skill folder (targets/pi/skills/phx-watch-pr in oliver-kriska/claude-elixir-phoenix) into .claude/skills/phx-watch-pr in your project. Claude Code loads it when a task matches its description.

How do I install Phx Watch PR in Codex?

Run `npx skills add oliver-kriska/claude-elixir-phoenix --skill phx-watch-pr -a codex`. Or copy the skill folder (targets/pi/skills/phx-watch-pr in oliver-kriska/claude-elixir-phoenix) into .agents/skills/phx-watch-pr in your project. Codex loads it when a task matches its description.

Can I use Phx Watch PR in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add oliver-kriska/claude-elixir-phoenix --skill phx-watch-pr -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/phx-watch-pr, .gemini/skills/phx-watch-pr, .github/skills/phx-watch-pr and .opencode/skills/phx-watch-pr in your project.

What does Phx Watch PR need to run?

Going by SKILL.md and its folder, Phx Watch PR needs a shell for the scripts in its folder and the command-line tools its instructions call (gh, jq and codex). Our summary lists: A Bash shell.

Does Phx Watch PR access the network?

SKILL.md contains no URLs. Its commands use gh, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Phx Watch PR safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Phx Watch PR use?

Phx Watch PR is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Phx Watch PR use?

About 1.9k tokens (SKILL.md is roughly 7.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 1.7k tokens, read only when the agent opens those files.

What are the alternatives to Phx Watch PR?

Skills that share tags, products or a category with Phx Watch PR: Elixir Architect (maxim-ist/elixir-architect, 145 stars), Phoenix Framework (podlove/radiator, 136 stars), Elixir Expert (pass-agent/loomkin, 181 stars) and Usage Rules (bradleygolden/claude-marketplace-elixir, 176 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Phx Watch PR?

oliver-kriska (a GitHub user) maintains it in oliver-kriska/claude-elixir-phoenix, which has 565 GitHub stars. The repository holds 109 skills in this directory. The repository was last updated on October 5, 2026.

Source: oliver-kriska/claude-elixir-phoenix on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.