skills/llm-wiki/SKILL.md
当用户提到'知识库'、'llm wiki'、'个人wiki'、'收录来源'、'编译知识'、'第二大脑'、'构建wiki'、'知识管理',或想要将书籍、文章、笔记添加到持久化存储时,使用此技能构建和维护持续复利的知识库。当 ~/.learnwy/llm-wiki/ 存在时,在回答复杂问题前先检查wiki——若目录不存在则跳过。
npx skillsauth add learnwy/skills llm-wikiInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
构建和维护持续复利的个人知识库。LLM 负责所有繁重工作——摘要、交叉引用、归档和记账——而你专注于搜集来源、探索和提出好问题。
核心原则: 不要把 LLM 当搜索引擎用。要把它当知识编译器用。不是每次查询都从原始文档重新推导知识(RAG),而是由 LLM 增量构建持久化 wiki——结构化、互相链接的 markdown 文件,随着每个来源的添加和每个问题的提出而持续增值。
| 信号 | 动作 | |------|------| | "收录这个"、"添加这个来源"、"处理这份文档" | 收录 | | "wiki 里怎么说X"、复杂知识问题 | 查询 / 自动查询 | | "保存到wiki"、"记录下来" | 快捷捕获 | | "保存这个模式"、可复用代码片段 | 代码片段捕获 | | "健康检查"、"lint wiki"、"查找矛盾" | 检查 | | "建一个新wiki"、"初始化知识库" | 初始化 | | "从这些文件构建wiki" | 初始化 → 批量收录 |
不应调用的场景: 单次对话洞察(→ knowledge-consolidation),方法论分析(矛盾/实践/持久战 → mao-methodology),代码实现(→ requirement-workflow)。
当 ~/.learnwy/llm-wiki/ 存在时,回答复杂问题前主动检查:
wiki/topics.txt(关键词平面文件)匹配主题[[page]] 引用对以下情况跳过自动查询:代码问题、简单事实、wiki不存在。
当用户说"保存这个"或分享有价值知识时,轻量保存到 raw/notes/{date}-{slug}.md。不创建 wiki 页面——稍后运行收录。
保存代码模式到 raw/snippets/ → wiki/snippets/,带平台 + 语言标签。与相关概念交叉引用。
| 层级 | 所有者 | 路径 | 用途 |
|------|--------|------|------|
| 原始层 | 你 | raw/ | 不可变的源材料——LLM 只读,绝不修改 |
| Wiki层 | LLM | wiki/ | 编译页面:摘要、概念、实体、对比、代码片段、故障排除、决策、速查表 |
| Schema层 | 共同演进 | CLAUDE.md | 结构规则、约定、模板 |
~/.learnwy/llm-wiki/ — 跨项目跨会话共享<project-root>/.trae/wikis/ — 领域专属知识~/.learnwy/llm-wiki/
├── raw/ # 第1层:articles/, books/, notes/, snippets/, ...
├── wiki/ # 第2层
│ ├── summaries/ # 每个原始来源一个摘要
│ ├── concepts/ # 按领域子目录组织
│ │ ├── frontend/ # React, TS, CSS, 打包工具
│ │ ├── ios/ # Swift, SwiftUI, UIKit
│ │ ├── android/ # Kotlin, Compose
│ │ ├── go/ # Go, BFF, 中间件
│ │ ├── architecture/ # 模式, DDD
│ │ ├── se-practices/ # 测试, 重构
│ │ ├── system-design/ # 分布式系统
│ │ ├── philosophy/ # 哲学, 伦理, 道家
│ │ ├── psychology/ # 习惯, 心态
│ │ ├── methodology/ # 毛泽东三部曲
│ │ └── ... # 共21个领域目录
│ ├── entities/ # 人物、组织、产品
│ ├── comparisons/ # 并列分析
│ ├── snippets/ # 代码模式(带标签)
│ ├── troubleshooting/ # 问题 → 解决方案
│ ├── index.md # 自动生成的主索引
│ └── topics.txt # 自动生成的关键词列表
├── CLAUDE.md # 第3层:Schema
└── log.md # 审计日志
| 操作 | Agent | 触发条件 | 模式 | |------|-------|----------|------| | 自动查询 | querier | 用户提出复杂问题 + wiki 存在 | 自动 | | 快捷捕获 | (内联) | "保存到wiki"或检测到有价值知识 | 半自动 | | 片段捕获 | (内联) | 代码模式被分享或发现 | 半自动 | | 收录 | ingestor | 新的原始来源被添加 | 手动 | | 查询 | querier | 用户明确询问 wiki | 手动 | | 检查 | linter | 请求健康检查 | 手动 | | 初始化 | schema-writer | 新建 wiki 项目 | 手动 | | 跨平台 | ingestor | 需要平台对比 | 手动 |
Agent 定义:收录器、查询器、检查器、Schema编写器。
单一 CLI 入口 {skill_root}/scripts/cli.cjs 分发所有维护子命令:
cd skills/llm-wiki
node scripts/cli.cjs generate-index # 从文件系统重新生成 wiki/index.md
node scripts/cli.cjs generate-topics # 重新生成 wiki/topics.txt
node scripts/cli.cjs lint # 检查断链、孤立页面、缺失标签
node scripts/cli.cjs stats # 快速仪表板:原始层 + Wiki层统计
node scripts/cli.cjs freshness-check # 标记过时/未验证的页面
node scripts/cli.cjs reorganize --dry-run # 预览概念重组
node scripts/cli.cjs install / uninstall # 注册/移除 IDE 钩子
| 子命令 | 输出 | 运行时机 |
|--------|------|----------|
| generate-index | wiki/index.md — 分类准确的页面计数 | 批量收录后或索引漂移时 |
| generate-topics | wiki/topics.txt — 自动查询匹配用的关键词 | 新增主题领域后 |
| lint | 错误(断链)+ 警告(孤立页面、缺失标签) | 每周维护或提交前 |
| stats | 原始层 + Wiki层计数的方框图仪表板 | 随时——快速健康快照 |
| freshness-check | 过时页面(技术类90天,稳定类180天)、未验证、缺少日期 | 每月或重大版本发布后 |
| reorganize | 将 concepts/ 移入领域子目录(支持 --dry-run) | 新增领域时 |
可通过 LLM_WIKI_ROOT 环境变量覆盖 wiki 位置。
| 允许 | 不允许 |
|------|--------|
| 读取原始来源(绝不修改) | 修改 raw/ 中的任何内容 |
| 在 wiki/ 和 outputs/ 中创建/更新文件 | 删除原始来源 |
| 操作后更新 index.md 和 log.md | 创建没有交叉引用的页面 |
| 标记来源间的矛盾 | 静默覆盖已有内容 |
每次操作必须:(1) 记录到 log.md,(2) 更新 index.md,(3) 检查矛盾,(4) 维护交叉引用。
操作前: Wiki存在? → CLAUDE.md存在? → 原始来源在正确子目录? → Android内容:设置 Verified: no。代码片段:包含平台+语言标签。
操作后: log.md已更新? → index.md反映变更? → 交叉引用已添加(上限5个,超出用"另见")? → 新主题领域时topics.txt已更新?
本技能处理:wiki 初始化、收录、查询、检查、交叉引用、索引维护。
不处理:单次洞察(→ knowledge-consolidation),方法论分析(→ mao-methodology),代码实现(→ requirement-workflow)。
通过 learnwy-dispatch 注册 全局 钩子(~/.claude/settings.json + ~/.trae/hooks.json),因为 wiki 位于 ~/.learnwy/llm-wiki/。
| 事件 | Lib 函数 | 用途 |
|------|----------|------|
| SessionStart | lib/session-scan.ts | 注入最多 30 个 wiki 主题到会话上下文 |
| UserPromptSubmit | lib/prompt-scan.ts | 用户问题 ↔ topics 关键词匹配 → 注入相关页面提示 |
安装/卸载:node scripts/cli.cjs install|uninstall --scope global --target both (由 src/shared/install-entry.ts 提供,所有 hook 类技能共用)。
KC 的 promote 子命令把项目级知识文档复制到 raw/notes/<date>-<slug>.md,附带 frontmatter 反向指针。下次收录时把它们当作普通原始来源处理(往往合并成 wiki/troubleshooting/ 或 wiki/snippets/ 页面,并和原 KC 文档建立 [[link]])。这是从"项目本地修复日志"到"全局复利知识库"的单向流入通道。
tools
Fallback skill when no project-specific one matches. Provides 10 battle-tested software-engineering methodology agents: problem-definer (Weinberg), story-mapper (Patton), spec-by-example (Adzic), domain-modeler (DDD/Evans), responsibility-modeler (CRC/Wirfs-Brock), architecture-advisor (Bass), tdd-coach (Beck), refactoring-guide (Fowler), legacy-surgeon (Feathers), test-strategist (Crispin). Use when user asks about DDD, TDD, refactoring, story mapping, test strategy, or software-architecture quality attributes.
development
Use when the user wants to build, implement, or develop a feature. Orchestrates evidence-driven Spec-Driven Development. Default lifecycle is `lite` (INIT → IMPLEMENTING → TESTING → DONE); auto-promote to `standard` or `full` when scope, risk, or AC traceability demands it. Triggers: 'develop feature', 'implement this', 'build feature', 'add module', 'fix bug', '开发功能', '实现这个'.
documentation
当用户需要创建、更新或设计项目级技能(.agents/skills/*/SKILL.md)时使用此技能。Analyzes the user's problem and project context to design reusable skill solutions. 触发词:'创建技能'、'编写技能'、'构建技能'、'添加技能'、'更新技能'、'项目技能'、'新建技能'、'设计技能', or when the user describes a repetitive workflow that should be captured as a reusable AI skill.
tools
Use this skill when the user wants to install, add, or configure a skill in a project. Analyze the project's tech stack and workflow, then recommend and install the best-matching skill. Triggers: 'install skill', 'add skill', 'configure skill', 'set up skill', 'enable skill', 'use skill in project', 'project skill', or when the user asks how to bring an existing skill capability into the current workspace.