# How `BOOK_OVERVIEW.md` Is Generated by Adler Analysis in cangjie-skill

> Discover how BOOK_OVERVIEW.md generation works in cangjie-skill. Learn about the four-step Adler analysis pipeline: Structural, Interpretive, Critical, and Applicability.

- Repository: [kangarooking/cangjie-skill](https://github.com/kangarooking/cangjie-skill)
- Tags: internals
- Published: 2026-08-15

---

**[`BOOK_OVERVIEW.md`](https://github.com/kangarooking/cangjie-skill/blob/main/BOOK_OVERVIEW.md) is generated by a four-step Adler analysis pipeline—Structural, Interpretive, Critical, and Applicability—that collects metadata, answers LLM-driven checklists, and renders results into a Jinja2 template.**

The **cangjie-skill** repository implements this process in Stage 0 of its knowledge-extraction pipeline. According to the source code in [`methodology/01-stage0-adler.md`](https://github.com/kangarooking/cangjie-skill/blob/main/methodology/01-stage0-adler.md), the system transforms raw source material into a structured global context document that downstream modules consume for book-level comprehension tasks.

## The Four Steps of Adler Analysis

The Adler analysis stage follows Mortimer Adler's analytical reading framework. As implemented in `kangarooking/cangjie-skill`, each step produces specific outputs that feed into the final template.

### 1. Structural Analysis

The first step establishes the book's architecture. The LLM answers checklist items including:

- "What is the one-sentence purpose?"
- "List the 3-7 primary arguments"
- Identify the organizational pattern (并列 / 递进 / 对比 / 反驳 / 层层深入)

This structural skeleton becomes the foundation for all subsequent analysis.

### 2. Interpretive Analysis

The second step extracts semantic content. Key outputs include:

- **Terminology dictionary**: Core concepts with author-specific definitions
- **Propositions**: Explicit claims made by the author
- **Argument chains**: How the author connects evidence to conclusions

The methodology file specifies that this step must distinguish between the author's definitions and common usage (see `{{author's definition}}` vs. `{{what's different}}` placeholders in the template).

### 3. Critical Analysis

The third step evaluates the work's reliability and boundaries:

- **Author's era-specific limitations** (作者的时代局限)
- **Ideological blind spots** (作者的立场盲点)
- **Unproven assumptions**
- **Valid counter-arguments**

These critical markers prevent downstream modules from uncritically accepting all claims.

### 4. Applicability Analysis

The final step bridges theory to practice by identifying:

- Candidate skill themes (候选主题 1, 候选主题 2...)
- Priority ranking (top priority)
- Implementation difficulty estimates (N)

This step ensures the extracted knowledge serves practical skill-acquisition goals.

## Template Rendering Pipeline

After the four-step analysis completes, the system renders answers into `templates/BOOK_OVERVIEW.md.template`. The template contains bilingual placeholders such as `{{BOOK_TITLE}}`, `{{AUTHOR}}`, `{{YEAR}}`, `{{论点 1}}`, `{{term}}`, and `{{作者的时代局限}}`.

### Rendering Implementation

The actual rendering uses Jinja2-style substitution. Below is a minimal reconstruction of the pipeline logic:

```python
import json
from pathlib import Path
from jinja2 import Template

# Load the template from cangjie-skill repository

template_path = Path(
    "/cache/repos/github.com/kangarooking/cangjie-skill/main/templates/BOOK_OVERVIEW.md.template"
)
template = Template(template_path.read_text(encoding="utf-8"))

# Adler analysis produces this answer dictionary

adler_answers = {
    "BOOK_TITLE": "Deep Work",
    "AUTHOR": "Cal Newport",
    "YEAR": "2016",
    "SOURCE_FILE": "deep_work.pdf",
    "DATE": "2026-08-15",
    # Structural outputs

    "方法论 / 传记 / 哲学 / 实操手册 / ...": "实操手册",
    "一句话主旨": "专注是提升认知产出的唯一途径",
    "论点 1": "深度工作的定义",
    "论点 2": "深度工作的价值",
    "论点 3": "培养深度工作的方法",
    "并列 / 递进 / 对比 / 反驳 / 层层深入": "递进",
    "作者要解决的核心问题": "如何在信息碎片化的时代保持高效产出",
    # Interpretive outputs

    "term": "深度工作",
    "author's definition": "在没有干扰的状态下进行的专业活动",
    "what's different": "与“忙碌”不同，它产生实际价值",
    "命题 1": "深度工作能够显著提升技能水平",
    "命题 2": "浅度工作无法带来同等回报",
    "论证链": "通过案例、研究数据与逻辑推演说明上述命题",
    # Critical outputs

    "作者的时代局限": "缺少对 AI 辅助工具的深度讨论",
    "作者的立场盲点": "假设所有人都有高度自律的工作环境",
    "未被证明的假设": "深度工作一定能提升收入",
    "反对意见": "在某些创意行业浅度工作更有价值",
    # Applicability outputs

    "候选主题 1": "时间块管理法",
    "候选主题 2": "注意力排除技巧",
    "N": "5",
    "top priority": "时间块管理法",
}

# Render and write the final markdown

rendered_md = template.render(**adler_answers)

output_path = Path("/tmp/books/deep-work/BOOK_OVERVIEW.md")
output_path.parent.mkdir(parents=True, exist_ok=True)
output_path.write_text(rendered_md, encoding="utf-8")

```

**Key pipeline stages:**

- **Template loading**: Matches `templates/BOOK_OVERVIEW.md.template` structure exactly
- **Answer population**: Represents LLM-generated responses from the four Adler steps (lines 11-44 of [`01-stage0-adler.md`](https://github.com/kangarooking/cangjie-skill/blob/main/01-stage0-adler.md))
- **Placeholder substitution**: `template.render()` performs the transformation
- **File output**: Writes to `books/<slug>/BOOK_OVERVIEW.md` as declared in line 7 of the Adler methodology file

## Output Location and Downstream Usage

The generated file follows a consistent path convention. As specified in [`methodology/01-stage0-adler.md`](https://github.com/kangarooking/cangjie-skill/blob/main/methodology/01-stage0-adler.md) line 7 and referenced in [`SKILL.md`](https://github.com/kangarooking/cangjie-skill/blob/main/SKILL.md) line 23 and [`README.en.md`](https://github.com/kangarooking/cangjie-skill/blob/main/README.en.md) line 45:

```

books/<slug>/BOOK_OVERVIEW.md

```

This file serves as **global context** for every subsequent pipeline stage. According to [`methodology/07-stage5-deliver.md`](https://github.com/kangarooking/cangjie-skill/blob/main/methodology/07-stage5-deliver.md), downstream extractors and skill modules import [`BOOK_OVERVIEW.md`](https://github.com/kangarooking/cangjie-skill/blob/main/BOOK_OVERVIEW.md) to access:

- Structural skeleton for navigation
- Terminology dictionary for consistent interpretation
- Critical observations for quality control
- Applicability notes for practical implementation

Without this centralized context document, later stages would lack book-level coherence in their extractions.

## Source Files in cangjie-skill

| File | Purpose |
|------|---------|
| [`methodology/01-stage0-adler.md`](https://github.com/kangarooking/cangjie-skill/blob/main/methodology/01-stage0-adler.md) | Defines the four Adler steps and expected outputs |
| `templates/BOOK_OVERVIEW.md.template` | Jinja2 template with bilingual placeholders |
| [`SKILL.md`](https://github.com/kangarooking/cangjie-skill/blob/main/SKILL.md) | Pipeline overview confirming Stage 0 outputs |
| [`README.en.md`](https://github.com/kangarooking/cangjie-skill/blob/main/README.en.md) | User-facing documentation of the Adler analysis stage |
| [`methodology/07-stage5-deliver.md`](https://github.com/kangarooking/cangjie-skill/blob/main/methodology/07-stage5-deliver.md) | Explains global context consumption |

## Summary

- **Four-step framework**: Structural → Interpretive → Critical → Applicability analysis as defined in [`methodology/01-stage0-adler.md`](https://github.com/kangarooking/cangjie-skill/blob/main/methodology/01-stage0-adler.md)
- **LLM-driven extraction**: Checklist-based Q&A generates structured answers for each step
- **Template rendering**: Jinja2 substitution populates `templates/BOOK_OVERVIEW.md.template`
- **Standardized output**: Written to `books/<slug>/BOOK_OVERVIEW.md` per line 7 of the Adler methodology
- **Global context role**: Consumed by all downstream stages for book-level coherence

## Frequently Asked Questions

### What makes the Adler analysis in cangjie-skill different from standard book summaries?

The **cangjie-skill** Adler analysis enforces systematic critical evaluation through its four-step structure. Unlike generic summaries, it requires explicit identification of author limitations, unproven assumptions, and applicability trade-offs—elements specified in the `作者的时代局限` and `未被证明的假设` fields of the template.

### Can the template placeholders be customized for different source types?

The current `templates/BOOK_OVERVIEW.md.template` uses fixed bilingual placeholders, but the methodology in [`01-stage0-adler.md`](https://github.com/kangarooking/cangjie-skill/blob/main/01-stage0-adler.md) is source-agnostic. The four-step framework adapts to methodology books, biographies, philosophy texts, or practical manuals (实操手册) through the same structural → interpretive → critical → applicability progression.

### How does [`BOOK_OVERVIEW.md`](https://github.com/kangarooking/cangjie-skill/blob/main/BOOK_OVERVIEW.md) differ from stage-specific outputs?

While later stages produce focused extracts (skills, flashcards, checklists), [`BOOK_OVERVIEW.md`](https://github.com/kangarooking/cangjie-skill/blob/main/BOOK_OVERVIEW.md) remains the **only** document with complete book-level context. This design prevents fragmentation—downstream agents reference the overview rather than re-analyzing source material, as documented in [`methodology/07-stage5-deliver.md`](https://github.com/kangarooking/cangjie-skill/blob/main/methodology/07-stage5-deliver.md).

### Where is the actual LLM prompting logic located?

The specific prompts that drive the four Adler steps are embedded in [`methodology/01-stage0-adler.md`](https://github.com/kangarooking/cangjie-skill/blob/main/methodology/01-stage0-adler.md) lines 11-44. These prompts include explicit checklist items ("What is the one-sentence purpose?", "List the 3-7 primary arguments") that constrain LLM outputs to match the template's expected fields.