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

analysis-workspace

大量の記録や大きなデータを小分けに分析し、中間結果を保管して集約するスキルです。分析結果をCSVやXLSXなどのファイルにまとめて渡せます。

原文原文の説明を見る

Large analyses and file delivery: scratch staging, chunked batches, run-code aggregation, CSV/XLSX exports. Use when work exceeds one context window or the user wants a file.

BuilderIO/agent-nativeスター 7,522(GitHub 7,522 + cccskills 0)
連携ツールHubSpot

実行スコア 未検証

インストール方法を見る

こんなときに便利

  • 大量の通話や商談をまとめて分析したいとき
  • 大きなAPIデータを集計したいとき
  • 複数サービスの記録を照合したいとき
  • 分析結果をCSVやXLSXで受け取りたいとき

日本語での紹介

できること

一度の会話で扱いきれない量のデータを、作業用ファイルに保存し、必要な範囲だけ読み戻して分析します。多数のアカウント、通話、商談、チケットなどは小分けに処理し、項目ごとのメモを残してから全体を集約できます。大きなAPI応答もワークスペースに保存して、コードで加工・集計できます。結果は一時ファイルと、利用者が後から確認・管理するファイルに分けて保存し、依頼に応じてCSV、Markdown、XLSXなどとして渡します。複数の会話や工程にまたがる分析では、中間データや進捗を記録して再開しやすくします。

こんなときに便利

数十件以上の記録をまとめて比較したいときや、複数のサービスから集めたデータを結合したいときに向いています。「見つからなかった」という結論の根拠を確かめるため、対象範囲や取得状況を記録しながら広く調べる作業にも使えます。結果をファイルとして保存・ダウンロードしたい場合にも便利です。

使い方の例

  • 「この商談100件を分割して分析し、傾向をまとめて」
  • 「APIから取得したデータを集計して、CSVで渡して」
  • 「複数の記録を照合し、調査範囲と未確認分も報告して」

注意点

ワークスペースのファイル機能とrun-codeを使います。XLSXの明示的な依頼では、指定のエクスポート手順を確認します。

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

含まれるファイル(1)

  • SKILL.md11.8 KB

SKILL.md(原文)

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

Analysis Workspace

Analysis files live in the same Resources workspace users inspect and manage in the app. Use normal path conventions:

  • scratch/... for temporary staging files, per-item memos, raw API pulls, and other agent working data. These are hidden from the Resources view by default.
  • Descriptive folders such as analysis/q2-churn/ only for files the user should keep, inspect, or manage after the analysis.

The run-code helpers (workspaceRead, workspaceWrite, workspaceAppend, workspaceList) and saveToFile write through this Resources-backed file store. Use them to stage intermediate results that would overflow the context window, then read them back selectively for synthesis.

When to Use

  • Batch fan-out with 30+ items (accounts, calls, deals, tickets, messages, documents, events): write a per-item memo file after each item, then synthesize across all memos in a final pass.
  • Large API payloads: use saveToFile on provider-api-request or web-request to write a 20 MB dataset to scratch/... instead of returning it in context.
  • Provider-wide search/count/classification: build a durable corpus first, then search or aggregate it with run-code. This is required when the user expects broad recall or when a negative answer such as "no mentions" would be misleading if based on a sample.
  • Multi-step analyses that span multiple conversations or agent turns. Keep durable files outside scratch/ only when the user wants to keep them.
  • run-code aggregation: call workspaceRead / workspaceWrite inside a run-code block to load and process data that's too large to print as output.
  • Long compute: for aggregation scripts that could exceed ~30 s (big cross-source joins, multi-page provider sweeps), run run-code with background: true. It returns { executionId, status: "queued" } immediately and executes durably out-of-band (default 10 min budget), surviving the hosted run timeout. Continue other work, then poll with run-code { executionId } for the persisted result. On failed/ timed_out, chunk the work or persist intermediate progress with workspaceWrite and re-run.

Delegated Analysis Handoff

Background sub-agents start with a clean context. A handoff for a large analysis must include the exact staged dataset id or workspace path, the records/chunk range to process, the output path, and the checkpoint or resume operation. The child must read that staged input before making provider calls.

  • If a readable staged file or dataset already exists, process it in place. Do not re-page the provider endpoint to recreate the same corpus.
  • If the named staged input is missing or unreadable, stop with an explicit missing-input error. Do not silently fall back to a full provider sweep.
  • For 500 or more Gong records, do not use gong-calls(exhaustive=true), a per-call transcript loop, or a single provider-api-request fetchAllPages call as the analysis itself. If the term is a configured keyword tracker, stage /calls/extensive tracker results and reduce them with a Data Program or query-staged-dataset. Otherwise use provider-corpus-job with a staged call-id input and continue raw transcript retrieval in bounded, checkpointed batches.
  • Write a compact result or progress marker after every completed chunk. A final answer written only after the whole corpus is processed is not a checkpoint.

Workspace File Helpers

Inside run-code, use the workspace helper functions:

