mcpField
M
maintain

maintain

github.com/garrytan生产力31.3k329 次安装今天更新
代码仓库

关于 maintain

maintain 是用于定期检查和整理 gbrain 知识库的技能,覆盖页面健康、链接和引用等维度,并为发现的问题提供修复路径。自动修复前会要求用户同意,并限制未经授权的所有权变更。

主要功能

  1. 01检查过期、孤立页面与失效链接
  2. 02核对交叉引用和引用格式
  3. 03按维度报告健康检查结果
  4. 04生成修复计划并在获批后执行
  5. 05整理记忆并提取时间线与关系

适用场景

  1. 01定期检查知识库健康状况
  2. 02排查页面链接和引用问题
  3. 03审核自动修复计划后执行整理

MCP 相关

可通过 MCP 的 get_health 或 get_brain_health 获取健康信息;前者需要管理员权限,后者仅提供部分维度。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/garrytan/gbrain --skill maintain

安装后在 Claude Code 中输入/maintain确认已加载。

详细介绍

维护技能

定期进行脑健康检查和清理。

契约

此技能保证:

  • 检查所有健康维度(过时项、孤立项、失效链接、交叉引用、反向链接、引文、归档、标签)
  • 为发现的每个问题提供具体的修复操作
  • 强制执行反向链接铁律
  • 按标准验证引文格式
  • 按维度统计并报告结果

阶段

所有权故障属于检查边界

常规维护、启动检查、doctor --fix 以及“修复故障”的请求,都不授权更改写入者拓扑。遇到 owner_unavailable 或写入者协调被拒时,先在选定的主机上检查 gbrain sources writer status --brain <id> --json,然后向操作员报告所有者、纪元、启用状态和受阻的恢复操作。不要将检出、启用托管模式、转移所有者、替换身份或移除所有权标记作为修复。若状态显示 enabled: false,且拒绝原因是 unbound_source,则该脑有意处于经典模式:说明写入需要通过检出(文件、提交、gbrain sync)进行,并保持经典模式不变。 有意进行管理操作需要单独获批的拓扑更改,以及 docs/architecture/topologies.md 中所述的特定操作意图和经审核的状态前置条件。TTY、--yes 和 --confirm-quiesced 均不能替代此决策。远程凭据不符合本地写入者管理的资格。

自主路径(v0.36.4.0)——当你想达到目标分数时

如果用户要求“让我的脑达到 90/100”或“修复故障”,请先预览,并在应用任何更改前征求同意:

gbrain doctor --remediation-plan --json              # preview: job steps + repair steps
# Show the user the repair steps (each "requires user agreement") and the cost.
# Only after the user agrees (plan_hash from the preview binds the approval):
gbrain doctor --remediate --yes --include-repairs --expect <plan_hash> --target-score 90 --max-usd 5

--remediation-plan 会按依赖顺序打印作业步骤列表(先同步再提取、整合后再嵌入等),并为每步列出 est_seconds 和 est_usd_cost;此外,无论分数目标如何,还会列出所有存在待处理项的 gbrain repair 类型对应的受保护修复步骤。每个步骤都附带用于执行该步骤的确切命令,计划末尾还会提供一条组合命令。 只有使用 --include-repairs(表示用户同意)时,--remediate 才会执行修复步骤;否则会将其列为已跳过。之后,它会依次执行作业计划,将每个步骤提交为 Minion 作业,并在步骤之间重新检查分数。 --max-usd N 是本次运行及每次 --resume 的累计费用上限:如果付费步骤会导致超出上限,则不会启动该步骤;免费步骤仍会执行。运行会停止,并提供一条保留费用上限和用户同意状态的恢复命令。

当脑无法达到目标分数时(空脑且没有实体页面 → graph_coverage 上限为 70;未配置嵌入密钥 → 上限为 60),作业步骤会停止并列出缺少的内容,而不会循环;包含的修复步骤仍会执行。--json 会将每项发现归类为 cleared、pending、consent_required、operator_required(遵循其说明)或 unsupported(报告该项;目前尚无任何操作可以清除它)。升级后,请按照 docs/guides/repair.md#recover-after-upgrading-to-this-release 中的步骤操作。

在以下情况下,请使用下面按维度逐项检查的流程(从阶段 2 开始):

  • 用户明确要求逐项进行维度审计
  • 你正在调查分数为何卡在 --remediate 的上限以下
  • 某个特定维度需要自动路径会跳过的人工判断
