skills/transcript-grounded-correction/SKILL.md
Re-ground a session/meeting summary (and every artifact built on it) against the raw transcript, when the summary was written first and the transcript became available later. Use whenever a raw transcript becomes accessible after a summary-based artifact exists, whenever the user pushes back on a fact in a summary, whenever you notice a downstream contradiction, or whenever you're about to edit a contact/reflection/issue that was built on a pre-transcript summary. Do not skip this even if the summary "seems fine" — summaries written from memory or from an AI auto-summary routinely contain speaker mis-attributions, framing drift, missed threads, and inverted consents, and every downstream artifact silently inherits those errors until somebody pulls the tape. This applies to any transcription source (Jamie, Fireflies, Otter, Granola, Rev, manual recording) and any artifact system (markdown sessions, CRM contacts, coaching journals, issue trackers).
npx skillsauth add razbakov/skills transcript-grounded-correctionInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Meeting summaries written before the raw transcript is read contain errors that are invisible until somebody listens back. Two error modes matter:
Downstream artifacts (contact profiles, coaching reflections, issues, tasks) inherit these errors and propagate them as facts. By the time a mistake surfaces, three or four files quote the original wrong summary as source. Re-grounding fixes the root; the root fixes the tree.
This is not optional polish. A corrected coaching reflection that says "I was wrong about these three things" is higher-trust than one that silently edits history.
Find the authoritative source. This varies by tool (web UI, API, local file, DB). Get speaker-separated text with timestamps if possible. If the export has anomalies (missing speaker labels for a block, truncation, off-by-one attribution), document the anomaly inline in the session file, not just in your head — the next reader needs to know where to trust and where to verify.
Append under a clear heading (## Транскрипт / ## Transcript). Keep it verbatim; do not clean up ums, repetitions, or "bad grammar" — these carry register information. If the export had an anomalous block, add a one-line note in italics above that block describing what's wrong.
The session file becomes the anchor — every other artifact cites it, not the auto-summary.
Read the original summary alongside the transcript. List:
Write this diff list compactly in your reply to the user before editing anything. It's their chance to push back before you propagate.
Different artifacts need different treatment. Do not use one rule for all.
The session summary is a derivative of the transcript. It was wrong, and now we have the source. Rewrite it in place. Include at the top a small note like: "Corrected from original summary on YYYY-MM-DD after raw transcript reading."
A contact file captures a person's identity across time. Don't rewrite history — add corrected observations and update specific fields that were wrong. If the original contact said "military surgeon" and the transcript reveals "civilian surgeon in a military hospital", update the field and keep a short note about the distinction so future readers understand why. For character notes, add a dated section anchored to the call date.
These are interpretive files. When the interpretation was built on wrong facts, rewrite — but include a visible section at the top along the lines of:
Previous version had N errors (list them). Transcript reading reversed them. This is the grounded rewrite.
This is not performative humility. It's epistemic hygiene: the reader needs to know the interpretation was revised, otherwise they'll trust the new one the same way they trusted the old one. If the file lives in version control, the diff already tells the story — but humans don't read diffs by default, and future you is a human.
This is the rule that costs discipline to follow.
If an issue captures a commitment, consent, or agreement ("X agreed to Y", "we decided Z"), the body is a historical record. Rewriting it erases the record and replaces it with a retconned version that looks like the truth was always known.
Instead: add a comment describing the correction. The comment can be long. It can reverse the body's conclusion. It can change the scope. But the body stays, so anyone reading in a year sees both what was agreed and what was learned. Title updates are acceptable when the title contains a status flag that's now wrong (e.g. — parked → — active, first step pending), because the title functions as current state, not historical record. Body stays.
This rule generalizes: anywhere a commitment or consent is captured, append — don't overwrite. The history of what was agreed is often more important than the refined scope that emerged later.
Check that the surface still reflects reality. If the task was "check if X did Y by date", and the transcript shows the agreement was actually "X will do Z", update or replace the task. Calendar events with titles referencing the old framing should be updated; descriptions can keep the correction trail.
One commit for the correction is usually right (all files that are sharing the same re-grounding). The commit message should name the specific errors corrected — not "fix summary" but "fix X, Y, Z in session file; scope change in issue #N; reflection rewrite with explicit 'was wrong about' section". Future you is searching commit history for this.
If the issue comment was added via API/CLI separately from the git commit, mention it in the commit message so the trail is findable from either direction.
Summarize what was wrong, what changed, and what remains open. Include links/IDs to updated artifacts. If the diff revealed something that needs a new conversation with a human (e.g. a missed thread that needs to be raised on the next call), surface that as an open item — don't let the correction itself become the end of the thread.
Before closing the correction:
tools
--- name: handoff description: Get an agent past a browser/UI wall it can't (or must not) cross on its own — a login-gated dashboard, a CAPTCHA, a 2FA prompt, an API that keeps rejecting the write, or an irreversible click that policy says a human must make. This skill is an ESCALATION LADDER, not a first move: it tells you to try the automated browser surfaces FIRST (Chrome-in-Claude, computer-use, an autonomous browser sub-agent) and only fall back to the Handoff app — a wrapper browser that h
documentation
Summarize one or more YouTube videos from their links. Use this whenever the user pastes a youtube.com or youtu.be URL (or several) and wants to know what it's about — phrasings like "summarize to telegram", "tldr these videos", "what do these say", "summary of this talk", or just dropping links with no instruction at all. Fetches each video's real transcript via yt-dlp (not the page text, which never contains the transcript), cleans the captions, and writes a per-video summary. Default delivery is Telegram; honor any other surface the user names ("to my notes", "just here in chat", "email it"). Trigger even when the user only pastes bare links — bare YouTube links almost always mean "tell me what's in these".
data-ai
Daily Digest — Chief-of-Staff role consolidates the six top-managers into one Telegram message to the Commander, instead of six. Implements the protocol from agent-proactivity.md.
development
Seed a new or empty Instagram account with a 9-post grid (3×3) so the profile looks established the moment a new visitor lands. Designed for festivals, new businesses, product launches, conferences, communities — any time an empty IG profile would hurt conversion from external traffic (QR scans, flyer drops, cross-promo). Generates assets via /image-from-gemini (per content-publishing rules — never HTML), writes captions with hashtag sets, and outputs a posting order + cadence plan. Trigger generously: phrases like '9 posts for instagram', 'fill my IG', 'starter grid', 'launch grid', 'instagram seed', '9-post grid', 'IG account not to look empty', 'first instagram posts', 'feed bootstrap', '3x3 grid', 'instagram launch content'. Even if the user mentions only one piece (just the images, just the captions, just the order), use this skill — the grid only works as an integrated bundle.