本文へ移動
cccskills
無料GitHub で公開日本語紹介

honeycomb-tracing

Paperclipの実行や画面表示、CIの遅さをHoneycombの処理記録から調べます。時間のかかる区間を整理し、計測設定や不足する計測箇所の追加も扱います。

原文原文の説明を見る

Trace Paperclip runs, requests, and full CI suites in Honeycomb. Use to find traces, diagnose latency, configure opt-in OpenTelemetry, or add missing spans.

インストール方法を見る

こんなときに便利

  • エージェント実行前後の遅延を調べたいとき
  • 課題ページの表示遅延を調べたいとき
  • CIを遅らせるジョブを特定したいとき
  • 計測設定や不足する計測を追加したいとき

日本語での紹介

できること

Paperclipの実行、リクエスト、CI全体の処理記録をHoneycombで調べ、どの区間に時間がかかっているか整理します。実行IDや時刻から対象のトレースを探し、各処理の計測区間であるスパンを確認します。並列処理や親子の区間を重複して足さず、待ち時間と原因が分からない空白を区別して、次に試す調査を絞ります。

こんなときに便利

エージェントの実行前後が遅い、課題ページの表示に時間がかかる、CIの一部が全体を待たせている、といった場面に向いています。OpenTelemetryによる任意の計測設定や、不足するスパンの追加も扱います。

使い方の例

  • 「この実行のトレースを探して、待ち時間の大きい区間を説明して」
  • 「課題ページの表示が遅い原因を、サーバーとブラウザーの計測から調べて」
  • 「CI全体を遅らせているジョブやテストファイルを確認して」

注意点

Honeycombの参照権限やサインイン済みブラウザーが必要です。トレース出力は送信先が設定されている場合に有効になります。メタデータの閲覧権限とトレースの検索権限は異なります。診断の依頼だけではタスクの再実行や計測のデプロイは行いません。計測には許可された属性を使い、認証情報やプロンプトなどを含めません。

この紹介文は、公開されている SKILL.md をもとに AI(OpenAI Codex)が作成しました。正確な仕様は下の原文を確認してください。

含まれるファイル(4)

  • SKILL.md10.0 KB
  • agents/openai.yaml125 B
  • references/ci.md5.7 KB
  • references/runtime.md5.4 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

Honeycomb Tracing

Produce an inspectable waterfall tied to the actual run or CI attempt, explain which intervals dominate elapsed time, and identify the smallest useful next experiment. Respect diagnosis-only requests; tracing does not itself authorize replaying tasks, changing credentials, or deploying instrumentation.

Choose the data path

QuestionStart here
Why is a task slow before, during, or after model execution?Application workflow below; runtime setup if spans are absent
Why does an issue page load slowly?Request spans plus browser timing, described below
Which CI jobs or test files delay the whole suite?CI profiling
Where should a new span go?Instrumentation guidance below and Observability contract

Repository-relative paths and commands assume the checkout root. The maintained contracts are doc/observability.md and doc/ci-profiling.md; recheck them and the owning code when a deployed version differs.

Keep the repository's three paths distinct:

  • Observability: operator-configured OpenTelemetry export to Honeycomb or another OTLP destination. With no endpoint, this tracing stays off.
  • Telemetry: first-party events under packages/shared/src/telemetry/, sent to Paperclip by default unless opted out. Adding these requires the generated contract, Telemetry README, and privacy-review workflow in AGENTS.md.
  • Run log: local heartbeat_run_events and measured performance events. Useful for correlation, but a local event is not proof of Honeycomb export.

Observability changes within the closed span-attribute allowlist do not need the Telemetry privacy review. Preserve the endpoint gate and no-operation behavior.

