Tapestry 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.

install
source · Clone the upstream repo
git clone https://github.com/NatsuFox/Tapestry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/NatsuFox/Tapestry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/tapestry" ~/.claude/skills/natsufox-tapestry-tapestry && rm -rf "$T"
manifest: skills/tapestry/SKILL.md
source content

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