# ===========================================================================
# Rules - Validator diagnostic messages, suggestions, assumptions, fixes
# ===========================================================================
rules:
  as_001:
    message: SKILL.md 必须在 --- 标记之间包含 YAML frontmatter
    suggestion: 在 --- 标记之间添加 frontmatter
  as_002:
    message: Skill frontmatter 缺少必需的 'name' 字段
    suggestion: '在 frontmatter 中添加 ''name: your-skill-name'''
  as_003:
    message: Skill frontmatter 缺少必需的 'description' 字段
    suggestion: '在 frontmatter 中添加 ''description: Use when...'''
  as_004:
    message: 名称 '%{name}' 的每个段必须是1-64个小写字母、数字和连字符，可为 skill-name 或 plugin:skill-name
    suggestion: 转为小写并修剪每个名称段，将空格和 '_' 替换为 '-'，合并多个 '-'，删除无效字符，并将每个段截断为64个字符
    fix: '将名称转换为 kebab-case: ''%{name}'''
  as_005:
    message: 名称 '%{name}' 不能以连字符开头或结尾
    suggestion: 删除名称中的前导/尾随连字符
  as_006:
    message: 名称 '%{name}' 不能包含连续连字符
    suggestion: 将名称中的 '--' 替换为 '-'
  as_008:
    message: 描述必须为1-%{max}个字符，当前为 %{len}
    suggestion: 将描述修剪为%{max}个字符或更少
  as_009:
    message: 描述不得包含 XML 标签
    suggestion: 从描述中删除 XML 标签
  as_011:
    message: 兼容性必须为1-500个字符，当前为 %{len}
    suggestion: 将兼容性修剪为500个字符或更少
  as_012:
    message: Skill 内容超过500行（当前 %{count} 行）
    suggestion: 将额外内容移至 references/
  as_013:
    message: 文件引用 '%{path}' 深度超过一级
    suggestion: 扁平化 references/ 目录结构
  as_015:
    message: Skill 目录超过 8MB（%{size} 字节）
    suggestion: 删除大型资源或将 skill 拆分为更小的部分
  as_016:
    message: '解析 SKILL.md 失败: %{error}'
    suggestion: 检查 YAML frontmatter 语法 -- 确保正确的缩进、冒号间距和匹配的引号
  as_017:
    message: Skill 名称 '%{name}' 必须与父目录 '%{directory}' 匹配
    suggestion: 重命名 skill 目录或更新 name 字段以保持一致
  cc_sk_001:
    message: '无效模型 ''%{model}''。必须是以下之一: %{valid}'
    suggestion: '使用有效的模型值之一: %{valid}'
  cc_sk_002:
    message: 无效上下文 '%{context}'。必须是 'fork' 或省略
    suggestion: 将 context 设置为 'fork' 或完全删除该字段
  cc_sk_003:
    message: 上下文 'fork' 需要 'agent' 字段
    suggestion: '添加 ''agent: general-purpose'' 或其他有效的代理类型'
  cc_sk_004:
    message: 'agent 字段需要 ''context: fork'''
    suggestion: '在 frontmatter 中添加 ''context: fork'''
  cc_sk_005:
    message: 无效的代理类型 '%{agent}'。必须是 Explore、Plan、general-purpose 或自定义 kebab-case 名称（1-64个字符）
    suggestion: 使用内置代理（Explore、Plan、general-purpose）或自定义 kebab-case 名称
  cc_sk_006:
    message: '危险 skill ''%{name}'' 必须设置 ''disable-model-invocation: true'' 以防止意外调用'
    suggestion: '在 frontmatter 中添加 ''disable-model-invocation: true'''
  cc_sk_007:
    message: 检测到不受限制的 Bash 访问。考虑使用范围限定版本以提高安全性。
    suggestion: 使用范围限定的 Bash，如 'Bash(git:*)' 或 'Bash(npm:*)'，而不是普通 'Bash'
    fix: 将不受限制的 Bash 替换为范围限定的 Bash(git:*)
  cc_sk_008:
    message: '未知工具 ''%{tool}''。已知工具: %{known}'
    suggestion: '使用已知的 Claude Code 工具之一: %{known}'
  cc_sk_009:
    message: 动态注入过多（%{count} 个）。限制为 %{max} 个以获得更好性能
    suggestion: 考虑将复杂逻辑移至 scripts/ 目录或减少注入
  cc_sk_016:
    message: 正文使用了索引形式的 $ARGUMENTS[n]，但缺少 argument-hint
    suggestion: 在 frontmatter 中添加 argument-hint，说明应如何提供参数
  cc_sk_017:
    message: 未知的 frontmatter 字段 '%{field}'
    suggestion: 删除不受支持的字段或修正 frontmatter 键名拼写
  cr_sk_001:
    message: 字段 '%{field}' 不受 %{client} 支持 -- 将被忽略
    suggestion: 移除 '%{field}' 或将此技能移至支持它的客户端
  cl_sk_001:
    message: 字段 '%{field}' 不受 %{client} 支持 -- 将被忽略
    suggestion: 移除 '%{field}' 或将此技能移至支持它的客户端
  cp_sk_001:
    message: 字段 '%{field}' 不受 %{client} 支持 -- 将被忽略
    suggestion: 移除 '%{field}' 或将此技能移至支持它的客户端
  cx_sk_001:
    message: 字段 '%{field}' 不受 %{client} 支持 -- 将被忽略
    suggestion: 移除 '%{field}' 或将此技能移至支持它的客户端
  oc_sk_001:
    message: 字段 '%{field}' 不受 %{client} 支持 -- 将被忽略
    suggestion: 移除 '%{field}' 或将此技能移至支持它的客户端
  ws_sk_001:
    message: 字段 '%{field}' 不受 %{client} 支持 -- 将被忽略
    suggestion: 移除 '%{field}' 或将此技能移至支持它的客户端
  kr_sk_001:
    message: 字段 '%{field}' 不受 %{client} 支持 -- 将被忽略
    suggestion: 移除 '%{field}' 或将此技能移至支持它的客户端
  amp_sk_001:
    message: 字段 '%{field}' 不受 %{client} 支持 -- 将被忽略
    suggestion: 移除 '%{field}' 或将此技能移至支持它的客户端
  rc_sk_001:
    message: 字段 '%{field}' 不受 %{client} 支持 -- 将被忽略
    suggestion: 移除 '%{field}' 或将此技能移至支持它的客户端
  xp_sk_001:
    message: 技能使用了客户端特定字段 '%{field}'，该字段不属于通用 Agent Skills 规范
    suggestion: 考虑移除 '%{field}' 以提高跨平台可移植性
  cc_hk_001:
    message: '无效的 hook 事件 ''%{event}''，有效事件: %{valid}'
    fix: 将 '%{old}' 替换为 '%{new}'
  cc_hk_002:
    message: '%{location} 处的 prompt/agent hook 不支持 ''%{event}'' 事件'
    suggestion: 'prompt/agent hook 适用于 PreToolUse、PostToolUse、PostToolUseFailure、PermissionRequest、UserPromptSubmit、Stop、SubagentStop
      和 TaskCompleted。其他事件请使用 ''type'': ''command'''
  cc_hk_003:
    message: '%{location} 处的工具事件 ''%{event}'' 没有 matcher 字段；省略该字段将匹配所有工具'
    suggestion: 考虑添加 'matcher' 字段以针对特定工具（例如 'Bash'、'Read'）
  cc_hk_004:
    message: '%{location} 处的非工具事件 ''%{event}'' 不能有 matcher 字段'
    suggestion: 删除 'matcher' 字段
  cc_hk_005:
    message: '%{location} 处的 hook 缺少必需的 ''type'' 字段'
    suggestion: '添加 ''type'': ''command'' 或 ''type'': ''prompt'''
  cc_hk_006:
    message: '%{location} 处的命令 hook 缺少必需的 ''command'' 字段'
    suggestion: 添加 'command' 字段，包含要执行的命令
  cc_hk_007:
    message: '%{location} 处的 prompt hook 缺少必需的 ''prompt'' 字段'
    suggestion: 添加 'prompt' 字段，包含提示文本
  cc_hk_008:
    message: 在 '%{script}' 处未找到脚本文件（解析为 '%{resolved}'）
    suggestion: 创建脚本文件或更正路径
  cc_hk_009:
    message: '检测到潜在危险的命令模式: %{reason}'
    suggestion: '审查命令的安全性。匹配的模式: %{pattern}'
  cc_hk_010:
    command_no_timeout: '%{location} 处的命令 hook 未指定超时'
    command_no_timeout_suggestion: 添加 "timeout" 字段（例如，命令 hook 使用 600）
    command_exceeds: '%{location} 处的命令 hook 超时 %{timeout}s 超过默认值 %{default}s'
    command_exceeds_suggestion: 考虑 timeout <= %{default}s（10分钟默认限制）
    prompt_no_timeout: '%{location} 处的 prompt hook 未指定超时'
    prompt_no_timeout_suggestion: 添加 "timeout" 字段（例如，prompt hook 使用 30）
    prompt_exceeds: '%{location} 处的 prompt hook 超时 %{timeout}s 超过默认值 %{default}s'
    prompt_exceeds_suggestion: 考虑 timeout <= %{default}s（30秒默认限制）
    assumption: 假设 Claude Code 默认超时行为。在 .agnix.toml [tool_versions] 中固定 claude_code 版本以进行特定版本验证。
  cc_hk_011:
    message: '%{location} 处的超时值无效：必须是正整数'
    suggestion: 将超时设置为正整数，如 30
  cc_hk_012:
    message: '解析 hooks 配置失败: %{error}'
    suggestion: 验证 hooks 配置中的 JSON 语法 -- 检查是否缺少逗号、括号或不带引号的键
  mcp_001:
    invalid_version: 无效的 JSON-RPC 版本 '%{version}'，必须是 '2.0'
    not_string: JSON-RPC 版本必须是字符串
    suggestion: '设置 "jsonrpc": "2.0"'
  mcp_002:
    missing_name: '%{prefix}缺少必需字段 ''name'''
    missing_name_suggestion: 在工具定义中添加 'name' 字段
    missing_description: '%{prefix}缺少必需字段 ''description'''
    missing_description_suggestion: 在工具定义中添加 'description' 字段
    missing_schema: '%{prefix}缺少必需字段 ''inputSchema'''
    missing_schema_suggestion: 添加包含 JSON Schema 定义的 'inputSchema' 字段
  mcp_003:
    message: '%{prefix}无效的 inputSchema: %{error}'
    suggestion: '修复 JSON Schema 结构 -- 有效的 ''type'' 值为: string, number, integer, boolean, object, array, null'
  mcp_004:
    message: '%{prefix}工具描述太短（%{len} 个字符），应至少10个字符'
    suggestion: 添加有意义的描述，说明工具的功能
  mcp_005:
    message: '%{prefix}工具缺少同意机制（无 ''requiresApproval'' 或 ''confirmation'' 字段）'
    suggestion: '考虑为修改数据或有副作用的工具添加 ''requiresApproval: true'''
  mcp_006:
    message: '%{prefix}工具有应在信任之前验证的注解'
    suggestion: 独立验证注解值 -- 注解由服务器自我报告，可能不准确或恶意
  mcp_007:
    message: '解析 MCP 配置失败: %{error}'
    suggestion: 验证 JSON 语法 -- 检查是否缺少逗号、括号或不带引号的键
  mcp_008:
    message: 协议版本不匹配：发现 '%{found}'，期望 '%{expected}'
    request_suggestion: 考虑更新到协议版本 '%{expected}' 以获得兼容性
    response_suggestion: 服务器协商版本 '%{found}'，期望 '%{expected}'。验证兼容性。
    assumption: 使用默认 MCP 协议版本。在 .agnix.toml [spec_revisions] 中固定 mcp_protocol 以进行显式控制。
  invalid_tool: '工具 #%{num}: 无效的工具定义: %{error}'
  invalid_tool_single: '无效的工具定义: %{error}'
  invalid_tool_suggestion: '确保工具具有有效的字段类型（name: string, description: string, inputSchema: object）'
  cc_ag_001:
    message: 代理 frontmatter 缺少必需的 'name' 字段
    suggestion: '在 frontmatter 中添加 ''name: your-agent-name'''
  cc_ag_002:
    message: 代理 frontmatter 缺少必需的 'description' 字段
    suggestion: '在 frontmatter 中添加 ''description: 描述此代理的功能'''
  cc_ag_003:
    message: '无效模型 ''%{model}''。有效值: %{valid}'
    suggestion: '将模型更改为以下之一: %{valid}'
  cc_ag_004:
    message: '无效的 permissionMode ''%{mode}''。有效值: %{valid}'
    suggestion: '将 permissionMode 更改为以下之一: %{valid}'
  cc_ag_005:
    message: 引用的 skill '%{skill}' 未在 .claude/skills/%{skill}/SKILL.md 找到
    suggestion: 在 .claude/skills/%{skill}/SKILL.md 创建该 skill 或删除引用
  cc_ag_006:
    message: '工具同时出现在 ''tools'' 和 ''disallowedTools'' 中: %{conflicts}'
    suggestion: 从 'tools' 或 'disallowedTools' 中删除冲突的工具
  cc_ag_007:
    message: 代理文件必须有 YAML frontmatter
    suggestion: 在 --- 标记之间添加 frontmatter
    parse_error: '解析代理 frontmatter 失败: %{error}'
    parse_error_suggestion: 检查 YAML frontmatter 语法 -- 确保正确的缩进、冒号间距和匹配的引号
  cc_mem_004:
    message: npm 脚本 '%{script}' 在 package.json 中未找到
    suggestion_no_scripts: package.json 中未定义脚本。
    suggestion_available: '可用脚本: %{scripts}'
  cc_mem_005:
    message: 通用指令 '%{text}' - Claude 已经知道这些
    suggestion: 删除通用指令。专注于项目特定的上下文。
    fix: 删除通用指令行
  cc_mem_006:
    message: 否定指令 '%{text}' 没有积极替代方案
    suggestion: '添加积极替代方案: ''改为做...'' 或 ''使用 X 代替。'''
  cc_mem_007:
    message: 关键部分 '%{section}' 中的弱约束 '%{text}'
    suggestion: '在关键部分使用强语言: ''must''、''always''、''required''。'
    fix: 将 '%{text}' 替换为更强的语言
  cc_mem_008:
    message: 关键词 '%{keyword}' 在文档的 %{percent} 百分比处（中间区域）
    suggestion: 将关键内容移到文档的顶部或底部以获得更好的记忆效果。
  cc_mem_009:
    message: 文件超过推荐的 token 限制（约 %{tokens} tokens，限制为 %{limit}）
    suggestion: 考虑使用 @import 将内容拆分为多个文件。
  cc_mem_010:
    message: 'CLAUDE.md 与 README.md 有 %{overlap} 百分比的重叠（阈值: %{threshold} 百分比）'
    suggestion: CLAUDE.md 应补充 README，而不是复制它。删除重复的部分。
  cc_mem_011:
    message: paths 字段中的 glob 模式 '%{pattern}' 无效（第 %{index} 项）：%{error}
    suggestion: 修复 glob 模式语法。有效示例：'src/**/*.ts'、'*.rs'、'tests/**/*.test.js'
  cc_mem_012:
    message: .claude/rules 文件中的未知前置元数据键 '%{key}'
    suggestion: .claude/rules/*.md 前置元数据中只有 'paths' 是已知键。删除 '%{key}' 或检查拼写错误。
  agm_001:
    message: '无效的 markdown: %{description}'
    suggestion: 修复 markdown 语法错误 -- 检查不闭合的标签、不匹配的标题或无效的链接语法
  agm_002: null
  agm_003:
    message: '%{filename} 超过字符限制（%{chars} 个字符，最大 %{limit}，Windsurf 兼容性要求）'
    suggestion: 将内容拆分为多个文件或减少内容长度
  agm_004: null
  agm_005:
    suggestion: 在平台特定内容之前添加平台保护部分标题，如 '## %{platform} Specific'
  agm_006: null
  xml_001:
    message: 未关闭的 XML 标签 '<%{tag}>'
    suggestion: 添加关闭标签 '</%{tag}>'
    fix: 插入关闭标签 '</%{tag}>'
  xml_002:
    message: 期望 '</%{expected}>' 但发现 '</%{found}>'
    suggestion: 将 '</%{found}>' 替换为 '</%{expected}>'
  xml_003:
    message: 不匹配的关闭标签 '</%{tag}>'
    suggestion: 删除 '</%{tag}>' 或添加匹配的开始标签 '<%{tag}>'
  cc_mem_001:
    not_found: '未找到导入目标: @%{path}'
    absolute: '不允许绝对导入路径: @%{path}'
    escapes: '导入路径超出项目根目录: @%{path}'
    absolute_suggestion: 仅使用相对路径
    escapes_suggestion: 使用保持在项目根目录内的相对路径
  cc_mem_002:
    message: '检测到循环导入: %{chain}'
    suggestion: 打断循环导入链以防止无限递归
  cc_mem_003:
    message: 导入深度超限（%{depth} 级，最大 %{max}）
    suggestion: 扁平化导入层次结构以减少深度
  ref_001:
    not_found: '未找到导入目标: @%{path}'
  ref_002:
    message: '损坏的 markdown 链接: ''%{url}''（文件未找到: %{resolved}）'
    suggestion: 修复链接目标或删除损坏的链接
  cache_poison:
    message: 导入缓存锁被先前的验证器崩溃毒化；恢复的数据可能已过期
    suggestion: 验证器在持有导入缓存锁时崩溃。验证将继续使用恢复的数据，但结果可能已过期。
  xp_001:
    message: '%{filename} 中的 Claude 特有功能 ''%{feature}'': %{description}'
    suggestion: 移至 CLAUDE.md 或包装在 Claude 特定部分中（例如 '## Claude Code Specific'）
  xp_002:
    message: '%{filename} 结构问题: %{issue}'
  xp_003:
    message: 硬编码的 %{platform} 路径 '%{path}' 可能导致可移植性问题
    suggestion: 使用环境变量或相对路径以获得更好的可移植性
  xp_004:
    message: '包管理器冲突: %{file1} 使用 %{mgr1} 但 %{file2} 使用 %{mgr2} 用于 %{cmd_type} 命令'
    suggestion: 在所有指令文件中标准化使用单一包管理器
  xp_005:
    message: '工具约束冲突: ''%{tool}'' 在 %{allow_file} 中被允许但在 %{disallow_file} 中被禁止'
    suggestion: 通过一致地允许或禁止工具来解决冲突
  xp_006:
    suggestion: 记录哪个文件优先（例如 'CLAUDE.md 优先于 AGENTS.md'）
  cop_001:
    message_empty: Copilot 指令文件为空
    message_no_content: Copilot 指令文件在 frontmatter 之后没有内容
    suggestion_empty: 添加有意义的指令供 Copilot 遵循
    suggestion_scoped_empty: 添加包含 applyTo 字段和指令的 frontmatter
  cop_002:
    message_missing: 范围限定的 Copilot 指令文件缺少必需的 frontmatter
    message_invalid_yaml: '无效的 YAML frontmatter: %{error}'
    message_missing_apply_to: 范围限定的 Copilot 指令文件缺少必需的 'applyTo' 字段
    suggestion_add_frontmatter: 添加包含 --- 标记和 applyTo 字段的 YAML frontmatter
    suggestion_fix_yaml: 修复 frontmatter 中的 YAML 语法
    suggestion_add_apply_to: '添加 ''applyTo: "**/*.ts"'' 或类似的 glob 模式'
  cop_003:
    message: '无效的 glob 模式 ''%{pattern}'': %{error}'
    suggestion: 使用有效的 glob 语法，如 '**/*.ts' 或 'src/**/*.js'
  cop_004:
    message: Copilot 指令文件中未知的 frontmatter 键 '%{key}'
    suggestion: 删除未知键 '%{key}'。只认可 'applyTo' 和 'excludeAgent'。
  cop_005:
    message: '无效的 excludeAgent 值 ''%{value}''。有效值: ''code-review''、''coding-agent'''
    suggestion: 为 excludeAgent 使用 'code-review' 或 'coding-agent'
  cop_006:
    message: Copilot 指令文件超过推荐长度（%{len} 个字符，限制约 4000）
    suggestion: 减少内容长度或拆分为范围限定的指令文件
  cur_001:
    message_empty: Cursor 规则文件为空
    message_no_content: Cursor 规则文件在 frontmatter 之后没有内容
    suggestion_empty: 添加包含描述和规则内容的 frontmatter
    suggestion_no_content: 在 frontmatter 之后添加规则内容
    suggestion_legacy_empty: 向文件添加规则内容
  cur_002:
    message: Cursor .mdc 文件缺少推荐的 frontmatter
    suggestion: 添加包含 --- 标记和 description/globs 字段的 YAML frontmatter
  cur_003:
    message: '无效的 YAML frontmatter: %{error}'
    suggestion: 修复 frontmatter 中的 YAML 语法
  cur_004:
    message: '无效的 glob 模式 ''%{pattern}'': %{error}'
    suggestion: 使用有效的 glob 语法，如 '**/*.ts' 或 'src/**/*.js'
  cur_005:
    message: Cursor 规则文件中未知的 frontmatter 键 '%{key}'
    suggestion: '删除未知键 ''%{key}''。有效键为: description、globs、alwaysApply。'
  cur_006:
    message: 检测到旧版 .cursorrules 文件 - 考虑迁移到 .cursor/rules/*.mdc 格式
    suggestion: 创建 .cursor/rules/ 目录并添加带有 frontmatter 的 .mdc 文件以获得更好的组织
    legacy_empty: Cursor 规则文件为空
  cur_007:
    message: alwaysApply 为 true 但 globs 字段也已设置 - globs 是多余的
    suggestion: '移除 globs 字段，因为 alwaysApply: true 会使规则在每次聊天会话中应用，而不受文件模式限制'
  cur_008:
    message: alwaysApply 必须是布尔值（true/false），而不是带引号的字符串
    suggestion: '使用 alwaysApply: true 或 alwaysApply: false，不要加引号。YAML 将引号值解析为字符串。'
  cur_009:
    message: 代理请求的规则没有描述 - 代理无法确定何时应用它
    suggestion: 添加 description 字段说明此规则何时应用，或设置 alwaysApply 或 globs 来控制激活
  cln_001:
    message_empty: Cline 规则文件为空
    message_no_content: Cline 规则文件在 frontmatter 之后没有内容
    suggestion_empty: 向文件添加规则内容
    suggestion_no_content: 在 frontmatter 之后添加规则内容
  cln_002:
    message: '无效的 glob 模式 ''%{pattern}'': %{error}'
    suggestion: 使用有效的 glob 语法，如 '**/*.ts' 或 'src/**/*.js'
  cln_003:
    message: Cline 规则文件中未知的 frontmatter 键 '%{key}'
    suggestion: 删除未知键 '%{key}'。只有 'paths' 是已识别的 frontmatter 键。
  cln_004:
    message: Cline 会忽略标量 paths 值 - 请改用 YAML 数组
    suggestion: "将 paths 改为数组格式: paths:\n  - \"%{pattern}\""
    fix: 将标量 paths 转换为数组格式
  gm_001:
    message: '无效的 markdown: %{description}'
    suggestion: 修复 markdown 语法错误 -- 检查不闭合的标签、不匹配的标题或无效的链接语法
  gm_002:
    message: GEMINI.md 指令文件中未找到 markdown 标题
    suggestion: '添加章节标题（# 标题, ## 章节）以更好地组织内容'
  gm_003:
    message: GEMINI.md 指令文件中缺少项目上下文章节
    suggestion: 添加 '# Project' 或 '## Overview' 章节描述项目目的和技术栈
  gm_004:
    message: '无效的 hooks 配置: %{description}'
    suggestion: 检查 .gemini/settings.json 中的 hook 事件名称和必需字段（type、command）
    unknown_event: hooksConfig 中未知的 hook 事件类型 '%{event}'
    missing_field: '''%{event}'' 中的 hook 缺少必需字段 ''%{field}'''
    invalid_type: Hook 类型必须是 'command'，当前为 '%{value}'
    malformed_hook: '''%{event}'' 中的 hook 条目格式错误 - 应为包含 ''type'' 和 ''command'' 字段的对象'
  gm_005:
    message: '无效的扩展清单: %{description}'
    suggestion: '确保 gemini-extension.json 包含必需字段: name、version、description'
    missing_field: 缺少必需字段 '%{field}'
    invalid_name: 扩展名称 '%{name}' 必须是小写字母数字加连字符
    parse_error: '解析 gemini-extension.json 失败: %{error}'
  gm_006:
    message: '无效的 .geminiignore: %{description}'
    suggestion: 检查 .geminiignore 语法 - 使用 gitignore 风格的 glob 模式
    empty: .geminiignore 文件为空
    syntax_error: '第 %{line} 行的 glob 模式无效: %{pattern}'
  gm_007:
    message: '@import 引用的文件不存在: %{path}'
    suggestion: 验证导入路径相对于 GEMINI.md 文件位置是否存在
  gm_008:
    message: '无效的上下文文件名: %{description}'
    suggestion: contextFileName 应引用有效的文件名（例如以 .md 结尾）
    path_not_filename: contextFileName 应为文件名，而非路径
  gm_009:
    message: '解析 .gemini/settings.json 失败: %{error}'
    suggestion: 修复 .gemini/settings.json 中的 JSON 语法错误
    unknown_key: .gemini/settings.json 中未知的顶级键 '%{key}'
  oc_001:
    message: '无效的共享模式 ''%{value}''。有效值: ''manual'', ''auto'', ''disabled'''
    type_error: '字段 ''share'' 必须是字符串。有效值: ''manual'', ''auto'', ''disabled'''
    suggestion: 使用 'manual'、'auto' 或 'disabled' 作为 share 字段的值
  oc_002:
    not_found: 指令路径 '%{path}' 不存在
    invalid_glob: 指令路径 '%{path}' 的 glob 语法无效
    traversal: 指令路径 '%{path}' 必须是相对路径且不能包含 '..'
    type_error: 字段 'instructions' 必须是字符串数组
    suggestion: 在指令数组中使用存在的相对路径或有效的 glob 模式
  oc_003:
    message: 'opencode.json 解析错误: %{error}'
    suggestion: 修复 opencode.json 中的 JSON 语法
  cdx_000:
    message: '解析 .codex/config.toml 为 TOML 失败: %{error}'
    suggestion: 验证 TOML 语法 -- 检查是否缺少引号、括号或无效的键值对
  cdx_001:
    message: '无效的 approvalMode ''%{value}''。有效值: ''suggest'', ''auto-edit'', ''full-auto'''
    type_error: '字段 ''approvalMode'' 必须是字符串。有效值: ''suggest'', ''auto-edit'', ''full-auto'''
    suggestion: 使用 'suggest'、'auto-edit' 或 'full-auto' 作为 approvalMode 字段的值
  cdx_002:
    message: '无效的 fullAutoErrorMode ''%{value}''。有效值: ''ask-user'', ''ignore-and-continue'''
    type_error: '字段 ''fullAutoErrorMode'' 必须是字符串。有效值: ''ask-user'', ''ignore-and-continue'''
    suggestion: 使用 'ask-user' 或 'ignore-and-continue' 作为 fullAutoErrorMode 字段的值
  cdx_003:
    message: AGENTS.override.md 不应纳入版本控制
    suggestion: 将 AGENTS.override.md 添加到 .gitignore（它包含用户特定的覆盖配置）
  cdx_006:
    type_error: 字段 'project_doc_fallback_filenames' 必须是字符串数组
    non_string: 字段 'project_doc_fallback_filenames' 在索引 %{index} 处包含非字符串条目
    empty: 字段 'project_doc_fallback_filenames' 在索引 %{index} 处包含空文件名
    duplicate: 字段 'project_doc_fallback_filenames' 包含重复文件名 '%{value}'
    suspicious: 字段 'project_doc_fallback_filenames' 包含路径样式条目 '%{value}'；请仅使用文件名
    suggestion: 使用唯一且非空的文件名数组，例如 ['AGENTS.md', 'README.md']
  ws_001:
    message: Windsurf 规则文件为空
    suggestion: 向文件添加规则内容
  ws_002:
    message: Windsurf 规则文件超过 %{limit} 字符限制（%{len} 个字符）
    suggestion: 减少内容长度或拆分为多个规则文件
  ws_003_empty:
    message: Windsurf 工作流文件为空
    suggestion: 向文件添加工作流步骤
  ws_003_too_long:
    message: Windsurf 工作流文件超过 %{limit} 字符限制（%{len} 个字符）
    suggestion: 减少内容长度或拆分为多个工作流文件
  ws_004:
    message: 检测到旧版 .windsurfrules 文件
    suggestion: 迁移到 .windsurf/rules/ 目录并使用单独的 .md 文件
  kiro_001:
    message: '无效的引导文件包含模式 ''%{value}'' - 有效模式为: always, fileMatch, manual, auto'
    suggestion: '使用以下之一: always, fileMatch, manual, auto'
  kiro_002_auto:
    message: 使用 'auto' 包含模式的引导文件缺少必需字段 '%{field}'
    suggestion: '使用 inclusion: auto 时需要添加 ''name'' 和 ''description'' 字段'
  kiro_002_filematch:
    message: 使用 'fileMatch' 包含模式的引导文件缺少必需的 'fileMatchPattern' 字段
    suggestion: '添加 ''fileMatchPattern'' glob 模式（例如 fileMatchPattern: ''**/*.ts''）'
  kiro_003:
    message: '无效的 fileMatchPattern glob: %{error}'
    suggestion: 修复 glob 模式语法
  kiro_004:
    message: Kiro 引导文件为空
    suggestion: 向文件添加引导内容
  kiro_005:
    message: Kiro 引导文件包含 frontmatter，但缺少指令正文
    suggestion: 在 frontmatter 下方添加有效的引导指令
  kiro_006:
    message: 在 Kiro 引导内容中检测到潜在密钥信息（%{marker}）
    suggestion: 移除硬编码凭据，改用环境变量引用
  kiro_007:
    message: 存在 fileMatchPattern，但 inclusion 为 '%{inclusion}' 而不是 'fileMatch'
    suggestion: 将 inclusion 设为 fileMatch，或删除 fileMatchPattern
  kiro_008:
    message: 未知的 Kiro 引导 frontmatter 字段 '%{field}'
    suggestion: 仅使用受支持字段：inclusion、name、description、fileMatchPattern
  kiro_009:
    message: 内联文件引用指向不存在的路径：%{reference}
    suggestion: 修正引用路径或创建被引用文件
  kr_pw_001:
    message: POWER.md 缺少必需的 frontmatter 字段：%{fields}
    suggestion: 添加必需字段：name、description、keywords
  kr_pw_001_parse:
    message: POWER.md frontmatter YAML 无效：%{error}
    suggestion: 修复 POWER.md frontmatter 的 YAML 语法
  kr_pw_002:
    message: POWER.md 的 keywords 数组为空
    suggestion: 为 POWER.md 添加一个或多个激活关键词
  kr_pw_003:
    message: POWER.md 正文为空
    suggestion: 在 POWER.md 正文中添加 onboarding/workflow/reference 内容
  kr_pw_004:
    message: Power 相邻的 mcp.json 具有无效的 mcpServers 结构
    suggestion: 确保 mcp.json 使用对象形式的 mcpServers，并包含有效服务配置
  kr_ag_001:
    message: Kiro 代理 JSON 中存在未知字段 '%{field}'
    suggestion: 删除不受支持字段或改用文档中的 Kiro 代理字段
  kr_ag_002:
    message: 无效的 Kiro 代理资源项：%{resource}
    suggestion: '使用 file://、skill://，或带有 type: knowledgeBase 的对象资源'
  kr_ag_003:
    message: allowedTools 包含 '%{tool}'，但该工具不在 tools 中
    suggestion: 保持 allowedTools 为 tools 的子集
  kr_ag_004:
    message: 无效的 Kiro 代理 model 值 '%{model}'
    suggestion: 使用文档中的 model 值（claude-sonnet-4、claude-sonnet4.5、claude-sonnet-4-5、claude-opus4.5、claude-opus-4-5、Auto）
  kr_ag_005:
    message: 'Kiro 代理设置了 includeMcpJson: false，且没有内联 mcpServers'
    suggestion: 启用 includeMcpJson，或配置内联 mcpServers 以访问 MCP
  kr_ag_006:
    message: Kiro 代理引用了未知子代理 '@%{agent}'
    suggestion: 创建 .kiro/agents/%{agent}.json 或删除该子代理引用
  kr_ag_007:
    message: 'Kiro 代理比被引用子代理 ''@%{agent}'' 拥有更宽的工具范围（额外工具: %{extra_tools}）'
    suggestion: 收窄当前代理工具范围，或对齐 '@%{agent}' 的工具权限
  kr_hk_001:
    message: 无效的 Kiro IDE Hook 事件 '%{event}'
    suggestion: 使用以下之一：fileEdited、fileCreate、fileDelete、promptSubmit、agentStop、preToolUse、postToolUse、manual
  kr_hk_001_parse:
    message: Kiro IDE Hook 文件的 JSON 结构无效：%{error}
    suggestion: 在配置事件/动作前先修复该 Hook 文件的 JSON 语法
  kr_hk_002:
    message: Kiro 文件事件 Hook '%{event}' 缺少 patterns
    suggestion: 为 fileEdited/fileCreate/fileDelete Hook 添加 patterns
  kr_hk_003:
    message: Kiro IDE Hook 同时缺少 runCommand 和 askAgent 动作
    suggestion: 配置 runCommand 或 askAgent（顶层或 then 内）
  kr_hk_004:
    message: Kiro '%{event}' Hook 缺少 toolTypes 过滤
    suggestion: 为 preToolUse/postToolUse Hook 添加 toolTypes
  kr_hk_005:
    message: 代理 JSON 中存在无效的 Kiro CLI Hook 事件键 '%{event}'
    suggestion: 使用以下之一：agentSpawn、userPromptSubmit、preToolUse、postToolUse、stop
  kr_hk_006:
    message: Kiro CLI Hook 条目 %{event}[%{index}] 缺少必需字段 command
    suggestion: 为每个 CLI Hook 条目添加非空 command
  kr_mcp_001:
    message: Kiro MCP 服务 '%{server}' 同时缺少 command 和 url
    suggestion: 本地服务请设置 command，远程服务请设置 url
  kr_mcp_001_root:
    message: Kiro MCP 配置缺少 mcpServers 对象
    suggestion: 将 mcpServers 定义为包含一个或多个服务项的对象
  kr_mcp_001_parse:
    message: Kiro MCP 配置 JSON 结构无效：%{error}
    suggestion: 修复 JSON 语法并确保 mcpServers 为对象
  kr_mcp_002:
    message: Kiro MCP 服务 '%{server}' 在 env '%{env_key}' 中存在潜在硬编码密钥
    suggestion: 使用 ${VAR_NAME} 形式的环境变量引用，避免明文密钥
  kr_mcp_006:
    message: Kiro MCP 服务 '%{server}' 的 oauth.clientId 配置无效：%{reason}
    suggestion: 仅在 HTTP(S) 远程 MCP 服务上使用非空字符串 oauth.clientId，或移除 oauth 块
    reasons:
      oauth_object: '''oauth'' 必须是对象'
      missing_client_id: 配置 'oauth' 时必须提供 'oauth.clientId'
      client_id_string: '''oauth.clientId'' 必须是字符串'
      client_id_non_empty: '''oauth.clientId'' 不能为空'
      http_url: '''oauth.clientId'' 只能用于 HTTP(S) 远程 MCP 服务器 URL'
  cdx_pl_001:
    message: plugin.json 必须位于 .codex-plugin/ 目录中
    suggestion: 将 plugin.json 移至 .codex-plugin/plugin.json
  cdx_pl_002:
    message: '解析 plugin.json 失败: %{error}'
    suggestion: 验证 plugin.json 中的 JSON 语法 - 检查是否缺少逗号、括号或不带引号的键
  cdx_pl_003:
    message: 缺少或为空的插件名称
    suggestion: 在 plugin.json 中添加一个非空字符串的 'name' 字段
  cdx_pl_004:
    message: 无效的插件名称 '%{name}' - 必须仅包含 ASCII 字母数字、连字符或下划线
    suggestion: 重命名为仅使用 ASCII 字母、数字、连字符和下划线
  cdx_pl_005:
    message: '''%{field}'' 中的组件路径 ''%{path}'' 必须以 ./ 开头'
    suggestion: 在路径前添加 './'
  cdx_pl_006:
    message: '''%{field}'' 中的组件路径 ''%{path}'' 使用了 ''..'' 遍历'
    suggestion: 从路径中移除目录遍历
  cdx_pl_007:
    message: '''%{field}'' 中的组件路径 ''%{path}'' 是单独的 ''./''（空相对路径）'
    suggestion: 在 './' 后指定非空的相对路径
  cdx_pl_008:
    message: defaultPrompt 有 %{count} 个条目，但最多允许 3 个
    suggestion: 移除多余的 defaultPrompt 条目（最多允许 3 个）
  cdx_pl_009:
    message: defaultPrompt 条目超过 128 个字符（%{length} 个字符）
    suggestion: 将提示缩短到 128 个字符或更少
  cdx_pl_010:
    message: defaultPrompt 条目在空白规范化后为空
    suggestion: 移除空的 defaultPrompt 条目或添加内容
  cdx_pl_011:
    message: interface.%{field} 中的 URL '%{url}' 无效
    suggestion: 使用有效的 http:// 或 https:// URL
  cdx_pl_012:
    message: interface.%{field} 中的资源路径 '%{path}' 必须以 ./ 开头且不使用 '..' 遍历
    suggestion: 使用以 './' 开头的相对路径，且在插件根目录内
  cdx_pl_013:
    message: Codex 插件清单不支持 'hooks' 字段
    suggestion: 从 plugin.json 中移除 'hooks' 字段
  cdx_pl_014:
    message: 缺少 'description' 字段 - 建议添加以提高市场可见性
    suggestion: 在 plugin.json 中添加 'description' 字符串以提高可发现性
  cdx_pl_016:
    message: interface.logoDark 中的深色模式 logo 路径 '%{path}' 必须以 ./ 开头且不使用 '..' 遍历
    suggestion: 使用相对深色模式 logo 资源路径，例如 './assets/logo-dark.png'
  pe_001:
    message: 关键词 '%{keyword}' 在文档的 %{percent} 百分比处（40-60 百分比是'中间遗忘'区域）
    suggestion: 将关键内容移到文档的开头或结尾以获得更好的记忆效果
  pe_002:
    message: 思维链短语 '%{phrase}' 用于简单任务 '%{task}'
    suggestion: 对简单任务删除思维链指令；CoT 可能会降低直接操作的性能
  pe_003:
    message: 关键部分 '%{section}' 中的弱语言 '%{term}'
    suggestion: 在关键部分使用强语言（must/always/never）以获得更好的遵从性
  pe_004:
    message: 模糊术语 '%{term}' 造成不明确的指令
    suggestion: 替换为具体标准或消除歧义（例如用 'always' 代替 'usually'）
  cc_pl_001:
    message: plugin.json 必须位于 .claude-plugin/ 目录中
    suggestion: 将 plugin.json 移至 .claude-plugin/plugin.json
  cc_pl_002:
    message: 组件 '%{component}' 不得在 .claude-plugin/ 内
    suggestion: 将组件移到插件根目录
  cc_pl_003:
    message: '无效的 semver 格式: ''%{version}'''
    suggestion: '使用 semver 格式: 1.0.0, 1.0.0-rc.1, 1.0.0+build'
  cc_pl_004:
    message: '缺少或无效的必需字段: %{field}'
    suggestion: 在 plugin.json 中添加 '%{field}' 字段
  cc_pl_004_recommended:
    message: '缺少或无效的推荐字段: %{field}'
    suggestion: 建议在 plugin.json 中添加 '%{field}' 字段
  cc_pl_005:
    message: 插件名称不能为空
    suggestion: 设置非空的插件名称
  cc_pl_006:
    message: '解析 plugin.json 失败: %{error}'
    suggestion: 验证 plugin.json 中的 JSON 语法 -- 检查是否缺少逗号、括号或不带引号的键
  cc_pl_015:
    message: 默认组件文件夹 '%{component}' 存在，但 plugin.json 覆盖了 '%{component}' 且未包含 './%{component}'
    suggestion: 将 './%{component}' 添加到 '%{component}'，或将这些文件移动到配置的组件路径
  ver_001:
    message: 未固定任何工具或规范版本。依赖版本的规则将使用默认假设。
    suggestion: 在 .agnix.toml [tool_versions] 或 [spec_revisions] 中固定版本以进行确定性验证。
  file_read_error: '验证文件失败: %{error}'
  file_read_error_suggestion: 检查文件权限并确保该文件未被其他进程锁定
  xp_004_read_error: '读取指令文件失败: %{error}'
  xp_004_read_error_suggestion: 检查文件权限并确保该文件存在且可读
  invalid_glob_pattern: '忽略无效的 glob 模式 ''%{pattern}'': %{error}'
  invalid_glob_pattern_suggestion: '修复 glob 模式语法。使用标准 glob 字符: *, **, ?, [abc]'
  cc_sk_021:
    message: 硬编码的用户目录路径 '%{path}' 会泄露作者身份，且在不同机器间不可移植
    suggestion: 改用 '~/'、'$HOME/'、相对于项目的路径，或像 '$PROJECT_ROOT' 这样的环境变量。shebang 行建议使用 '#!/usr/bin/env <解释器>'。
  cln_005:
    message: Cline 工作流文件为空
    suggestion: 向文件添加工作流步骤
  cln_006:
    message: Cline 工作流文件包含 frontmatter
    suggestion: Cline 工作流应为纯 markdown，不包含 frontmatter
  cln_009:
    message: 未知的 Cline hook 事件名称 '%{event}'
    suggestion: '使用有效的 hook 事件名称: TaskStart, TaskResume, TaskCancel, TaskComplete, PreToolUse, PostToolUse, UserPromptSubmit,
      PreCompact'
  cl_sk_002:
    message: Cline 技能缺少必需的 frontmatter 'name' 字段
    suggestion: 在 SKILL.md 的 frontmatter 中添加 'name' 字段
  cl_sk_003:
    message: Cline 技能缺少必需的 frontmatter 'description' 字段
    suggestion: 在 SKILL.md 的 frontmatter 中添加 'description' 字段
  gm_010:
    message: experimental.memoryManager 已启用但未设置 experimental.autoMemory（Gemini CLI v0.40+ 已拆分这两个标志）
    suggestion: '在 memoryManager 旁同时设置 experimental.autoMemory: true，以保持 v0.40 之后后台技能提取和 /memory inbox 正常工作（参见 https://github.com/google-gemini/gemini-cli/pull/25601）'
  cdx_pl_015:
    message: '''skills'' 必须是字符串路径，而不是 %{actual}'
    suggestion: 将 'skills' 设置为相对路径字符串（如 './skills'），或移除此字段
  cc_set_006:
    message: disableBundledSkills 存在时必须是布尔值 (实际为 %{actual}); Claude Code 2.1.169+ 对该设置只记录严格的 true/false
    suggestion: 将 disableBundledSkills 设置为不带引号的 true 或 false，或改为将环境变量 CLAUDE_CODE_DISABLE_BUNDLED_SKILLS 设置为 1。
  cc_set_007:
    message: enforceAvailableModels 存在时必须是布尔值 (实际为 %{actual}); Claude Code 2.1.175+ 将该托管设置记录为严格的 true/false 开关
    suggestion: 将 enforceAvailableModels 设置为不带引号的 true 或 false，以便可预测地强制执行托管 availableModels 允许列表。
  cc_set_008:
    message: sandbox.allowAppleEvents 存在时必须是布尔值 (实际为 %{actual}); Claude Code 2.1.181+ 将该 sandbox 选项记录为严格的 true/false 开关
    suggestion: 将 sandbox.allowAppleEvents 设置为不带引号的 true 或 false，或移除此字段以让 macOS sandbox 继续阻止 Apple Events。
  cc_set_009:
    message: attribution.sessionUrl 存在时必须是布尔值 (实际为 %{actual}); Claude Code 2.1.183+ 将该归因选项记录为严格的 true/false 设置
    suggestion: 将 attribution.sessionUrl 设置为不带引号的 true 或 false。使用 false 可在 Web 或 Remote Control 会话创建的 commit 和 PR 描述中省略 claude.ai 会话链接。
  cc_set_013:
    message: autoMode.classifyAllShell 存在时必须是布尔值 (实际为 %{actual}); Claude Code 2.1.193+ 将该 auto-mode 设置记录为严格的 true/false 开关
    suggestion: 将 autoMode.classifyAllShell 设置为不带引号的 true 或 false，或移除此字段以保留默认的 auto-mode 分类器范围。


# ===========================================================================
# Core - Library messages
# ===========================================================================
core:
  error:
    file_read: '读取文件失败: %{path}'
    file_write: '写入文件失败: %{path}'
    file_symlink: '拒绝读取符号链接: %{path}'
    file_too_big: '文件太大: %{path}（%{size} 字节，限制 %{limit} 字节）'
    file_not_regular: '不是常规文件: %{path}'
    invalid_exclude: '无效的排除模式: %{pattern}（%{message}）'
    invalid_include: '无效的包含模式: %{pattern}（%{message}）'
  config:
    unknown_rule: '未知的规则 ID 模式 ''%{rule}''。期望前缀: %{prefixes}'
    unknown_rule_suggestion: 检查规则 ID 拼写或删除无效的
    unknown_tool: '未知工具 ''%{tool}''。有效工具: %{valid}'
    unknown_tool_suggestion: 使用支持的工具名称之一
    deprecated_target: 字段 'target' 已弃用
    deprecated_target_suggestion: 改用 'tools' 数组
    deprecated_mcp_version: 字段 'mcp_protocol_version' 已弃用
    deprecated_mcp_version_suggestion: 改用 'spec_revisions.mcp_protocol'
    invalid_files_pattern: '无效的文件模式 ''%{pattern}'': %{message}'
    invalid_files_pattern_suggestion: '修复 glob 模式语法。有效示例: ''docs/ai-rules/*.md'', ''**/*.rules.md'''
    files_path_traversal: 模式 '%{pattern}' 包含路径遍历 ('../')。模式必须相对于项目根目录，不能包含父目录引用。
    files_path_traversal_suggestion: 从模式中删除 '../' 并使用相对于项目根目录的路径
    files_absolute_path: 模式 '%{pattern}' 使用了绝对路径。模式必须相对于项目根目录。
    files_absolute_path_suggestion: 删除开头的 '/' 或驱动器字母并使用相对路径
    files_pattern_count_limit: 字段 '%{field}' 有 %{count} 个模式，超过了建议的 %{limit} 个上限。
    files_pattern_count_limit_suggestion: 考虑合并模式或使用更广泛的 glob 表达式
    load_warning: '解析配置 ''%{path}'' 失败: %{error}。使用默认值。'


