
claude-obsidian 发布审计机制完整指南不解压、不发布也能审计 ZIP 工件【免费下载链接】claude-obsidianSelf-organizing AI second brain for Obsidian Claude Code. Drop any source and Claude reads, links, and files it into one connected knowledge graph of plain Markdown you own. AI note-taking, personal knowledge management (PKM), and an open-source Notion alternative. Based on Karpathys LLM Wiki pattern.项目地址: https://gitcode.com/GitHub_Trending/cl/claude-obsidianclaude-obsidian是一个基于 Obsidian Claude Code 的自组织 AI 第二大脑丢入任意资料Claude 会自动阅读、建立链接、归档成一张由纯 Markdown 构成的互联知识图谱完全归你所有。而它同样内置了一套发布审计机制——不用解压、不执行任何发布动作一条命令就能在内存中完成 ZIP 工件的安全审计并输出结构化的通过/失败报告。本文带你弄懂这套零解压审计如何工作、又该怎么上手。什么是 claude-obsidianAI 第二大脑 知识图谱claude-obsidian 把散落的笔记、文章、资料自动整理进一个 Obsidian 仓库并生成可视化图谱。所有知识以纯 Markdown 存储你随时可以打开、修改、带走不依赖任何闭源服务。对个人用户来说数据私有是刚需对维护者来说把什么交给用户同样关键——这正是发布审计机制登场的地方。为什么要先审计后发布把一份 ZIP 发布出去不等于解压出来翻一遍文件就算安全。错误文件、密钥残留、个人邮箱、私有仓库路径都可能藏在几百个文件之中。claude-obsidian 的发布模块 claude_obsidian/release.py 在设计上就刻意不具备任何发布和 Git 变更能力构建流程只负责读取干净的工作树、按白名单选取文件、扫描内容、写出确定性 ZIP然后审计这份 ZIP全部通过才让它出现在输出路径上。核心入口是 audit_artifact() 函数它的文档注释写得非常直白Audit an artifact without extracting it or trusting archive paths——不解压、不信任归档路径。任何无效或危险的工件都会返回ok: false加稳定的错误码调用方无需处理异常。内存中的四步审计流程整个过程只把 ZIP 读入内存且全程限制大小绝不落盘解压。第 1 步结构预检拒绝非标准压缩包在解析归档之前_preflight_zip_structure() 先检查 ZIP 结构本身拒绝自解压、多卷、ZIP64 等非标准格式校验中央目录边界是否一致、有无隐藏间隙只接受 stored不压缩条目逐条计算压缩比识别压缩炸弹条目数、单文件大小、总大小都有硬性上限默认 100MB 归档 / 50MB 总载荷 / 5000 个文件见 DEFAULT_LIMITS第 2 步路径与文件安全挡住越权内容拒绝绝对路径、..逃逸、大小写碰撞的路径拒绝目录项、符号链接、设备文件、加密条目硬排除规则任何配置都无法放宽见 _hard_path_errors().git内部数据、.raw原始来源、.vault-meta运行时状态、wiki/hot.md与wiki/log.md等用户实时笔记状态、.env及凭据类文件一律不得进入发布包第 3 步内容扫描自动拦截秘密与隐私_scan_content() 会对每个文本文件做保守的隐私检测常见密钥格式GitHub Token、OpenAI/Anthropic Key、AWS Key、JWT、私钥块等允许名单之外的个人邮箱地址连#64;这类 HTML 编码变体都会先解码再检测绝对用户主目录路径如/Users/xxx、C:\Users\xxx未登记的二进制文件必须提供审查过的 SHA-256 指纹才放行第 4 步字节级复现证明压缩包一丝不差这是最妙的一步包内自带的 RELEASE_MANIFEST.json 与 SHA256SUMS 两个控制文件会被逐项核对——每个文件的大小、SHA-256、权限位、时间戳都必须与清单一致。最后审计器还会按清单在内存中重新构建一份 ZIP用常量时间比较hmac.compare_digest逐字节对比。任何 1 字节的差异都会触发noncanonical_archive错误。这意味着工件是真正确定性的同样的输入必然产生同样的字节。构建流程同样防篡改build_public_artifact() 的构建流程也有多重保险要求 Git 工作树完全干净git status零改动构建前后各做一次Git 快照比对过程中仓库变化立即失败先写入临时文件并完成自审计再原子替换到输出路径——失败时输出路径保持原样全程不 push、不 tag、不发布、不开 issue发布范围则由白名单 config/release-allowlist.json 显式声明公共市场目录 config/public-marketplace.json 只会被注入到发布产物中开发仓库本身不含它。相关行为还有 tests/test_release.py 的完整测试覆盖以及 claude_obsidian/gates.py 提供的发布门禁检查。快速上手两条命令完成构建与审计git clone https://gitcode.com/GitHub_Trending/cl/claude-obsidian cd claude-obsidian python3 scripts/claude-obsidian.py release build --output dist/claude-obsidian.zip python3 scripts/claude-obsidian.py release audit dist/claude-obsidian.ziprelease audit的参数就是一个 ZIP 路径定义见 claude_obsidian/cli.py审计完成会打印包含ok、错误码列表、工件 SHA-256 和来源 commit 的结构化报告。你甚至可以拿它审计任何符合该格式的第三方工件。这套机制保护了谁最终用户下载到的每个字节都可验证、可追溯包内绝不会混入他人仓库的实时笔记与隐私状态贡献者本地开发目录里的密钥、环境文件即使忘了删也会被审计硬性拦下维护者ok: true之前工件连输出路径都到不了——失败即安全fail-closed小结claude-obsidian 的发布审计把安全变成了流水线上的默认动作不解压、不发布、不信任只凭内存中的四步检查结构预检、路径安全、内容扫描、字节级复现为 ZIP 工件签发可信证明。对任何需要分发制品的开源项目来说这套先审计、后放行的思路都值得参考。更多细节可阅读 docs/install-guide.md 与 SECURITY.md。【免费下载链接】claude-obsidianSelf-organizing AI second brain for Obsidian Claude Code. Drop any source and Claude reads, links, and files it into one connected knowledge graph of plain Markdown you own. AI note-taking, personal knowledge management (PKM), and an open-source Notion alternative. Based on Karpathys LLM Wiki pattern.项目地址: https://gitcode.com/GitHub_Trending/cl/claude-obsidian创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考