Skip to content

chore: add agent skills for product usage and maintenance [no-ci]#39

Merged
lukeocodes merged 5 commits into
mainfrom
lo/add-agent-skills
Apr 27, 2026
Merged

chore: add agent skills for product usage and maintenance [no-ci]#39
lukeocodes merged 5 commits into
mainfrom
lo/add-agent-skills

Conversation

@lukeocodes

@lukeocodes lukeocodes commented Apr 24, 2026

Copy link
Copy Markdown
Member

Summary

Adds 8 agent-agnostic skills under .agents/skills/ following the skills.sh convention. Discoverable by OpenCode, Claude Code, Codex, Cursor, and 40+ other agent tools via npx skills.

What's included

All skills are namespaced with a deepgram-java- prefix to avoid collisions when a user installs skills from multiple Deepgram SDKs:

Skill Endpoint
deepgram-java-speech-to-text /v1/listen REST + WSS
deepgram-java-text-to-speech /v1/speak REST + WSS
deepgram-java-text-intelligence /v1/read REST
deepgram-java-audio-intelligence /v1/listen w/ analytics
deepgram-java-voice-agent agent.deepgram.com/v1/agent/converse WSS
deepgram-java-conversational-stt /v2/listen Flux WSS
deepgram-java-management-api manage + agent configs REST

1 maintainer skill: deepgram-java-maintaining-sdk.

How to use

npx skills add deepgram/deepgram-java-sdk --list
npx skills add deepgram/deepgram-java-sdk --skill deepgram-java-speech-to-text
npx skills add deepgram/deepgram-java-sdk -g -a claude-code

.fernignore

Added .agents/ so Fern regeneration won't wipe these skills.

Sibling PRs in the other Deepgram SDKs: python, js, go, rust, swift, kotlin, dotnet, browser.

Add 8 agent-agnostic skills under .agents/skills/ following the
skills.sh convention (discoverable by OpenCode, Claude Code, Codex,
Cursor, and 40+ other agent tools via `npx skills`).

Product usage skills (7):
- using-speech-to-text        — /v1/listen REST + WSS
- using-text-to-speech        — /v1/speak REST + WSS
- using-text-intelligence     — /v1/read REST
- using-audio-intelligence    — /v1/listen analytics overlays
- using-voice-agent           — agent.deepgram.com/v1/agent/converse WSS
- using-conversational-stt    — /v2/listen Flux WSS
- using-management-api        — manage.v1.* + voice_agent.configurations

Maintainer skill (1):
- maintaining-java-sdk      — Java SDK maintenance workflow

Each skill includes authentication, quick-start with real Java code
from examples/, key parameters, layered API references (in-repo,
OpenAPI, AsyncAPI, Context7, product docs), gotchas, and sibling-skill
routing.

Add .agents to .fernignore so skills survive Fern regeneration.
Each product skill now points back to the `deepgram/skills` repo for the
consolidated API reference, documentation finder, runnable recipes,
third-party integration examples, and MCP setup. This SDK's skills
stay language-idiomatic; the central skills stay cross-language.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds agent-agnostic “skills.sh” skill documents to this SDK repo so external agent tools (via npx skills) can discover product usage and maintenance guidance, and updates Fern regeneration ignore rules so the new agent content is preserved.

Changes:

  • Add 8 new skill documents under .agents/skills/ covering Deepgram products and Java SDK maintenance.
  • Update .fernignore to freeze agent-related files/directories so they survive Fern regeneration.

Reviewed changes

Copilot reviewed 9 out of 9 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
.fernignore Adds agent-related paths to the Fern ignore list to prevent regeneration from overwriting them.
.agents/skills/using-voice-agent/SKILL.md Documents Voice Agent WebSocket usage patterns and repo example entry points.
.agents/skills/using-text-to-speech/SKILL.md Documents Speak (TTS) REST and WebSocket usage in the Java SDK.
.agents/skills/using-text-intelligence/SKILL.md Documents Read (Text Intelligence) request/response patterns and options.
.agents/skills/using-speech-to-text/SKILL.md Documents Listen v1 REST + WebSocket transcription usage and options.
.agents/skills/using-management-api/SKILL.md Documents Manage API usage (projects/models/keys/members/usage/billing) and related SDK paths.
.agents/skills/using-conversational-stt/SKILL.md Documents Listen v2 (Flux) WebSocket usage and turn events.
.agents/skills/using-audio-intelligence/SKILL.md Documents enabling intelligence overlays on Listen v1 REST (and subset on WS).
.agents/skills/maintaining-java-sdk/SKILL.md Documents Fern regen workflow and freeze/unfreeze practices specific to this repo.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread .fernignore
Comment thread .agents/skills/deepgram-java-speech-to-text/SKILL.md Outdated
Comment thread .agents/skills/deepgram-java-text-to-speech/SKILL.md
Comment thread .agents/skills/deepgram-java-management-api/SKILL.md
Comment thread .fernignore Outdated
Rename all 8 skill folders (and frontmatter `name` fields and
sibling-skill cross-references) to avoid collisions when a user
installs skills from multiple Deepgram SDK repos.