HelperUse
workspaceWrite(path, content, contentType?)Create or overwrite a file
workspaceAppend(path, content)Append text to a file
workspaceRead(path, opts?)Read content, with optional paging
workspaceReadMeta(path, opts?)Read content plus metadata/truncation info
workspaceList(prefix?)List files under a prefix
  • read supports { offset, maxChars } for paging large files.
  • list supports a prefix filter, e.g. workspaceList("scratch/q2/").
  • Direct writes cap at 2 MB each. saveToFile allows up to 20 MB per pull.
  • Temporary files belong under scratch/; durable user-facing files belong in normal Resources folders.
  • When the user asked for a file they can keep or download, call show-workspace-file with the durable path immediately after the write. The download must appear in chat; do not answer with only a path or navigation instructions.

CSV and XLSX Exports

  • For a compact result, use query-agent-native-analytics and its Download CSV control. For a durable CSV, use run-code with workspaceWrite in a normal Resources folder, then call show-workspace-file with that path. If run-code is not available, discover it once with tool search.
  • Deliver a requested CSV, Markdown, or other file in the same chat turn. Write only verified successful data to a non-scratch workspace path, never an error or failed response, and never finish with only a path or filename.
  • For an explicit .xlsx request, call docs-search once for xlsx export and follow the returned workflow. The QuickJS run-code sandbox has no Node imports; do not try to load xlsx or exceljs there.

Chunked Batch Analysis (30+ items)

For large fan-outs (account deep dives, Gong call reviews, deal cohorts):

  1. Define cohort: fetch the item list (e.g. hubspot-records for accounts).
  2. Chunk: process 5–10 items per pass to avoid context overflow.
  3. Per-item memo: for each item, fetch evidence and write a memo file under scratch/ unless the user asked to keep the memos:
    await workspaceWrite(
      "scratch/analysis/q2-churn/acme-corp.md",
      "## Acme Corp\n\n**ARR**: $120k\n**Risk signals**: ...",
      "text/markdown",
    );
    
  4. Synthesize: after all items are processed, list files and read each memo:
    const files = await workspaceList("scratch/analysis/q2-churn/");
    
    Then read each file and synthesize findings into the final answer or a saved analysis.
  5. Promote (optional): write a durable summary outside scratch/ if the user wants to inspect or keep it in Resources.

For very large cohorts (100+ items), use agent-teams sub-agents to process chunks in parallel — each sub-agent writes its memos independently, the orchestrator synthesizes at the end.

Corpus-First Provider Search

Use this workflow for arbitrary provider questions where a canned action is too narrow, where records must be joined across systems, or where absence matters:

  1. Discover the provider surface with provider-api-catalog and provider-api-docs when endpoint/filter/pagination details are uncertain.
  2. For a broad or absence-sensitive corpus, start with the provider's native search or indexed tracker surface when one exists. Otherwise use provider-api-request as the raw ingestion step with stageAs or saveToFile, then reduce the staged data with query-staged-dataset or a Data Program. Use provider-corpus-job for durable paginated or batched transcript/body scans so each page or batch is checkpointed durably.
  3. Use run-code to read staged data, write intermediate files, normalize records, join identity fields, and aggregate. For long code, use background: true and persist progress after each chunk.
  4. Validate coverage before synthesis. Track pages fetched, records inspected, truncation flags, aborted calls, and records skipped for missing joins.
  5. Finalize with the answer plus coverage and caveats. If coverage is partial, say so directly; never state "none found", "all records", or an exhaustive conclusion from sampled, truncated, or aborted data.

saveToFile on Provider API Requests

Attach saveToFile to provider-api-request or web-request to write the full response body to a Resources-backed workspace file instead of returning it in context. Allows up to 20 MB per call. Use scratch/... for temporary raw payloads.

provider-api-request
  provider=<provider-id>
  method=POST
  path=/records/search
  body={ filterGroups: [...], limit: 200 }
  saveToFile="scratch/analysis/provider-records-2026-q2.json"

Returns: { savedToFile: true, savedTo, status, bytes, contentType, preview }.

Then use run-code to process the saved file:

const raw = await workspaceRead(
  "scratch/analysis/provider-records-2026-q2.json",
);
const records = JSON.parse(raw);
// … aggregate, filter, join …

fetchAllPages

Use fetchAllPages on provider-api-request to automatically paginate cursor-based APIs. Combine with saveToFile to write the full dataset:

provider-api-request
  provider=hubspot
  path=/crm/v3/objects/deals
  query={ limit: 100 }
  fetchAllPages={
    cursorPath: "paging.next.after",
    cursorParam: "after",
    itemsPath: "results",
    maxPages: 20
  }
  saveToFile="scratch/analysis/all-deals.json"

Common cursor paths:

  • HubSpot: paging.next.after / after
  • Gong: records.cursor / cursor
  • Pylon: nextCursor / cursor
  • Slack: response_metadata.next_cursor / cursor
  • PostHog: next (full URL — extract token manually if needed)

run-code + Workspace Integration

