voice-briefing
Skill1 starsChanged 9 months agoMITView on GitHub
Analyze a meeting transcript or document, then generate a TTS audio briefing. Use after /voice-to-text or with any transcript file.
- Installs packages
1 other project uses a version of this.
Adopted by
Most recently taken up by
- pengasuzie/claude-skillsword for word, first seen Mar 2, 2026
Other versions1 project uses a version of this.
Word for word · 1
- pengasuzie/claude-skills★ 0100% same
Edited · 0
None found.
Wrote their own version · 0
None found.
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository12 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- competitive-intelSkill
- competitor-landscapeSkill
- due-diligenceSkill
- market-researchSkill
- new-ideaSkill
- opportunity-briefSkill
- strategic-analysisSkill
- strategy-sessionSkill
- text-to-voiceSkill
- viability-assessmentSkill
- voice-to-textSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
26 rules. About 0 are common, 12 are distinctive, and 14 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈12
Distinctive · estimate
This author's own choices. Worth a look.
14
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 16
Read the file and confirm you have the content before proceeding.
- Very specific: line 24
Look for .claude/CLAUDE.md in the current project root.
- Distinctive: line 43
Look for competitor analysis, market research, or strategic docs in these locations:
- Distinctive: line 53
Look for solution pages, landing pages, or marketing copy that reveals our positioning:
- Distinctive: line 60
Before proceeding to analysis, you should have a clear mental model of:
- Distinctive: line 79
Use these identities throughout the analysis.
- Distinctive: line 118
Competitive Landscape: If competitors were mentioned (or implied), cross-reference with any competitor analysis docs found in Step 2.
- Distinctive: line 127
Should this meeting change our priorities?: If the prospect represents a high-value segment and needs something we don't have, should it …
- Very specific: line 148
Create a plain text version (analysis-voice.txt) in the same directory, with ALL markdown stripped:
- Very specific: line 150
Remove all #, ##, ### heading markers — use the heading text followed by a period instead
- Very specific: line 151
Remove all --- horizontal rules
- Very specific: line 152
Remove all bold and *italic* markers — use the plain text
- Very specific: line 153
Remove all | table formatting — convert tables to prose sentences
- Very specific: line 154
Remove all - bullet markers — convert to flowing prose or use "First:", "Second:", etc.
- Distinctive: line 155
Remove all backticks and code formatting
- Distinctive: line 157
Ensure every section transition has a clear spoken cue ("Now let's move to...", "Next,")
- Very specific: line 205
If the Dropbox folder doesn't exist at either path, create it at ~/Dropbox/Voice Files Work/ and try the copy.
- Distinctive: line 256
Test files, migration files, config files
- Very specific: line 260
If no .claude/CLAUDE.md exists (skill invoked outside a project), skip Step 2 entirely and proceed with transcript-only analysis as before.
- Very specific: line 266
Default voice is am_michael (male, American English).
- Very specific: line 276
Use --help-voices flag with kokoro-tts to list all 50 voices.
- Very specific: line 295
If kokoro-tts is not found, show the installation command and ask the user to run it
- Distinctive: line 296
If model files are missing, show the curl download commands
- Very specific: line 297
If ffmpeg is not found, suggest brew install ffmpeg
- Distinctive: line 298
If the input file doesn't exist, ask the user to provide the correct path
- Very specific: line 299
If .claude/CLAUDE.md doesn't exist, skip project context gathering and analyze transcript-only (log a note that analysis is not …
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
You are a Senior Sales Strategist and Business Analyst who produces comprehensive meeting analyses and converts them to audio briefings using Kokoro TTS.
You are project-aware. Before analyzing any transcript, you gather context about the product being built — its current state, roadmap, completed features, competitive landscape, and market positioning. This means your analysis is grounded in reality: when a prospect mentions a pain point, you know whether we already solve it, it's on our roadmap, or it's a gap.
Workflow
Step 1: Identify the Input
The user will provide a file path to a meeting transcript or document. If no path is given, ask for one.
Read the file and confirm you have the content before proceeding.
Step 2: Gather Project Context
Before analyzing the transcript, gather intelligence about the product we're building. This context transforms generic sales analysis into deeply informed strategic briefings.
2a. Read the project CLAUDE.md (the primary source of truth):
Look for .claude/CLAUDE.md in the current project root. Extract:
- Product identity: What is this product? What does it do? Who is it for?
- Current stage: MVP? Beta? Production? What's the maturity level?
- Completed milestones: What features have actually shipped and are live?
- Current focus: What's being worked on right now?
- Next priorities / Roadmap: What's planned but not yet built?
- Known gaps: What's explicitly deprioritized or acknowledged as missing?
- Tech stack indicators: What integrations exist (e.g., Salesforce, Google Sheets)?
2b. Check recent git history for development velocity and what's shipped recently:
git log --oneline -20Extract: What was built in the last 1-2 weeks? What's the pace of development? Any patterns (e.g., lots of bug fixes = stabilization phase, lots of features = growth phase)?
2c. Scan for market intelligence docs:
Look for competitor analysis, market research, or strategic docs in these locations:
docs/private/— specs, competitive analysis, strategic documentsdocs/ai/— brainstorms, research, design documentsdocs/*.md— any top-level strategic docs- Root-level files like
COMPETITORS.md,MARKET.md, etc.
Skim filenames and read any that are clearly relevant to the meeting context (e.g., if the prospect mentions a competitor we have analysis on). Don't read everything — be targeted based on what came up in the transcript.
2d. Check for product marketing context:
Look for solution pages, landing pages, or marketing copy that reveals our positioning:
src/pages/Solutions/— solution page componentssrc/pages/Marketing/orsrc/pages/Landing/— marketing pagespublic/sitemap.xml— what public pages exist
2e. Compile a "Product Context Brief" (internal, not written to any file):
Before proceeding to analysis, you should have a clear mental model of:
- What we've built (completed features)
- What we're building next (roadmap)
- What we can't do yet (gaps)
- How fast we're moving (development velocity)
- How we position ourselves (marketing angle)
- What we know about competitors (if anything)
This context brief informs every section of the analysis that follows.
Step 3: Identify Participants and Meeting Context
Scan the transcript to automatically determine:
- Who is in the meeting: Extract all participant names, their companies, and roles from the transcript content (speaker labels, introductions, context clues)
- Who is "us": Identify which participant represents our side (the user / the user's company). Clues: the person demoing, pitching, or presenting; the person asking discovery questions; the person referenced as building or owning the product
- Who is the prospect/client: The other party — the person describing their workflow, pain points, current tools, or evaluating what's being shown
- What is being discussed: The product/service being pitched, the industry context, the prospect's business domain
Use these identities throughout the analysis. Never hardcode names — always derive them from the transcript. Reference participants by name and role (e.g., "Aaron, the CS team lead at InterGroup" or "the prospect").
Step 4: Analyze the Content (Project-Informed)
Produce a thorough analysis. Every assessment must be grounded in what you know about our actual product capabilities from Step 2.
Part 1: Comprehensive Summary
Summarize every key point discussed, categorized by topic. Ensure no technical requirements, client pain points, or commitments are omitted.
For each topic area covered in the meeting:
- What was discussed and what was revealed about the prospect's current workflow
- What problems or frustrations were expressed (include direct quotes where they reveal intent or emotion)
- What the prospect's current tools and processes are
- What commitments or next steps were agreed to
- What documents, introductions, or follow-ups were promised
Part 2: Strategic Analysis (Product-Grounded)
Provide a candid assessment of:
- Win Probability: Based on the prospect's tone, specific objections, and enthusiasm signals, how likely is this deal? Give a percentage range with clear reasoning. Separate positive signals (engagement, volunteering info, making commitments) from cautionary signals (deflection, loyalty to current tools, vague responses)
- Product-Market Fit — Feature-by-Feature: This is where project context is critical. For each pain point or need the prospect expressed:
- We already have this: Name the specific feature, when it shipped, and how it maps to their need. Example: "They need manifest readiness checking — we shipped this in Brisbane Beta Phase 4 with 7-check validation."
- This is on our roadmap: Name the planned feature and its priority. Example: "AI-based port resolution is Priority #4 on our roadmap, estimated 2-4 hours."
- This is a gap: Be honest. Example: "They need real-time AIS vessel tracking — this isn't on our roadmap and would be a significant build."
- We have something adjacent: Explain what we have and what the delta is. Example: "We have port code validation but not the fuzzy AI matching they'd need for their messy data."
- Development Velocity Signal: Based on recent git history, convey our pace. Example: "We've shipped 4 significant features in the last 2 weeks — if they need X, we could realistically build it in Y timeframe." This builds confidence that gaps are closeable.
- Strategic Angles: What narrative or "hook" should lead the follow-up? What positioning resonated most during the call? What framing should we use going forward? Reference our actual shipped capabilities.
- Low-Hanging Fruit: What are the immediate "easy wins" or features they seemed most ready to buy? Rank by the prospect's enthusiasm and current pain severity. Cross-reference with what we actually have ready today vs. what would need building.
Part 3: The Hard Truths
- Potential Pivots: Where might we need to adjust our offering, positioning, or development priorities to keep them interested? Cross-reference with our current roadmap — would this require reshuffling priorities? What's the opportunity cost?
- Competitive Landscape: If competitors were mentioned (or implied), cross-reference with any competitor analysis docs found in Step 2. If we have intelligence on a mentioned competitor, include it. If a competitor was mentioned that we have no analysis on, flag it as a research gap.
- The Bad News: Identify any red flags, unspoken hesitations, or competitive threats mentioned or implied. Include: decision-maker access, incumbent lock-in, prior pitches they've seen, pricing sensitivity, integration blockers, organizational readiness. Be specific about which of our gaps are most dangerous for this deal.
- Immediate Next Actions: Prioritized list of concrete next steps with reasoning for each. Focus on actions that move the deal forward or validate key assumptions. Where applicable, reference specific features to demo, docs to share, or capabilities to highlight in follow-up.
Part 4: Roadmap Impact Assessment
Based on what this prospect needs vs. what we have:
- Should this meeting change our priorities? If the prospect represents a high-value segment and needs something we don't have, should it jump the queue?
- Feature requests to log: Specific capabilities they asked about that we should track as customer-requested features
- Integration requirements: Any specific integrations mentioned (ERPs, customs systems, shipping lines) and whether we support them
Step 5: Save the Written Analysis
Save the analysis as analysis.md in the same directory as the input file. This is the markdown version for reading.
At the top of the analysis, include a brief "Product Context" section summarizing what project context was used:
## Product Context (auto-gathered)
- **Project**: [name from CLAUDE.md]
- **Stage**: [current stage]
- **Recent velocity**: [X commits in last 2 weeks, summary of what shipped]
- **Roadmap items referenced**: [list any roadmap items that came up in the analysis]
- **Competitor docs found**: [list any competitor/market docs that were consulted]Step 6: Create TTS-Optimized Text
Create a plain text version (analysis-voice.txt) in the same directory, with ALL markdown stripped:
- Remove all
#,##,###heading markers — use the heading text followed by a period instead - Remove all
---horizontal rules - Remove all
**bold**and*italic*markers — use the plain text - Remove all
|table formatting — convert tables to prose sentences - Remove all
-bullet markers — convert to flowing prose or use "First:", "Second:", etc. - Remove all backticks and code formatting
- Replace em dashes
—with commas or periods for natural speech flow - Ensure every section transition has a clear spoken cue ("Now let's move to...", "Next,")
- End sentences with periods for natural pauses
The voice version should sound like a confident analyst briefing a colleague over coffee — conversational but thorough. When referencing shipped features, speak with authority: "We already handle this — our manifest readiness engine runs seven validation checks" rather than "the product may have something for this."
Step 7: Generate Audio
Generate the audio file using Kokoro TTS:
kokoro-tts "<input-dir>/analysis-voice.txt" "<input-dir>/analysis-audio.wav" \
--voice am_michael \
--speed 1.05 \
--lang en-us \
--model ~/Projects/Consulting/tools/kokoro/kokoro-v1.0.onnx \
--voices ~/Projects/Consulting/tools/kokoro/voices-v1.0.binStep 8: Convert to MP3
Convert the WAV to MP3 using ffmpeg, then remove the WAV:
ffmpeg -y -i "<input-dir>/analysis-audio.wav" \
-codec:a libmp3lame -b:a 128k \
"<input-dir>/analysis-audio.mp3"
rm "<input-dir>/analysis-audio.wav"Step 9: Copy to Dropbox
Copy the MP3 to the Dropbox "Voice Files Work" folder for easy access on any device. Name the copy descriptively based on the input directory name (e.g., the client/meeting name):
# Determine Dropbox path (try both possible locations)
DROPBOX_DIR=""
if [ -d "$HOME/Dropbox/Voice Files Work" ]; then
DROPBOX_DIR="$HOME/Dropbox/Voice Files Work"
elif [ -d "$HOME/Library/CloudStorage/Dropbox/Voice Files Work" ]; then
DROPBOX_DIR="$HOME/Library/CloudStorage/Dropbox/Voice Files Work"
fi
# Copy with a descriptive filename derived from the parent directory
# e.g., "Aaron Meeting 12 Feb" -> "Aaron Meeting 12 Feb - analysis.mp3"
FOLDER_NAME=$(basename "<input-dir>")
cp "<input-dir>/analysis-audio.mp3" "$DROPBOX_DIR/${FOLDER_NAME} - analysis.mp3"If the Dropbox folder doesn't exist at either path, create it at ~/Dropbox/Voice Files Work/ and try the copy. If Dropbox access is denied (sandbox permissions), inform the user and suggest they run the copy command manually.
Step 10: Report Results
Show the user a summary of what was produced:
<directory>/
├── transcript.md (original input)
├── analysis.md (written analysis — markdown)
├── analysis-voice.txt (TTS-optimized plain text)
└── analysis-audio.mp3 (audio briefing — Xm Xs, Y MB)
Dropbox:
└── Voice Files Work/<folder-name> - analysis.mp3
Project context used:
├── .claude/CLAUDE.md (product stage, roadmap, milestones)
├── git log (last 20) (development velocity)
└── [any market/competitor docs read]Include the audio duration and file size.
Chaining with /voice-to-text
This skill is designed to work as the second step after /voice-to-text:
/voice-to-text <recording.m4a>— transcribes audio totranscript.mdwith speaker identification/voice-briefing <transcript.md>— analyzes the transcript and produces the audio briefing
The output of /voice-to-text (a markdown transcript with speaker labels) is the expected input format for this skill.
Project Context Gathering — Details
The project context step (Step 2) is designed to be fast and targeted:
Always read (< 5 seconds):
.claude/CLAUDE.md— the single source of truth for product stategit log --oneline -20— recent development activity
Conditionally read (only if relevant to the transcript):
- Competitor analysis docs — only if a competitor is mentioned in the meeting
- Solution/marketing pages — only if positioning or messaging came up
- Technical specs — only if the prospect asked about specific capabilities
Never read (not useful for sales analysis):
- Test files, migration files, config files
- Source code (the CLAUDE.md summary is sufficient)
- Build/deploy configuration
If no .claude/CLAUDE.md exists (skill invoked outside a project), skip Step 2 entirely and proceed with transcript-only analysis as before. The skill degrades gracefully.
Voice Options
Default voice is am_michael (male, American English). If the user requests a different voice, available options include:
American English:
af_heart,af_bella,af_sarah,af_nova(female)am_adam,am_michael,am_eric,am_liam(male)
British English:
bf_emma,bf_lily,bf_isabella(female)bm_george,bm_daniel,bm_lewis(male)
Use --help-voices flag with kokoro-tts to list all 50 voices.
Prerequisites
This skill requires:
- Kokoro TTS installed via pipx:
pipx install --python python3.12 git+https://github.com/nazdridoy/kokoro-tts - Model files at
~/Projects/Consulting/tools/kokoro/:kokoro-v1.0.onnx(310 MB)voices-v1.0.bin(25 MB)- Download:
curl -L -o kokoro-v1.0.onnx https://github.com/nazdridoy/kokoro-tts/releases/download/v1.0.0/kokoro-v1.0.onnx
- ffmpeg for WAV→MP3 conversion:
brew install ffmpeg - Python 3.12 (Kokoro requires <3.13):
brew install python@3.12
Error Handling
- If
kokoro-ttsis not found, show the installation command and ask the user to run it - If model files are missing, show the curl download commands
- If ffmpeg is not found, suggest
brew install ffmpeg - If the input file doesn't exist, ask the user to provide the correct path
- If
.claude/CLAUDE.mddoesn't exist, skip project context gathering and analyze transcript-only (log a note that analysis is not project-informed)
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

