Apply production-ready Fireflies.ai SDK patterns for TypeScript and Python. Use when implementing Fireflies.ai integrations, refactoring SDK usage, or establishing team coding standards for Fireflies...
Fireflies documents a GraphQL API, not a required first-party language SDK. Keep the transport standards-based and generate or hand-maintain types only from reviewed schema evidence.
Every call should carry an operation name, static document, typed variables, an explicit field selection, timeout, and response parser that handles both data and errors. Never interpolate values into GraphQL source or expose bearer keys to clients.
For authenticated operations, inject FIREFLIES_API_KEY from an approved secret manager and send it only as Authorization: Bearer REDACTED_KEY to https://api.fireflies.ai/graphql. Never print, commit, place in a URL, forward to a browser, or include the key in evidence. Webhook signing secrets are separate credentials and must not be reused as API keys.
Use Read, Glob, and Grep to inspect code, configuration, tests, and evidence. Use Write/Edit only for approved implementation or documentation changes. Do not query Fireflies, retrieve meeting content, create an AskFred thread, upload media, change account state, replay an event, or deploy merely because this skill was invoked.
Require approval before adding a new mutation, exposing a new selected field, enabling tenant-wide access, or replacing the repository's transport dependency.
Return the exact operation or event surface, environment, authorization class, selected field groups, validation results, content-free metrics, decisions, and a concise pass/fail receipt. Keep secrets and meeting-derived content out of general output.
Before reporting success, rerun the smallest relevant deterministic check, compare actual state with the requested outcome and current contract, verify no secret or meeting-derived content entered logs or artifacts, and record unresolved uncertainty explicitly.
Read official Fireflies.ai evidence before relying on a field, filter, event, permission, plan limit, mutation, or processing state.