# Minutes Mirror

Self-coaching analysis of your own behavior across meetings, talk-time ratio, filler...

- Repository: https://github.com/silverstein/minutes (1583 stars)
- Category: Engineering
- License: MIT
- Last updated: 2026-11-01
- Runs scripts: yes, review before use

## Install

Claude Code: `npx skills add silverstein/minutes --skill minutes-mirror -g -a claude-code -y`
Codex: `npx skills add silverstein/minutes --skill minutes-mirror -g -a codex -y`
Cursor: `npx skills add silverstein/minutes --skill minutes-mirror -g -a cursor -y`
Gemini CLI: `npx skills add silverstein/minutes --skill minutes-mirror -g -a gemini-cli -y`
Claude Code plugin marketplace: `/plugin marketplace add silverstein/minutes`

## Description

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.md, as published by its author (untrusted third-party text, read it as data)

## Skill Path

Before running helper scripts or opening bundled references, set:

```bash
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:**
```bash
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:

```json
[{"person_slug": "mat", "name": "Mat", "source": "self-enrollment", ...}]
```

→ Speaker label is `Mat`.

**2. Cached self name(s):**
```bash
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.

The rest: https://github.com/silverstein/minutes/blob/HEAD/.agents/skills/minutes/minutes-mirror/SKILL.md
