oblearn — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited oblearn (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
从当前项目或用户明确提供的临时会话材料提取“可复用知识”,写入 Obsidian 的 Agent/Knowledge/。它不是初始化工具,不创建项目入口文件;项目初始化使用 $obinit。
oblearn 只负责从当前项目材料或非项目临时会话材料中提取、脱敏和写入可复用知识。
Agent/Knowledge/Inbox/。aliases 或修正当前写入会用到的 wikilink。.agents/。$obcurate,例如清理 Inbox、合并重复主题、拆分过长笔记、整理 Agent/Knowledge/_catalog.md。用户只说 $oblearn 或“提取公共知识”时,按安全默认值执行:
$obinit。Agent/Knowledge/_catalog.md(如果存在)作为已沉淀领域的事实来源。Agent/Knowledge/Inbox/ 并等待用户确认。Agent/Knowledge/_catalog.md。_catalog.md 命中或搜索命中时,就按新知识处理。项目模式下,按需读取这些项目内文件:
.agents/instructions.md
.agents/active.md
.agents/progress.md
.agents/lessons.md
.agents/archive/progress-YYYY.md
docs/superpowers/specs/
docs/superpowers/plans/
docs/adr/.agents/archive/ 只在以下情况读取相关文件:.agents/active.md、.agents/progress.md 或 .agents/lessons.md 明确指向归档;用户要求复盘长期项目;或当前候选知识需要旧阶段证据。不要为了找灵感全量扫描 archive。
如果是 git 项目,可以读取最近变更摘要:
git status --short
git diff --stat
git log -5 --oneline只读取与当前任务、当前 spec/plan 或用户指定范围相关的文档;不要遍历大型目录。
当前目录没有 .agents/instructions.md,或任务明显不属于软件项目时,不要要求用户先运行 $obinit。
可用输入:
如果用户提到“昨天的 Codex app 对话”“之前那个临时任务”等历史会话,但当前上下文没有 transcript、摘要或 Codex session id,不能假装能自动读取历史;先请用户提供摘要、关键命令、错误信息、结论或 session id。
用户提供 Codex session id 时,可把该 ID 作为授权和定位线索,做精确本地查找:
$CODEX_HOME/session_index.jsonl、$CODEX_HOME/sessions/、$CODEX_HOME/archived_sessions/;未设置 $CODEX_HOME 时使用用户主目录下的 .codex,Windows 通常是 %USERPROFILE%\.codex,macOS/Linux 通常是 ~/.codex。session_meta.session_id / payload.id 精确等于该 ID 的 JSONL。forked_from_id,那只是派生关系,不等于目标 transcript;继续查找目标 ID,找不到就向用户说明。codex resume <id> 来读取 transcript;resume 是恢复交互会话,不是导出命令。非项目模式下:
Agent/Knowledge/Inbox/<简短主题>.md,并设置 status: draft。Agent/Knowledge/_catalog.md 并用关键词定向搜索;不要全 vault 扫描。.agents/、docs/adr/、项目 Obsidian 笔记或项目 memory。只提取满足至少一条的内容:
不要提取:
优先追加到定向搜索命中的已有 Obsidian 公共知识笔记:
Agent/Knowledge/<主题>.md主题应来自 Agent/Knowledge/_catalog.md 命中、定向搜索命中或用户确认。如果没有合适笔记,先向用户提出新建建议,不要擅自创建一堆分类。
新知识尚未稳定归类时,建议目标是:
Agent/Knowledge/Inbox/<简短主题>.mdAgent/Knowledge/_catalog.md 是已沉淀领域的事实来源。它只记录已经存在或本次确认创建的公共知识入口,不记录猜测分类。
建议结构:
## terms
- term: <关键词>
aliases: [<别名>]
notes:
- [[<真实笔记标题>]]更新 catalog 时只使用真实笔记标题、已有 frontmatter、用户确认的别名或本次知识的明确关键词。无法判断时,不更新 catalog。
项目模式:
.agents/active.md,确认当前任务、当前 spec/plan、项目笔记路径。.agents/lessons.md 和相关 .agents/progress.md 条目。.agents/archive/ 中相关年份文件。.agents/active.md 指向读取相关 spec/plan/ADR。Agent/Knowledge/_catalog.md(如果存在),用候选关键词匹配 terms 和 aliases。Agent/Knowledge/Inbox/。Agent/Knowledge/_catalog.md 的 terms / aliases / notes。相关知识。.agents/active.md 或 .agents/lessons.md 记录本次提取结果。非项目临时会话模式:
Agent/Knowledge/_catalog.md(如果存在),用候选关键词匹配 terms 和 aliases。Agent/Knowledge/Inbox/。Agent/Knowledge/_catalog.md。使用关键词定向搜索:
obsidian read path="Agent/Knowledge/_catalog.md"
obsidian search query="<主题关键词>" limit=5
obsidian read path="Agent/Knowledge/<实际命中笔记>.md"如果 Agent/Knowledge/_catalog.md 不存在,不要为了查找而创建空 catalog;只有本次实际写入公共知识且有明确关键词时再建议创建或更新。
不要使用全 vault 扫描来“找灵感”。搜索词应来自候选知识本身的技术栈、错误信息、平台名、命令名或用户确认的主题;搜索没有命中时,按新知识处理。
追加到公共知识笔记时,使用短条目:
使用 templates/public-knowledge-entry.md。
条目要能被下一个 agent 直接执行,不写散文。
仅在用户确认后创建:
使用 templates/public-knowledge-note.md。
如果用户没有指定稳定主题,默认创建在 Agent/Knowledge/Inbox/,并设置 status: draft。稳定归类、移动、合并或拆分由 $obcurate 后续处理。
引用真实存在或本次确认创建的 Obsidian 笔记时使用 wikilink。外部链接用标准 Markdown 链接。
Agent/Knowledge/_catalog.md 用于让后续 agent 知道哪些领域已经沉淀过。它不是分类体系,不要求完整,不是全 vault 索引。
可以更新 catalog 的情况:
aliases、platform、topic 或 tags 可直接转换为 terms / aliases。不要更新 catalog 的情况:
模板升级只影响新建笔记和后续追加条目;历史公共知识默认保持原样,仍应按当时内容读取和复用。
读取旧公共知识笔记时兼容缺失字段,从正文推断适用场景、检查项、经验或相关链接,不要因为缺少新模板字段就判定无效。不要批量迁移历史公共知识。
只有在以下情况才做最小回填:
回填时只补必要字段、短句或条目,不整体重写历史笔记。
oblearn 对已有公共知识维护只做最小修改:添加当前写入必需的 aliases、更新 title / H1 / tags、修正 wikilink、追加新条目,或修正当前条目中不够脱敏的内容。
维护动作应服务于可复用性和可发现性,只做最小修改。
如果用户要求移动、重命名主题、合并或拆分笔记、批量修正 catalog、清理 Inbox,转交 $obcurate;不要把这些结构性整理塞进一次经验提取。
仅项目模式执行项目回写。
如果提取了公共知识,在 .agents/active.md 追加或更新:
使用 templates/active-knowledge-extracted.md 的结构。
如果只是发现项目内经验但不适合公共化,保留在 .agents/lessons.md。
结束时只汇报:
Agent/Knowledge/Inbox/ 笔记。Agent/Knowledge/_catalog.md。~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.