# Minimum Viable Distillation for Cangjie-Skill: 7-Step RIA-TV++ Pipeline Explained

> Learn the minimum viable distillation for Cangjie-Skill using the 7-step RIA-TV++ pipeline. Understand how to create a single SKILL.md file with supporting documents.

- Repository: [kangarooking/cangjie-skill](https://github.com/kangarooking/cangjie-skill)
- Tags: deep-dive
- Published: 2026-08-11

---

**The minimum viable distillation for Cangjie-Skill is the complete RIA-TV++ pipeline applied to a single candidate unit, producing one [`SKILL.md`](https://github.com/kangarooking/cangjie-skill/blob/main/SKILL.md) file with its supporting [`test-prompts.json`](https://github.com/kangarooking/cangjie-skill/blob/main/test-prompts.json) and [`DIGEST.md`](https://github.com/kangarooking/cangjie-skill/blob/main/DIGEST.md).**

Cangjie-Skill transforms high-value source texts—books, long video transcripts, podcasts—into **agent-callable AI skills**. This article breaks down the minimum viable distillation pipeline implemented in the `kangarooking/cangjie-skill` repository, walking through each stage from source text to deployable skill.

## What Minimum Viable Distillation Means in Cangjie-Skill

A **minimum viable distillation** is the smallest working pipeline that still produces a functional skill pack. According to [`methodology/00-overview.md`](https://github.com/kangarooking/cangjie-skill/blob/main/methodology/00-overview.md), every skill must satisfy five invariants: **atomicity**, **traceability**, **verifiability**, **evolvability**, and **user-in-the-loop** design. The pipeline achieves this through seven sequential stages.

## Stage 0: Adler Analysis

The pipeline begins with **Adler analysis**, documented in [`methodology/01-stage0-adler.md`](https://github.com/kangarooking/cangjie-skill/blob/main/methodology/01-stage0-adler.md). This stage produces [`BOOK_OVERVIEW.md`](https://github.com/kangarooking/cangjie-skill/blob/main/BOOK_OVERVIEW.md)—a structured document capturing:

- **Structure**: How the source text is organized
- **Interpretation**: Core arguments and their meaning
- **Critique**: Strengths, weaknesses, and limitations
- **Application**: Where and how the methods apply

The [`BOOK_OVERVIEW.md`](https://github.com/kangarooking/cangjie-skill/blob/main/BOOK_OVERVIEW.md) serves as the foundation for all downstream extraction. Each skill repository in the wild contains this generated file, ensuring every distilled skill traces back to a systematic source analysis.

## Stage 1: Parallel Extraction

From the book overview, **five specialized extractors** run in parallel to harvest candidate methodological units. These extractors live in the `extractors/` folder:

| Extractor | Purpose |
|-----------|---------|
| [`framework-extractor.md`](https://github.com/kangarooking/cangjie-skill/blob/main/framework-extractor.md) | Identifies systematic frameworks and models |
| [`principle-extractor.md`](https://github.com/kangarooking/cangjie-skill/blob/main/principle-extractor.md) | Extracts core principles and rules |
| [`case-extractor.md`](https://github.com/kangarooking/cangjie-skill/blob/main/case-extractor.md) | Captures illustrative examples and case studies |
| [`counter-example-extractor.md`](https://github.com/kangarooking/cangjie-skill/blob/main/counter-example-extractor.md) | Finds boundary conditions and failures |
| [`glossary-extractor.md`](https://github.com/kangarooking/cangjie-skill/blob/main/glossary-extractor.md) | Defines specialized terminology |

This parallel approach ensures comprehensive coverage without premature filtering. The methodology is detailed in [`methodology/02-stage1-parallel-extract.md`](https://github.com/kangarooking/cangjie-skill/blob/main/methodology/02-stage1-parallel-extract.md).

## Stage 1.5: Triple Verification

Not all candidates become skills. The **triple verification** stage, defined in [`methodology/03-stage1.5-triple-verify.md`](https://github.com/kangarooking/cangjie-skill/blob/main/methodology/03-stage1.5-triple-verify.md), applies three strict filters:

- **Cross-domain evidence**: Does the method work outside its original context?
- **Predictive power**: Does it anticipate outcomes better than alternatives?
- **Uniqueness**: Does it add something not already covered by existing skills?

Only candidates passing all three checks advance to skill construction.

## Stage 2: RIA++ Construction

Verified candidates become full skills using the **[`SKILL.md`](https://github.com/kangarooking/cangjie-skill/blob/main/SKILL.md) template** at `templates/SKILL.md.template`. This template enforces six RIA++ fields:

```markdown
- **R** (Reference): Source traceability
- **I** (Interpretation): What the method means
- **A1** (Application v1): Standard use case
- **A2** (Application v2): Edge or creative use case
- **E** (Evolution): How the skill can grow
- **B** (Boundary): When NOT to use this skill

```

The RIA++ structure, documented in [`methodology/04-stage2-ria-plus.md`](https://github.com/kangarooking/cangjie-skill/blob/main/methodology/04-stage2-ria-plus.md), ensures every skill is self-contained yet connected to its origins.

## Stage 3: Zettelkasten Linking

Once constructed, skills get integrated into a knowledge graph. [`methodology/05-stage3-zettelkasten.md`](https://github.com/kangarooking/cangjie-skill/blob/main/methodology/05-stage3-zettelkasten.md) describes how [`INDEX.md`](https://github.com/kangarooking/cangjie-skill/blob/main/INDEX.md) records:

- Dependencies between skills (what builds on what)
- Contrasts and conflicts between methods
- The overall "skill map" for navigation

This linking transforms isolated skills into a coherent, navigable system.

## Stage 4: Pressure Testing

Before delivery, every skill faces the **pressure test**. From [`methodology/06-stage4-pressure-test.md`](https://github.com/kangarooking/cangjie-skill/blob/main/methodology/06-stage4-pressure-test.md), this stage:

1. Generates [`test-prompts.json`](https://github.com/kangarooking/cangjie-skill/blob/main/test-prompts.json) using the schema in `templates/DIGEST.md.template`
2. Runs trigger-scenario test cases against the skill
3. Enforces a **minimum pass rate of 80%**

Skills falling below this threshold are rejected or sent back for refinement. The 80% bar ensures reliability without demanding perfection that would block shipping.

## Stage 5: Delivery

The final stage, [`methodology/07-stage5-deliver.md`](https://github.com/kangarooking/cangjie-skill/blob/main/methodology/07-stage5-deliver.md), produces:

- **[`DIGEST.md`](https://github.com/kangarooking/cangjie-skill/blob/main/DIGEST.md)**: Human-readable executive summary
- **Installed skill**: Copied to the agent's `skills/` directory, ready for immediate use

```python

# Logical pipeline flow (pseudocode based on methodology docs)

source_text = load_source("my_book.txt")
book_overview = adler_analyze(source_text)          # → BOOK_OVERVIEW.md

candidates = parallel_extract(book_overview)        # → 5 extractor outputs

verified = triple_verify(candidates)                # filtered to passing units

skill_md = render_template(
    "templates/SKILL.md.template",
    verified[0]
)                                                   # → one SKILL.md

test_prompts = generate_test_prompts(skill_md)      # → test-prompts.json

if run_pressure_test(test_prompts) >= 0.80:         # 80% minimum pass rate

    install_skill(skill_md, "skills/")              # → deployed

    write_digest(skill_md)                          # → DIGEST.md

```

## Key Files in the Minimum Viable Distillation

| File | Role |
|------|------|
| [`SKILL.md`](https://github.com/kangarooking/cangjie-skill/blob/main/SKILL.md) | Core pipeline definition and invariants |
| `templates/SKILL.md.template` | RIA++ skill structure |
| [`methodology/00-overview.md`](https://github.com/kangarooking/cangjie-skill/blob/main/methodology/00-overview.md) | RIA-TV++ pipeline overview |
| [`methodology/01-stage0-adler.md`](https://github.com/kangarooking/cangjie-skill/blob/main/methodology/01-stage0-adler.md) | Adler analysis stage |
| [`methodology/02-stage1-parallel-extract.md`](https://github.com/kangarooking/cangjie-skill/blob/main/methodology/02-stage1-parallel-extract.md) | Parallel extraction |
| [`methodology/03-stage1.5-triple-verify.md`](https://github.com/kangarooking/cangjie-skill/blob/main/methodology/03-stage1.5-triple-verify.md) | Triple verification |
| [`methodology/04-stage2-ria-plus.md`](https://github.com/kangarooking/cangjie-skill/blob/main/methodology/04-stage2-ria-plus.md) | RIA++ construction |
| [`methodology/05-stage3-zettelkasten.md`](https://github.com/kangarooking/cangjie-skill/blob/main/methodology/05-stage3-zettelkasten.md) | Skill linking |
| [`methodology/06-stage4-pressure-test.md`](https://github.com/kangarooking/cangjie-skill/blob/main/methodology/06-stage4-pressure-test.md) | Pressure testing |
| [`methodology/07-stage5-deliver.md`](https://github.com/kangarooking/cangjie-skill/blob/main/methodology/07-stage5-deliver.md) | Final delivery |
| `extractors/*-extractor.md` | Five parallel extractors |

## Summary

The **minimum viable distillation for Cangjie-Skill** consists of seven stages executed once per candidate:

- **Adler analysis** creates the source overview
- **Five parallel extractors** harvest candidate methods
- **Triple verification** filters for quality
- **RIA++ construction** builds the skill file
- **Zettelkasten linking** connects to the skill map
- **Pressure testing** enforces the 80% pass rate
- **Delivery** produces [`DIGEST.md`](https://github.com/kangarooking/cangjie-skill/blob/main/DIGEST.md) and installs to `skills/`

This pipeline yields a single, **atomic**, **traceable**, **verified**, **tested** skill ready for agent invocation.

## Frequently Asked Questions

### What does "minimum viable" specifically mean in Cangjie-Skill?

**Minimum viable** means running the complete RIA-TV++ pipeline once on a single candidate to produce one working [`SKILL.md`](https://github.com/kangarooking/cangjie-skill/blob/main/SKILL.md). It is not a subset of stages—it is the full pipeline applied minimally. Skipping any stage (especially triple verification or pressure testing) violates the invariants defined in [`methodology/00-overview.md`](https://github.com/kangarooking/cangjie-skill/blob/main/methodology/00-overview.md) and produces an invalid skill pack.

### Why is the pressure test pass rate set at 80% rather than 100%?

The **80% minimum pass rate** balances reliability against practicality. As implemented in [`methodology/06-stage4-pressure-test.md`](https://github.com/kangarooking/cangjie-skill/blob/main/methodology/06-stage4-pressure-test.md), this threshold catches fundamentally broken skills while allowing through methods that may have edge-case limitations. A 100% requirement would block many valuable but imperfect real-world techniques; below 80%, confidence in the skill's utility drops unacceptably.

### Can I run just one extractor instead of all five?

No. The **parallel extraction** design in [`methodology/02-stage1-parallel-extract.md`](https://github.com/kangarooking/cangjie-skill/blob/main/methodology/02-stage1-parallel-extract.md) intentionally uses five specialized extractors because methodological units appear in different forms across source texts. Running only [`principle-extractor.md`](https://github.com/kangarooking/cangjie-skill/blob/main/principle-extractor.md) would miss case-based methods; using only [`case-extractor.md`](https://github.com/kangarooking/cangjie-skill/blob/main/case-extractor.md) would overlook abstract frameworks. The triple verification stage depends on this breadth to make informed filtering decisions.

### How does RIA++ differ from standard RIA (Reference, Interpretation, Application)?

**RIA++** adds three extensions to the classic model, as defined in `templates/SKILL.md.template`:

- **A2** (second application): Forces consideration of non-obvious or edge uses
- **E** (evolution): Documents how the skill can improve or adapt
- **B** (boundary): Explicitly states when the method fails or should not apply

These additions address evolvability and safe deployment—critical for agent-callable skills that may be invoked in unpredictable contexts.