| name | sunday-note-lint |
| description | 检查知识库健康度并编排 lint 维护。用于用户明确要求 lint、清理、合并、去重、修复或维护 Wiki 与个人上下文时,生成维护计划、写维护日志、创建 worker subagent 执行具体写入任务并复核结果;主 agent 不直接改写普通 Wiki 正文。 |
Lint
工作流
- 读取用户指定范围、路径映射、写入边界和相关规则;不默认扫描全库。
- 必要时运行
scripts/lint_headers.py --scope <文件或目录>;需要完整入口导航审计、Markdown link 审计、零入链或未解析链接报告时,运行 scripts/audit_reachability.py --entry <入口> --scope <范围>。
- 按检查项生成本轮维护计划,并写入
30_知识库/知识库维护日志.md 的 lint 运行段。
- 为每个具体写入任务创建一个 worker subagent;同一文件任务串行执行。
- 复核文件 diff、验证结果和遗留问题,更新维护日志并输出汇总。
检查项
- 主题重复、缺主要说明页、孤立页、未入 index、入口不可达或链路过深。
- header 字段、日期、计数、sources、topic、keywords、来源冲突和跨页矛盾。
- 弱链接、低个人增量、通用搜索可替代内容、过期内容、上下文拖累。
- Raw / Routine / Wiki / Journal / Schema 边界混淆。
- 结构性空话和过程性写入包装;正则命中只是候选,需结合上下文判断是否缺少事实、判断、关系或约束。
- 个人上下文缺失、过期、空白、分散或混入未确认推断;候选必须来自用户明确表达、Routine / Project / Wiki 中稳定重复出现的事实,或用户确认过的判断。
- Wiki 正文中的可见维护标记应迁入
%% agent ... %% 注释块。
输出
先按确定性分组输出问题:
### 明确问题
| 问题 | 类型 | 严重程度 | 证据 | 建议动作 |
|---|---|---|---|---|
### 候选问题
| 问题 | 类型 | 严重程度 | 证据 | 建议动作 |
|---|---|---|---|---|
### 需人工判断
| 问题 | 类型 | 严重程度 | 证据 | 建议动作 |
|---|---|---|---|---|
再输出维护计划:
| task_id | 目标 | 涉及文件 | 动作 | 风险 | 验证方式 | 执行方式 |
|---|---|---|---|---|---|---|
维护日志使用单个 lint 运行段:
## lint-YYYYMMDD-HHMM
### 计划
| task_id | 目标 | 涉及文件 | 动作 | 风险 | 验证方式 |
|---|---|---|---|---|---|
### 执行记录
| task_id | 执行者 | 状态 | 变更 | 验证 | 遗留问题 |
|---|---|---|---|---|---|
执行规则
- 用户明确触发 lint 维护时,本轮自动生成计划、写维护日志、调度 worker subagent 并复核结果。
- 主 agent 只直接维护
知识库维护日志.md;普通 Wiki 正文、index 和个人上下文写入由 worker 执行。
- Worker 使用
agent_type="worker"、fork_context=false;只接收 task_id、目标文件、证据文件、写入范围、禁止事项、验证方式和预期输出。
- 主 agent 的 lint 编排循环不自动触发 ingest、query 或 audit;worker 可在任务明确要求且范围受限时使用相关 skill。
- 高风险、证据不足、需要用户个人判断或涉及删除 / 归档的任务标记为 blocked,不强行修改。
- 来源覆盖表只作为本轮审计产物;长期维护日志只保留异常项、部分承接项、待确认项和 blocked 项。
query_count 只是弱信号;合并、归档或降级必须同时有低个人增量、入口承接弱、内容过时或来源问题等证据。
- 空白 scaffold 页面只作为待填候选;已有正文或用户指定检查时,才判断其个人上下文质量。
- index 检查以 Obsidian
[[wikilink]] 为准。
scripts/lint_headers.py 只做粗筛:header、日期、计数、来源、topic、keywords、重复 topic、index 链接、入口可达性和 body-scan 候选;不做正文语义判断,不判断个人增量,不替代最终 lint 判断。
scripts/audit_reachability.py 只在需要完整导航审计时运行;zero_inlinks 是候选问题,不单独作为明确问题。