# 2026-07-13 Ingest 日志

## 事件

**Sources 新文件检测**：通过 `.sources_watcher.py` 发现 2 个新文件进入 `sources/`，均为 firecrawl/firecrawl README 的不同语言版本。

### 新文件列表

| 文件 | 语言 | 备注 |
|------|------|------|
| `sources/firecrawlfirecrawl The API to search, scrape, and interact with the web at scale. 🔥.md` | EN | 英文版 README（原始） |
| `sources/firecrawlfirecrawl The API to search, scrape, and interact with the web at scale. 🔥 1.md` | ZH-CN | 中文翻译版（同一 README 的中文版） |

## Ingest 操作

### Library（影子摘要页）

- 新建 `wiki/library/firecrawlfirecrawl The API to search, scrape, and interact with the web at scale. 🔥.md`（英文版，独立完整摘要）
- 新建 `wiki/library/firecrawlfirecrawl The API to search, scrape, and interact with the web at scale. 🔥 1.md`（中文版，独立摘要 + `translation_of` 标注与英文版关联）

### Entities

- 新建 `wiki/entities/firecrawl.md`（Firecrawl 实体页）：覆盖基本信息、核心能力、技术指标、相关概念

### Concepts（更新而非新建）

- `[[wiki/concepts/web-scraping]]` — 已有页面，无需新建；本次 Ingest 作为 synthesis 的对照基准
- `[[wiki/concepts/mcp]]` — 已有页面；Firecrawl 提供 firecrawl-mcp-server 作为新实例
- `[[wiki/concepts/agent-skills]]` — 已有页面；Firecrawl CLI Skill 是典型实例
- 决定**不新建独立 concept 页**（避免与 web-scraping / mcp / agent-skings 重复）

### Synthesis（深度报告）

- 新建 `wiki/synthesis/web-scraping-tools-comparison.md`：横向对比 **Firecrawl（托管 API 范式）** vs **Scrapling（本地自适应库范式）**
  - 触发理由：两份 README 均已 Ingest，互补性明显，跨工具对比能产出可复利的认知
  - 涵盖：部署模型、计费、AI 集成、自适应能力、LLM-ready 输出、选型决策树
  - 标注了一个开放问题：AI Agent 抓取的伦理边界（供未来讨论）

### Conflict Room

- 未发现与现有 wiki 冲突的信息
- 标注一个**潜在**开放问题（"AI Agent 抓取 robots.txt / ToS 的合规边界"），但暂不单独立 conflict_room 条目（证据不足）

## Index 更新

- `wiki/index.md` 在 Library、Entities、Concepts、Synthesis、日志表格中追加新条目
- 新增"知识图谱"中 Firecrawl 节点的展示（与其他抓取/Agent 工具的关系）

## 备注

- **去重判断**：两份 sources 文件虽内容相同（不同语言），但 sources/ 是只读原始资料且独立命名，按 Library 映射规则 A 必须各生成一个独立 library 条目（保持与原始文件的确定性映射）
- **特殊字符**：sources 文件名包含 🔥 emoji，文件系统支持（已在写入前验证 touch/rm）
- **命名一致性**：library 文件名直接沿用 sources 文件名核心（仅替换扩展名为 .md），符合 llmreadme.md 规则 A
---

## [2026-07-12 16:05 UTC / 2026-07-13 04:05 NZST] Wiki Lint 健康检查（cron: 6bd77ae2 — 每 3 天）

**Cron**：Wiki Lint 每 3 天健康检查
**触发时间**：2026-07-13 04:05 NZST（2026-07-12 16:05 UTC）
**执行脚本**：`bash /home/node/.openclaw/workspace/knowledge/Miralce_knowledge/.lint.sh`
**检查工具**：`Miralce_knowledge/.lint.py`（Python）

### 检查结果汇总

| 检查项 | 状态 | 备注 |
|--------|------|------|
| 孤立页面（Orphan） | ⚠️ 2 处 | `*/index.md` 目录页（脚本误报，已连续 7 次） |
| 失效链接（Broken） | ❌ 2 处 | 与历次 Lint 报告**完全一致**，已连续 **10 次**未处理 |
| 过期 library | ✅ 无 | — |
| 冲突记录 | ✅ 无 | — |