手动路径
  1. 运行健康检查。 检查 gbrain 健康状况(get_health)以获取仪表板。get_health 需要管理员权限;如果没有该权限,则调用 get_brain_health(读取权限)。该接口仅返回各项范围(写入容量、写入失败、幽灵页面、不可搜索的分块),并跳过其无法回答的维度:过时页面、孤立页面、失效链接、嵌入覆盖率、链接和时间线计数以及脑评分。在报告中列出跳过的维度,并请求管理员令牌,或请求脑所在主机上的 gbrain doctor --json,以检查这些维度。
  2. 检查各个维度:
过时页面

compiled_truth 早于最新时间线条目的页面。评估尚未更新以反映近期证据。

  • 检查健康状态输出中的过时页面数量
  • 对于每个过时页面:从 gbrain 读取页面,检查时间线,确定是否需要重写 compiled_truth
孤立页面

没有任何入站链接的页面。没有页面引用它们。

  • 检查孤立页面:它们确实是孤立的,还是只是缺少链接?
  • 在 gbrain 中从相关页面添加链接,或将其标记为待删除
死链

指向不存在页面的链接。

  • 在 gbrain 中移除死链
缺少交叉引用

提及实体名称但没有正式链接的页面。

  • 从 gbrain 读取 compiled_truth,提取实体提及,并在 gbrain 中创建链接
链接图提取

如果 link_count 为 0,或相对于 page_count 较低,请运行批量提取:

gbrain extract links --dir ~/brain

这会扫描所有 Markdown 文件中的实体引用、See Also 部分和 frontmatter 字段,然后在数据库中创建类型化链接。

时间线提取

如果 timeline_entry_count 为 0,请从 Markdown 中提取结构化时间线:

gbrain extract timeline --dir ~/brain
梦境周期(v0.23):综合整理 + 模式识别

gbrain dream 会运行完整的维护周期(此处展示核心阶段;atoms/concepts/drift 等可选阶段会穿插其中):

lint -> backlinks -> sync -> synthesize -> extract -> patterns -> embed -> orphans