Find the application's trace

  1. Resolve the instance, company, issue, agent, run UUID, and UTC interval. Record the effective harness/model, workspace/repository, warm or fresh session, and actual deployed revision. A task identifier is not a run UUID; one task can have several runs, and one run can have several execution attempts.

  2. Prefer existing Honeycomb tools when exposed and authorized. Otherwise use the signed-in browser. The current project link targets team paperclip, environment test, dataset paperclip, and service.name = paperclip. These are defaults in ui/src/lib/honeycomb-run-link.ts, not proof of every deployment's destination. Verify the target before comparing data.

  3. Open View in Honeycomb on the run page when available. It requires Paperclip Developer Mode and local implicit board or instance-admin access. This link queries existing data. Re-run with provider trace is a different action: it starts work and is not needed to read Honeycomb.

  4. Without the link, calculate the same correlation value locally:

    # Set RUN_ID to the exact saved run UUID first; no trailing newline is hashed.
    node -e 'console.log(require("node:crypto").createHash("sha256").update(process.argv[1]).digest("hex").slice(0, 12))' "$RUN_ID"
    

    Filter paperclip.task.run.run_id to that 12-character lowercase hash and service.name to the observed service. Start with the run's absolute time window. The product link defaults to the last seven days; widen it for older runs. Group COUNT by trace.trace_id to discover matching traces.

  5. The product's root filter is name in [task.execution_attempt, task.provider_session, task.run]. Use Honeycomb's in operator, not an invented OR group. Remove the name filter when setup failed or preparation spans are missing; older/standalone preparation can have a separate trace ID.

  6. Open each relevant trace and its span details. A count-only query/export cannot establish span durations, parentage, or causal attribution. Capture the trace URL, time window, service/version, and relevant span names/timings.

In recent investigations, HONEYCOMB_TEST_CONFIG_API_KEY in the operator's ~/.secrets could read metadata but could not query traces. Ingest permission, metadata access, and query access are different. Verify current capabilities; when queries are unavailable, use the signed-in UI rather than creating a new key or upgrading permissions. Read only needed secret fields, never dump the file, and keep values out of commands, artifacts, repository files, and reports.

Read the timeline correctly

IntervalMeaning / next inspection
Run creation → executor startAdmission/queue delay; check drain, capacity, and dispatch evidence
task.execution_attemptServer executor invocation through preparation, dispatch, durable reply, and cleanup
heartbeat.prepare.*, native.controller.*Controller preparation; expand workspace, configuration, backend, and runtime-selection work
task.provider_sessionNative provider lifecycle; includes preparation and execution, ends before outer workspace persistence
task.runLegacy adapter root
runner.session.startup, environment.*, stage.*, sandbox.*Runner/environment acquisition, workspace transfer, and startup
agent.turnAgent turn time; inspect actual children before calling all of it model latency
execution.workspace_finalize, workspace_sync.*, completion.*, response.*Copyback, settlement, response persistence, and publication work

The attempt and provider lifecycle are linked roots; they need not share a trace ID. Neither is a guarantee of one continuous trace across queueing or restarts. Correlate with the run log and saved reply timestamps. The native local event task.run.measured includes terminal elapsed time and durable copyback.

Use start/end times to compare serial intervals and the union of parallel work. Never add a parent to its children or sum parallel branches as elapsed time. For example, configuration_skills is inside execution_configuration, and skills.prepare overlaps the broader heartbeat.prepare_before_environment. Detail spans are capped at 16 per name per attempt; missing per-item children do not mean later items did no work.

Distinguish first streamed text, committed reply, externally delivered message, and browser paint. A successful response.transaction.commit proves durable storage; response.publish is enqueueing and execution.realtime is server dispatch. Neither proves that the user saw the response. Choose the boundary the user asked to improve, then measure the whole path to that boundary.

For slow issue pages, combine issue.read.<phase> with Server-Timing (paperclip_issue, issue_<phase>) and the browser's request waterfall and issue-detail:navigate→content-paint measure. Concurrent reads overlap. Fast API completion does not establish fast conversation reveal or rendering.

A long parent span without children is an attribution gap. It does not prove SQL, network, or model time. For database hypotheses, use fix-slow-queries. For CPU hypotheses, use a bounded authorized profile covering the actual slow phase; a sample taken while queued cannot explain preparation. Low aggregate container CPU does not exclude a blocked Node main thread. Keep profiled diagnostics separate from unprofiled acceptance timings.

Add only the missing instrumentation

Read applicable repository rules before editing. Reuse the existing timing seams:

  • server/src/services/execution-preparation-timing.ts: withRunExecutionTiming, createRunPreparationTiming, measureRunPhase, and beginRunPhase. Use the existing attempt; do not create a new root per detail.
  • server/src/services/native-runtime/native-run-trace.ts: native lifecycle hierarchy and links to the owning attempt.
  • server/src/services/issue-read-timing.ts: issue-read phases and Server-Timing.
  • packages/adapter-utils/src/acpx-engine/startup-timing.ts: runtime parent context and closed span attributes. Adapter utilities receive the host context rather than constructing an independent exporter.

