# Tapestry

> AI-native web intelligence workflow for crawling, organizing, and synthesizing web content from multiple platforms (Zhihu, Reddit, HN, X/Twitter, Xiaohongshu, Weibo). Use when users share URLs, want to archive web content, build knowledge bases, or analyze online discussions.

- Skill: `natsufox/tapestry` (Agent Skill, multi-file: 50 files)
- Install (CLI): `npx skillmds@latest add natsufox/tapestry`
- Raw SKILL.md: https://api.skillmd.com/api/skills/natsufox/tapestry/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Productivity
- Author: NatsuFox (https://skillmd.com/u/natsufox)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/natsufox/tapestry

---


# 🧵 Tapestry

**AI-Native Web Intelligence Workflow**

Tapestry is a complete workflow for turning scattered web content into organized, searchable knowledge. It handles everything from crawling to synthesis across multiple platforms.

## When to Use Tapestry

Use this skill when the user:
- Shares URLs to ingest (from Zhihu, Reddit, HN, X/Twitter, Xiaohongshu, Weibo, or any webpage)
- Wants to archive or capture web content
- Asks to organize content into a knowledge base
- Wants structured feeds or analysis of web content
- Needs to visualize their knowledge base
- Wants to manage RSS/Atom feed subscriptions (list, add, remove sources)
- Wants to refresh or fetch the latest content from subscribed sources

## Workflow Overview

Tapestry has eight internal sub-skills that work together:

1. **Init Deps Install** (`init-deps-install/SKILL.md`) - Auto-triggered dependency installation (Phase 0: setup)
2. **Ingest** (`ingest/SKILL.md`) - Crawl and capture URLs (Phase 1: deterministic)
3. **Synthesis** (`synthesis/SKILL.md`) - Analyze and organize into knowledge base (Phase 2: AI-driven)
4. **Feed** (`feed/SKILL.md`) - Generate structured, source-aware feeds
5. **Display** (`display/SKILL.md`) - Visualize the knowledge base as a website
6. **Visual Card** (`visual-card/SKILL.md`) - Generate visual note cards from KB content
7. **Subscriptions** (`subscriptions/SKILL.md`) - Manage RSS/Atom sources and refresh them into the knowledge base
8. **Export** (`export/SKILL.md`) - Export KB content to PDF, Markdown, or HTML files saved under `_data/exports/`

### Two-Phase Architecture

Tapestry uses a two-phase design with automatic dependency setup:

**Phase 0 (Init)**: Auto-triggered dependency installation when first launched or dependencies missing
**Phase 1 (Ingest)**: Deterministic extraction → `_data/notes/YYYY/MM/` (date-organized)
**Phase 2 (Synthesis)**: AI-driven analysis → `_data/books/{topic}/{chapter}/` (book-organized)

By default, synthesis runs automatically after each ingest (`synthesis.mode: "auto"` in `tapestry.config.json`). You can configure this to "manual" or "batch" mode.

## How to Use This Skill

### Step 1: Understand the User's Intent

Analyze what the user wants:
- **Just capture?** → Use ingest only (set synthesis mode to "manual" if needed)
- **Structured feed?** → Use ingest + feed
- **Analysis/organization?** → Use ingest + synthesis (default with "auto" mode)
- **Browse knowledge base?** → Use display
- **Visual summary?** → Use visual-card to generate infographic cards
- **Complete workflow?** → Ingest automatically triggers synthesis in "auto" mode
- **Manage subscriptions?** → Use subscriptions (list/add/remove sources)
- **Refresh subscribed feeds?** → Use subscriptions fetch → ingest → synthesis pipeline

### Step 2: Execute the Appropriate Sub-Skill(s)

Read and follow the instructions in the relevant sub-skill SKILL.md files:

#### For Dependency Installation (Auto-Triggered)

Read the file `init-deps-install/SKILL.md` to understand the detection and installation workflow.
All installation steps require explicit user confirmation before execution.

#### For URL Ingestion

Read the file `ingest/SKILL.md`, then follow the workflow described there.

#### For Structured Feeds

Read the file `feed/SKILL.md`, then follow the workflow described there.

#### For Synthesis & Knowledge Base

Read the file `synthesis/SKILL.md`, then follow the workflow described there.

#### For Visualization

Read the file `display/SKILL.md`, then follow the workflow described there.

#### For Visual Cards

Read the file `visual-card/SKILL.md`, then follow the workflow described there.

#### For Subscription Management & Feed Refresh

Read the file `subscriptions/SKILL.md`, then follow the workflow described there.

### Step 3: Chain Sub-Skills When Needed

The sub-skills reference each other. When one sub-skill says to "route to" another, read that sub-skill's SKILL.md and follow its instructions.

## Supported Platforms

- 🇨🇳 **Zhihu**: Questions, answers, articles, profiles
- 🐦 **X/Twitter**: Posts, threads
- 📱 **Xiaohongshu**: Notes, profiles
- 🇨🇳 **Weibo**: Posts
- 🔶 **Hacker News**: Discussions with full comment trees
- 🤖 **Reddit**: Threads
- 🌐 **Generic HTML**: Any webpage (fallback)

## Key Principles

1. **Read sub-skill instructions first**: Each sub-skill's SKILL.md contains detailed workflow steps
2. **Follow the deterministic pipeline**: Ingest → Feed → Synthesis → Display
3. **Respect user intent**: Don't over-process if they just want capture
4. **Chain appropriately**: Let sub-skills hand off to each other as described in their instructions
5. **Report clearly**: Tell the user what was done and where artifacts are stored

## Directory Structure

```
tapestry/
├── SKILL.md (this file)          # Main orchestrator
├── init-deps-install/SKILL.md     # Dependency installation sub-skill
├── ingest/SKILL.md                # URL crawling sub-skill
├── feed/SKILL.md                  # Feed generation sub-skill
├── synthesis/SKILL.md             # Analysis & KB sub-skill
├── display/SKILL.md               # Visualization sub-skill
├── visual-card/SKILL.md           # Visual card generation sub-skill
├── subscriptions/SKILL.md         # RSS/Atom subscription management sub-skill
├── _src/                          # Shared code (crawlers, parsers, storage)
└── _tests/                        # Unit tests
```

## Example Usage Patterns

### Pattern 1: Simple Capture
```
User: "Ingest this Zhihu answer: https://www.zhihu.com/question/123/answer/456"

Action:
1. Read ingest/SKILL.md
2. Follow its workflow to capture the URL
3. Report the created artifacts
```

### Pattern 2: Structured Feed
```
User: "Give me a structured feed of this Reddit thread"

Action:
1. Read ingest/SKILL.md and capture the URL
2. Read feed/SKILL.md and generate the structured feed
3. Present the feed to the user
```

### Pattern 3: Full Analysis (Default)
```
User: "Analyze this HN discussion and add it to my knowledge base"

Action:
1. Read ingest/SKILL.md and capture the URL
2. Synthesis runs automatically (default "auto" mode)
3. Report where the content was organized in the KB
```

### Pattern 4: Manual Synthesis
```
User: "Just capture these URLs for now, I'll organize them later"

Action:
1. Set synthesis mode to "manual" in tapestry.config.json
2. Read ingest/SKILL.md and capture the URLs
3. User can later run synthesis on selected URLs
```

### Pattern 4: Batch Processing
```
User: "Ingest these 5 URLs and organize them"

Action:
1. Read ingest/SKILL.md and batch process all URLs
2. With "auto" mode, synthesis runs for each URL automatically
3. Summarize the results
```

### Pattern 5: Subscription Refresh
```
User: "Refresh all my subscribed feeds"

Action:
1. Read subscriptions/SKILL.md
2. Run: python subscriptions/_scripts/run.py fetch
3. Collect the printed URLs
4. Pass them to $tapestry-ingest for ingestion
5. Let the synthesis pipeline run per config
```

### Pattern 6: Export KB Content
```
User: "Export the entire knowledge base as PDF"

Action:
1. Read export/SKILL.md
2. Run: python export/_scripts/export.py --format pdf --scope kb
3. Report the output paths from _data/exports/pdf/
```

## Important Notes

- **Always read the sub-skill SKILL.md files**: They contain the actual implementation details
- **Don't invent workflows**: Follow what's written in the sub-skill instructions
- **Preserve artifacts**: The pipeline creates `_data/captures/`, `_data/feeds/`, `_data/notes/`, `_data/books/`, and `_data/exports/`
- **Respect the architecture**: Ingest is deterministic, synthesis is interpretive
- **Check for errors**: Sub-skills may fail; handle gracefully and report to user

## Resources

- `_src/`: Shared Python code for crawlers, parsers, and storage
- `_tests/`: Unit tests for the shared code
- Each sub-skill has its own `_scripts/`, `_specs/`, or `_kb_rules/` directories

---

**Remember**: This main skill is an orchestrator. The real work happens in the sub-skills. Read their SKILL.md files and follow their instructions.

