tapestry

$npx mdskill add NatsuFox/Tapestry/tapestry

Tapestry ingests and synthesizes web content for users

  • Users share URLs to be crawled and organized.
  • Deploys AI-driven synthesis to create knowledge bases.
  • Decides based on user preferences and content type.
  • Delivers synthesized data in a searchable format.

SKILL.md

.github/skills/tapestryView on GitHub ↗
---
name: tapestry
description: 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.
argument-hint: [url-or-instruction]
---

# 🧵 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.

More from NatsuFox/Tapestry

SkillDescription
displayExpose the organized knowledge base through a readable frontend experience. Use when a user wants to browse the knowledge base visually as a lightweight site instead of reading raw Markdown files directly. Supports building viewers for specific data paths (e.g., individual books) or the entire knowledge base.
exportExport knowledge base content to PDF, Markdown, or HTML files saved under _data/exports/. Use when a user wants to save or share KB content as downloadable files. Supports exporting a single document file, a single feed entry, a single note, or the entire knowledge base.
ingestPrimitive web crawling and scraping for one or more URLs. Use when a user shares links, asks to ingest or archive web content, or needs raw source artifacts normalized into reusable local records before feed-building or synthesis.
init-deps-installAutomatically triggered when Tapestry is first launched on a new environment or lacks dependencies. Intelligently detects environment and installs Tapestry dependencies with user confirmation.
subscriptionsManage RSS/Atom feed subscriptions and refresh them into the Tapestry knowledge base. Use when the user wants to list, add, remove, or refresh subscribed feed sources by name rather than by URL.
synthesisConvert stored Tapestry artifacts into higher-level synthesis. Use when a user wants interpretation, consolidation, research notes, or analysis built on top of an already-ingested URL or note.
visual-cardGenerate professional visual note cards (视觉笔记卡片/信息图) from knowledge base content as single-page HTML infographics with PNG export. Use when users want to create visual summaries, knowledge cards, infographics, or poster-style visualizations of topics from the knowledge base.