Paperclipで実際のブラウザからサーバー、データベースまで通すE2E評価を追加・拡張し、操作結果や証拠を既存のレポートで確認できるようにするスキル。
- 一連の利用操作の評価を追加したいとき
- テスト用データと判定条件の更新
- 評価レポートに画像や成果物を載せたいとき
Paperclipの遅いPostgreSQLクエリを調査・修正し、ローカルで速度と結果の一致を検証して、テストを通したプルリクエストにまとめます。
Diagnose and fix slow Paperclip PostgreSQL queries using Cloud and Neon evidence, local reproduction, performance and result comparisons, regression tests, and a PR with passing checks. Use for costly queries, repeated database work, or slow requests with a suspected database cause.
Paperclipで遅いPostgreSQLクエリを見つけ、測定に基づく修正とプルリクエストの作成まで進めます。CloudとNeonの統計から負荷の大きい処理を絞り、呼び出し元や実行計画を調査します。実際のPostgreSQLと合成データで遅さを再現し、修正前後の速度だけでなく、返される値や順序、権限範囲が保たれるかも比較します。
データベースが原因と思われる応答遅延や、繰り返し実行されるクエリの負荷を調べたい開発者向けです。修正の根拠、再発防止テスト、最新コミットのチェック結果をそろえてレビューに出したい場合に適しています。
対象環境の調査権限、ソースコード、ローカルで使うPostgreSQLが必要です。原則としてデータベースの構造変更を避け、必要な場合は大規模データで所要時間も測ります。マージ、デプロイ、本番データベースの変更は別途許可が必要です。ローカルでの高速化だけでは、本番の応答改善を確認した扱いにはなりません。
この紹介文は、公開されている SKILL.md をもとに AI(OpenAI Codex)が作成しました。正確な仕様は下の原文を確認してください。
インストールする前に、エージェントに与えられる指示の中身を確認できます。
Deliver a measured improvement with preserved behavior and a reviewable PR whose latest commit passes checks. A list of suspicious SQL or an unverified rewrite is an intermediate result. Respect a narrower request for diagnosis only.
AGENTS.md and scoped rules.
Paperclip and the private paperclip-cloud control plane have different rules.Read Cloud discovery when starting from a hosted workspace. Follow the chain from Paperclip Cloud fleet admin to the stack's Neon project, branch, endpoint, database, and runtime role. Record the corresponding application deployment and time window. Do not reuse IDs from a previous run.
Capture query text/fingerprint, calls, total execution time, mean time, rows, and available I/O, temporary-file, and lock-wait evidence. Rank both expensive individual calls and frequent work with high aggregate cost. Group variants by their actual caller; do not add unrelated query means into an endpoint latency.
Keep three claims separate:
| Claim | Evidence needed |
|---|---|
| SQL is expensive | Query statistics and a reproducible execution plan |
| The database path dominates a slow request | Correlated SQL, connection wait, and application timings |
| More database capacity would help | Resource/queue pressure in the same window and a capacity-specific experiment |
Cumulative query statistics are not a recent-window trace. Capture reset times or two snapshots and calculate deltas. A large database-time total alone does not justify resizing Neon. Application CPU headroom also does not rule out a busy Node main thread.
Use rg on distinctive SQL fragments, table names, JSON keys, and predicates.
Trace the full path: route or scheduler → service → generated SQL → indexes.
Record frequency, fan-out, page limits, redaction, authorization, and any second
query the caller performs. Compare the deployed implementation with local code.
State a falsifiable cause and the contract the fix must preserve. Typical causes include casts on indexed columns, repeated detoasting of large JSON, broad candidate scans, unbounded result sets, duplicate reads, and unnecessary polling. Use plans and caller evidence to choose among them.
Inspect existing indexes and recent related fixes before adding another index. For advisory locks, identify the caller, key, transaction duration, and wait chain first. Preserve checkout, leases, ownership, recovery, and no-replay rules; removing a lock or polling loop is not a query optimization by itself.
Read Local proof before building or changing the benchmark. Use disposable real PostgreSQL and synthetic data with representative row counts, selectivity, and payload sizes. Record the PostgreSQL version and any difference from the hosted server.
Pin the pre-fix commit. Capture the complete SQL and parameters the real service generates, including projections, joins, ordering, limits, and relevant imported query helpers. Prove the baseline exhibits the suspected cost before editing. If it does not, improve the fixture or revise the hypothesis.
Save baseline results, timings, and EXPLAIN (ANALYZE, BUFFERS, FORMAT JSON).
Define the performance acceptance criterion for this fixture before measuring
the treatment. Avoid a brittle universal millisecond threshold.
Make the smallest change supported by the measurements. Author the fix on our branch from source and evidence. Related community reports can supply leads; respect any instruction to keep the implementation independent of their code.
Run baseline and treatment against equivalent fixtures under the same settings:
When intentionally bounding history, compare query speed at the same result limit separately from the contract change. Test default/max limits and older record access. Do not call truncated output equivalent to the former full list.
Reject or revise the change if either proof fails. Keep the reproducible harness with the source where repository conventions allow it; keep bulky evidence out of git. Exhaust viable query/caller changes and existing indexes before proposing an exceptional migration. Document the serious reason and why migration-free alternatives are insufficient. Do not add startup scripts, boot-time DDL, or recurring backfills to bypass the migration constraint.
If a migration remains necessary, follow the database migration rules and the production-size timing procedure in Local proof. Measure the complete migration, including index builds, backfills, and lock waits. First optimize a migration exceeding the roughly one-to-two-minute budget; if it cannot be brought within an acceptable duration, flag it for human review with the measured timings and alternatives before presenting it as deployable.
Choose checks from the caller graph and affected contracts, not only the edited function. Relevant cases from this workflow include:
| Change | Regression evidence |
|---|---|
| UUID/JSON joins | Canonical, uppercase, malformed, missing and non-string IDs; native/legacy precedence; company scope |
| JSON projections | Scalar/array/object/null inputs, text conversion, all fields, redaction |
| History bounds | Service and route callers, UI/API defaults, older deep links, empty recent history, retry and navigation races |
| Ownership/recovery reads | Retained processes, active leases, blocked replay, workspace failure, receipts and delivery |
| Polling/caching | Idle work reduction, committed-change wakes, missed events, restart/sleep recovery, fresh destructive checks |
Use real database tests for SQL semantics. Exercise assembled services/routes and actual UI components when those are affected. Update query mocks when the builder shape changes; a broken mock is not evidence that runtime SQL is wrong.
Run focused checks first, then the owning repository's required pre-PR checks.
For this repo, consult AGENTS.md for typecheck, full tests, build, and conditional
map/token/migration gates. Capture command, commit, exit status, and log location.
Do not call an interrupted suite a pass. Preserve its partial evidence and state
what completed locally versus on the final commit in CI.
Use prepare-paperclip-pr for public Paperclip
changes, check-pr for feedback, and
prcheckloop for checks. Follow the owning repository's
workflow instead when the fix belongs in paperclip-cloud.
Thanking contributors and closing their PRs requires explicit authorization. When authorized, explain which report our verified PR covers, acknowledge any uncovered scope, and leave unrelated PRs open. This skill does not itself grant permission to comment, close, merge, deploy, resize, or mutate a hosted database.
Report each PR URL and final head, measured gains and neutral paths, correctness comparison, completed local checks, latest-head CI/review status, and limitations. If working from a Paperclip issue, attach evidence/work products using the repository's artifact workflow. Keep private identifiers and tenant data out of public PRs. State whether anything was deployed.
If rollout is authorized, verify the deployed revision and compare a fresh, comparable query-statistics window and request timing. Until then, production latency improvement remains unverified even when local SQL is much faster.
まだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
Paperclipで実際のブラウザからサーバー、データベースまで通すE2E評価を追加・拡張し、操作結果や証拠を既存のレポートで確認できるようにするスキル。
Paperclip Runnerの動作評価に、判定条件や実行対象、レポート用データを追加・拡張し、根拠と実行履歴を残して検証するスキル。
実際のブラウザでWebページやアプリを操作し、表示や動作を検証します。画面の撮影、簡単なフォーム入力、エラーや通信の記録を通じて、不具合の再現と確認を支援します。
Paperclipで割り当てられたAgentMailの受信箱を使い、メールに紐づく依頼の確認、新規送信、返信、配信状況の確認までを扱うスキルです。
GitHub・GitLab・Perforceの変更を対象に、レビュー指摘、CIの失敗、説明文の不足を確認し、対応事項の整理から依頼に応じた修正まで支援するスキル。
目的に合うAIエージェントの役割や指揮系統、仕事の受け渡しを整理し、新規の構想や既存リポジトリから仕様に沿った会社・チームのパッケージを作るスキル。