| name | chrome-bookmark-organizer |
|---|---|
| description | 中文优先的项目入口文档。说明这个 Chrome 书签整理项目是什么、适合谁、怎么开始,以及应该先看哪些文档。 |
这是一个本地运行的 Chrome 书签整理流水线。
它接收浏览器导出的书签 HTML,经过:
copy -> parse -> fetch -> classify -> cluster -> generate html
输出一个可重新导入 Chrome 的整理后 HTML,以及一组用来解释不确定性、内容补充状态和规则缺口的报告。
项目目标不是“尽量少留 待整理”,而是:
- 尽量减少错误归类
- 不让旧 Chrome 文件夹主导主题判断
- 不把 GitHub、知乎、CSDN 这类通用平台误当成主题
- 即使取不到网页正文,也尽量用保存标题、URL、同簇证据和 generated taxonomy 完成整理
- 把网络诊断留在报告中,只把真正需要用户处理的链接问题放进
待审阅
- 人类使用者:你有一份 Chrome 导出的书签,希望得到更可浏览的导入结果
- Agent 使用者:你要代替用户跑完整流程,或者继续改进这个项目
- 外部集成者:你想把这个仓库当成一个本地 skill/service 来消费,而不是只把它当源码看
安装依赖:
python3 -m pip install -r requirements.txt普通运行:
./organize.sh data/bookmarks.html skill_config.json如果抓取需要代理,优先使用:
export https_proxy=http://127.0.0.1:7897
export http_proxy=http://127.0.0.1:7897
export all_proxy=socks5://127.0.0.1:7897
./organize.sh data/bookmarks.html skill_config.json --use-proxy --trust-env --direct-retry-after-proxy最终 HTML 默认输出到:
output/organized_bookmarks.html
- 原始 Chrome 文件夹路径只是弱上下文,不是强主题证据
github.com、zhihu.com、csdn.net、medium.com等通用平台默认不是 topic domain- 输出 HTML 的书签数可能大于输入,因为
待审阅会镜像疑似失效、地址异常或证书异常的链接;普通超时、DNS、403 和服务端错误不会进入该目录 - 正常运行会自动消费已有的
data/generated/user_taxonomy.json和data/generated/bookmark_taxonomy_assignments.json - 项目默认不会内嵌或自动调用任何在线模型 API
README.mdSERVICE_CONTRACT.mdRUNBOOK.mdQUICK_REFERENCE.md
README.mdSERVICE_CONTRACT.mdAGENTS.mdDESIGN_CONSTRAINTS.mdRUNBOOK.md
| 文档 | 用途 |
|---|---|
SERVICE_CONTRACT.md |
把本项目当作本地 skill/service 消费时的输入、输出、副作用、LLM 交接点、网络和状态契约 |
RUNBOOK.md |
人类操作者的完整运行手册、命令、报告解释和排障路径 |
QUICK_REFERENCE.md |
极简命令卡,不承担长解释 |
AGENTS.md |
agent 执行和改造仓库时必须遵守的操作与实现契约 |
DESIGN_CONSTRAINTS.md |
长期稳定的产品和实现约束,所有行为级改动都要遵守 |
本项目已经处在“信息流优先”的版本:
- 共享信号契约是
signal_pack/v2 - 阶段产物带
schema_version - 下游步骤会拒绝消费旧 schema 的 payload
- 分类、聚类和报告都保留决策证据,而不是只产最终树形结果
当前阶段 schema:
fetch_output/v2classified_output/v2clustering_output/v2signal_pack/v2quality_report/v2
当前链路里显式存在且仅存在两个 LLM-assisted 步骤:
- taxonomy bootstrap
- taxonomy follow-up
这两个步骤都不是“仓库自动调模型 API”,而是:
- 先由本地脚本导出 prompt 和结构化证据
- 再由外部 LLM 或 agent 产出 strict JSON
- 最后用本地导入脚本回灌 generated taxonomy 和 assignments
如果 agent 负责完整执行,它不能只生成 prompt 就停下,必须继续读取配套 JSON evidence 并产出可导入的 response。
| 路径 | 作用 |
|---|---|
organize.sh |
一键运行入口 |
skill_config.json |
运行配置 |
scripts/3_fetch_webpage_info.py |
抓取、代理、缓存、失败归因 |
scripts/4_classify_bookmarks.py |
分类与确认原因生成 |
scripts/5_cluster_bookmarks.py |
聚类、显示层级、规则建议和质量报告 |
scripts/apply_taxonomy_response.py |
导入外部 LLM 产出的 strict JSON |
主要输出:
output/organized_bookmarks.html
关键报告:
output/reports/review_queue.jsonoutput/reports/fetch_hotspots.jsonoutput/reports/needs_confirmation.jsonoutput/reports/rule_suggestions.jsonoutput/reports/quality_report.jsonoutput/reports/signal_audit.json
Generated 状态:
data/generated/user_taxonomy.jsondata/generated/bookmark_taxonomy_assignments.json
- 把它当服务消费:看
SERVICE_CONTRACT.md - 实际跑一遍:看
RUNBOOK.md - 只想找命令:看
QUICK_REFERENCE.md - 要让 agent 严格按约束做事:看
AGENTS.md - 要改行为但不想踩设计红线:看
DESIGN_CONSTRAINTS.md