Extend the closed phase union when a meaningful boundary is missing. Wrap the actual awaited operation, preserve parent context across async/provider boundaries, and end spans on success and failure. Keep real wall times for spans recorded after the operation. Use existing hashed IDs, closed enums, and allowed numeric counts; do not add prompts, tool arguments/results, paths, raw identifiers, credentials, or exception text. Do not enable all filesystem instrumentation to explain one slow scan.

Observability must not retry the operation, replace its return/error, change authorization/locks, or break execution when the tracer fails. Preserve root sampling and the explicit endpoint gate even if another library registers an OTel provider. Update doc/observability.md when the trace contract changes. Run focused tests for endpoint-off behavior, parentage/concurrent-run isolation, failure handling, and the changed seam. Use real exported evidence to claim that new spans appear in Honeycomb; a unit-test tracer alone does not prove ingestion.

Compare and hand back useful evidence

Choose the largest actionable serial wait or unexplained gap, then reproduce it at the smallest faithful layer. Compare matched runs: same harness/model, workspace size, session warmth, concurrency, and relevant revision/configuration. Report sample count and median/range when several runs are available. Preserve failures; a failed fast run is not a latency improvement.

Return the run/attempt and trace links, observed revision, end-to-end timing, dominant non-overlapping phases, uncertainty, and next action or verified gain. Label local, synthetic, and hosted evidence precisely: a dev-host reproduction is not a local checkout run, and a merged fix does not prove hosted improvement. If traces are unavailable, state the missing access or coverage and what the run log/browser measurements actually establish.

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

add-product-e2e-eval

無料日本語概要

Paperclipで実際のブラウザからサーバー、データベースまで通すE2E評価を追加・拡張し、操作結果や証拠を既存のレポートで確認できるようにするスキル。

  • 一連の利用操作の評価を追加したいとき
  • テスト用データと判定条件の更新
  • 評価レポートに画像や成果物を載せたいとき
paperclipai/paperclip10.3万2026年10月16日 更新

add-runner-eval

無料日本語概要

Paperclip Runnerの動作評価に、判定条件や実行対象、レポート用データを追加・拡張し、根拠と実行履歴を残して検証するスキル。

  • Runnerの動作評価を追加したいとき
  • 正常・不正な証拠で判定を検証
  • 実行対象リストと継続評価の更新
paperclipai/paperclip10.3万2026年10月16日 更新

agent-browser

無料日本語概要

実際のブラウザでWebページやアプリを操作し、表示や動作を検証します。画面の撮影、簡単なフォーム入力、エラーや通信の記録を通じて、不具合の再現と確認を支援します。

  • UI変更後の画面を確認したいとき
  • JavaScript描画の内容を読みたいとき
  • 画面の不具合とエラーを再現したいとき
paperclipai/paperclip10.3万2026年10月16日 更新

agentmail

無料日本語概要

Paperclipで割り当てられたAgentMailの受信箱を使い、メールに紐づく依頼の確認、新規送信、返信、配信状況の確認までを扱うスキルです。

  • 担当タスクに紐づくメールを確認したいとき
  • 割り当てられた受信箱から新規送信
  • 会話内の特定メッセージへの返信
paperclipai/paperclip10.3万2026年10月16日 更新

check-pr

無料日本語概要

GitHub・GitLab・Perforceの変更を対象に、レビュー指摘、CIの失敗、説明文の不足を確認し、対応事項の整理から依頼に応じた修正まで支援するスキル。

  • 変更を提出する前に点検したいとき
  • 失敗したチェックと修正事項の確認
  • 人とボットのレビュー指摘の整理
paperclipai/paperclip10.3万2026年10月16日 更新

company-creator

無料日本語概要

目的に合うAIエージェントの役割や指揮系統、仕事の受け渡しを整理し、新規の構想や既存リポジトリから仕様に沿った会社・チームのパッケージを作るスキル。

  • 構想からエージェント会社を作りたいとき
  • リポジトリをチーム構成にまとめたいとき
  • 役割分担と仕事の受け渡しの設計
paperclipai/paperclip10.3万2026年10月16日 更新

paperclipai のスキルをすべて見る

このスキルの問題を報告する