# 1 由于skill-vault和CCPE来做skill和Agent,你可以阅读`C:\Users\wangq\Documents\Codex\video-workbench\requirements\`下的readme了解其他库如何向这两库提需求。 我现在的目标是下载文章,将下载后的文章放到`C:\Users\wangq\Documents\Codex\knowledge-vault\sources\web-archives\`下面。 一般我会给URL,可能是知乎、公众号或者x上的URL,需要你下载后,最好能做个分类,放到`web-archives`,做个简单分类。 我之前在别的机器上做了这个skill,参见`D:\article-download\`。 我的计划是,你作为需求方,提出需求单,我让skill-vault参考`D:\article-download\`完成skill的开发,然后在这里做试运行下载。 那么你提需求的话, 1. 参考`D:\article-download\`的功能能力 2. 向我提问 由于`D:\article-download\`做的比较早,比较麻烦的是,我得提供cookie;现在Codex本身有browser或者Chromeskill,这个之前也做了调研:`C:\Users\wangq\Documents\Codex\knowledge-vault\discussions\technology\Codex\3.Codex Browser与Chrome技能调研.md` 或者本身有其他skill也行。这是我和ChatGPT交流,它给的建议:`C:\Users\wangq\Documents\Codex\knowledge-vault\discussions\agents\GitHub助手GPT\2026-06-27-知乎、x文章.md` 总之,你作为需求方,和我讨论完具体需求后,写skill的需求单,不用太关注实现细节。 我拿着skill需求单到skills-vault中打造这个skill。 你更关心的应该是如何存到哪里,怎么命名,考虑到md+图片,应该建立一个文件夹;分类划分这些。 --- 现在提出问题,谈谈你的建议。 我建议这个需求不要叫“文章下载爬虫”,而叫“网页文章归档 Skill”。核心不是重写各平台抓取器,而是:给定 URL,识别平台,选择合适采集方式,把结果稳定落到 `knowledge-vault/sources/web-archives/`,并保留来源、图片、失败记录和可追溯元数据。 **我的建议** 目录结构用“平台优先”,不要一开始按主题建深目录。主题分类容易误判,平台和日期是稳定事实;主题可以写进 metadata/frontmatter,后面再整理。 建议默认结构: ```text C:\Users\wangq\Documents\Codex\knowledge-vault\sources\web-archives\ zhihu\ 2026\ 2026-06-27--文章标题slug--urlhash\ article.md images\ img-001.jpg metadata.json capture-log.md wechat\ x\ xiaohongshu\ general\ inbox\ ``` `article.md` 固定命名,比“文章标题.md”更稳,避免 Windows 路径过长和图片链接迁移问题。标题放在 frontmatter 和正文 H1。文件夹名用 `发布日期或抓取日期 + 标题slug + URL短hash`,可以天然防重复。 每篇至少保留: ```text article.md # 正文 Markdown,图片链接改成本地相对路径 images/ # 本地图片 metadata.json # url、canonical_url、platform、title、author、published_at、captured_at、tool、login_surface、image_count、failed_assets、topics capture-log.md # 本次抓取过程、失败项、是否用了登录态、是否有人工确认 ``` `raw.html` 和截图我建议作为可选项:公众号、知乎长文可以留 `raw.html`;X、小红书这类动态平台至少留截图或 capture-log,方便以后知道当时看到的是什么。 旧 `D:\article-download\` 值得继承的能力是:URL 路由、微信/知乎/X 平台适配、标题/作者/日期抽取、图片本地化、成功后报告路径和图片数。不要继承的是硬编码路径、cookie 文件依赖、输出到 `temp/downloads`、以及覆盖旧目录的习惯。 浏览器能力上,我建议需求单这样写:默认优先公开页面/干净 browser;需要真实登录态时才用 Chrome/Edge profile;不读取或保存 cookie/token/localStorage;遇到 CAPTCHA、风控、付费墙、私密内容、批量下载媒体时暂停确认。X 和小红书尤其应该先做“低频、用户可见页面归档”,不要把需求写成反爬工具。 **我需要先确认的关键问题** 1. 你希望“简单分类”主要按什么来分? 我建议默认选 A: A. `平台 / 年份 / 单篇文件夹`,主题只进 metadata B. `主题 / 平台 / 单篇文件夹`,更像知识管理但需要更多人工判断 C. `平台 / 主题 / 年份 / 单篇文件夹`,折中但目录会更复杂 后续还需要确认几个点:是否默认保存 `raw.html`,是否保存页面截图,X/小红书是否只归档图文不下载视频,遇到已存在 URL 是跳过、覆盖还是新建版本,以及是否需要维护一个 `web-archives/index.md`。我建议先把第 1 个目录原则定下来,再写正式 skills-vault 需求单。 # 2 其实,对我来说,我不关心平台。 `C:\Users\wangq\Documents\Codex\knowledge-vault\sources\clipped-articles\文章参考`是从旧的知识库移植过来的,没有分类,那就日期加标题简称也行。 这个是个轻量的,我不希望有抓取的文章内容之外的,log,json这些。 这些抓取的文章,是我之后要进行讨论的素材;讨论后,就失去了它的意义。 讨论,沉淀观点;沉淀的观点,有可能会进入后续的写作。对我来说,核心是沉淀的观点。 而抓取的文章,讨论后,甚至可以删掉了;这个只是省我一些复制粘贴的工作,而有些网站会防止复制粘贴,我会麻烦一些,F12,看源码来复制粘贴。 了解了这些后,你对这个有什么想法? 我会把需求明显收轻: 这不是“网页归档系统”,而是“临时文章剪藏器”。平台只作为内部路由,不进入目录分类;也不需要 `metadata.json`、`capture-log.md`、`raw.html`、截图、审计记录。成功标准就是:给 URL,生成一个文章文件夹,里面有一篇 `.md` 和本地图片,能用于后续讨论。 我建议输出结构直接模仿旧的 `sources\clipped-articles\文章参考`: ```text sources\web-archives\ 20260627-标题简称\ 标题.md img_1.jpg img_2.jpg ``` 或者如果你想延续旧知识库语义,也可以直接放到: ```text sources\clipped-articles\文章参考\ ``` 这点我现在反而倾向于后者:它的含义更接近“抓取的文章原文素材”。`web-archives` 听起来更长期、更可追溯,而你现在明确说这些素材讨论后可以失去意义,甚至可删。 需求单里我会这样定边界: - 不做平台分类目录。 - 不生成 log/json。 - 不做长期索引。 - 不做主题分类。 - 不保留 cookie/token。 - 不追求完整网页存证。 - 不批量采集。 - 只做“URL -> Markdown + 图片本地化”。 - 文件夹命名:优先 `发布日期-标题简称`;拿不到发布日期就用抓取日期。 - 图片命名:`img_1.jpg` 这种简单序号即可。 - 重复 URL 或重名时,只追加 `-2` 或短 hash,别引入复杂版本系统。 唯一还需要你拍板的是:`.md` 里要不要额外加一行原文链接。我的建议是加,因为以后讨论时还能回源;但如果你坚持“只要文章内容”,那就连这行也不加。 # 3 可以,还是放到`clipped-articles\文章参考` `.md`不需要原文链接。 我用于讨论,大部分讨论是批判性讨论,这些文章的作用,就是当个靶子。 因为,自媒体平台的帖子,大部分质量不高,一篇里面漏洞很多,能借用的,就一两个观点。 现在可以准备这个需求单了吧。 已准备好需求单:[lightweight-web-article-clipper.md](C:/Users/wangq/Documents/Codex/knowledge-vault/requirements/skills-vault/lightweight-web-article-clipper.md)。 我把它写成轻量“文章剪藏器”需求,而不是归档系统:输出到 `sources/clipped-articles/文章参考`,不按平台分类,不生成 `json/log/raw.html/screenshot/index`,`.md` 里默认不放原文链接,只保留标题、正文和本地图片。也写清楚了边界:不保存 cookie/token,不绕 CAPTCHA/付费墙/风控,不做批量爬取,不把这些自媒体文章提升成长期知识资产。 检查过内容和 git 状态;当前除了这个新 `requirements/` 目录外,仓库里还有一些原本已存在的未跟踪/修改文件,我没有碰它们。未运行测试,因为这次只新增需求文档。 # 4 这个`clipped-articles`技能已经做好了。 你了解下这个技能,它也支持批处理。所以我给你本次需要下载的URL就好。 * `https://www.zhihu.com/question/1998112125915267964/answer/2052741315209831340` * `https://www.zhihu.com/pin/2042210955053065858` * `https://x.com/dotey/status/2069632132431929651` * `https://mp.weixin.qq.com/s/TApHplXcBONvmVXgDKUUOg` --- 我以后说“下载文章”,然后给你链接,或者一组链接。你就调用这个技能。