# 规范执行审计细则 核心原则:规则的内容来自现场层级文件,本 reference 只提供提取、核验和处置方法。系统、用户和项目规则的授权边界高于本 skill。 ## 提取可机械核验约定 读实际生效的规则链时,找能够转成检查命令的祈使句,并记录原文出处。 | 类别 | 规则句式 | 核验证据 | |---|---|---| | 命名 | “目录必须 kebab-case” | 同级名字清单和例外条款 | | 必备文件 | “每个项目必须有 X” | 文件存在性与最小内容 | | 同源 | “A 软链/导入 B”“只编辑 B” | `readlink`、realpath、导入、加载诊断 | | 安全红线 | “密钥不进代码”“ignore 必须含 X” | tracked files、ignore 规则、secret scanner | | 目录纪律 | “根目录不放裸文件” | 根目录 manifest 与白名单 | | 声明一致 | “启动命令/URL/服务名必须真实” | package/config、服务或 live probe | | 发布流程 | “完整汇报与用户确认先于清场” | knowledge receipt、deploy marker、cleanup candidate、post-report user approval receipt | 行为偏好如“结论先行”也要遵守,但不属于结构审计结果,除非存在可验证模板或门禁。 ## 确定实际规则链 不要假设所有平台都从根目录读同一个文件: 1. 识别当前 Agent 和 `cwd`。 2. 从项目根到 `cwd` 查本平台的规则文件、override、fallback 和路径规则。 3. 再查用户/组织级规则。 4. 记录加载顺序和覆盖关系;同目录只采用平台实际会加载的文件。 5. 若项目声明 CLAUDE.md/AGENTS.md 必须同源,再核对软链或导入;没有声明时只报告分叉风险,不擅自规定方向。 ## 核验范围 - **当前项目请求**:审当前项目内容;上级规则和同级名字只读。 - **跨项目变更**:审实际受影响的 upstream/consumer 文档,先说明扩展依据。 - **整个 workspace**:用户明确授权后,逐项目做存在性、同源和规则检查;仍按风险决定是否读全文。 - **全局配置**:默认只读审计死引用、矛盾和加载漂移,不把项目细节写入全局。 ## 处置等级 先服从现场规则;如果现场没有更具体规定,用下面的默认分级。 ### 可直接修 必须同时满足:在请求范围内、安全、可逆、没有外部副作用,并且当前规则授权自动修复。例如: - 现场明确要求的软链/导入缺失; - `.gitignore` 缺少规则明文要求的敏感文件模式; - 文档里的明显笔误、确认已不存在的死链接; - 同一事实的过期摘要,可由当前代码/运行态唯一裁决。 ### 先报告再决定 - 目录或项目重命名、文件/目录删除; - 合并内容不同的规则文件且权威无法唯一确定; - 规则与稳定实践漂移,但不清楚该改规则还是实践; - 修改范围外项目、全局配置或其他人的工作区; - 停服、权限/密钥、不可逆迁移、对外消息等现场规则列出的风险动作; - 唯一证据在未合并/dirty lane 中,清理会丢失它。 ### 只读报告 - 用户明确限制为“看看/审计/报告”; - 发现问题位于请求范围外; - 平台生成文件禁止直接修改; - 事实无法验证或需要外部系统权限。 ## 规则本身的质量 同时检查: - **死引用**:路径、命令、服务、项目是否存在;跨设备路径拿不准时不能直接删。 - **矛盾**:上下级规则、override、skill 和实践是否给出互斥要求。 - **不可执行**:大量“保持整洁/注意安全”但没有判断标准。 - **重复**:同一红线在全局、项目和 skill 复制,导致未来分叉。 - **过载**:核心规则被历史叙事挤没;优先删/迁,而不是继续加目录。 - **无门禁**:同一违规第三次出现,说明散文约束不足。根据现场授权建议或实现 check/hook/test。 ## 报告要求 每条未自动修复的问题必须包含: - 证据和规则出处; - 所在范围; - 对用户或协作流程的影响; - 推荐动作; - 为什么本次没有自动执行。 不要用“发现 N 个问题”代替判断材料,也不要把范围外问题混进“项目已清洁”的结论。