用途
Context Guardian 是一个上下文字守护技能,用于在自动压缩发生之前保存关键数据,目标是快照、完整性校验与信息零丢失。
据资料说明,Claude Code 会在上下文接近窗口上限时自动压缩旧消息。这种压缩是启发式的:它通过摘要释放空间,但不可避免地丢失细节。对简单项目这没问题,但对于重型技术项目(如包含 21+ 技能的生态、安全审计、架构重构),丢失一个细节就可能造成回归、返工或严重不一致。Context Guardian 正是为解决这一问题而存在:它建立一个“压缩前”保护层,在自动压缩破坏信息之前完成关键信息的提取、分类、校验与持久化。
它与 context-agent 互补:context-agent 作用于会话之后(保存/加载),context-guardian 作用于会话进行期间,检测压缩临近并执行带冗余校验的保护协议。
主要能力
自动触发条件
- 上下文上限:当感知到已消耗约 60-70% 的上下文窗口时(迹象包括消息开始被摘要、出现压缩提示)。
- 重型项目:编辑了大量文件、进行了大量工具调用,或组件间依赖复杂的项目。
- 长任务之前:当下一项任务可能产生大量输出、把上下文推向超出上限时。
手动触发说法
资料列出的用户请求包括:“salva o estado antes de comprimir”“faz um checkpoint”“snapshot do contexto”“nao quero perder nada dessa sessao”“prepara pra compactacao”“o contexto ta grande, protege”。
第一阶段:结构化提取
遍历截至当前的整段对话,提取关键类别,并按优先级分类(P0 = 致命丢失,P1 = 严重丢失,P2 = 可容忍丢失)。
P0——致命丢失(三重冗余保存):技术决策(架构、模式、技术选择及原因)、任务状态(已完成、待完成、依赖)、已应用的修复(缺陷、根因、确切方案、受影响文件)、生成/修改的代码(确切路径、改动行、改动性质)、遇到的错误(确切消息、相关堆栈、如何解决)、成功执行的命令(产生正确结果的完整命令)。
P1——严重丢失(校验后保存):发现的模式(约定、观察到的代码模式)、组件间依赖、用户偏好(语言、风格、详细程度、偏好工作流)、项目上下文(目录结构、关键文件、用途)、未决问题(未回答的问题、未解决的歧义)。
P2——可容忍丢失(紧凑摘要):尝试历史、进度指标、探索性讨论。
第二阶段:完整性校验
提取后进行校验,确认没有遗漏任何关键信息。校验清单包括:每个被修改文件是否都有路径、改动性质和原因;每个修复的缺陷是否都有症状、根因、方案、文件;每个决策是否都有“是什么、为什么、被弃用的备选方案”;每个待办任务是否都有描述、优先级、依赖;每个模式/约定是否都有规则、原因、示例;各节信息是否互不矛盾;交叉引用是否一致(例如“18 queries testadas”在多处出现同一数字);文件路径是否完整(绝对路径而非相对路径)。任何一项不通过,就回到第一阶段重新提取缺失信息。
第三阶段:冗余持久化
三层冗余保存:第一层为结构化快照(.md 文件),通过命令 python C:\Users\renat\skills\context-guardian\scripts\context_snapshot.py save 生成 C:\Users\renat\skills\context-guardian\data\snapshot-YYYYMMDD-HHMMSS.md;若脚本不可用,则按 references/extraction-protocol.md 中描述的格式手动创建文件。第二层为更新 MEMORY.md,把最关键的 P0 信息以超紧凑格式写入(该文件会在每次新会话自动加载,是最后一道防线)。第三层为调用 context-agent 保存:python C:\Users\renat\skills\context-agent\scripts\context_manager.py save,触发 context-agent 保存完整会话并建立 FTS5 索引。
第四阶段:过渡简报
生成一个格式化文本块,作为压缩后接续的 Claude 的“名片”。该简报应在压缩前最后写入,从而位于压缩上下文的顶部。其格式包含:当前状态(项目、阶段、进度)、本次会话已完成事项、待办事项、关键决策(无理由不得更改)、已应用修复(不得回退)、重要路径、警报、以及更多信息恢复位置(快照、MEMORY.md、context-agent load、历史搜索命令)。
快速协议(时间紧迫时)
若压缩迫在眉睫、来不及执行完整四阶段协议:30 秒写一个包含待办任务、关键决策、被修改文件路径的迷你简报;1 分钟用 P0 信息更新 MEMORY.md;2 分钟执行 context-agent save。即便快速协议也优于毫无保护。
压缩后完整性检测
会话在压缩后继续时,检查保留的上下文是否完整:读取 MEMORY.md(会自动加载)、若可用则读取 data/ 下最新的快照、并与过渡简报比对(若在压缩上下文中可见)。若发现缺口,执行 python C:\Users\renat\skills\context-agent\scripts\context_manager.py load;若仍有缺口,按词搜索:python C:\Users\renat\skills\context-agent\scripts\context_manager.py search "termo"。
使用方式
技能目录结构包括 SKILL.md、references/extraction-protocol.md、references/verification-checklist.md、scripts/context_snapshot.py。具体执行分四个阶段:结构化提取、完整性校验、冗余持久化、生成过渡简报,并在需要时使用上述脚本命令。
适用场景
资料给出的真实示例:一次长会话创建了 advogado-especialista(46KB)、修复 match_skills(新增 5 个类别)、审计安全(10 个漏洞)、生成 22 个 ZIP。若没有 context-guardian,压缩会把一切概括为“创建了法律技能、修了缺陷、生成了 zip”,下一个 Claude 无从得知新增了哪些类别、修复了哪些漏洞、每个 ZIP 的状态、以及某些决策的原因,导致返工与不一致。使用 context-guardian 后,压缩前会执行完整协议:快照列出 5 个新增类别(legal、auction、security、image-generation、monitoring)、10 个漏洞按文件/类型/确切修复编目、22 个 ZIP 带校验和验证、决策被记录(如“从 monitoring 中移除 saude,因为它造成误报”)、过渡简报置于上下文顶部,下一个 Claude 即可精确接续、零返工。
限制
资料明确警告:本技能会创建快照,并可能在剪枝时删除它们;必须确认数据目录、保留备份,并在执行 save 或 prune 前获得显式批准;绝不可假定有权修改 MEMORY.md 或用户其它上下文文件。资料还指出,集成示例使用 Windows 专用绝对路径和作者本人的路径,任何执行前都应适配并验证所有路径;脚本会创建文件,prune 操作会移除旧快照,必须要求对确切路径进行批准并保留可恢复的备份;缺少输入、权限、安全边界或成功标准时应停下并请求澄清。此外,仅在任务明确符合上述范围时使用本技能;若更简单、更专门的工具即可满足请求,或用户只需要通用协助,则不应使用。完整协议会消耗 Claude 2-5 分钟工作量,简单项目只用快速协议;不要为短会话或闲聊启用;旧快照(超过 10 个)可手动剪枝。
关联技能
context-agent——用于会话之间持久化的补充技能。