ワンクリックで
verify
Build, launch, and drive pagebin locally to verify worker or CLI changes end-to-end.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Build, launch, and drive pagebin locally to verify worker or CLI changes end-to-end.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
| name | verify |
| description | Build, launch, and drive pagebin locally to verify worker or CLI changes end-to-end. |
bunx wrangler dev --config wrangler.dev.toml --port 8790 \
--var PAGEBIN_PUBLISH_TOKEN:test-publish-token \
--var PAGEBIN_PUBLIC_ORIGIN:http://127.0.0.1:8790
Runs in miniflare with a local R2 bucket — no cloud state touched. Wait for
http://127.0.0.1:8790/robots.txt to return 200. Do not use wrangler.toml
for local QA: its production custom domains can rewrite localhost requests and
produce misleading 421 responses.
# publish (multipart, .html extension required)
curl -s -X POST http://localhost:8790/api/publish \
-H "Authorization: Bearer test-publish-token" \
-F "file=@page.html;type=text/html"
# → {"id": ..., "url": "http://localhost:8790/p/<id>/<token>", ...}
# update in place
curl -s -X PUT http://localhost:8790/api/artifacts/<id>/content \
-H "Authorization: Bearer test-publish-token" \
-F "file=@page.html;type=text/html"
Use the helium-browser-use skill and create a labeled agent-owned tab. The
viewer URL is a capability secret; do not print it or include it in screenshots
of browser chrome. The current tab-list command and JSON shape are:
port="${HELIUM_AGENTS_CDP_PORT:-9222}"
agent-browser --cdp "$port" tab new --label pagebin-verify "<viewer url>"
agent-browser --cdp "$port" tab list --json
Measure the auto-reload poll cadence from inside the page (the viewer polls
/api/artifacts/<id>/version/<token>):
agent-browser --cdp "$port" eval "(() => {
const polls = performance.getEntriesByType('resource').filter(e => e.name.includes('/version/'));
const times = polls.map(p => Math.round(p.startTime));
return JSON.stringify({count: polls.length, gaps: times.map((t,i) => i ? t - times[i-1] : t)});
})()"
Expected polling behavior: 2s initial delay, ×1.5 backoff per unchanged poll
up to 60s; reset to 2s on detected update or tab becoming visible; zero polls
while document.hidden. Background the tab with tab new about:blank,
foreground with the tracked tab ID. After a PUT, the iframe src gains
?v=<updatedAt>.
contentDocument is inaccessible — verify
reload via the iframe src attribute and a screenshot, not DOM access./run/user/$UID/agent-browser; a read-only error is a sandbox
permission issue, not a Helium/CDP failure.agent-browser tab list --json returns tabs under .data.tabs. Do not chain
tab creation with a guessed JSON parser: the mutation can succeed even if the
parser fails, leaving an untracked agent-owned tab.Bun.serve({ port: 0 })
test reports EADDRINUSE, rerun with local socket-binding permission.bun run typecheck covers both tsconfigs; editor LSP diagnostics against
worker/index.ts are noise (LSP doesn't load @cloudflare/workers-types).