Skills

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.

Read the whole SKILL.md on GitHub

More in Engineering