From quasi
Use when the user wants to transcribe and summarise a meeting or lecture recording into a structured talk page in the vault.
How this skill is triggered — by the user, by Claude, or both
Slash command
/quasi:process-talkThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
把一场会议/讲座录制(video/audio)转写并结构化摘要,入库为一个 `talk` 页。
把一场会议/讲座录制(video/audio)转写并结构化摘要,入库为一个 talk 页。
用户给一个录制(本地媒体文件路径),通常附标题与日期。从意图中抽取:
media — 媒体文件路径(.mov/.mp4/.m4a/.wav/...)。必需。title — 讲座标题。缺失时由文件名推断,并向用户确认。date — 录制日期(整日 ISO)。缺失时从文件名/用户语境推断。slug — kebab(title)-YYYYMMDD(中文标题保留 CJK)。全库扁平命名。engines(可选) — 覆盖默认引擎集 soniox,apple,parakeet。最终产物在 vault/talks/{slug}/:talk.md(摘要)、transcript.md(带时间戳转写)、
recording.<ext>(媒体本体,gitignore)。
quasi-transcribe(确定性 helper),摘要走 analyse-agent,
审计走 audit-agent。主进程不亲自写 talk.md 正文。quasi-transcribe run 并行跑 Soniox(质量天花板,需
QUASI_SONIOX_API_KEY)+ Apple(本地)+ Parakeet(本地,中文自动跳过),各引擎
原始转写留在 processing/talks/{slug}/(tracked,可复用),主转写(Soniox 优先)写入 transcript.md。analyse-agent 读全部引擎转写并按时间戳交叉比对:多引擎一致处≈真值,
分歧处(专名/同音字/术语)据上下文择优,绝不照抄明显错词,绝不编造未讲内容。quasi-transcribe silent 模板。recording.* 命中 .gitignore。主进程拥有工作流状态:slug、引擎清单、classify 判定、各产物路径。
各引擎原始 SRT(可读、可复用的中间产物)归 processing/talks/{slug}/(tracked,仿
processing/chapters/),由 quasi-transcribe 写;留长期以便改 prompt 重跑摘要而不必
重新转写(尤其免再付 Soniox)。最终页(talk.md / transcript.md / recording.srt)
归 vault/talks/{slug}/。
quasi-transcribe run --media F --slug S [--title T] [--engines …] [--lang auto]
→ 抽 wav、并行跑引擎、写 processing/talks/{slug}/transcript.<engine>.srt 与
vault/talks/{slug}/transcript.md。返回 JSON
{ok, primary_engine, engines:{name:count}, transcript_path, per_engine}。quasi-transcribe classify --slug S → {state: live|dead|empty, …}(纯文本判定)。quasi-transcribe silent --slug S --title T --date D --media M → 写静音模板 talk.md。Agent("quasi:analyse-agent", foreground=True, prompt=…) with type: T(talk):
读 transcript.md + 各引擎 SRT,写恰好 vault/talks/{slug}/talk.md(TalkSchema
speaker / themes。Agent("quasi:audit-agent", foreground=True, prompt=…):quasi-audit --path vault/talks/{slug}/talk.md,本地修复 + 升级路由。quasi-helpers talk compress-media --media F --output O → 本机压缩单个录制。Step 0 LOCAL RECALL vault/talks/{slug}/{talk,transcript}.md 已存在? → 决定跳过哪步
Step 1a COMPRESS_MEDIA quasi-helpers talk compress-media → recording.mp4
Step 1 TRANSCRIBE quasi-transcribe run → transcript.md + per-engine SRT
Step 2 CLASSIFY quasi-transcribe classify → live | dead
dead → quasi-transcribe silent → talk.md → Step 4 → done
Step 3 SUMMARISE analyse-agent (type=T) 读多引擎转写 → talk.md
Step 4 AUDIT audit-agent (quasi-audit --path),escalated 时一次再生成回环
Step 5 OPEN marple 打开最终页(best-effort,绝不让工作流失败)
slug。若 vault/talks/{slug}/talk.md 已存在且 audit 干净,
报告并停(避免重复)。若仅 transcript.md 存在,跳过 Step 1。确保
vault/talks/{slug}/ 存在,确认 .gitignore 覆盖 recording.*。quasi-helpers talk compress-media --media {media} --output vault/talks/{slug}/recording.mp4,
后续 media 改用该输出。音频文件跳过。quasi-transcribe run --media … --slug … --title …。ok=false
(全引擎空)→ 视作 dead 候选,转 Step 2 的 dead 分支(用户可换源)。quasi-transcribe classify --slug …。dead/empty → quasi-transcribe silent … 写模板 talk.md,转 Step 4。live → Step 3。analyse-agent(type: T),传 slug、transcript_path、
per_engine SRT 路径、title、date、media、output(绝对路径)。它按 agent 的
<talk_mode> 交叉比对三份转写,写 talk.md(六个四字 H2,时间脉络 必填)。audit-agent。诊断 escalated → 让 analyse-agent 按诊断再生成一次
→ 复审;仍 escalated 则报告并停。marple 打开 vault/talks/{slug}/talk.md。vault/talks/{slug}/talk.md 存在且 audit 干净 → 整条跳过。transcript.md 存在 → 跳过 Step 1,直接 classify→summarise。processing/talks/{slug}/transcript.<engine>.srt 存在但无 transcript.md → 重跑 Step 1
(或直接复用这些 SRT 重跑 Step 3 摘要,免再转写)。vault/talks/{slug}/talk.md # tracked:TalkSchema frontmatter + 六四字 H2 摘要
vault/talks/{slug}/transcript.md # tracked:TranscriptSchema,带 [hh:mm:ss] 时间戳
vault/talks/{slug}/recording.srt # tracked:主转写 SRT,与 recording.<ext> 同名,播放器自动套字幕
vault/talks/{slug}/recording.<ext> # gitignore:媒体本体
processing/talks/{slug}/transcript.<engine>.srt # tracked:各引擎原始转写(交叉比对依据 / 可复用)
npx claudepluginhub giraphant/quasi --plugin quasiCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.