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:
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.
testing
Translate one English blog post into multiple target languages via parallel sub-agents, preserving frontmatter conventions, hero image, and brand voice. Use when the user shares a published English post URL or markdown path and says 'translate it', 'add other languages', 'publish in DE/ES/RU/UK', 'translate to 5 languages', or asks for localized versions of a specific post.
development
Build a complete press kit for an event, product launch, or campaign — in multiple languages — and publish it as a shareable Google Drive folder ready to send to journalists, partners, or a delegate. Produces press releases (typically DE/EN/ES, or configurable), uploads press photos and flyers, creates an Overview document for at-a-glance briefing, and creates a Handover document with pending tasks, contacts, risks, and decisions so press distribution can be delegated. Use when the user says 'I need a press release', 'create a press kit', 'press release in X languages', 'set up a Drive folder for press', 'handover doc for someone else to run press', or has an upcoming announcement that needs to be sent to media. Trigger generously: even partial requests (just a press release, just a flyer folder) typically evolve into the full kit.
development
Track ticket sales for a live event (concert, festival, conference, workshop) with daily snapshots, generate a burndown chart comparing actual sales to ideal-linear targets and tier-cumulative milestones, and report whether the event is on pace. Use when the user asks how sales are going, wants to know if their event will sell out, asks for a daily sales report, wants to set up sales tracking for an upcoming event, or asks about ticket pace / velocity / projection. Trigger generously: phrases like 'how is concert sales going', 'burndown for my event', 'are we going to sell out', 'sales velocity', 'daily ticket chart', 'how many tickets do we need to sell', or any case where the user has a ticketed event with a fixed sales window and wants visibility on pacing.