2026-06-26 02:38:35 +08:00

4.0 KiB
Raw Blame History

name, description
name description
pre-check-existing-resources 前置检查现有资源 - 在创建/修改前确认目标资源是否已存在,避免重复创建

触发方式

Claude 原触发:创建新项目、修改现有代码、添加功能模块前自动执行。在 Codex 中,用户提到该命令、技能名或相关任务时,先读取并遵循本 skill。

前置检查现有资源 (Pre-check Existing Resources)

角色

你是前置检查员,在每次执行创建或修改操作前,负责确认目标资源是否已经存在。

描述

在进行任何创建、修改操作前,必须先确认目标资源是否已经存在。避免因工具失效或假设错误导致重复创建或冲突。

输入

用户要求创建或修改任何资源时自动触发本skill。

工具使用

  • 必须使用 Glob 进行多路径搜索
  • 必须使用 Read 尝试读取关键文件确认
  • 可选使用 Bash 进行目录列表

执行步骤

Step 1: 多路径确认现有资源

禁止直接假设资源不存在

必须使用至少两种方式确认:

  1. Glob搜索(基础)

    Glob: {"pattern": "**/目标名称/**/*"}
    Glob: {"pattern": "目标名称/**"}
    
  2. 直接读取尝试(验证)

    • 尝试读取 目标路径/package.json目标路径/README.md
    • 尝试读取 目标路径/index.html目标路径/main.js
  3. 目录列表(备选)

    Bash: ls -la 目标路径/
    

Step 2: 分析搜索结果

情况 处理方式
找到现有资源 读取并理解现有结构,在此基础上修改
工具返回错误 不要假设不存在,换另一种方式确认
确认不存在 继续创建,但记录创建原因
不确定 询问用户确认

Step 3: 决策流程

用户要求创建X
    │
    ▼
尝试读取X/package.json ──→ 成功 → 读取并理解现有X
    │                         │
    失败                      ▼
    │                    在X基础上修改
    ▼
尝试读取X/README.md ────→ 成功 → 读取现有X
    │                         │
    失败                      ▼
    │                    在X基础上修改
    ▼
Bash: ls -la X/ ────────→ 有内容 → 读取现有X
    │                         │
    失败/空                   ▼
    │                    在X基础上修改
    ▼
确认X不存在
    │
    ▼
可以创建新的X

输出规范

每次执行操作前,必须输出确认结果:

现有资源检查:
- 搜索方式1 (Glob): [结果]
- 搜索方式2 (Read): [结果]
- 搜索方式3 (Bash): [结果]
- 结论: [资源已存在/资源不存在/需要用户确认]

注意事项

  1. 工具失效不等于资源不存在

    • Glob 返回 ENOENT 错误时,可能是 ripgrep 工具问题
    • 必须换 Read 或 Bash 再次确认
  2. 用户指令可能有歧义

    • "在 Dashboard 添加功能" ≠ "创建新的 Dashboard"
    • 先找现有 Dashboard找不到再询问
  3. 记录决策过程

    • 如果决定创建新资源,说明为什么确认不存在
    • 如果修改现有资源,说明找到了什么

错误示例(反面教材)

错误做法

Glob搜索失败(ENOENT) → 假设不存在 → 直接创建新资源

错误做法

用户说"在Dashboard添加功能" → 不去找现有Dashboard → 在错误位置创建新Dashboard

正确示例

正确做法

用户: "在Dashboard添加功能"

1. Glob: {"pattern": "dashboard/**/*"} → 失败
2. Glob: {"pattern": "**/dashboard/**/*"} → 失败
3. Read: {"file_path": "dashboard/package.json"} → 成功!
4. 读取现有Dashboard结构
5. 在正确位置添加功能

正确做法

工具全部失败时 → 直接询问用户:"请告诉我现有Dashboard的路径"

关联

  • file-ops 配合:确定是修改还是创建
  • codebase-analysis 配合:理解现有代码结构