autoresearch-loop
Domain-agnostic metric-driven improvement loop, generalizing Karpathy's autoresearch. Use when you want an agent to discover what…
Gong API for searching calls, transcripts, and conversation intelligence. Use when working with Gong call recordings, sales conversations, transcripts, meeting data, or conversation analytics. Supports listing calls, fetching transcripts, user management, and activity stats.
$ npx -y skills add jdrhyne/agent-skills --skill gong --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/gongContext preview
The summary Claude sees to decide when to auto-load this skill.
Gong API for searching calls, transcripts, and conversation intelligence. Use when working with Gong call recordings, sales conversations, transcripts, meeting data, or conversation analytics. Supports listing calls, fetching transcripts, user management, and activity stats.
name: gong
description: Gong API for searching calls, transcripts, and conversation intelligence. Use when working with Gong call recordings, sales conversations, transcripts, meeting data, or conversation analytics. Supports listing calls, fetching transcripts, user management, and activity stats.
metadata:
{
"openclaw":
{
"emoji": "🎙️",
},
}Read Gong call metadata, bounded transcript excerpts, users, and activity statistics through the packaged helper.
The helper reads `GONG_CREDS` or defaults to `~/.config/gong/credentials.json`. Create the file locally with an interactive editor or protected credential workflow; never paste credentials into chat or place them in shell arguments.
{
"base_url": "https://us-XXXXX.api.gong.io",
"access_key": "YOUR_ACCESS_KEY",
"secret_key": "YOUR_SECRET_KEY",
"company_timezone": "America/Los_Angeles"
}`company_timezone` is optional for users, calls, transcripts, and the connectivity probe, but required for `stats`. Set it to the company's exact IANA timezone name; the helper rejects unavailable zones and requires Gong to return that same name rather than accepting an alias silently.
The credential file must be owned by the current user and have mode `0600`. Its immediate parent directory must reject all group/other access (normally mode `0700`). The helper validates both conditions and refuses symbolic-link credential files, broader permissions, invalid tenant URLs, missing fields, and credential values containing line breaks. Runtime requirements are Bash, `curl`, and `jq`; activity statistics also require Python 3 with the standard-library `zoneinfo` module and an installed IANA timezone database.
Prefer short-lived keys with the narrowest available scope, trusted-IP restrictions, and an expiry where the Gong account supports them. Rotate credentials through Gong settings; do not print or inspect their values to troubleshoot.
Use the packaged helper via `{baseDir}/scripts/gong.sh`:
| Intent | Command | Default bound | |---|---|---| | Verify connection | `gong.sh test` | First-page connectivity probe only | | List users | `gong.sh users [max_pages]` | ID, name, active state; 5 pages | | List recent calls | `gong.sh calls [days] [max_pages]` | 7 days, 5 pages | | Read call metadata | `gong.sh call <call_id>` | Metadata only | | Read transcript excerpt | `gong.sh transcript <call_id> [max_segments]` | First 20 segments | | Activity statistics | `gong.sh stats [days] [max_pages]` | 30 days, 5 pages |
`days` must be 1–365, `max_pages` 1–20, transcript segments 1–100, and Gong call IDs 1–20 decimal digits. Increase a bound only when the user's requested scope requires it.
`gong.sh call` uses `GET /v2/calls/{id}`, Gong's exact basic-metadata endpoint, and verifies that the returned `call.id` equals the requested ID. Transcript retrieval likewise requires exactly one transcript object whose `callId` equals the requested ID before any excerpt is emitted. Treat a missing, mismatched, duplicate, or malformed resource as a failure rather than substituting the first result.
Activity statistics use `YYYY-MM-DD` values in `filter.fromDate` and `filter.toDate`, computed from the current calendar date in `company_timezone`. `fromDate` is inclusive and `toDate` is exclusive, so the default covers the preceding 30 completed company-local dates. Every response page must carry a nonempty `records.timeZone` exactly equal to the configured zone. Its `records.fromDateTime` and `records.toDateTime` must denote the exact company-local midnight instants at the requested boundaries; equivalent UTC or numeric-offset representations are accepted, while noon or shifted endpoints fail. The bounded output includes this request and response range provenance under `range`; mismatches fail instead of mixing ambiguous reporting windows.
Before formatting any collection, the helper validates every returned user, call, aggregate-statistics, transcript-turn, and sentence record plus every field it emits. Null, missing, non-object, wrong-type, mismatched-identity, and malformed nested values fail the whole bounded request; they are never skipped, defaulted, or rendered as `null`.
Start with call metadata. Fetch transcript text only when
A collection of AI agent skills and prompts for OpenClaw (formerly Clawdbot), Claude Code, Codex, and other LLM-based coding assistants. 🤝 Contributions Welcome! Have a skill that makes your AI agent smarter? We'd love to include it.
Domain-agnostic metric-driven improvement loop, generalizing Karpathy's autoresearch. Use when you want an agent to discover what…
Recover missing conversation context after explicit compaction or truncation, or when the user explicitly asks to recover prior…
Premium UI/UX design auditor with Jobs/Ive philosophy. Use when reviewing, evaluating, or elevating existing UI — triggers on…
Generate beautifully designed PDF reports with a Nordic/Scandinavian aesthetic. Use when creating polished executive briefings,…
Read Google Analytics 4 reporting data through the GA4 Data API. Use for explicit GA4 property metadata, compatible…
Optional path to a protected local google-ads client configuration file.