oma-academic-writing
Draft and revise academic prose against a rubric, evidence, and
Generate speech or transcribe audio locally with Voicebox. Use for
$ npx -y skills add first-fluke/oh-my-agent --skill oma-voice --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/oma-voiceContext preview
The summary Claude sees to decide when to auto-load this skill.
Generate speech or transcribe audio locally with Voicebox. Use for
name: oma-voice description: Generate speech or transcribe audio locally with Voicebox. Use for narration, voice assets, dictation, and meeting transcription.
Drive the Voicebox local app through its MCP server so any MCP-aware agent can speak (TTS) or listen (STT) without invoking cloud vendors. The skill standardizes intent routing, voice profile resolution, output layout, and guardrails while voicebox itself owns the engines, voice cloning UI, captures archive, and stories editor.
1. Detect the requested mode: notification, asset TTS, or transcription. 2. Verify Voicebox is reachable via MCP handshake or `GET /health`. 3. On the first run only, call MCP `tools/list` and cache the resolved tool names. 4. For notification or asset TTS, resolve the target voice profile id. For transcription, validate the audio input and continue without a profile.
1. **PREPARE**: Validate text length, audio duration, language, output path, and profile id. 2. **ACQUIRE**: If a required signal is missing, run the clarification protocol once. 3. **ACT**: Invoke the appropriate MCP tool (TTS or STT) with the resolved parameters. 4. **VERIFY**: Confirm the response carries audio output or transcript content. Validate manifest fields. 5. **FINALIZE**: Write `manifest.json` alongside the output. Report the path or transcript to the user.
| Failure | Recovery | |---------|----------| | Voicebox app not running | Print install/launch hint, exit code 5 | | No voice profile for TTS | Print "create a profile in Voicebox" hint, exit code 3 | | Engine model missing | Ask before triggering download | | Output path outside `$PWD` | Use an explicitly requested path; ask only if the destination is ambiguous or overwrites unrelated data | | TTS over 5000 chars | Ask the user to split or truncate | | STT over 30 minutes | Confirm only if the requested duration or resource cost is unresolved | | MCP tool name drift | Re-run `tools/list` and update the cache | | SIGINT | Abort the MCP call, write no partial output |
| Action | SSL primitive | Evidence | |--------|---------------|----------| | Validate mode and inputs | `VALIDATE` | Clarification protocol in execution-protocol.md | | Resolve TTS voice profile | `SELECT` | `voicebox_list_profiles` + config defaults | | Health check | `READ` | MCP handshake or `GET /health` | | Generate speech | `CALL_TOOL` | MCP `voicebox_speak` | | Transcribe audio | `CALL_TOOL` | MCP `voicebox_transcribe` | | Write output and
Agents narrate success. oh-my-agent checks the artifacts. Spawning parallel agents is the easy part. The hard part is knowing whether they actually did the work.
Repo: first-fluke/oh-my-agent
Draft and revise academic prose against a rubric, evidence, and
Evaluate system boundaries and architectural tradeoffs. Use for
Implement server APIs, authentication, and application data access.
Coordinate assigned specialist tasks and handoffs manually. Use