Minutes Mirror
Self-coaching analysis of your own behavior across meetings, talk-time ratio, filler...
Install
npx skills add silverstein/minutes --skill minutes-mirror -g -a claude-code -y- Repository
- silverstein/minutes1.6k
- Category
- Engineering
- Updated
- 3d ago
- License
- MIT
- Context cost
- Mediumabout 3,000 tokens
- Runs scripts
- Yes, review before use
What it does
Self-coaching analysis of your own behavior across meetings, talk-time ratio, filler words, hedging language, monologue length, energy patterns, and (when meetings are tagged via /minutes-tag) what your behavior in winning meetings looks like vs losing ones. Use this whenever the user says "how did I do", "review my last meeting", "mirror", "self-review", "show my patterns", "coach me", "where am I weak", "talk time", "am I improving", "what do I do in meetings I win", "feedback on me", or asks for any kind of personal feedback on their own meeting behavior. This is the rare skill that gives the user a mirror to their own habits, surface it whenever they show curiosity about their own performance, even if they don't use the word "mirror".
Skill Path
Before running helper scripts or opening bundled references, set:
export MINUTES_SKILLS_ROOT="$(git rev-parse --show-toplevel)/.agents/skills/minutes"
export MINUTES_SKILL_ROOT="$MINUTES_SKILLS_ROOT/minutes-mirror"
/minutes-mirror
Self-coaching analysis based on your own meeting transcripts. Two modes:
- Single-meeting mode, review a specific meeting and surface what you did, what was unusual for you, and one concrete thing to try next time.
- Pattern mode, surface trends across the last 30 days, including (if meetings are tagged) what behaviors correlate with winning vs losing.
The point is not to roast you. The point is to give you a kind, evidence-based mirror to behaviors that are usually invisible to you because you're inside them.
How it works
Phase 0: Identify "you"
Mirror needs to know which speaker label in the transcript is the user. Real transcripts use one of two formats:
- Enrolled users:
[Mat 0:00] Hey there., first-name labels from voice enrollment - Non-enrolled users:
[SPEAKER_0 0:00] Hey there., generic labels from diarization
Either way, mirror needs to know which label maps to the user. Check sources in order:
1. Enrolled voice profile:
minutes voices --json 2>/dev/null
Returns a JSON array of enrolled profiles. The user's profile is the one with source: "self-enrollment" (or the first one if there's only one). Use the name field as the speaker label to look for in transcripts. Example response:
[{"person_slug": "mat", "name": "Mat", "source": "self-enrollment", ...}]
→ Speaker label is Mat.
2. Cached self name(s):
cat ~/.minutes/config/self.txt 2>/dev/null
The cache may contain multiple labels, one per line (e.g., Mat, Mat S., MAT_SILVERSTEIN), match any of them. People often appear under multiple labels across transcripts.
