Tapestry 是一个统一内容提取加行动计划的技能,属于 silvainfm/claude-skills 技能集。它作为主技能(master skill)编排完整的 Tapestry 工作流:从 URL 检测内容类型、使用合适的技能提取内容,并自动创建一份 Ship-Learn-Next 行动计划。
一、用途 Tapestry 的核心理念是"把学习内容编织成行动",确保用户不只是消费内容,而是始终产出一份可落地的实施计划,把被动学习转变为主动构建。其流程概括为:提取 → 计划 → 发布 → 学习 → 下一步。
二、触发方式 当用户说出以下内容时激活:
- "tapestry [URL]"
- "weave [URL]"
- "help me plan [URL]"
- "extract and plan [URL]"
- "make this actionable [URL]"
- "turn [URL] into a plan" 另外,当用户提供一个 URL 并要求"由此学习并实现",或想要完整的 Tapestry 工作流(提取 → 计划)时也会触发。可关注的关键词包括:tapestry、weave、plan、actionable、extract and plan、make a plan、turn into action。
三、主要能力
- 内容类型检测:识别 URL 属于网页文章还是 PDF 文档。
- 内容提取:
- 文章/博客文章:使用 article-extractor 技能流程。检测 http:// 或 https://、非 YouTube、非 PDF 的常见域名(如 medium.com、substack.com、dev.to 等)以及任意 HTML 页面。提取工具优先使用 reader(Mozilla Readability),其次 trafilatura(pip),两者都不可用时回退到基本的 curl 抓取并解析 HTML。
- PDF 文档:URL 以 .pdf 结尾,或 URL 返回 Content-Type: application/pdf 时,下载并提取文本(使用 pdftotext,若可用)。
- 其他内容:回退尝试 article-extractor(适用于大多数 HTML);若失败则告知用户该类型不受支持。
- 行动计划生成:提取内容后始终自动创建 Ship-Learn-Next 行动计划,包括:读取内容文件、提取核心可执行课程(而非仅摘要)、定义具体的 4-8 周 quest、创建本周可发布的 Rep 1、设计 Rep 2-5 的渐进式迭代,并保存为 Markdown 文件,格式为 "Ship-Learn-Next Plan - [Quest Title].md"。
- 结果呈现:向用户展示已提取内容(类型、标题、保存文件名、词数)与已创建的行动计划(quest 标题、保存文件名),给出 quest 的一句话摘要与 Rep 1 目标,并询问承诺问题:"你什么时候发布 Rep 1?"
四、使用方式
典型调用形式为 tapestry <URL>。工作流脚本按以下步骤执行:
- 检测内容类型:
URL="$1"
# 检查 PDF
elif [[ "$URL" =~ \.pdf$ ]]; then
CONTENT_TYPE="pdf"
# 检查 URL 是否返回 PDF
elif curl -sI "$URL" | grep -i "Content-Type: application/pdf" > /dev/null; then
CONTENT_TYPE="pdf"
# 默认按文章处理
else
CONTENT_TYPE="article"
fi
- 按类型提取内容:文章使用 reader 或 trafilatura 或 curl 回退方案;PDF 使用 curl 下载、pdftotext 提取。
- 创建 Ship-Learn-Next 行动计划,参考 ship-learn-next/SKILL.md 的完整细节。
- 呈现结果。
完整工作流脚本骨架:
#!/bin/bash
# Tapestry: Extract content + create action plan
# Usage: tapestry <URL>
URL="$1"
if [ -z "$URL" ]; then
echo "Usage: tapestry <URL>"
exit 1
fi
之后依次执行检测、提取、创建计划、输出完成信息与下一步提示。
五、依赖
- 文章提取:reader(npm)或 trafilatura(pip);两者都没有时回退到基本 curl。
- PDF:curl(内置);pdftotext(可选,来自 poppler 包)。macOS 安装:
brew install poppler;Linux 安装:apt install poppler-utils。 - 计划生成:无额外要求(使用内置工具)。
六、错误处理
- 不支持的 URL 类型:尝试文章提取作为回退;若失败则提示无法从该 URL 类型提取内容。
- 未提取到内容:检查 URL 是否可访问,尝试替代提取方法,并告知用户提取失败、URL 可能需要认证。
- 工具未安装:尽可能自动安装(yt-dlp、reader、trafilatura);自动安装失败时提供安装说明;有回退方法时使用回退方法。
- 内容为空或无效:创建计划前确认文件有内容;提取失败时不创建计划;规划前向用户展示预览。
七、最佳实践 始终显示检测结果(如 "📍 Detected: pdf")、逐步展示进度、同时保存内容文件与计划文件、展示提取内容预览(前 10 行)、自动创建计划(不询问)、结尾给出清晰摘要,并提出承诺问题:"你什么时候发布 Rep 1?"
八、适用场景 用户希望从一篇文章或一份 PDF 中提炼可执行计划、把学习材料转化为带迭代节奏的行动方案、或希望在阅读后立即获得一份可发布的实施任务清单。
九、限制 资料未提供支持的付费/价格信息、支持的平台范围、实际效果数据或使用步骤之外的额外能力说明,这些内容暂未提供。工具可用性依赖运行环境(如 reader、trafilatura、pdftotext 是否安装),PDF 文本提取依赖 pdftotext 是否存在。