关于 knowledge-intake
用于处理外部文章、博客和论文的知识治理 Skill,帮助评估内容价值、决定存储位置并规划应用方式。它还通过重复度检查和质量验证,支持维护结构化知识库。
主要功能
- 01评估内容重要性与持久性
- 02判断存储位置和应用方向
- 03检查与现有知识的重复度
- 04验证知识条目的质量
- 05将知识路由至代码库或基础设施
适用场景
- 01整理外部文章或论文
- 02决定新知识是否值得保存
- 03将技术见解应用于代码库
- 04清理或合并过时及重复内容
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ athola/ claude-night-market --skill knowledge-intake安装后在 Claude Code 中输入/knowledge-intake确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
modules/discussion-promotion.mdevaluation-rubric.mdkonmari-tidying.mdpruning-workflows.mdstorage-patterns.mdprompts/marginal_value_dual.md详细介绍
知识摄取
将外部资源处理并纳入知识库。当用户分享文章、博客文章或论文链接时,此技能将指导评估、存储决策和应用路由。
适用场景
- 从会话中捕获和整理知识
- 将信息摄取到结构化的记忆宫殿中
不适用场景
- 无需长期存储的临时笔记
- 无需捕获知识的纯代码变更
介绍
这是一个知识治理框架,针对每项外部资源回答三个问题:
- 值得存储吗? - 评估信噪比和相关性
- 适用于何处? - 路由至本地代码库或元基础设施
- 会取代什么? - 找出需要清理的过时知识
摄取信号
用户分享外部资源链接,表明该资源很重要。
分享这一行为说明该资源通过了用户自己的筛选。我们的工作是:
- 提取核心模式和见解
- 确定合适的存储位置和格式
- 与现有知识结构建立关联
- 找出应用机会
快速开始
用户分享链接时:
1. FETCH → Detect format, retrieve and convert content
2. EVALUATE → Apply importance criteria
3. DECIDE → Storage location and application type
4. STORE → Create structured knowledge entry
5. VALIDATE → Scribe verification (slop scan + doc verify)
6. CONNECT → Link to existing palace structures
7. PROMOTE → Offer Discussion promotion (score 80+)
8. APPLY → Route to codebase or infrastructure updates
9. PRUNE → Identify displaced/outdated knowledge
步骤 1:FETCH 并检测格式
获取内容前,根据 URL 或文件路径检测来源格式, 以选择合适的检索方式。
网页文章和博客文章(默认路径): 使用 WebFetch 直接获取 HTML 内容。 无需转换。
文档 URL(PDF、DOCX、PPTX、XLSX):
应用 leyline:document-conversion 协议。
该协议会优先尝试 markitdown MCP 工具,以生成高质量的
markdown;然后回退到原生 Claude Code 工具
(例如使用 Read 读取 PDF);如果没有 markitdown 且格式不受支持,
则告知用户。
本地文件(用户分享文件路径):
根据绝对路径构造 file:// URI,并应用
leyline:document-conversion 协议。
格式检测启发式规则:
| URL 模式 | 格式 | 检索方式 |
|---|---|---|
*.pdf、arxiv.org/pdf/* | document-conversion | |
*.docx、*.doc | Word | document-conversion |
*.pptx、*.ppt | PowerPoint | document-conversion |
*.xlsx、*.xls | Excel | document-conversion |
*.epub | 电子书 | document-conversion |
drive.google.com/* | 多种格式 | document-conversion |
| 其他所有情况 | HTML/网页 | WebFetch(现有方式) |
检索完成后(无论使用哪种方式),按照
leyline:content-sanitization 的要求,将内容包裹在
外部内容边界标记中,然后再继续
步骤 2(EVALUATE)。
步骤 5:Scribe 验证(必需)
所有知识库条目在最终定稿前都必须通过 scribe 验证。
对新条目运行 Skill(scribe:slop-detector):
- 评分必须低于 2.5(清晰至轻微)
- 不得包含 Tier 1 标记词(delve、tapestry、comprehensive、leveraging 等)
- 模糊措辞密度低于每 1000 词 15 个
使用 Agent(scribe:doc-verifier) 进行验证:
- 所有文件路径和 URL 均有效
- 所有交叉引用均有效
- 来源归属准确
# Quick validation for knowledge corpus entry
/slop-scan docs/knowledge-corpus/[entry-name].md
# Doc verification is now agent-only:
Agent(scribe:doc-verifier) "Verify docs/knowledge-corpus/[entry-name].md"
评分高于 2.5 的条目不得定稿——请用具体细节重写。
**验证:**使用 --help 标志运行命令,以确认其可用性。
步骤 7:讨论区推广(仅限评分 80+)
当评估得分为 80-100(常青)时,你 必须执行讨论区推广工作流。如果得分 低于 80,则完全跳过此步骤。
按顺序执行以下步骤:
- 阅读
modules/discussion-promotion.md,了解完整的 GraphQL 工作流 - 告诉用户:“此条目已达到常青成熟度。正在发布到 GitHub Discussions。[Y/n]”
- 如果用户回答“n”,则跳到步骤 8(应用)
- 运行模块中的
gh api graphql命令,在“Knowledge”类别中创建或更新讨论 - 使用
discussion_url更新本地语料库条目
- 如果条目已包含
discussion_url字段,则更新现有讨论,而不是创建新讨论 - 如果
gh不可用或推广失败,请提醒用户,并继续执行步骤 8(应用)
符合条件的条目默认会发布。此操作绝不会阻止信息收集工作流。
评估框架
重要性标准
| 标准 | 权重 | 问题 |
|---|---|---|
| 新颖性 | 25% | 是否引入了新的模式或概念? |
| 适用性 | 30% | 我们能否将其应用于当前工作? |
| 持久性 | 20% | 6 个月后它是否仍然有用? |
| 关联性 | 15% | 它是否与多个现有概念相关联? |
| 权威性 | 10% | 信息来源是否可信且论述充分? |
评分指南
- 80-100:常青知识,重点保存,立即应用
- 60-79:有价值的见解,存入语料库,安排应用
- 40-59:有用的参考资料,作为幼苗保存,之后再审视
- 低于 40:优先级较低,仅记录关键引文或跳过
应用路由
本地代码库应用
当知识能直接改进当前项目时应用:
- Bug 修复模式
- 性能优化
- 此代码库的架构决策
- 工具/库建议
操作:更新代码、添加注释、创建 ADR
元基础设施应用
当知识能改进我们的插件生态系统时应用:
- 技能设计模式
- Agent 行为改进
- 工作流优化
- 学习/评估方法(如 Franklin Protocol)
操作:更新技能、创建模块、增强 Agent
路由决策树
**Verification:** Run the command with `--help` flag to verify availability.
Is the knowledge...
├── About HOW we build things? → Meta-infrastructure
│ ├── Skill patterns → Update abstract/memory-palace skills
│ ├── Learning methods → Add to knowledge-corpus
│ └── Tool techniques → Create new skill module
│
└── About WHAT we're building? → Local codebase
├── Domain knowledge → Store in project docs
├── Implementation patterns → Update code/architecture
└── Bug/issue solutions → Apply fix, document
验证: 使用 --help 标志运行命令,以确认其是否可用。
存储位置
| 知识类型 | 位置 | 格式 |
|---|---|---|
| 元学习模式 | docs/knowledge-corpus/ | 完整的记忆宫殿条目 |
| 技能设计见解 | skills/*/modules/ | 技巧模块 |
| 工具/库知识 | docs/references/ | 快速参考 |
| 临时见解 | 数字花园幼苗 | 轻量级笔记 |
整理的必要性(受 KonMari 启发)
“杂乱的宫殿会让思绪也变得杂乱。”
新知识常常会取代旧知识,但时间并非判断标准。 相关性和志向契合度才是。
首席策展人
人类参与者决定保留哪些内容。在进行重大整理之前:
- 你正在成为怎样的人? - 你作为开发者的志向
- 现在什么让你感到兴奋? - 真诚的热情,而非“应该”
- 哪些东西你已经不再需要? - 有意识地放下过去的兴趣
两个问题
对每一条知识,这两个问题的答案都必须是肯定的:
- 它能带来愉悦吗? - 真诚的热情,而非义务
- 它有助于实现你的志向吗? - 与你正在成为的人相契合
整理操作
| 发现 | 操作 |
|---|---|
| 已被取代 | 怀着感激归档旧内容,并链接为背景信息 |
| 相互矛盾 | 评估双方,保留让你感到愉悦的内容 |
| 不再契合 | 怀着感激放手 |
| 互为补充 | 创建双向链接 |
**“说不定哪天会用到”**源于恐惧,而非愉悦。放手吧。
边际价值筛选(防止污染)
“如果它无法教会现有语料库尚未能教会的内容 → 跳过。”
在存储任何知识之前,先运行边际价值筛选器,以防止语料库受到污染。
三步筛选
1. 冗余检查
- 完全匹配 → 立即拒绝
- 重叠度 ≥80% → 作为冗余内容拒绝
- 重叠度为 40-80% → 评估增量(第 2 步)
- 重叠度 <40% → 可能是新内容,继续存储
2. 增量分析(仅针对部分重叠)
- 新颖见解/模式 → 高价值(0.7-0.9)
- 仅表述方式不同 → 低价值(0.2-0.4)
- 更多示例 → 边际价值(0.4-0.6)
- 与现有内容矛盾 → 进行调查(0.6-0.8)
3. 整合决策
- 独立存储:内容新颖,且无显著重叠
- 合并:通过示例/细节增强现有条目
- 替换:取代过时知识
- 跳过:边际价值不足
使用筛选器
from memory_palace.corpus import MarginalValueFilter
# Initialize filter with corpus and index directories
filter = MarginalValueFilter(
corpus_dir="docs/knowledge-corpus", index_dir="docs/knowledge-corpus/indexes"
)
# Evaluate new content
redundancy, delta, integration = filter.evaluate_content(
content=article_text,
title="Structured Concurrency in Python",
tags=["async", "concurrency", "python"],
)
# Get human-readable explanation
explanation = filter.explain_decision(redundancy, delta, integration)
print(explanation)
# Act on decision
if integration.decision == IntegrationDecision.SKIP:
print(f"Skipping: {integration.rationale}")
elif integration.decision == IntegrationDecision.STANDALONE:
# Store as new entry
store_knowledge(content, title)
elif integration.decision == IntegrationDecision.MERGE:
# Enhance existing entry
enhance_entry(integration.target_entries[0], content)
elif integration.decision == IntegrationDecision.REPLACE:
# Replace outdated entry
replace_entry(integration.target_entries[0], content)
**验证:**使用 --help 标志运行命令,以验证其是否可用。
筛选输出示例
**Verification:** Run the command with `--help` flag to verify availability.
=== Marginal Value Assessment ===
Redundancy: partial
Overlap: 65%
Matches: async-patterns, python-concurrency
- Partial overlap (65%) with 2 entries
Delta Type: novel_insight
Value Score: 75%
Teaching Delta: Introduces 8 new concepts
Novel aspects:
+ New concepts: structured, taskgroup, context-manager
+ New topics: Error Propagation, Resource Cleanup
Decision: STANDALONE
Confidence: 80%
Rationale: Novel insights justify standalone: Introduces 8 new concepts
**验证:**使用 --help 标志运行命令,以验证其是否可用。
渐进式自主集成
边际价值筛选器遵循自主级别(参见计划的第 4 阶段):
- 级别 0:所有决策都需要人工批准
- 级别 1:在已知领域自动批准得分 ≥85 的内容
- 级别 2:在已知领域自动批准得分 ≥70 的内容
- 级别 3:自动批准得分 ≥60 的内容,自动拒绝明显的噪声
当前实现:级别 0(所有环节均有人参与)。
基于 RL 的质量评分
知识语料库使用强化学习信号,根据实际使用模式动态评定条目质量。
锚点问题清晰度门控
使用信号会根据条目的访问情况,在条目存储之后为其评分。它们无法识别从一开始就不够清晰、因而毫无用处的摘要。在写入条目前,应通过 MMPO 双探针(arXiv:2605.30159)对其进行门控,并将其从任务状态改编为知识价值:
- 价值探针:这项知识能让我们做什么?指出它能实现的具体能力或支持的决策,而不是主题标签。
- 缺口探针:这项知识无法回答什么?列出它留下的范围明确的未解问题,而不是笼统的“需要更多研究”。
| 价值探针 | 缺口探针 | 决策 |
|---|---|---|
| 指出具体用途 | 缺口明确且具体 | 按评估得分存储 |
| 指出具体用途 | “所有内容”/空白 | 存储,但在明确缺口前将成熟度上限设为幼苗级 |
| 含糊(“有用的背景信息”) | 任意 | 不作为知识存储:仅摘录关键引文,或跳过 |
此门控采用定性评估,与重要性标准评分互为补充,而非取而代之:摘要即使在适用性方面得分很高,如果无法指出其能实现什么,仍可能无法通过价值探针。
安装 memory-palace:memory-clarity-probe 后,将双探针评估委派给它,并使用其 Recommendation 作为门控依据。
使用信号
| 信号 | 权重 | 说明 |
|---|---|---|
ACCESS | +0.1 | 条目已被访问/阅读 |
CITATION | +0.3 | 条目在其他上下文中被引用 |
POSITIVE_FEEDBACK | +0.5 | 用户标记为有帮助 |
NEGATIVE_FEEDBACK | -0.3 | 用户标记为无帮助 |
CORRECTION | +0.2 | 条目已更正/更新 |
STALE_FLAG | -0.4 | 条目被标记为可能已过时 |
质量衰减模型
知识条目会随时间衰减,除非经过验证:
| 成熟度 | 半衰期 | 衰减曲线 |
|---|---|---|
| 幼苗级 | 14 天 | 指数 |
| 成长期 | 30 天 | 指数 |
| 常青级 | 90 天 | 对数 |
条目按衰减状态分类:
- 新鲜:保留 >70% 的质量
- 陈旧:保留 40-70% 的质量
- 严重:保留 20-40% 的质量
- 已归档:保留 <20% 的质量
来源溯源跟踪
根据来源重要性进行混合溯源跟踪:
完整溯源(针对重要来源):
- 带有完整元数据的主要来源
- 衍生链(由哪些条目衍生而来)
- 转换历史(摘要、提取等)
- 验证链(由谁验证以及验证时间)
简单溯源(针对标准来源):
- 来源类型和 URL
- 检索时间戳
完整溯源适用于:
- 研究论文
- 文档
- 重要性评分 >= 0.7 的条目
知识协调器
KnowledgeOrchestrator 协调所有质量系统:
from memory_palace.corpus import KnowledgeOrchestrator, UsageSignal
# Initialize orchestrator
orchestrator = KnowledgeOrchestrator(
corpus_dir="docs/knowledge-corpus", index_dir="docs/knowledge-corpus/indexes"
)
# Record usage events
orchestrator.record_usage("entry-1", UsageSignal.ACCESS)
orchestrator.record_usage("entry-1", UsageSignal.POSITIVE_FEEDBACK)
# Assess entry quality
entry = {"id": "entry-1", "maturity": "growing"}
assessment = orchestrator.assess_entry(entry)
print(f"Quality: {assessment.overall_score:.0%}")
print(f"Status: {assessment.status}")
print(f"Recommendations: {assessment.recommendations}")
# Get maintenance queue
entries = [...] # Your entry list
queue = orchestrator.get_maintenance_queue(entries)
for item in queue:
print(f"{item.entry_id}: {item.status} - {item.recommendations}")
# Ingest new content with lineage
from memory_palace.corpus import SourceReference, SourceType
source = SourceReference(
source_id="src-1",
source_type=SourceType.DOCUMENTATION,
url="https://docs.example.com/api",
title="API Documentation",
)
entry_id, decision = orchestrator.ingest_with_lineage(
content="# API Reference\n...", title="API Documentation", source=source
)
验证: 使用 --help 标志运行命令,以验证其是否可用。
基于边际价值筛选器的 RL 集成
边际价值筛选器会针对集成决策发出 RL 信号:
from memory_palace.corpus import MarginalValueFilter
filter = MarginalValueFilter(corpus_dir, index_dir)
# Evaluate with RL signal emission
redundancy, delta, integration, rl_signal = filter.evaluate_with_rl(
content=article_text, title="New Article", tags=["python", "async"]
)
# RL signal contains:
# - signal_type: UsageSignal to emit
# - weight: Signal weight for scoring
# - action: What happened (new_entry_created, entry_enhanced, etc.)
# - decision: Integration decision made
# - confidence: Decision confidence
print(f"RL Signal: {rl_signal['action']} (weight: {rl_signal['weight']})")
验证: 使用 --help 标志运行命令,以验证其是否可用。
工作流示例
用户分享:“看看这篇关于结构化并发的文章”
intake:
source: "https://example.com/structured-concurrency"
# PHASE 3: Marginal Value Filter
marginal_value:
redundancy:
level: partial_overlap
overlap_score: 0.65
matching_entries: [async-patterns, python-concurrency]
delta:
type: novel_insight
value_score: 0.75
novel_aspects: [structured, taskgroup, context-manager]
teaching_delta: "Introduces structured concurrency pattern"
integration:
decision: standalone
confidence: 0.80
rationale: "Novel insights justify standalone entry"
# Continue with evaluation if filter passes
evaluation:
novelty: 75 # New pattern for error handling
applicability: 90 # Directly relevant to async code
durability: 85 # Core concept, won't age quickly
connectivity: 70 # Links to error handling, async patterns
authority: 80 # Well-known author, cited sources
total: 82 # Evergreen, store and apply
routing:
type: both
local_application:
- Refactor async error handling in current project
- Add structured concurrency pattern to codebase
meta_application:
- Create module in relevant skill
- Add to knowledge-corpus as reference
storage:
location: docs/knowledge-corpus/structured-concurrency.md
format: memory_palace_entry
maturity: growing
pruning:
displaces:
- Old async error patterns (mark deprecated)
complements:
- Existing error handling module
- Async patterns documentation
验证: 使用 --help 标志运行命令,以验证其是否可用。
队列处理
研究会话和外部内容会自动加入队列,以便在 docs/knowledge-corpus/queue/ 中进行审核。
处理队列条目
# List pending queue entries
ls -1t docs/knowledge-corpus/queue/*.yaml
# Review specific entry
cat docs/knowledge-corpus/queue/2025-12-31_topic.yaml
# Process approved entry
# 1. Create memory palace entry in docs/knowledge-corpus/
# 2. Update queue entry status to 'processed'
# 3. Archive or delete queue entry
验证: 使用 --help 标志运行命令,以验证其是否可用。
队列集成
research-queue-integration 钩子会自动将以下内容加入队列:
- 包含 3 次以上 WebSearch 调用的头脑风暴会话
- 包含大量发现、以研究为重点的会话
- 通过创建队列条目手动添加的内容
队列条目格式:请参阅 docs/knowledge-corpus/queue/README.md
队列状态工作流
**Verification:** Run the command with `--help` flag to verify availability.
pending_review → [Review] → approved/rejected
approved → [Create Entry] → processed
processed → [Archive] → queue/archive/
验证: 使用 --help 标志运行命令,以验证其是否可用。
自动化
- 运行
uv run python scripts/intake_cli.py --candidate path/to/intake_candidate.json --auto-accept - CLI 会运行边际价值筛选器,创建 palace 条目(
docs/knowledge-corpus/*.md)和开发者草稿(docs/developer-drafts/),并将审计记录追加到docs/curation-log.md。 - 在测试或沙盒中使用
--output-root,以避免修改主知识库。 - 队列处理:使用
--process-queue标志以交互方式审核和处理队列中的条目。
详细资源
- 评估标准:请参阅
modules/evaluation-rubric.md - 存储模式:请参阅
modules/storage-patterns.md - KonMari 整理理念:请参阅
modules/konmari-tidying.md - 整理工作流:请参阅
modules/pruning-workflows.md - 讨论内容推广:在第 7 步(PROMOTE)中调用,适用于常青条目(评分 80+)。默认操作为发布。
完整工作流请参阅
modules/discussion-promotion.md。
钩子集成
Memory-palace 钩子会自动检测可能需要进行知识摄入处理的内容:
自动触发条件
| 钩子 | 事件 | 触发条件 |
|---|---|---|
url_detector | UserPromptSubmit | 用户消息中包含 URL |
web_content_processor | PostToolUse (WebFetch/WebSearch) | 获取网络内容后 |
local_doc_processor | PostToolUse (Read) | 读取知识路径中的文件 |
research_queue_integration | SessionEnd | 包含 3 次以上 WebSearch 调用的研究会话 |
钩子信号
当钩子检测到潜在的知识内容时,会添加上下文消息:
**Verification:** Run `pytest -v` to verify tests pass.
Memory Palace: New web content fetched from {url}.
Consider running knowledge-intake to evaluate and store if valuable.
验证: 使用 --help 标志运行命令,以验证其是否可用。
**Verification:** Run the command with `--help` flag to verify availability.
Memory Palace: Reading local knowledge doc '{path}'.
This path is configured for knowledge tracking.
Consider running knowledge-intake if this contains valuable reference material.
验证: 使用 --help 标志运行命令,以验证其是否可用。
去重
钩子会检查 memory-palace-index.yaml,以避免重复处理:
- 已知 URL:“内容已编入索引”——跳过重新评估
- 内容已更改:“内容已更改”——建议更新
- 新内容:建议进行完整评估
安全检查
在发出摄入信号之前,钩子会验证内容:
- 大小限制(默认 500KB)
- 密钥检测(API 密钥、凭据)
- 防止数据炸弹(重复内容、Unicode 炸弹)
- 提示注入净化
索引架构对齐
去重索引存储的字段与此技能的评估要求一致:
entries:
"https://example.com/article":
content_hash: "xxh:abc123..."
stored_at: "docs/knowledge-corpus/article.md"
importance_score: 82 # From evaluation framework, in [0, 100]
maturity: "growing" # seedling, growing, evergreen
routing_type: "both" # local, meta, both
last_updated: "2025-12-06T..."
验证: 使用 --help 标志运行命令,以确认其可用性。
集成
memory-palace-architect— 以空间方式组织存储的知识digital-garden-cultivator— 管理知识生命周期knowledge-locator— 查找并检索已存储的知识skills-eval(抽象)— 评估元基础设施更新memory-clarity-probe— 用于上述清晰度检查的双探针门控
退出标准
- 非 2xx 的获取结果会被丢弃,而非存储:HTTP 404/429 响应正文不会生成索引条目(由
web_research_handler强制执行) - 每个存储条目都通过了锚点问题清晰度门控:其价值探针会指出该知识能够支持的具体能力
- 每个存储条目都有一个
[0, 100]范围内的importance_score,并且包含根据应用路由树作出的路由决策 - 评分低于 40 的条目会作为引文保存或跳过,而不会作为完整知识笔记存储
- 摄取后,索引可通过其加载器完成往返验证