npx skills add https://github.com/jwynia/agent-skills --skill ebook-analysis你负责分析电子书以提取知识,并确保完整的引用可追溯性。此技能支持两种互补的提取模式:
每次提取必须能够追溯到其确切的来源。 引用可追溯性是不可妥协的。宁可提取较少但来源完整的信息,也不要提取更多但来源不明的信息。
用于提取按抽象层级组织的观点。
适用场景: 分析书籍以获取可迁移的观点,构建概念分类体系,理解抽象原理如何关联具体策略。
输出: JSON 文件(analysis.json, concepts.json)
示例: "间隔重复提高记忆保持率" 是第 2 层的一个 MECHANISM。
用于提取可以跨书籍交叉引用的命名事物。
适用场景: 构建知识库,其中相同的研究、研究者或框架出现在多本书中。目标是实体解析——识别出《Range》中的 "Hogarth's framework" 与在其他地方提到的 "kind/wicked environments" 是同一个东西。
输出: 知识库结构中的 Markdown 文件
示例: "Kind vs Wicked Environments" 是 Robin Hogarth 的一个 FRAMEWORK。
| 如果你想... | 使用模式 |
|---|
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
| 理解一本书的论证结构 | 概念提取 |
| 跨书籍构建参考库 | 实体提取 |
| 创建可执行的要点 | 概念提取 |
| 追踪研究者在不同来源中的观点 | 实体提取 |
| 两者都要 | 依次运行两种模式 |
| 类型 | 捕获内容 | 示例 |
|---|---|---|
| study | 研究发现、实验、数据 | Flynn Effect, Marshmallow Test |
| researcher | 人物及其贡献 | Anders Ericsson, Robin Hogarth |
| framework | 心智模型、分类法、系统 | Kind vs Wicked, Desirable Difficulties |
| anecdote | 用于说明观点的故事 | Tiger vs Roger, Challenger Disaster |
| concept | 非框架性的观点 | Cognitive entrenchment, Match quality |
有些实体不能完全归入上述五种类型。指南如下:
| 实体种类 | 使用类型 | 理由 |
|---|---|---|
| 模拟/游戏 (Superstruct, EVOKE) | anecdote | 说明性事件,即使是假设性的 |
| 机构 (IFTF, WEF) | researcher | 机构像个人一样贡献观点 |
| 历史事件 (Challenger disaster) | anecdote | 说明原理的故事 |
| 假设场景 | anecdote | 来自《Imaginable》等书的未来场景 |
| 思想实验 | framework | 如果是系统性的;否则用 concept |
不确定时: 对于叙事/事件,默认使用 anecdote;对于观点,默认使用 concept;对于系统性方法,默认使用 framework。
当书籍的作者本身也是一个重要的实体时(例如,《Imaginable》中的 Jane McGonigal):
创建研究者实体,如果:
跳过,如果:
针对作者主题的模板补充:
## 注意
此研究者是我们收藏中《[Book]》的作者。他们的框架和概念已单独记录。
# [实体名称]
**类型:** study | researcher | framework | anecdote | concept
**状态:** stub | partial | solid | authoritative
**最后更新:** YYYY-MM-DD
**别名:** alias1, alias2, alias3
## 摘要
[2-3 句综合理解]
## 关键发现 / 它说明了什么
1. [主张或发现,附来源]
— 来源: [Book], Ch.[X]
2. [另一个主张]
— 来源: [Book], Ch.[X]
## 关键引述
> "此处引述文本。"
> "另一个值得记住的引述。"
## 收藏中的来源
| 书籍 | 作者 | 在书中的用途 | 引用 |
|------|--------|---------------|----------|
| Range | Epstein | [在书中的角色] | Ch.X |
## 不在收藏中的来源
- [能丰富此实体的书籍]
## 相关实体
- [其他实体](../type/其他实体.md) - 关系描述
## 开放性问题
- [我们尚不知道的内容]
/knowledge/
├── _index.md # 主注册表
├── _entities.json # 可搜索索引(生成)
│
├── nonfiction/
│ ├── _index.md # 领域索引
│ ├── _[book]-quotes.md # 书籍特定引述文件
│ ├── studies/
│ │ ├── flynn-effect.md
│ │ └── chase-simon-chunking.md
│ ├── researchers/
│ │ ├── hogarth-robin.md
│ │ └── tetlock-philip.md
│ ├── frameworks/
│ │ ├── kind-vs-wicked-environments.md
│ │ └── desirable-difficulties.md
│ ├── anecdotes/
│ │ ├── tiger-vs-roger.md
│ │ └── challenger-disaster.md
│ └── concepts/
│ ├── cognitive-entrenchment.md
│ └── match-quality.md
│
├── cooking/ # 领域特定结构
│ ├── techniques/
│ ├── ingredients/
│ └── equipment/
│
└── technical/
├── patterns/
└── technologies/
值得引用的引述是一种独特的提取类型。为每本书创建一个引述文件:
文件: _[book-slug]-quotes.md
结构:
# 来自《[Book Title]》的可引用引述
**作者:** [Author]
**最后更新:** YYYY-MM-DD
## 关于 [主题 1]
> "此处引述文本。"
> "同一主题的另一条引述。"
## 关于 [主题 2]
> "不同主题的引述。"
好的引述的特点:
kb-resolve-entity.ts 查看实体是否已存在kb-generate-index.ts| 状态 | 症状 | 干预措施 |
|---|---|---|
| KB0 | 无知识库 | 创建目录结构 |
| KB1 | 结构存在,无实体 | 开始提取 |
| KB2 | 从书籍中提取 | 创建实体文件 |
| KB3 | 实体已创建,未链接 | 添加相关实体 |
| KB4 | 已链接,无索引 | 运行 kb-generate-index.ts |
| KB5 | 本书完成 | 处理下一本书 |
触发条件: 已有 2 本或更多书籍被提取到知识库。
目标:
流程:
实体重叠检测
grep -l "Sources in Collection" knowledge/nonfiction/**/.md |
xargs grep -l "| . | .* |" | head -20
或手动检查已更新新来源的实体。
* 比较跨书籍的框架(例如,《Range》的 "wicked environments" ↔ 《Imaginable》的 "futures thinking")
* 识别共同的研究者(例如,Tetlock 同时出现在《Range》和《Imaginable》中)
* 寻找互补的主题(预测失败 → 尽管存在不确定性但仍做准备)
3. 综合记录 对于出现在 2 本或更多书籍中的实体,更新摘要部分:
## 摘要
[来自两个来源的综合理解,注明一致和差异之处]
4. 跨书籍见解 在 context/insights/cross-book-{theme}.md 中记录主题联系:
# 跨书籍见解: [主题]
## 贡献书籍
- Range (Epstein) - [观点]
- Imaginable (McGonigal) - [观点]
## 综合
[这些书籍如何互补或矛盾]
| 类型 | 定义 | 示例 |
|---|---|---|
| Principle | 基础真理或公理 | "社区围绕共享身份形成" |
| Mechanism | 某物如何运作 | "互惠创造社会纽带" |
| Pattern | 重复出现的结构或方法 | "社区生命周期模式" |
| Strategy | 实现目标的高级方法 | "在请求贡献前建立信任" |
| Tactic | 具体的可执行技术 | "在 24 小时内发送欢迎邮件" |
| 层级 | 名称 | 抽象程度 | 示例 |
|---|---|---|---|
| 0 | 基础性 | 普遍原理 | "人类寻求归属感" |
| 1 | 理论性 | 领域特定理论 | "社区需要共同目标" |
| 2 | 战略性 | 方法和框架 | "参与度的漏斗模型" |
| 3 | 战术性 | 具体方法 | "新用户引导序列" |
| 4 | 具体性 | 具体实现 | "使用 Discourse 作为论坛" |
| 关系 | 含义 | 何时使用 |
|---|---|---|
| INFLUENCES | A 影响 B | 因果或相关联系 |
| SUPPORTS | A 为 B 提供证据 | 引用、示例、验证 |
| CONTRADICTS | A 与 B 冲突 | 对立的主张 |
| COMPOSED_OF | A 包含 B | 部分-整体关系 |
| DERIVES_FROM | A 源自 B | 逻辑结论 |
| 状态 | 症状 | 干预措施 |
|---|---|---|
| EA0 | 无输入文件 | 指导文件准备 |
| EA1 | 原始文件,未解析 | 运行 ea-parse.ts |
| EA2 | 已解析,未提取 | LLM 提取概念 |
| EA3 | 已提取,未分类 | 分配类型和层级 |
| EA4 | 已分类,未注释 | 添加主题、关系 |
| EA5 | 单本书完成 | 导出或进行综合 |
| EA6 | 多本书就绪 | 跨书籍综合 |
| EA7 | 分析完成 | 生成报告 |
ea-parse.ts 以分块书籍并跟踪位置将电子书文件解析为带有元数据和位置跟踪的块。
deno run --allow-read scripts/ea-parse.ts path/to/book.txt
deno run --allow-read scripts/ea-parse.ts path/to/book.epub --format epub
deno run --allow-read scripts/ea-parse.ts book.txt --chunk-size 1500 --overlap 150
输出: 包含元数据、章节(如果检测到)以及带有位置的块的 JSON。
扫描知识库并生成可搜索的实体索引。
deno run --allow-read --allow-write scripts/kb-generate-index.ts /path/to/knowledge
输出: 创建包含所有实体、别名和元数据的 _entities.json。
在创建重复项之前搜索现有实体。
deno run --allow-read scripts/kb-resolve-entity.ts "Flynn Effect"
deno run --allow-read scripts/kb-resolve-entity.ts "Hogarth" --threshold 0.5
deno run --allow-read scripts/kb-resolve-entity.ts "kind learning" --json
选项:
--threshold <0-1> - 最小匹配分数(默认:0.3)--limit <n> - 最大结果数(默认:5)--json - 以 JSON 格式输出验证分析输出的引用准确性和模式完整性。
deno run --allow-read scripts/ea-validate.ts analysis.json --report
模式: 提取每个可能有趣的短语。修复: 在提取前问"我会引用这个吗?"。质量优于数量。
模式: 提取时不保留确切的引述或位置。修复: 始终捕获:确切引述、章节引用、上下文。
模式: 创建新实体而不检查是否已存在。修复: 始终先运行 kb-resolve-entity.ts。
模式: 实体没有相关实体链接。修复: 每个实体应至少连接到另外 2 个实体。
模式: 实体捕获了观点但没有令人难忘的措辞。修复: 包含带有作者原话的关键引述部分。
模式: 分析书籍时不进行交叉引用。修复: 在分析完 2 本或更多书籍后,运行综合以寻找联系。
1. 逐章扫描书籍
2. 识别所有命名的研究、研究者、框架、轶事
3. 创建列出所有潜在实体的清单文档
4. 对于每个实体:
a. kb-resolve-entity.ts "[实体名称]" 检查是否存在
b. 在适当的类型目录中创建 markdown 文件
c. 用发现和引用填充模板
d. 添加关键引述部分
5. 创建包含所有难忘引述的 _range-quotes.md
6. 使用新实体更新 _index.md
7. kb-generate-index.ts 以重建 _entities.json
1. ea-parse.ts book.txt --chunk-size 2000
2. 对于每个块,提取前 3-5 个概念
3. 按类型和层级分类
4. 生成 concepts.json 和 report.md
| 文件 | 位置 |
|---|---|
| 实体文件 | knowledge/{domain}/{type}/{entity-slug}.md |
| 引述文件 | knowledge/{domain}/_[book]-quotes.md |
| 实体索引 | knowledge/_entities.json |
| 领域索引 | knowledge/{domain}/_index.md |
| 文件 | 位置 |
|---|---|
| 完整分析 | ebook-analysis/{author}-{title}/analysis.json |
| 仅概念 | ebook-analysis/{author}-{title}/concepts.json |
| 引用 | ebook-analysis/{author}-{title}/citations.json |
| 报告 | ebook-analysis/{author}-{title}/report.md |
| 来源 | 导向 |
|---|---|
| research | 多本书综合就绪 |
| reverse-outliner | 概念提取的结构数据 |
| 从状态 | 导向 |
|---|---|
| 实体提取完成 | dna-extraction(深度功能分析) |
| 概念提取完成 | media-meta-analysis(跨来源综合) |
| 技能 | 关系 |
|---|---|
| dna-extraction | 用于注释的 6 轴功能分析 |
| reverse-outliner | 小说的结构方法 |
| voice-analysis | 作者风格指纹 |
| context-network | 知识库维护 |
| 书籍类型 | 预期实体数 | 预估工作量 |
|---|---|---|
| 密集非虚构类(Range, Thinking Fast & Slow) | 60-100 | 4-6 小时 |
| 中等非虚构类(大多数商业书籍) | 30-50 | 2-3 小时 |
| 轻松非虚构类(科普读物) | 15-30 | 1-2 小时 |
| 技术书籍 | 20-40 | 2-3 小时 |
不同的非虚构子类型产生不同的实体概况:
| 子类型 | 示例 | 实体概况 | 预期数量 |
|---|---|---|---|
| 研究综合 | Range | 许多研究、研究者、框架 | 60-100 |
| 方法论/操作指南 | Imaginable | 许多框架,较少研究 | 30-50 |
| 回忆录/叙事 | Educated | 较少框架,许多轶事 | 20-40 |
| 参考书 | 技术手册 | 许多概念,较少轶事 | 可变 |
研究综合类书籍 引用许多研究和研究者,连接跨领域的观点。方法论类书籍 教授技术和框架,但引用较少的外部来源。回忆录/叙事类 书籍使用个人故事来说明观点,而非研究。
书籍分类元数据(Calibre 标签、图书馆类别)通常是:
在提取前始终验证分类是否合理。像《Imaginable》这样的方法论书籍上出现 "fiction" 标签是元数据错误。
在以下情况下使用扩展思考:
触发短语: "synthesize across books", "find contradictions", "identify gaps", "comprehensive analysis"
每周安装数
127
仓库
GitHub 星标数
37
首次出现
Jan 20, 2026
安全审计
安装于
opencode108
gemini-cli104
codex104
cursor97
github-copilot96
claude-code84
You analyze ebooks to extract knowledge with full citation traceability. This skill supports two complementary extraction modes:
Every extraction must be traceable to its exact source. Citation traceability is non-negotiable. Extract less with full provenance rather than more without it.
For extracting IDEAS organized by abstraction level.
Use when: Analyzing a book for transferable ideas, building a concept taxonomy, understanding how abstract principles relate to concrete tactics.
Output: JSON files (analysis.json, concepts.json)
Example: "Spaced repetition improves retention" is a MECHANISM at Layer 2.
For extracting NAMED THINGS that can be cross-referenced across books.
Use when: Building a knowledge base where the same study, researcher, or framework appears in multiple books. The goal is entity resolution—recognizing that "Hogarth's framework" in Range is the same as "kind/wicked environments" mentioned elsewhere.
Output: Markdown files in knowledge base structure
Example: "Kind vs Wicked Environments" is a FRAMEWORK by Robin Hogarth.
| If you want to... | Use Mode |
|---|---|
| Understand a book's argument structure | Concept Extraction |
| Build a reference library across books | Entity Extraction |
| Create actionable takeaways | Concept Extraction |
| Track what researchers say across sources | Entity Extraction |
| Both | Run both modes sequentially |
| Type | What It Captures | Example |
|---|---|---|
| study | Research findings, experiments, data | Flynn Effect, Marshmallow Test |
| researcher | People and their contributions | Anders Ericsson, Robin Hogarth |
| framework | Mental models, taxonomies, systems | Kind vs Wicked, Desirable Difficulties |
| anecdote | Stories used to illustrate points | Tiger vs Roger, Challenger Disaster |
| concept | Ideas that aren't frameworks | Cognitive entrenchment, Match quality |
Some entities don't fit cleanly into the five types. Guidelines:
| Entity Kind | Use Type | Rationale |
|---|---|---|
| Simulations/Games (Superstruct, EVOKE) | anecdote | Illustrative events, even if hypothetical |
| Institutions (IFTF, WEF) | researcher | Organizations contribute ideas like individuals |
| Historical events (Challenger disaster) | anecdote | Stories that illustrate principles |
| Hypothetical scenarios | anecdote | Future scenarios from books like Imaginable |
| Thought experiments | framework | If systematic; otherwise concept |
When uncertain: Default to anecdote for narratives/events, concept for ideas, framework for systematic methods.
When the book's author is also a significant entity (e.g., Jane McGonigal in Imaginable):
Create a researcher entity if:
Skip if:
Template addition for author-subjects:
## Note
This researcher is the author of [Book] in our collection. Their frameworks and concepts are documented separately.
# [Entity Name]
**Type:** study | researcher | framework | anecdote | concept
**Status:** stub | partial | solid | authoritative
**Last Updated:** YYYY-MM-DD
**Aliases:** alias1, alias2, alias3
## Summary
[2-3 sentence synthesized understanding]
## Key Findings / What It Illustrates
1. [Claim or finding with source]
— Source: [Book], Ch.[X]
2. [Another claim]
— Source: [Book], Ch.[X]
## Key Quotes
> "Quotable text here."
> "Another memorable quote."
## Sources in Collection
| Book | Author | How It's Used | Citation |
|------|--------|---------------|----------|
| Range | Epstein | [Role in book] | Ch.X |
## Sources NOT in Collection
- [Book that would enrich this entity]
## Related Entities
- [Other Entity](../type/other-entity.md) - Relationship description
## Open Questions
- [What we don't yet know]
/knowledge/
├── _index.md # Master registry
├── _entities.json # Searchable index (generated)
│
├── nonfiction/
│ ├── _index.md # Domain index
│ ├── _[book]-quotes.md # Book-specific quotes file
│ ├── studies/
│ │ ├── flynn-effect.md
│ │ └── chase-simon-chunking.md
│ ├── researchers/
│ │ ├── hogarth-robin.md
│ │ └── tetlock-philip.md
│ ├── frameworks/
│ │ ├── kind-vs-wicked-environments.md
│ │ └── desirable-difficulties.md
│ ├── anecdotes/
│ │ ├── tiger-vs-roger.md
│ │ └── challenger-disaster.md
│ └── concepts/
│ ├── cognitive-entrenchment.md
│ └── match-quality.md
│
├── cooking/ # Domain-specific structure
│ ├── techniques/
│ ├── ingredients/
│ └── equipment/
│
└── technical/
├── patterns/
└── technologies/
Quotable quotes are a distinct extraction type. For each book, create a quotes file:
File: _[book-slug]-quotes.md
Structure:
# Quotable Quotes from [Book Title]
**Author:** [Author]
**Last Updated:** YYYY-MM-DD
## On [Theme 1]
> "Quote text here."
> "Another quote on same theme."
## On [Theme 2]
> "Quote on different theme."
What makes a good quote:
kb-resolve-entity.ts to see if entity already existskb-generate-index.ts| State | Symptoms | Intervention |
|---|---|---|
| KB0 | No knowledge base | Create directory structure |
| KB1 | Structure exists, no entities | Begin extraction |
| KB2 | Extracting from book | Create entity files |
| KB3 | Entities created, not linked | Add Related Entities |
| KB4 | Linked, no index | Run kb-generate-index.ts |
| KB5 | Complete for this book | Proceed to next book |
Triggered when: 2+ books have been extracted to the knowledge base.
Goals:
Process:
Entity overlap detection
# Find entities with 2+ sources
grep -l "Sources in Collection" knowledge/nonfiction/**/*.md | \
xargs grep -l "| .* | .* |" | head -20
Or manually review entities updated with new source.
Conceptual connection mapping
Synthesis documentation For entities appearing in 2+ books, update the Summary section:
## Summary
[Synthesized understanding from BOTH sources, noting agreements and differences]
Cross-book insights Document thematic connections in context/insights/cross-book-{theme}.md:
# Cross-Book Insight: [Theme]
## Books Contributing
- Range (Epstein) - [perspective]
- Imaginable (McGonigal) - [perspective]
## Synthesis
[How the books complement or contradict each other]
| Type | Definition | Example |
|---|---|---|
| Principle | Foundational truth or axiom | "Communities form around shared identity" |
| Mechanism | How something works | "Reciprocity creates social bonds" |
| Pattern | Recurring structure or approach | "The community lifecycle pattern" |
| Strategy | High-level approach to achieve goals | "Build trust before asking for contribution" |
| Tactic | Specific actionable technique | "Send welcome emails within 24 hours" |
| Layer | Name | Abstraction | Example |
|---|---|---|---|
| 0 | Foundational | Universal principles | "Humans seek belonging" |
| 1 | Theoretical | Domain-specific theory | "Community requires shared purpose" |
| 2 | Strategic | Approaches and frameworks | "The funnel model of engagement" |
| 3 | Tactical | Specific methods | "Onboarding sequences" |
| 4 | Specific | Concrete implementations | "Use Discourse for forums" |
| Relationship | Meaning | When to Use |
|---|---|---|
| INFLUENCES | A affects B | Causal or correlational connection |
| SUPPORTS | A provides evidence for B | Citation, example, validation |
| CONTRADICTS | A conflicts with B | Opposing claims |
| COMPOSED_OF | A contains B | Part-whole relationships |
| DERIVES_FROM | A is derived from B | Logical conclusions |
| State | Symptoms | Intervention |
|---|---|---|
| EA0 | No input file | Guide file preparation |
| EA1 | Raw file, not parsed | Run ea-parse.ts |
| EA2 | Parsed, not extracted | LLM extracts concepts |
| EA3 | Extracted, not classified | Assign types and layers |
| EA4 | Classified, not annotated | Add themes, relationships |
| EA5 | Single book complete | Export or proceed to synthesis |
| EA6 | Multi-book ready | Cross-book synthesis |
| EA7 | Analysis complete |
ea-parse.ts to chunk book with position trackingParse ebook files into chunks with metadata and position tracking.
deno run --allow-read scripts/ea-parse.ts path/to/book.txt
deno run --allow-read scripts/ea-parse.ts path/to/book.epub --format epub
deno run --allow-read scripts/ea-parse.ts book.txt --chunk-size 1500 --overlap 150
Output: JSON with metadata, chapters (if detected), and chunks with positions.
Scan knowledge base and generate searchable entity index.
deno run --allow-read --allow-write scripts/kb-generate-index.ts /path/to/knowledge
Output: Creates _entities.json with all entities, aliases, and metadata.
Search for existing entities before creating duplicates.
deno run --allow-read scripts/kb-resolve-entity.ts "Flynn Effect"
deno run --allow-read scripts/kb-resolve-entity.ts "Hogarth" --threshold 0.5
deno run --allow-read scripts/kb-resolve-entity.ts "kind learning" --json
Options:
--threshold <0-1> - Minimum match score (default: 0.3)--limit <n> - Maximum results (default: 5)--json - Output as JSONValidate analysis output for citation accuracy and schema completeness.
deno run --allow-read scripts/ea-validate.ts analysis.json --report
Pattern: Extracting every potentially interesting phrase. Fix: Ask "Would I cite this?" before extracting. Quality over quantity.
Pattern: Extracting without preserving exact quotes or positions. Fix: Always capture: exact quote, chapter reference, context.
Pattern: Creating new entity without checking if it exists. Fix: Always run kb-resolve-entity.ts first.
Pattern: Entities without Related Entities links. Fix: Every entity should connect to at least 2 others.
Pattern: Entity captures ideas but no memorable phrasing. Fix: Include Key Quotes section with author's exact words.
Pattern: Analyzing books without cross-referencing. Fix: After 2+ books, run synthesis to find connections.
1. Scan book chapter by chapter
2. Identify all named studies, researchers, frameworks, anecdotes
3. Create inventory document listing all potential entities
4. For each entity:
a. kb-resolve-entity.ts "[entity name]" to check existence
b. Create markdown file in appropriate type directory
c. Fill in template with findings and citations
d. Add Key Quotes section
5. Create _range-quotes.md with all memorable quotes
6. Update _index.md with new entities
7. kb-generate-index.ts to rebuild _entities.json
1. ea-parse.ts book.txt --chunk-size 2000
2. For each chunk, extract top 3-5 concepts
3. Classify by type and layer
4. Generate concepts.json and report.md
| File | Location |
|---|---|
| Entity files | knowledge/{domain}/{type}/{entity-slug}.md |
| Quotes file | knowledge/{domain}/_[book]-quotes.md |
| Entity index | knowledge/_entities.json |
| Domain index | knowledge/{domain}/_index.md |
| File | Location |
|---|---|
| Full analysis | ebook-analysis/{author}-{title}/analysis.json |
| Concepts only | ebook-analysis/{author}-{title}/concepts.json |
| Citations | ebook-analysis/{author}-{title}/citations.json |
| Report | ebook-analysis/{author}-{title}/report.md |
| Source | Leads to |
|---|---|
| research | Multi-book synthesis ready |
| reverse-outliner | Structural data for concept extraction |
| From State | Leads to |
|---|---|
| Entity extraction complete | dna-extraction (deep functional analysis) |
| Concept extraction complete | media-meta-analysis (cross-source synthesis) |
| Skill | Relationship |
|---|---|
| dna-extraction | 6-axis functional analysis for annotation |
| reverse-outliner | Structural approach for fiction |
| voice-analysis | Author style fingerprinting |
| context-network | Knowledge base maintenance |
| Book Type | Expected Entities | Estimated Effort |
|---|---|---|
| Dense non-fiction (Range, Thinking Fast & Slow) | 60-100 | 4-6 hours |
| Moderate non-fiction (most business books) | 30-50 | 2-3 hours |
| Light non-fiction (popular science) | 15-30 | 1-2 hours |
| Technical books | 20-40 | 2-3 hours |
Different non-fiction subtypes yield different entity profiles:
| Subtype | Example | Entity Profile | Expected Count |
|---|---|---|---|
| Research synthesis | Range | Many studies, researchers, frameworks | 60-100 |
| Methodological/How-to | Imaginable | Many frameworks, few studies | 30-50 |
| Memoir/Narrative | Educated | Few frameworks, many anecdotes | 20-40 |
| Reference | Technical manuals | Many concepts, few anecdotes | Variable |
Research synthesis books cite many studies and researchers, connecting ideas across domains. Methodological books teach techniques and frameworks but cite fewer external sources. Memoir/narrative books use personal stories to illustrate points rather than research.
Book classification metadata (Calibre tags, library categories) is often:
Always verify classification makes sense before extraction. A "fiction" tag on a methodology book like Imaginable is a metadata error.
Use extended thinking for:
Trigger phrases: "synthesize across books", "find contradictions", "identify gaps", "comprehensive analysis"
Weekly Installs
127
Repository
GitHub Stars
37
First Seen
Jan 20, 2026
Security Audits
Gen Agent Trust HubPassSocketPassSnykPass
Installed on
opencode108
gemini-cli104
codex104
cursor97
github-copilot96
claude-code84
MCP图像生成技能:使用Gemini AI为营销、UI设计、演示文稿创建高质量图像
7,600 周安装
| Generate reports |