Old → new:
  using-speech-to-text     → deepgram-java-speech-to-text
  using-text-to-speech     → deepgram-java-text-to-speech
  using-text-intelligence  → deepgram-java-text-intelligence
  using-audio-intelligence → deepgram-java-audio-intelligence
  using-voice-agent        → deepgram-java-voice-agent
  using-conversational-stt → deepgram-java-conversational-stt
  using-management-api     → deepgram-java-management-api
  maintaining-java-sdk       → deepgram-java-maintaining-sdk

Previously each SDK published identically-named product skills
(e.g. every SDK had `using-speech-to-text`), so installing skills
from two SDKs would overwrite the first. The `deepgram-` prefix
makes the vendor+language explicit and the names globally unique.
lukeocodes added a commit to deepgram/skills that referenced this pull request Apr 24, 2026
…mespace (#4)

## Summary

The 9 Deepgram SDK repos now publish their skills under the
`deepgram-{lang}-{product}` namespace (e.g.
`deepgram-python-speech-to-text` instead of `using-speech-to-text`).
This avoids name collisions when installing skills from multiple SDKs.

## Why

Previously every SDK published identically-named product skills:

```
deepgram-python-sdk  → .agents/skills/using-speech-to-text/SKILL.md
deepgram-js-sdk      → .agents/skills/using-speech-to-text/SKILL.md
deepgram-java-sdk    → .agents/skills/using-speech-to-text/SKILL.md
…
```

Installing skills from Python and then JS would overwrite the first with
the second — users could only have one SDK's skills at a time.

## Changes in this PR

- **`README.md`** — replace the hard-coded skill-name list with the
namespace pattern + a full example set for the Python SDK.
- **`skills/api/SKILL.md`** — document the `deepgram-{lang}-` prefix in
the SDK-Specific Skills section; update the `--skill` install example
from `using-speech-to-text` → `deepgram-python-speech-to-text`.

## Sibling PRs (one per SDK)

Each SDK's `lo/add-agent-skills` PR now includes a follow-up rename
commit:

| SDK | PR | Rename commit |
|---|---|---|
| python |
[#695](deepgram/deepgram-python-sdk#695) | adds
`chore: namespace skill names with deepgram-python-` |
| js | [#486](deepgram/deepgram-js-sdk#486) |
adds `chore: namespace skill names with deepgram-js-` |
| java | [#39](deepgram/deepgram-java-sdk#39) |
adds `chore: namespace skill names with deepgram-java-` |
| go | [#325](deepgram/deepgram-go-sdk#325) |
adds `chore: namespace skill names with deepgram-go-` |
| rust | [#153](deepgram/deepgram-rust-sdk#153)
| adds `chore: namespace skill names with deepgram-rust-` |
| swift | [#2](deepgram/deepgram-swift-sdk#2) |
adds `chore: namespace skill names with deepgram-swift-` |
| kotlin | [#2](deepgram/deepgram-kotlin-sdk#2)
| adds `chore: namespace skill names with deepgram-kotlin-` |
| dotnet |
[#401](deepgram/deepgram-dotnet-sdk#401) | adds
`chore: namespace skill names with deepgram-dotnet-` |
| browser |
[#12](deepgram/browser#12) | adds
`chore: namespace skill names with deepgram-browser-` |

Each renames 8 folders, updates every SKILL.md's frontmatter `name`, and
updates all sibling-skill cross-references.
…olish

All 5 Copilot threads:

- .fernignore: add trailing slashes on .claude/ and .agents/ to match
  the file's dir/ convention. Add a comment explaining that CLAUDE.md
  is a defensive entry (file may not exist in every checkout).

- deepgram-java-speech-to-text/SKILL.md: guard channels + alternatives
  against empty results before indexing, matching the pattern in
  examples/listen/TranscribeUrl.java. Prevents IndexOutOfBoundsException
  on empty/quiet audio.

- deepgram-java-text-to-speech/SKILL.md: close the FileOutputStream in
  an onDisconnected handler (previously leaked the file handle); log IO
  errors in the audio callback rather than rethrowing RuntimeException
  from the WebSocket thread. Matches examples/speak/StreamingTts.java.

- deepgram-java-management-api/SKILL.md: guard projects.isEmpty() before
  indexing projects.get(0) — new accounts may have zero projects.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 9 out of 9 changed files in this pull request and generated 2 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread .agents/skills/deepgram-java-speech-to-text/SKILL.md
Comment thread .agents/skills/deepgram-java-voice-agent/SKILL.md Outdated
deepgram-java-voice-agent/SKILL.md gotcha #5 previously asserted that
provider config is 'strongly typed'. The wrappers (OpenAiThinkProvider,
AnthropicThinkProvider, etc.) produce a union variant but the underlying
payload is Object, so provider-field mistakes aren't caught at compile
time. Rewritten to describe the actual shape (sealed-union wrappers
around Object payloads) so readers don't rely on non-existent field-level
type safety.
@lukeocodes lukeocodes requested a review from GregHolmes April 24, 2026 18:17
@lukeocodes lukeocodes changed the title chore: add agent skills for product usage and maintenance chore: add agent skills for product usage and maintenance [no-ci] Apr 24, 2026
@lukeocodes lukeocodes merged commit 716e4cd into main Apr 27, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants