Analyze transcriptions to extract communication intelligence — how people speak, what they commit to, how they compare.
The project lives at communication-dna/ in the workspace. On first use, initialize the DB:
bash
cd <skill-dir>/scripts
python3 db.py # Creates communication_dna.db with all tables + FTS5
bash
python3 dna.py ingest <file> --title "Meeting Name" --date 2026-02-23 --context meeting
python3 dna.py ingest-dir <directory> # Batch ingest
Supported formats:
"John:", "[Alice]", "Speaker 1:")Speaker matching is fuzzy — reuses existing speakers by name.
bash
python3 dna.py analyze <speaker_id> # Full report
python3 dna.py analyze-all # All speakers
python3 dna.py fingerprint <speaker_id> # Vocabulary deep dive
python3 dna.py fillers <speaker_id> # Filler word report
python3 dna.py patterns <speaker_id> # Speech patterns
python3 dna.py commitments # All extracted commitments
python3 dna.py sentiment <trans_id> # Sentiment arc
python3 dna.py topics # Top topics
python3 dna.py compare <id1> <id2> # Side-by-side comparison
Auto-generated style tags based on analysis:
bash
python3 dna.py link-crm # Auto-link speakers → CRM contacts
python3 dna.py link-kb # Cross-reference with Knowledge Base
python3 dna.py push-to-kb <trans_id> # Push transcription to KB
python3 dna.py cross-search "query" # Search DNA + KB together
CRM path: ../personal-crm/crm.db | KB path: ../knowledge-base/knowledge.db
bash
python3 app.py # Starts on port 5053
Pages: Dashboard, Speakers, Speaker Profile, Transcriptions, Transcription Detail, Compare, Search, Ingest (drag & drop), Integrations.
API endpoints: /api/speakers, /api/speaker/<id>, /api/search, /api/ingest, /api/link-crm, /api/link-kb, /api/cross-search, /api/push-to-kb/<id>
AnalysisWhat it extractsVocabulary FingerprintWord frequency, type-token ratio, sentence length, formality score, unique wordsFiller DetectionRate per 100 words, filler distribution, cross-speaker comparisonSpeech PatternsBigram/trigram phrases, question rate, hedging vs assertiveness scoresCommitments"I'll do X", decisions, action items — stored in extractions tableSentimentPer-segment scoring (-1 to +1), arcs over time, speaker averagesTopicsTF-IDF extraction per transcription and per speaker
All source files are in scripts/:
db.py — Schema + DB initializationingest.py — Format parsers + speaker detectionanalyze.py — Analysis engine (6 functions + caching)wordlists.py — Stop words, fillers, sentiment words, formal/informal listsprofiles.py — Speaker profile generator + comparison engineintegrations.py — CRM + KB connectorsdna.py — CLI (argparse, 17 subcommands)app.py — Flask web UItemplates/ — Jinja2 templates (dark theme, Tailwind CSS)