xiaohongshu
xiaohongshu
court-record-transcriber
Development skill for CaseMark's Court Recording Transcriber - an AI-powered application for transcribing court recordings with speaker identification, synchronized playback, search, and legal document exports. Built with Next.js 16, PostgreSQL, Drizzle ORM, wavesurfer.js, and Case.dev APIs. Use ...
Full skill instructions
An AI-powered application for transcribing court recordings with speaker identification, synchronized playback, search functionality, and professional legal document exports.
Live site: https://court-record-transcriber.casedev.app
src/
├── app/
│ ├── api/recordings/ # API routes for recordings
│ │ ├── route.ts # List, create recordings
│ │ └── [id]/
│ │ ├── route.ts # Get, update, delete
│ │ ├── transcribe/ # Start transcription
│ │ └── export/ # Export endpoints
│ ├── upload/ # Upload page
│ └── recording/[id]/ # Transcript viewer page
├── components/
│ ├── ui/ # shadcn/ui components
│ ├── AudioPlayer.tsx # Waveform + playback
│ ├── TranscriptView.tsx # Transcript display
│ ├── SpeakerEditor.tsx # Label speakers
│ └── ExportDialog.tsx # Export options
└── lib/
├── db/
│ ├── index.ts # Database connection
│ └── schema.ts # Drizzle schema
├── casedev/ # Case.dev API client
└── legal-vocabulary.ts # Word boosting config
Upload Audio → Transcribe → Identify Speakers → Review/Edit → Export
↓ ↓ ↓ ↓ ↓
MP3/WAV Case.dev API Auto-detect Sync playback PDF/Word/
M4A/etc with legal Judge, Atty, click-to-seek Plain text
vocabulary Witness, etc
| Layer | Technology |
|---|---|
| Frontend | Next.js 16, React 19, Tailwind CSS |
| Backend | Next.js API Routes |
| Database | PostgreSQL + Drizzle ORM |
| Audio | wavesurfer.js |
| Transcription | Case.dev Speech-to-Text API |
| Export | React PDF, docx library |
| Feature | Description |
|---|---|
| Audio Upload | Drag-drop MP3, WAV, M4A, FLAC, OGG |
| AI Transcription | Case.dev API with legal vocabulary boosting |
| Speaker ID | Auto-detect speakers, customizable labels |
| Synced Playback | Click transcript line to jump to timestamp |
| Search | Find words/phrases with highlighting |
| Export | PDF, Word (.docx), plain text with legal formatting |
PostgreSQL with Drizzle ORM. See references/database-schema.md.
npm run db:push # Push schema (dev)
npm run db:generate # Generate migrations
npm run db:studio # Open Drizzle Studio
See references/casedev-transcription-api.md for API patterns.
// 1. Upload audio to Case.dev
const { audioId } = await uploadAudio(file);
// 2. Start transcription with legal vocabulary
const { jobId } = await startTranscription(audioId, {
vocabulary: legalVocabulary,
speakerDiarization: true,
});
// 3. Poll for completion
const transcript = await pollTranscriptionStatus(jobId);
// 4. Store results
await saveTranscript(recordingId, transcript);
See references/audio-playback.md for wavesurfer.js patterns.
npm install
cp .env.example .env.local
# Add CASEDEV_API_KEY and DATABASE_URL
npm run db:push
npm run dev
CASEDEV_API_KEY=sk_case_... # Case.dev API key
DATABASE_URL=postgresql://... # PostgreSQL connection
NEXT_PUBLIC_APP_URL=http://localhost:3000
lib/export/app/api/recordings/[id]/export/ExportDialog.tsx// Default labels
const speakerLabels = ['Judge', 'Plaintiff Attorney', 'Defense Attorney',
'Witness', 'Clerk', 'Unknown'];
// In SpeakerEditor component, allow custom labels
// lib/legal-vocabulary.ts
export const legalVocabulary = [
'objection', 'sustained', 'overruled', 'plaintiff', 'defendant',
'voir dire', 'habeas corpus', 'pro bono', 'amicus curiae',
// Add more terms
];
| Format | Use Case |
|---|---|
| Official court filing, archive | |
| Word (.docx) | Editing, annotations |
| Plain Text | Processing, search indexing |
| SRT | Subtitles for video recordings |
| Issue | Solution |
|---|---|
| Transcription stuck | Check Case.dev API status, verify audio format |
| Audio won't play | Verify audio URL accessible, check CORS |
| Speaker labels wrong | Use SpeakerEditor to reassign |
| Export fails | Check transcript exists, verify format support |
| Waveform not showing | Ensure wavesurfer.js loaded, check audio src |
xiaohongshu
technical spec
product ux expert
database patterns
Conduct multi-agent task orchestration and workflow coordination.
Initialize project with Conductor artifacts (product definition,
Expert in web animations, transitions, and motion design using Framer Motion and CSS
Creates Mermaid and ASCII diagrams for flowcharts, architecture, ERDs, state machines, mindmaps, and more. Use when user mentions diagram, flowchart, mermaid, ASCII diagram, text diagram, terminal diagram, visualize, C4, mindmap, architecture diagram, sequence diagram, ERD, or needs visual docume...
PostgreSQL bindings for H3 hexagonal grid system. Use when working with H3 cells in Postgres, including spatial indexing, geometry/geography integration, and raster analysis.
Context-Driven Development skill for projects using Conductor. Use this skill when you detect a `conductor/` directory in the project, when working on tasks defined in a `plan.md` file, or when the user asks about tracks, specs, or plans. Automatically applies TDD workflow, tracks task completion...
Display project status, active tracks, and next actions
Official Stakpak application containerization standard operating procedure, a step-by-step guidline to properly dockerize applications. This is a rule book curated by the Stakpak Team.
Generate, edit, and beat-sync AI video with leading models in one workspace.
The world's fastest calendar for remote work
Transform Your Design with AI Designer by ImgCreator.ai
Revolutionizing Video Production with AI-Powered Creativity
Extend an image past the frame and let AI fill the new aspect ratio.
Discover your celebrity doppelgänger with StarByFace!
ChainClarity explains 700+ crypto whitepapers in plain English, with layered summaries, comparisons, research tools, alerts, and a $4.99 Pro plan.
Opus.ai: Revolutionize Your Web Experience