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.
git clone https://github.com/NatsuFox/Tapestry
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"
skills/tapestry/SKILL.md🧵 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:
- Init Deps Install (
) - Auto-triggered dependency installation (Phase 0: setup)init-deps-install/SKILL.md - Ingest (
) - Crawl and capture URLs (Phase 1: deterministic)ingest/SKILL.md - Synthesis (
) - Analyze and organize into knowledge base (Phase 2: AI-driven)synthesis/SKILL.md - Feed (
) - Generate structured, source-aware feedsfeed/SKILL.md - Display (
) - Visualize the knowledge base as a websitedisplay/SKILL.md - Visual Card (
) - Generate visual note cards from KB contentvisual-card/SKILL.md - Subscriptions (
) - Manage RSS/Atom sources and refresh them into the knowledge basesubscriptions/SKILL.md - Export (
) - Export KB content to PDF, Markdown, or HTML files saved underexport/SKILL.md_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
- Read sub-skill instructions first: Each sub-skill's SKILL.md contains detailed workflow steps
- Follow the deterministic pipeline: Ingest → Feed → Synthesis → Display
- Respect user intent: Don't over-process if they just want capture
- Chain appropriately: Let sub-skills hand off to each other as described in their instructions
- 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/
, and_data/books/_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
: Shared Python code for crawlers, parsers, and storage_src/
: Unit tests for the shared code_tests/- Each sub-skill has its own
,_scripts/
, or_specs/
directories_kb_rules/
Remember: This main skill is an orchestrator. The real work happens in the sub-skills. Read their SKILL.md files and follow their instructions.