Inside a run-code block you have access to workspace helpers:

// Read a previously saved API response
const raw = await workspaceRead("scratch/analysis/deals.json");
const deals = JSON.parse(raw);

// Process data
const byStage = {};
for (const deal of deals) {
  const stage = deal.properties.dealstage ?? "unknown";
  byStage[stage] = (byStage[stage] ?? 0) + 1;
}

// Write the aggregated result back
await workspaceWrite(
  "scratch/analysis/deals-by-stage.json",
  JSON.stringify(byStage, null, 2),
  "application/json",
);
console.log(JSON.stringify(byStage, null, 2));

Workspace helpers: workspaceRead(path, opts?), workspaceWrite(path, content, contentType?), workspaceAppend(path, content), workspaceList(prefix?).

Provider API Discovery

When you need an API endpoint that isn't covered by a canned action:

  1. provider-api-catalog — list available providers and their base URLs, auth, and example paths.
  2. provider-api-docs provider=<id> url=<docs-url> — fetch any public docs or OpenAPI spec URL. Works for any https:// URL.
  3. provider-api-request — call the endpoint directly.

Use web-request to fetch public REST docs pages before registering a custom provider.

Registering Custom Providers

For APIs not in the built-in catalog, register them with provider-api-register (dispatch action):

provider-api-register
  id="my-internal-api"
  label="My Internal API"
  baseUrl="https://api.mycompany.com"
  auth={ type: "bearer", credentialKey: "MY_API_TOKEN" }
  docsUrls=["https://docs.mycompany.com/api"]

Then call it with provider-api-request provider=my-internal-api ... and the agent's credential system handles auth automatically.

Learnings Flywheel

After any significant batch analysis, check whether each discovery applies to the user's setup or to the whole organization. Keep setup-specific discoveries in personal memory or the current analysis. Ask the user and get approval before writing anything to shared LEARNINGS.md or organization memory. For approved shared discoveries, use the resources tool (action: "write") and capture confirmed schema paths, cursor fields, identity join keys, and pagination patterns.

レビュー

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

コメント

ログインなしで書き込めます。使ってみた感想、質問、動かなかった環境などを気軽にどうぞ。

まだコメントはありません。最初のコメントを書いてみませんか。

送信するとすぐに公開されます。メールアドレスや電話番号などの個人情報は書かないでください。URL は 2 つまでです。

0 / 1000 文字

このフォームは reCAPTCHA で保護されており、Google のプライバシーポリシーと利用規約が適用されます。

同じリポジトリのスキル

a2a-assets

無料概要あり

複数のアプリやMCPホストからブランド画像・動画を生成、調整、書き出し、挿入する作業を支援します。ライブラリ選択や修正依頼も扱います。

  • スライド用のブランド画像を作りたいとき
  • 既存素材をフィードバックに合わせて直したいとき
  • 動画素材を生成して書き出したいとき
BuilderIO/agent-native7,5222026年10月26日 更新

account-health

無料概要あり

特定の顧客企業について、契約と製品利用の数値を照らし合わせ、根拠や不足情報を明記した健全性レポートをまとめます。

  • 顧客の健全性を確認したいとき
  • 契約席数と実利用を比べたいとき
  • 更新前に利用状況を整理したいとき
BuilderIO/agent-native7,5222026年10月26日 更新

actions

無料概要あり

アプリの操作をエージェントと画面の両方から呼び出せるアクションとして実装し、API連携や画面のデータ取得を一貫した形で追加するスキルです。

  • 新しいアプリ操作を追加したいとき
  • 外部APIと連携したいとき
  • 画面からデータを取得したいとき
BuilderIO/agent-native7,5222026年10月26日 更新

adding-a-feature

無料概要あり

新機能をUI・エージェント用アクション・説明資料・画面状態の4領域でそろえ、利用者とエージェントのどちらからも一貫して使えるようにするチェックリストです。

  • 新機能追加の作業範囲を整理したいとき
  • UIとエージェント操作をそろえたいとき
  • 画面状態の同期漏れを防ぎたいとき
BuilderIO/agent-native7,5222026年10月26日 更新

adhoc-analysis

無料概要あり

複数のデータソースを照合して、傾向や指標、根拠をまとめた分析結果を作成します。必要に応じて、再実行できるダッシュボードとして保存できます。

  • 商談と通話記録を照合したいとき
  • 顧客の利用状況を横断して調べたいとき
  • 繰り返し更新できる分析を保存したいとき
BuilderIO/agent-native7,5222026年10月26日 更新

admin-surfaces

無料概要あり

Analyticsの管理画面で、機能フラグの状態確認と切り替え、ダッシュボード利用状況の調査、接続先アプリのデータベース管理を行います。

  • アプリごとの機能フラグを確認・変更したいとき
  • ダッシュボードの所有者や利用状況を調べたいとき
  • 接続済みアプリのテーブルを管理したいとき
BuilderIO/agent-native7,5222026年10月26日 更新

BuilderIO のスキルをすべて見る

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