tashanzhishi

tashanzhishi is a skill for Claude Code from anneheartrecord/charles-skill. It costs 98 tokens per session (1,759 once invoked), scanned A, original, MIT.

A workflow for turning YouTube, Bilibili, podcast, or article content into a readable Chinese note stored under a knowledge folder called 他山之石. It separates the source author’s facts and opinions from the note writer’s interpretation.

In plain words
What is it for?
Use it when archiving a video, podcast, or article, especially from a link or pasted transcript, into a structured knowledge note.
Why use it?
It removes the work of downloading subtitles, cleaning automatic-transcription errors, and organizing someone else’s ideas into an article. It also helps preserve the source’s position without presenting it as the user’s own writing.

Skill for Claude Code

Written for Claude Code: shipped in a Claude Code plugin. Also seen: reads .claude/ paths.

Part of the content-knowledge plugin — 5 skills shipped together

Good fit Use it when archiving a video, podcast, or article, especially from a link or pasted transcript, into a structured knowledge note.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/anneheartrecord/charles-skill/florilegium
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add anneheartrecord/charles-skill --skill florilegium
Clone the repo
git clone --depth 1 https://github.com/anneheartrecord/charles-skill

Made for: Claude Code.

Or install content-knowledge, the plugin that ships this one along with the rest of its 5 skills.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for tashanzhishi