fence_repair 会在 sync 后立即运行,每个维护轮次运行一次:它会修复事实,并处理 sync 暂停的围栏或存储格式错误页面的围栏(gbrain repair fences 会预览相同的计划),运行时间最长为 300 s 或作业剩余时间的三分之一,然后在下一次运行时继续。content_repair 会紧接其后运行(#6377):执行其余的内容修复流程,目前是 slug-conflicts 类型,即移除多余的 frontmatter slug:,或为某个人记录建议的合并方案(gbrain repair content 会预览这两种类型),运行时间最长为 120 s 或剩余时间的三分之一。使用 gbrain config set fences.repair.enabled false 可暂停这两个阶段。

这两个新阶段会将昨天的对话整合为长期记忆: Synthesize 阶段(两级级联): 从 dream.synthesize.session_corpus_dir 读取会话转录,然后在投入资源前先进行分诊。一个低成本的实用级评审模型(models.dream.triage)会为每个新文件打出 0–1 的显著性分数,并预先提取候选引文和实体,结果缓存在 dream_verdicts 中,同时记录评审模型与提示词版本。每个周期的处理时长受 dream.triage.max_ms 限制(默认 5 分钟),被延后的文件会在下一周期重试,绝不会被静默拒绝。文件通过闸门的方式有两种:一是分数大于或等于 dream.triage.threshold(默认 0.5);二是已验证片段挽救被触发,即分数位于 [dream.triage.rescue_floor, threshold) 区间内,且评审模型自己引用的片段中,至少有 dream.triage.rescue_min_segments 个(默认 2;设为 0 则禁用)能在转录文本中验证为子串,同时内容类型属于 dream.triage.rescue_content_types(默认 mixed,reflection,idea,strategy,people,永不包括 routine 和 technical)。挽救过程不产生额外成本(不发起额外的大模型调用,只是重新读取缓存的评审结果),它正是用来找回那些埋没在平淡转录中的真实信号。整个闸门在读取时应用,因此调整阈值或挽救参数时,无需新的大模型调用即可重新过闸。通过闸门的文件会为每个转录分块分派一个综合子 Agent,每个子 Agent 都会获得分诊映射作为上下文。默认情况下,每个子 Agent 以 oneshot 模式运行(dream.synthesize.mode,默认 oneshot):只进行一次无工具的补全调用,提示词中包含预先检索的 LINK CANDIDATES 清单(dream.synthesize.link_manifest,默认开启)以及写入允许列表,并在任何页面以程序方式写入之前,端到端地完成校验(slug 围栏、任务结构、维基链接)。未通过校验的响应会在同一任务中回退到经典的 Agentic 循环,此时适用 dream.synthesize.max_turns 上限(默认 16);回退开关:gbrain config set dream.synthesize.mode agentic。每个子 Agent 会写入反思(wiki/personal/reflections/...)和原始想法(wiki/originals/ideas/...);人物时间线条目仅在 Agentic 路径(回退或 mode agentic)中写入,因为只有该路径下子 Agent 拥有 add_timeline_entry 工具。编排器从 subagent_tool_executions 收集 slug(而非 pages.updated_at,后者会误纳入无关的写入),对这些 slug 执行下文所述的引文校验,并将每个新页面从数据库反向渲染为磁盘上的 markdown。若要在调整阈值或挽救参数后重新应用闸门,或清空排队积压,请运行 gbrain dream retriage --dry-run(零大模型调用,仅使用缓存分数),然后运行 gbrain dream retriage --reconcile-queue;--force 会从头重新评审所有文件。Retriage 使用与周期相同的闸门,因此对账扫描绝不会取消被挽救机制放行的任务。

主张校验(写入后,零大模型调用): 在收集 slug 之后、反向写入之前,dream.synthesize.quote_verify(默认开启)会将本阶段子 Agent 写入的每个页面,与生成它的转录内容进行核对。本次运行新建的页面会整体检查;已存在的页面则只检查本次运行新增的句子。完全一致的引文予以保留;仅在空白、弯引号、破折号或大小写上有差异,或在某位说话者的单次发言内属于近似改写的引文,会被替换为转录中的逐字原文片段。出现以下任一情况,句子将被隔离:引文在任何位置都无法找到依据,或仅能跨越两位说话者找到依据;将真实引文归属给错误的说话者;或陈述了转录中不存在的数字或日期。被隔离的句子会从页面正文中移除(同时移除由其派生的时间线、事实和链接),并原样保存在 frontmatter 的 unverified_claims 中;get_page 会显示这些内容,但 search、recall 和 think 不会读取。有依据的引文会在 grounding.quotes 中记录其来源范围和说话者。任何内容都不会被凭空捏造。遥测数据记录在 details.synthesis.quote_verify 中;配置项即为事故情况下的关闭开关。 模式阶段: 在 extract 之后运行(因此图状态是最新的)。 读取 dream.patterns.lookback_days 时间范围内(默认为 30 天)的近期反思, 运行一次 Sonnet 处理以发现反复出现的主题,并在有 ≥dream.patterns.min_evidence (默认为 3)条反思支持某个模式时,将模式页面写入 wiki/personal/patterns/<theme>。运行完成后会记录其使用的最新反思(dream.patterns.last_evidence_ts);只要时间范围内没有比该反思更新的内容,后续运行就会跳过,并返回 no_new_evidence,而不是再次支付模型调用费用——gbrain dream --phase patterns --once 可强制运行一次。

质量标准(综合内容的铁律):

  1. 逐字引用用户原话。引号 ONLY 用于可从转录内容中 EXACTLY 复现的片段——如果无法准确复现某个片段,就在不加引号的情况下转述。不要转述那些可以准确引用的深刻表达。(写入后,引用核验流程会以机械方式强制执行此规则。)
  2. 穷尽交叉引用:每个新页面都 MUST 至少包含一个 Wiki 链接。
  3. 标题规范:只能使用小写字母、数字和连字符。不得使用下划线,不得使用文件扩展名。
  4. 编辑过的转录内容会生成新的标题(内容哈希后缀会变化)——绝不静默覆盖。
  5. 保留具体事实:准确保留重要内容中的具体数字、日期、金额、姓名,以及谁决定了什么,确保与转录内容完全一致。不要用日常事务细节凑字数。
  6. 每项陈述都必须以转录内容为依据。将推测标明为推测,绝不声称转录内容未显示的完成状态或结果。

**信任边界(allowed_slug_prefixes):**综合内容子 Agent 使用明确的写入路径允许列表,该列表取自 _brain-filing-rules.json 中的 dream_synthesize_paths.globs。即使提示词注入成功,子 Agent 也无法写入该列表之外的路径。信任来自 PROTECTED_JOB_NAMES——MCP 根本无法提交子 Agent 任务。只有编辑 JSON 才能添加综合器可写入的新目录。

**幂等性 + 隐私:**转录内容以 (file_path, content_hash) 为键,因此对相同内容重新运行时不会执行任何操作。dream.synthesize.exclude_patterns(默认为 ["medical", "therapy"])会在任何 LLM 调用之前筛除转录内容。每个条目都会自动包装为词边界正则表达式(例如,medical 会匹配“medical advice”,但不会匹配“comedical”)。高级用户可以传入完整的正则表达式。

**冷却时间:**在一次完全处理完待办内容的运行结束后,dream.synthesize.cooldown_hours(默认为 12)会在指定时长内跳过综合处理。完成时间戳存储在 dream.synthesize.last_completion_ts 中,只有在所有子任务均已完成且没有任何延后事项(综合预算、分诊时间预算或待发布内容)时才会写入;跳过或失败的运行不会写入。因此,如果待办任务持续积压,冷却时间不会生效,综合处理会每个周期都运行,直到积压任务清空(#6753);它并不是每天约 2 次的上限。要限制费用,请使用 dream.synthesize.max_submissions_per_source_per_day。明确指定 --input / --date / --from / --to 的调用会绕过冷却时间。

**--dry-run 的语义:**运行带评分的分诊流程(对新文件进行判定并缓存结果),但会跳过综合子 Agent。它并非零 LLM 调用——如果要使用缓存评分进行零调用预览,请改用 gbrain dream retriage --dry-run。

在全新的 brain 上配置综合处理:

gbrain config set dream.synthesize.session_corpus_dir /path/to/transcripts
gbrain config set dream.synthesize.enabled true
gbrain dream --phase synthesize --dry-run --json   # preview
gbrain dream                                       # full cycle

调用方式:

gbrain dream                                          # full cycle
gbrain dream --phase synthesize                       # just synthesize
gbrain dream --phase patterns                         # just patterns
gbrain dream --input ~/transcripts/2026-04-25.txt     # ad-hoc one transcript
gbrain dream --from 2026-04-01 --to 2026-04-25        # backfill range
gbrain dream --json                                   # CycleReport JSON

**自动提交推迟到 v1.1:**v1 会将文件写入 brain_dir,但不会执行 git add / commit / push。你可以自行提交,也可以让 gbrain autopilot 处理。 解析 - **YYYY-MM-DD** | 来源 — 摘要 和 ### YYYY-MM-DD — 标题 格式。 来源 — 摘要 中的破折号可以是 em dash、en dash 或带空格的连字符(-); 冒号(来源: 摘要)属于正文,因此该条目仍会保留 source: markdown,并将 整段文本作为摘要。 注意:提取的条目有助于结构化查询(gbrain timeline),但不会改善向量搜索。

Autopilot 检查

验证 autopilot 是否正在运行:

gbrain autopilot --status

退出代码可用于可靠地进行门控:0 表示正常(或尚未安装), 1 表示需要处理(心跳过期、从未运行,或因迁移而暂停), 2 表示守护进程已自行禁用(其仓库路径已消失)。--json 会输出 完整报告(state、heartbeat_age_seconds、paused_reason、 disabled_reason)。状态检查仅读取文件系统,因此即使数据库不可用也能运行。

如果尚未运行,请安装:

gbrain autopilot --install --repo ~/brain

Autopilot 会在持续循环中运行 sync、extract 和 embed,并采用自适应调度。 在 v0.11.1 及更高版本中,autopilot 会将每个周期作为单个 autopilot-cycle Minion 任务进行分派,并监控工作进程子进程——只需一个安装步骤, 即可实现 sync + extract + embed + backlinks + 持久化任务处理。

修复迁移未完成的安装

在迁移技能未运行的 v0.11.0 安装中,Minions 的设置会不完整:架构已应用,但 ~/.gbrain/preferences.json 不存在,autopilot 在线程内运行,主机清单仍引用 agentTurn。修复方法:

# Check migration status
gbrain apply-migrations --list

# Apply pending migrations (idempotent; safe on healthy installs)
gbrain apply-migrations --yes

# If host-specific handlers are flagged in ~/.gbrain/migrations/pending-host-work.jsonl:
# walk them per skills/migrations/v0.11.0.md + docs/guides/plugin-handlers.md,
# ship handler registrations in the host repo, then re-run apply-migrations.

完整的故障排除指南:docs/guides/minions-fix.md。

反向链接约束

检查是否遵守反向链接铁律:

  • 对于每个近期更新的页面,检查其中提及的实体是否有对应的反向链接,指向自这些实体页面
  • 提及实体却没有反向链接,会导致知识库不完整
  • 修复方法:在实体的 Timeline 或 See Also 部分添加缺失的反向链接
  • 格式:- **YYYY-MM-DD** | 在 [页面标题](path) 中引用 -- 简要说明
归档规则违规

检查常见的错误归档模式(参见 skills/_brain-filing-rules.md):

  • 主题明确的内容被放入 sources/,而不是相应目录(people/、companies/、concepts/ 等)
  • 使用 gbrain search 查找 sources/ 中引用特定人员、公司或概念的页面——这些页面可能归档有误
  • 标记归档有误的页面,以便审核或重新归档
引用审计

抽查页面,检查是否缺少 [Source: ...] 引用:

  • 阅读 5-10 个近期更新的页面
  • 检查编纂后的事实(分隔线以上)是否带有行内引用
  • 检查时间线条目是否标明来源
  • 标记事实缺少来源信息的页面
标签一致性

标签不一致(例如,“vc”与“venture-capital”、“ai”与“artificial-intelligence”)。

  • 使用 gbrain 标签操作,将标签统一为最常见的变体
图谱填充(v0.10.3+)

links 和 timeline_entries 表构成结构化图谱层。 请定期或在大型导入后填充这些表:

  • gbrain extract links --source db — 遍历页面,回填结构化链接。 从引擎读取 [Name](people/slug) / [Name](companies/slug) 引用, 并推断关系类型(attended、works_at、invested_in、founded、 advises、mentions、source)。可幂等执行。如果你有 Markdown 检出副本, 可改用 --source fs --dir <brain> 遍历。
  • gbrain extract timeline --source db — 回填结构化时间线条目。 解析页面内容中的 - **YYYY-MM-DD** | summary 行。可幂等执行(由 DB UNIQUE 约束保证)。
  • gbrain extract all --source db — 一次运行完成以上两项。
  • gbrain graph-query <slug> --depth 2 — 验证连通性(可使用任意知名 实体 slug 进行探测)。
  • gbrain stats — 提取后确认 link_count > 0 且 timeline_entry_count > 0。
  • gbrain health — 查看实体页面(person/company)上的 link_coverage 和 timeline_coverage 百分比。低于 50% 表示还需要进一步提取。 如果知识库中的实体页面很少,这些指标会报告“样本太少,无法评估” (JSON 中为 null,并以 entity_page_count 表示分母),而不是给出 误导性的 0%/100%;请先扩充实体集合,再根据覆盖率采取行动。

可用的链接类型(与 gbrain graph-query --type 搭配使用): attended、works_at、invested_in、founded、advises、mentions、source。

今后,每次调用 gbrain put 都会通过自动链接后置钩子创建并协调链接 (默认开启;可通过 gbrain config set auto_link false 关闭)。 因此,链接提取主要只需回填一次。添加新日期条目的批量导入或内容编辑后, 应重新运行时间线提取。

功能采用情况检查(每周)
gbrain features --json    # scan for underused features + recommendations

每周与 lint 一起运行。用于发现缺失的嵌入、未使用的集成以及配置改进项。

嵌入时效性

尚未生成嵌入的分块(--stale 只会选中这些分块)。嵌入操作会调用已配置的提供方, 按 token 计费,因此这是需要先获得用户批准的付费操作:

  1. 使用 gbrain embed --stale --dry-run 进行预览,不调用提供方。
  2. 将分块数量和费用估算告知用户,并等待答复。
  3. 只有在用户同意后,才使用其批准的上限运行 gbrain embed --stale --yes --max-usd <cap>。

未经批准,命令会以退出码 3 停止,并显示要求你询问用户的 [AGENT] 块; 请转达该内容并停止。切勿自行传入 --yes。 对于长时间运行的任务(>1000 个分块),请将已批准的命令交由 skills/minion-orchestrator/SKILL.md 中的持久化阶梯处理,而不要直接使用 后台 shell,否则退出码 3 会被隐藏在日志文件中。

若要查看某个来源中搜索无法触及的内容,请运行 gbrain pages unsearchable --source <id> --json(只读)。请查看 semantic_unsearchable,而不只是 unsearchable:它还包含 keyword_only 页面,这些页面可通过关键词搜索找到,但向量搜索无法找到。awaiting_sync 统计的是同步仍在处理的文件,不受任何嵌入状态统计;请运行 gbrain sync status --source <id> --json 查看这些文件。每行都包含相应的 fix。

安全性(RLS 验证)

运行 gbrain doctor --json 并检查 RLS 状态。 所有表都应启用 RLS。如果没有,请重新运行 gbrain init。

架构健康状况

检查架构版本是否为最新版本。gbrain doctor --json 会报告当前版本与预期版本。 如果版本落后,gbrain init 会自动运行迁移。

文件存储健康状况

检查已存储文件和重定向指针的完整性:

  • 运行 gbrain files verify,检查所有 DB 记录是否都有有效数据
  • 运行 gbrain files status,查看迁移状态(本地、镜像、已重定向)
  • 检查是否存在引用了缺失存储文件的孤立 .redirect.yaml 指针
  • 检查 git 中是否仍有大型二进制文件(>= 100 MB),这些文件应存储在云端
  • 如果已配置存储后端:验证重定向指针是否可解析(下载测试)
未解决事项

超过 30 天且仍有未解决行动项的时间线条目。

  • 标记以供审核

基准测试

定期验证搜索质量是否有所下降。运行一组涵盖不同难度等级的测试 查询:

  • 等级 1(实体查找): 已知名称——应始终能找到
  • 等级 2(主题回忆): 概念、主题——关键词搜索应能处理
  • 等级 3(语义): 不含完全匹配关键词的查询——需要嵌入
  • 等级 4(跨领域): 关系/关联查询——只有语义搜索才能处理

比较 gbrain search(关键词搜索)与 gbrain query(混合搜索)的结果。 质量比速度更重要(2.5 秒得出正确结果,胜过 200 毫秒得出错误结果)。

何时运行基准测试:

  • 大规模导入或重新导入脑库后
  • 升级 gbrain 版本后
  • 重新生成嵌入后
  • 每月运行,以追踪质量变化

心跳集成

对于按计划运行的生产环境 Agent,将 gbrain 健康检查集成到 运维心跳中。

每次心跳时(每小时或每个会话)

运行 gbrain doctor --json 并检查是否出现性能下降。将未通过的检查结果 报告给用户。关键指标:连接健康状况、架构版本、RLS 状态、嵌入过时情况。

每周维护

为尚无嵌入的分块刷新嵌入,并执行与上文“嵌入时效性”相同的同意步骤: 运行 gbrain embed --stale --dry-run,转达估算结果;用户同意后,运行 gbrain embed --stale --yes --max-usd <cap>(或使用用户设置的长期 授权 consent.preapprove.paid.max_usd_per_run)。对于大型脑库(>5000 页), 通过 minion-orchestrator durable ladder 提交已获批准的命令; 如果必须在 shell 中将其置于后台运行,请保留退出代码:

(gbrain embed --stale --yes --max-usd <cap>; echo "exit=$?") > /tmp/gbrain-embed.log 2>&1 &
tail -2 /tmp/gbrain-embed.log   # later: the last line is exit=<code>

日志中的退出代码 3 表示运行需要用户批准:转达此信息并停止。

每月备份检查

运行 gbrain backup status,并转达所有红色警告。该命令会验证每个知识 仓库(以及 Agent 工作区)是否都有 git 远程仓库——仅存储在本地意味着磁盘 丢失时数据也会丢失。修复命令会直接打印出来(gbrain bootstrap repo、git remote add、 gbrain sources harden <id>)。

每日验证

验证同步是否正在运行:检查 gbrain stats,并确认 last_sync 在过去 24 小时内。如果同步已停止,脑库就会逐渐偏离仓库内容。

检测过时的编译后真相

标记编译后真相超过 30 天,但时间线中有近期条目的页面。 这意味着有新证据尚未经过综合整理。这些页面需要重写编译后真相(参见上文 维护工作流)。

报告存储

维护运行后,保存报告:

  • 健康检查结果(各维度的检查前/后评分)
  • 发现并修复的反向链接违规
  • 发现的归档规则违规
  • 标记的引用缺口
  • 基准测试结果(如已运行)
  • 需要用户处理的未解决问题

这会为脑库健康状况建立长期审计记录。

质量规则

  • 未经确认,绝不删除页面
  • 通过时间线条目记录所有更改
  • 在检查前后检查 gbrain 健康状况,以展示改进情况

失败时的处理

对于任何 gbrain 错误 code、退出代码、[AGENT] 块或通知块,请遵循Agent 操作者协议。此技能的具体要求如下:

  • 对于 gbrain doctor --remediate 中标记为“需要用户同意”的步骤(受保护的修复、付费步骤):展示计划和费用,并且只有在用户同意后,才使用 --yes --include-repairs --expect <plan_hash> --max-usd <n> 运行(哈希值来自 --remediation-plan --json);preview_changed 表示计划已变更,因此请重新预览并再次询问。超出上限的步骤不会启动。
  • 若某项发现被归类为 operator_required,请遵循其指示,或将其转交给大脑主机的操作者。若为 consent_required,请询问用户。
  • 若写入协调遭到拒绝(writer_coordinator_required、writer_not_quiesced、recovery_required),请检查 gbrain sources writer status,并将受阻的恢复操作交给操作者;绝不要声称已检出,或删除锁。
  • 若 Doctor 警告 persistence_terminal_failures:运行其 fix.command(活动阻塞项:恢复记录或同步检查点阻塞项;或者需要附上回执 ID 报告的未解决 gbrain 缺陷类别)。对于其余记录,请运行 gbrain sources writer failures <source> --group-by category(只读),按类别汇总带有修复方法的回执,并提供各组的深入排查信息;历史记录无需处理。绝不要取消或编辑回执来清除计数。操作手册:终端写入失败。
  • 若 gbrain dream 因预算耗尽而停止(退出代码为 11),请在已同意的预算范围内运行打印出的 resume_command。

反模式

  • 未先阅读页面就修复页面——编辑前必须了解上下文
  • 悄悄跳过某些维度——必须检查并报告每个维度,即使没有问题也不例外
  • 未检查孤立页面是否应改为添加链接,就将其删除
  • 在使用高峰时段刷新嵌入
  • 未验证关系是否属实,就批量修复反向链接
  • 未实际查询某个维度,就将其标记为“正常”
  • 未先阅读完整时间线,就重写已编译的事实
  • 未检查其他页面是否一致使用相同标签,就移除标签

输出格式

维护报告遵循以下结构:

## Brain Health Report — YYYY-MM-DD

| Dimension           | Issues Found | Fixed | Remaining |
|----------------------|-------------|-------|-----------|
| Stale pages          | N           | N     | N         |
| Orphan pages         | N           | N     | N         |
| Dead links           | N           | N     | N         |
| Missing cross-refs   | N           | N     | N         |
| Back-link violations | N           | N     | N         |
| Citation gaps        | N           | N     | N         |
| Filing violations    | N           | N     | N         |
| Tag inconsistencies  | N           | N     | N         |
| Embedding staleness  | N           | N     | N         |
| Security (RLS)       | N           | N     | N         |
| Schema health        | N           | N     | N         |
| File storage         | N           | N     | N         |
| Open threads         | N           | N     | N         |

### Details
[Per-dimension breakdown with specific pages and actions taken]

### Benchmark Results (if run)
[Tier 1-4 query results with pass/fail]

### Outstanding Issues
[Items requiring user attention or confirmation]

使用的工具

  • 检查 gbrain 健康状况(get_health;管理范围)
  • 在不使用管理范围的情况下检查分级大脑健康状况(get_brain_health)
  • 按筛选条件列出 gbrain 中的页面(list_pages)
  • 读取 gbrain 中的页面(get_page)
  • 检查 gbrain 中的反向链接(get_backlinks)
  • 在 gbrain 中链接实体(add_link)
  • 移除 gbrain 中的链接(remove_link)
  • 为页面添加标签(add_tag)
  • 移除标签(remove_tag)
  • 查看时间线(get_timeline)

评论

支持 Markdown