# ===========================================================================
# CLI - Command-line interface messages
# ===========================================================================
cli:
  validating: '正在验证:'
  no_issues_found: 未发现问题
  found_errors_warnings: 发现 %{errors} 个%{error_word}, %{warnings} 个%{warning_word}
  info_messages: '  %{count} 条信息消息'
  fixable_issues: '  %{count} 个%{word}可自动修复'
  issue_is: 问题
  issues_are: 问题
  error_singular: 错误
  error_plural: 错误
  warning_singular: 警告
  warning_plural: 警告
  hint_run_fix: 使用 %{flag} 运行以应用修复
  applying_fixes: '%{mode}修复%{safe_mode}...'
  no_fixes: '  没有可应用的修复'
  would_fix: '将修复:'
  fixed: '已修复:'
  diff_label: 差异
  fix_summary: '%{action} %{count} 个%{word}'
  file_singular: 文件
  file_plural: 文件
  preview: 预览
  applying: 正在应用
  safe_only: （仅安全的）
  created: '已创建:'
  schema_written: 'Schema 已写入:'
  error_label: '错误:'
  warning_label: '警告:'
  config_warning_label: '配置警告:'
  hint_label: '提示:'
  rule_label: '规则:'
  help_label: '帮助:'
  note_label: '注意:'
  fix_label: '修复:'
  safe: 安全
  unsafe: 不安全
  fixable: '[可修复]'
  watch_error_text_only: 监视模式仅支持文本输出。
  watch_error_fix: 监视模式不能与修复标志组合使用。
  fix_error_text_only: 修复标志仅支持文本输出。删除 --format 或使用 --format text。
  evaluating: '正在评估:'
  filter_label: '  筛选:'
  per_case_results: 逐案结果
  pass: 通过
  fail: 失败
  unexpected_label: '意外:'
  missing_label: '缺少:'
  success: 成功
  failed: 失败
  all_cases_passed: 全部 %{count} 个案例通过
  cases_failed: '%{failed}/%{total} 个案例失败'
  telemetry_status: 遥测状态
  telemetry_configured: '已配置:'
  telemetry_effective: '生效:'
  telemetry_enabled: 已启用
  telemetry_disabled: 已禁用
  telemetry_env_note: 由于环境原因遥测已禁用（CI、DO_NOT_TRACK 等）
  telemetry_installation_id: '安装 ID:'
  telemetry_consent_given: '同意时间:'
  telemetry_privacy: 隐私保证
  telemetry_privacy_1: '  - 仅选择加入（默认禁用）'
  telemetry_privacy_2: '  - 从不收集文件路径或内容'
  telemetry_privacy_3: '  - 不收集用户身份'
  telemetry_privacy_4: '  - 仅收集聚合计数（文件类型、规则触发）'
  telemetry_privacy_5: '  - 尊重 DO_NOT_TRACK、CI 环境'
  telemetry_config_file: '配置文件:'
  telemetry_already_enabled: 遥测已启用。
  telemetry_ok_enabled: 遥测已启用。
  telemetry_thanks: 感谢您帮助改进 agnix！
  telemetry_collect: '我们收集什么:'
  telemetry_collect_1: '  - 文件类型计数（例如 5 个 skills、2 个 MCP 配置）'
  telemetry_collect_2: '  - 规则触发计数（例如 AS-001: 3 次）'
  telemetry_collect_3: '  - 错误/警告计数'
  telemetry_collect_4: '  - 验证持续时间'
  telemetry_never_collect: '我们从不收集:'
  telemetry_never_1: '  - 文件路径或名称'
  telemetry_never_2: '  - 文件内容或代码'
  telemetry_never_3: '  - 用户身份'
  telemetry_disable_hint: '您可以随时通过以下命令禁用遥测: %{cmd}'
  telemetry_already_disabled: 遥测已禁用。
  telemetry_ok_disabled: 遥测已禁用。
  locale_unsupported: '警告: 不支持的区域设置 ''%{locale}''，回退到 ''en'''
  watch_starting: 启动监视模式。按 Ctrl+C 停止。
  watch_changes_detected: 检测到更改。重新验证...
  watch_error: '监视错误: %{error}'
  watch_stopped: 监视模式已停止。
  schema_updated: 'Schema 已更新:'
  schema_created: 'Schema 已创建:'
  tools_check_header: 正在对照已安装的 CLI 检查 .tool_versions...
  tools_check_all_aligned: 所有已固定版本与已安装版本一致。
  tools_check_issues_found: 检测到版本漂移或缺失的 CLI。
  tools_check_strict_hint: 使用 --strict 在漂移时以非零退出（适用于 CI/pre-commit）。
  tools_check_drift_hint: 运行 `agnix tools detect --write` 以更新 .tool_versions
  tools_check_unpinned_hint: 未在 .agnix.toml 中固定
  tools_check_missing_hint: PATH 中未找到 CLI
  tools_detect_header: 正在检测已安装工具的版本...
  tools_detect_not_on_path: 不在 PATH 中
  tools_detect_none_found: 未在 PATH 中找到受支持的工具。请安装 claude、codex、cursor 或 copilot 以启用版本感知验证。
  tools_detect_snippet_header: 建议的 [tool_versions] 段：
  tools_detect_write_hint: 使用 --write 将这些合并到 .agnix.toml。
  tools_detect_wrote: '[tool_versions] 段已写入：'
  watch_error_single_path: 监视模式需要单个路径。


# ===========================================================================
# LSP - Language server protocol strings
# ===========================================================================
lsp:
  suggestion_label: '建议:'
  hover:
    name: 名称
    description: 描述
    model: 模型
    context: 上下文
    agent: 代理
    allowed_tools: 允许的工具
    argument_hint: 参数提示
    user_invocable: 用户可调用
    disable_model_invocation: 禁用模型调用
    license: 许可证
    compatibility: 兼容性