### 孤立页面详情

1. `wiki/entities/index.md`
2. `wiki/concepts/index.md`

> **分析**：这两个 `index.md` 是 LLM 生成的目录页（`<!-- openclaw:wiki:entities:index:start -->` 标记），本身**不应被任何页面链接引用**——它们是父级索引，引用方而不是被引用方。
>
> 这是 `.lint.py` 的**逻辑误报**：孤立检测应该跳过 `*/index.md`。

### 失效链接详情

> 与 2026-06-18、06-21、06-24、06-28、07-01、07-03、07-06、07-09 **9 次 Lint 报告完全一致**，已连续 **10 次**未处理。

1. **`[[wiki/concepts/esp32-s3-features]]`**
   - 引用位置：`wiki/sources/unsafe-local-miralce-knowledge-...-esp32-s3-md-...md`（unsafe-local 源快照嵌套归档，代码围栏内）
   - 缺失目标：`wiki/concepts/esp32-s3-features.md`
   - **重要观察**：当前**主体 wiki**（`wiki/entities/esp32-s3.md`）的"相关概念"段**已经没有这个失效链接**——之前建议的"改链到 espressif-chips"已在主体中完成。此残留位于历史 unsafe-local 源快照的代码围栏内。

2. **`[[wiki/entities/gpt-5]]`**
   - 引用位置：`wiki/sources/unsafe-local-miralce-knowledge-...-llmreadme-md-...md`（llmreadme.md 命名规范示例段，代码围栏内）
   - 缺失目标：`wiki/entities/gpt-5.md`
   - **建议**：保持原样，`gpt-5` 是 llmreadme.md 命名规范的示例占位，不应在 wiki 中真正建立实体。

### 本轮相对上轮的状态差异

| 维度 | 2026-07-09 上轮 | 2026-07-12 本轮 | 变化 |
|------|---------------|---------------|------|
| 孤立页面 | 2 | 2 | = |
| 失效链接 | 2 | 2 | = |
| 过期 library | 0 | 0 | = |
| 冲突记录 | 0 | 0 | = |

> **关键说明**：失效链接两处均位于 unsafe-local 源快照（嵌套归档文件）的代码围栏内，主体 wiki 浏览/查询链路完全正常——点击任何 wikilink 均能命中。脚本把历史快照内嵌引用当作失效链接误报，连续 10 次未变。

### 近 7 日 Wiki 活动

| 日期 | 内容 |
|------|------|
| 2026-07-13 | 2026-07-13 Ingest 日志（Firecrawl README 双语版本入库 + 新建 synthesis 报告） |
| 2026-07-09 | 2026-07-09 Wiki 操作日志（含当轮 Lint 报告） |
| 2026-07-06 | 2026-07-06 Wiki 操作日志（含当轮 Lint 报告） |

> 自上次 Lint（07-09）以来有 **1 次 Ingest 触发**（07-13 Firecrawl），新增 library / entities / synthesis 各若干条目。

### 健康度

- 总体健康度：**🟡 良好但长期误报**
- 主体 wiki 实际完整性：**4/4 项均通过**（用户视角下没有任何失效链接）
- 脚本误报：2/4 项（孤立 `*/index.md` + 历史快照嵌套 wikilink）

### 后续动作（待用户决策）

| 优先级 | 项目 | 建议动作 |
|--------|------|----------|
| 🟢 低 | `.lint.py` 孤立误报 | 在孤立检测中加 `if fpath.name == 'index.md': continue` |
| 🟢 低 | 源快照内嵌 wikilink 误报 | 增强 `.lint.py`：跳过 markdown 代码围栏（``` ``` ```）内的 wikilink 匹配 |
| 🟡 中 | 重跑 Ingest | 让 unsafe-local 源快照与当前主体 wiki 同步 |
| 🟢 可选 | 永远清零 | 重跑 Lint 验证 4 项检查全部清零 |

> **强烈建议**：先做**前两项轻量代码修改**（一行 + 几行 Python），就能让 Lint 报告彻底归零。**不需要改动任何 wiki 主体**。

### 备注

本次 Lint 结果已通过 Telegram 发送给用户（chatId=798233405），本条日志为存档。
