Take a cloudflare/agents GitHub issue plus any repro findings and one-shot a fix PR — branch, change, test, push, and open the PR linked to the issue.
npx skills add https://github.com/cloudflare/agents --skill open-pr
The current user message contains an <agent-think-run> envelope with
repository, issue, instruction, requested-by, and (when available)
trigger-comment-id.
Use those values exactly. Never infer or substitute another target from examples,
workspace contents, GitHub searches, or concurrent issues. If the envelope or a
required field is absent, stop without cloning/editing/pushing/posting and return a
structured skipped result. When trigger-comment-id is present, your first
container action is the liveness reaction:
gh api repos/<repository>/issues/comments/<trigger-comment-id>/reactions \
-f content=rocket
Produce a focused fix PR, authored as yourself — the agent-think GitHub App.
Do not impersonate any user.
The instruction is the free-form text the user typed after @agent-think (it
may be empty). Treat it as a direct instruction — e.g. constraints
on the fix, a preferred approach, or a pointer to the suspect area — and weight
it highly, but stay within the scope of the issue.
All gh, git, npm, curl, and wrangler commands must run on the
container backend (bash({ command, backend: "container" })) — the shell
backend has no real binaries or network. gh is already authenticated as the
app; use it directly (no token handling). Work under /workspace; put long
logs and disposable scratch files in container-local /temp.
Clone the target repo directly under /workspace using its repository name
(cloudflare/agents → /workspace/agents):
REPO_DIR="/workspace/$(basename <repo>)"
if [ ! -d "$REPO_DIR/.git" ]; then
git clone https://github.com/<repo>.git "$REPO_DIR"
fi
cd "$REPO_DIR"
gh issue view <issueNumber> --repo <repo> --json title,body,labels,author,comments
Read the body and every comment. In particular look for a comment from the
prior repro run (@agent-think repro): it may contain a minimal reproduction, a live URL,
observed-vs-expected behavior, and a root-cause hypothesis pointing at a
file/line. Use it as your starting point — do not re-derive what is already
known.
Decide if this is fixable in one shot. If the issue is a feature request
needing design, is too vague, spans many subsystems, or you cannot locate a
confident root cause, stop: return prOpened: false, skipped: true, and a
summary explaining why. Post a brief, polite comment saying the pr-agent is
skipping it and what additional detail would help; begin it with
Requested by @<requestedBy> when the run envelope has a requester.
With the repo cloned at $REPO_DIR, read the relevant code in
packages/agents, packages/think, etc. Confirm the hypothesis (or form your
own) by reading the actual implementation. Identify the smallest change that
fixes the reported behavior.
Commit as the agent-think app itself:
git config user.name "agent-think[bot]"
git config user.email "agent-think[bot]@users.noreply.github.com"
BRANCH="fix/issue-<issueNumber>-$(date +%s)"
git checkout -b "$BRANCH"
area is testable.
.changeset/) for a user-facing fix:create a markdown file following the existing format in .changeset/.
if an examples/* app or a docs//README section demonstrates the code you
touched, keep it truthful in the same PR.
Install and run the affected package's checks (monorepo uses pnpm + Nx):
# NOISY commands (installs, builds, test suites) MUST be redirected to a
# container-local /temp file and tailed — streaming megabytes of live output
# through the session can kill it irrecoverably:
mkdir -p /temp
CI=1 pnpm install --frozen-lockfile --reporter=append-only \
> /temp/install.log 2>&1 || (tail -40 /temp/install.log; false)
tail -20 /temp/install.log
# Prefer scoped/affected runs; fall back to package scripts.
pnpm -w exec oxfmt --check . || pnpm -w exec oxfmt --write .
pnpm -w exec oxlint . || true
# Run the relevant package's typecheck + tests, redirected the same way:
pnpm --filter <package> typecheck > /temp/typecheck.log 2>&1; tail -30 /temp/typecheck.log
pnpm --filter <package> test > /temp/test.log 2>&1; tail -40 /temp/test.log
(/temp is outside the /workspace mount and is not synchronized.)
Record whether tests passed in testsPassed. If you cannot make tests pass and
the failure is your change's fault, fix it; if tests are unrelated/flaky, note
that in the PR body. Do not open a PR whose own new test fails.
Every PR ships with a temporary deployment demoing the change so reviewers
click a link and see the fixed behavior instead of imagining it.
pnpm --filter <package> build
(cd packages/<package> && npm pack --pack-destination /workspace) # -> /workspace/<package>-x.y.z.tgz
/workspace/demo-<issueNumber> that exercisesthe fixed path. Follow the activated reproduce skill's **"Minimal frontend
(required)"** recipe — same 7 files — but install the packed tarball so the
demo runs YOUR fix:
npm install /workspace/<package>-x.y.z.tgz
If the repro run left a repro/issue-<issueNumber> branch, start from that
project instead and just swap the dependency to the packed build — the same
UI then demos broken-before / fixed-after.
npm run deploy # vite build && wrangler deploy --temporary
curl -sS -i "<demoUrl>/" | head -5
Capture the https://...workers.dev URL as demoUrl. Ignore the claim URL
the deploy prints — it never goes in a PR.
Use judgment: changes with no runtime surface (docs-only, types-only, CI) skip
the demo — say so in the PR body ("no runtime surface to demo") rather than
deploying something meaningless.
git status --short
git add -A
git commit -m "fix: <concise description> (#<issueNumber>)"
git push -u origin "$BRANCH"
gh pr create --repo <repo> \
--base main \
--head "$BRANCH" \
--title "fix: <concise description> (#<issueNumber>)" \
--body-file /temp/pr-body.md
Write the PR body outside the checkout at /temp/pr-body.md. It must include:
Requested by @<requestedBy> near the top, using the exact sanitizedrequested-by mention from the run envelope (omit only when it is unknown).
Closes #<issueNumber> so the issue auto-links.<demoUrl>" plus one line of click instructions and a note that it runs the
packed build from this branch. If skipped, one line on why.
repro/issue-<issueNumber> branch) if one exists.
Capture the PR URL and branch name.
Do not post an acknowledgement or "opened a PR" comment on the issue. The
PR links back to the issue via Closes #<issueNumber>. The only case where you
comment is the skip path in the Gather everything known step (no PR
exists to show).
Return exactly:
prOpened (boolean)skipped (boolean)summary (string — one or two sentences)prUrl (string, optional)branch (string, optional)testsPassed (boolean, optional)demoUrl (string, optional)Run Python code in the cloud with serverless containers, GPUs, and autoscaling. Use when deploying ML models, running batch processing jobs, scheduling compute-intensive tasks, or serving APIs that require GPU acceleration or dynamic scaling.
Advanced GitHub Actions workflow automation with AI swarm coordination, intelligent CI/CD pipelines, and comprehensive repository management
Google Cloud Platform CLI - manage GCP resources including Compute Engine, Cloud Run, GKE, Cloud Functions, Storage, BigQuery, and more.
Expert backend architect specializing in scalable API design, microservices architecture, and distributed systems. Masters REST/GraphQL/gRPC APIs, event-driven architectures, service mesh patterns, and modern backend frameworks. Handles service boundary definition, inter-service communication, resilience patterns, and observability. Use PROACTIVELY when creating new backend services or APIs.
Run Python code in the cloud with serverless containers, GPUs, and autoscaling. Use when deploying ML models, running batch processing jobs, scheduling compute-intensive tasks, or serving APIs that require GPU acceleration or dynamic scaling.
Aspire skill covering the Aspire CLI, AppHost orchestration, service discovery, integrations, MCP server, VS Code extension, Dev Containers, GitHub Codespaces, templates, dashboard, and deployment. Use when the user asks to create, run, debug, configure, deploy, or troubleshoot an Aspire distributed application.
Audits Python + BigQuery pipelines for cost safety, idempotency, and production readiness. Returns a structured report with exact patch locations.
Microsoft Store Developer CLI (msstore) for publishing Windows applications to the Microsoft Store. Use when asked to configure Store credentials, list Store apps, check submission status, publish submissions, manage package flights, set up CI/CD for Store publishing, or integrate with Partner Center. Supports Windows App SDK/WinUI, UWP, .NET MAUI, Flutter, Electron, React Native, and PWA applications.
Take cloudflare/open-pr from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.
The instructions reference npm.
Without those the skill loads but fails at the first command.