README.md
[![agentmods](https://agentmods.dev/badge/skills/anneheartrecord/charles-skill/florilegium/github.svg)](https://agentmods.dev/skills/anneheartrecord/charles-skill/florilegium)
Your own site
<a href="https://agentmods.dev/skills/anneheartrecord/charles-skill/florilegium"><img src="https://agentmods.dev/badge/skills/anneheartrecord/charles-skill/florilegium/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for tashanzhishi

Your own site · 80×15
<a href="https://agentmods.dev/skills/anneheartrecord/charles-skill/florilegium"><img src="https://agentmods.dev/badge/skills/anneheartrecord/charles-skill/florilegium.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 98 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,759 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00098 $0.01759
Opus 5 $0.00049 $0.00879
Sonnet 5 $0.00020 $0.00352
Haiku 4.5 $0.00010 $0.00176

Measured 10d ago against content hash 387430293f8b, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-10, from the pricing page.

Security

Grade A, and why

tashanzhishi scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 10d ago.

The scan reads SKILL.md. This mod also ships 5 executable files (fetch-audio.sh, fetch-transcript.sh, setup.sh, …), listed below but not scanned — reading those needs a real analyzer, not pattern matching.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

skills/florilegium/SKILL.md · 123 lines

How it starts

The opening of the file, as written. The whole thing — 123 lines — stays where its author put it; the contents beside it link to each section on GitHub.

剪藏他人观点到「他山之石」(tashanzhishi)

Overview

把一个视频、播客或文章的内容,整理成一篇可以直接阅读的文章,存进 20-knowledge/他山之石/

核心原则:产出的是给读者看的文章,不是观点汇总,也不是逐条「作者认为……」的清单。忠实于来源、把事实和推测分清、标注作者立场,但用流畅的文章呈现。这不是写用户自己署名的内容,所以不套用户文风、也不跑 de-ai-flavor。输出永远中文。

何时用 / 不用

用:用户给链接或粘贴文字稿,说要「剪藏到他山之石」「整理成他山之石文档」「归档这个观点」。 不用:用户要写自己署名的推文/文章(那是写作任务,走文风流程)。

输入两种来源

  1. 链接(YouTube/B站/播客等)→ 用 yt-dlp 抓元数据 + 字幕。
  2. 粘贴的文字/字幕/文章 → 直接用,跳过抓取。

流程

1. 拿到原文

链接来源,运行本目录的脚本:

bash ~/.claude/skills/tashanzhishi/fetch-transcript.sh "<链接>"          # 默认读 Chrome 登录态
bash ~/.claude/skills/tashanzhishi/fetch-transcript.sh "<链接>" safari   # 换浏览器:safari/brave/edge/firefox

它会打印一个临时目录路径,里面有 meta.txt(标题 ||| 作者 ||| 上传日期 ||| 链接 ||| 时长)和一个 .vtt 字幕文件。YouTube 现在要求登录态才能下字幕,脚本默认读 Chrome 的 cookies,所以需要在 Chrome 里登录过 YouTube。

把字幕清洗成纯文本再读:

python3 ~/.claude/skills/tashanzhishi/vtt2text.py "<那个目录>"/sub.*.vtt > /tmp/transcript.txt

vtt2text.py 会去掉时间轴、内联标签、HTML 实体,并合并自动字幕的滚动重复。然后用 Read 读 meta.txt/tmp/transcript.txt。注意:视频结尾常有重复的「精彩片段」集锦,蒸馏时忽略那段。

2. 写成一篇可读文章

  • 清洗自动字幕的识别错误、逐字空格、错的专有名词(公司名、人名、术语、英文缩写),但不改作者语气和立场。
  • 用流畅的中文写成一篇文章,把读者当杂志读者:正常标点(用冒号、写完整句子),不要「短语。完整句。」这种断裂节奏,也不要「1. 作者认为 X」的清单堆叠。
  • 按内容自然分几个 ## 小标题导航;attribution 自然融进句子(他算了笔账、她的观察是、他给了个尺子)。
  • 事实与推测分清:可核实的当事实写,推测和判断点明是作者观点。结尾用一段「可信与存疑」的编辑提醒收尾。
  • 可以摘 1 到 5 句原话金句融进正文,但别让全文变成摘抄。

3. 写文件

写到 20-knowledge/他山之石/<简洁中文标题>.md,文件名不含斜杠。captureddate +%F 的当天日期。结构见下。

文档结构(可读文章,不是观点汇总)

---
tags: [他山之石, <领域标签>]
source: <平台> · <作者/频道>
author: <作者,未知写"未注明">
url: <原始链接>
captured: <YYYY-MM-DD>
type: 他人观点
---

# <文章式标题>

> 来源与立场:一句话说清作者是谁、有没有带货/特定立场,哪里要打折看。

<开头一两句,把读者带进来。>

## <小标题>
<流畅文章正文,自然融入 attribution,事实与推测分清。>

## <小标题>
...

---
**可信与存疑**:哪些是可核实事实(回到原始来源核对),哪些是作者的推测/判断。

写完后

简单报告:写到哪个文件、抓取还是粘贴、有没有抓到字幕。不要同步到 X 或个人网站。

常见错误

错误 纠正
写成 bullet 观点汇总 / 「1. 作者认为…」 写成可直接阅读的文章
短语加句号的断裂标点 正常完整句子、该用冒号用冒号
用用户的犀利文风重写 保持中立可读,不套文风、不去 AI 味
把推测当事实写 事实归事实,推测点明是作者观点
漏掉作者的带货/立场 写进开头的「来源与立场」
字幕抓不到就编内容 让用户粘贴或换方案,绝不臆造
一篇塞多个来源 一个来源一篇

Read the full file on GitHub · 123 lines

Files

What ships with it

7 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 10d ago First seen · 123 lines · 98 tokens per session scan A 387430293f8b

Subscribe to this mod's changes

tashanzhishi is a skill published in the GitHub repository anneheartrecord/charles-skill (3 stars, last pushed 1mo ago), licensed MIT. It adds 98 tokens to every session and 1,759 once invoked, about $0.0005 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.

Related

Other skills, from other repositories

agent-recall

Persistent compounding memory for AI agents. 5 default MCP tools: sessionstart, sessionend, remember, recall, check. Full surface (18 tools) available with --full flag. Two-verb model: inhale (sessionstart) and exhale (sessionend). Correction-first memory with decision trail tracking, watchfor warnings, palace rooms…

Goldentrii/AgentRecall-X · 157 tokens

swarmvault

Use SwarmVault when the user needs a local-first knowledge vault that writes durable markdown, graph, search, dashboard, review, chat-session, context-pack, task-ledger, static AI export, retrieval, and MCP artifacts to disk from books, notes, transcripts, exports, datasets, slide decks, files, URLs, code, and…

swarmclawai/swarmvault · 76 tokens

linker

Discovers missing cross-domain connections between knowledge documents and creates/updates connection wiki articles.

Yrzhe/pagefly · 20 tokens

intake

Interactive Q&A capture of company knowledge into typed nodes in a company-brain vault. Sub-modes - vision (dictation-friendly six-phase flow), for-doc (document-driven interview that walks a target doc's sections), product, persona, competitor, competitor-ifu, competitor-clearance, competitor-snapshot, metric…

nemock/company-brain · 120 tokens

atomize

Ingest existing documents (markdown, plain text, Word .docx, PDF, interview transcripts, image screenshots) into typed company-brain nodes with provenance. Each ingested document lands as an immutable source node; extracted content becomes derived typed nodes linked via derivedfrom edges. Uses cb extract for binary…

nemock/company-brain · 110 tokens

query

Answer questions against a company-brain vault using staged retrieval, auto-injected pillars, typed edge traversal, and node-id citations. Profile-aware. Cites the graph as the source of truth; flags contradictions, staleness, and confidence.

nemock/company-brain · 51 tokens