impact-check

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Skill: impact-check

Skill: impact-check

WHAT

是什么

Purpose và context

目的与上下文

  • Purpose: Before modifying any symbol (function, class, variable, config key), map all dependents so no callers blindsided.
  • Trigger (when to use):
    • Before editing shared utility, base class, or widely-imported module
    • Before renaming or deleting anything
    • As first step of
      safe-change
      or
      propose
  • Non-goals: không sửa code (output only); không tạo trang wiki cho symbol chưa document (chỉ ghi gap).
  • 目的: 在修改任何符号(函数、类、变量、配置键)之前,梳理所有依赖方,避免遗漏任何调用方。
  • 触发条件(何时使用):
    • 编辑共享工具、基类或被广泛导入的模块之前
    • 重命名或删除任何内容之前
    • 作为
      safe-change
      或
      propose
      的第一步
  • 非目标: 不修改代码(仅输出);不为尚未文档化的符号创建 Wiki 页面(只记录缺口)。

Mental model

心智模型

symbol → mọi reference (import · call · đọc output) → Direct / Indirect → test refs tách riêng → báo cáo + wiki gap
.
符号 → 所有引用(导入 · 调用 · 读取输出)→ Direct / Indirect → 单独列出测试引用 → 报告 + Wiki 缺口
。

Input và output contract

输入与输出约定

FieldRequired?Ý nghĩa
Insymbol(s) cần đổicófunction, class, variable, config key
Outdanh sách referencecófile path, line number, cách dùng, nhãn Direct/Indirect; zero ngoài file thì nói rõ
Outtest refscó nếu cóliệt kê riêng
Outwiki gapnếu cósymbol chưa có trong
wiki/
Outdraft output reportcó (trừ khi 0 artefact)
llmwiki/wiki/sources/draft/DDMMYY-<ten>.md
字段是否必填?含义
输入需要修改的符号是函数、类、变量、配置键
输出引用列表是文件路径、行号、使用方式、Direct/Indirect 标签;如果文件外引用数为 0,则明确说明
输出测试引用存在时必填单独列出
输出Wiki 缺口存在时必填
wiki/
中尚未文档化的符号
输出输出报告草稿是(除非产出物为 0)
llmwiki/wiki/sources/draft/DDMMYY-<ten>.md

Rules và capabilities

规则与能力

  • RULE-01 (MUST): Do not modify anything during this skill — output only.
  • RULE-02 (MUST): If codebase large, search by symbol name AND file pattern (e.g. all
    *.ts
    files).
  • RULE-03 (MUST): Do not assume symbol unused because no direct callers — check indirect dependents too.
  • Capabilities: đọc/tìm toàn codebase (text search hoặc code graph); ghi draft report + index/log wiki.
  • RULE-01 (MUST):在此 skill 执行期间不得修改任何内容——仅输出结果。
  • RULE-02 (MUST):如果代码库规模较大,必须同时按符号名称和文件模式进行搜索(例如所有
    *.ts
    文件)。
  • RULE-03 (MUST):不要因为没有直接调用方就认定符号未被使用——还必须检查间接依赖方。
  • 能力:读取或搜索整个代码库(文本搜索或代码图谱);编写草稿报告并更新 Wiki 索引和日志。

Failure boundaries

失败边界

  • Symbol mơ hồ (nhiều định nghĩa cùng tên) → clarify symbol chính xác.
  • Zero reference ngoài file → succeeded, nói rõ "0 reference ngoài file".
  • Không tìm được hết (codebase quá lớn, search lỗi) → partial, ghi phạm vi đã quét.
  • 符号含义不明确(存在多个同名定义)→ clarify 需要修改的确切符号。
  • 文件外引用数为 0 → succeeded,明确说明“文件外 0 个引用”。
  • 无法找全(代码库过大、搜索失败)→ partial,记录已扫描的范围。

HOW

如何执行

Main workflow

主工作流

StepTypeInputsActionOutputs/exitFailure/next
W01judgmentyêu cầu sửaXác định đúng symbolsymbol listmơ hồ → clarify
W02deterministicsymbolTìm mọi import/call/reference toàn codebasehitslớn → tên + file pattern
W03deterministichitsGhi file path, line, cách dùngbảng ref—
W04judgmentbảng refPhân loại Direct / Indirectref đã gắn nhãn—
W05deterministicrefBáo cáo đủ, tách test refs, zero thì nói rõbáo cáo—
W06deterministic
wiki/
Ghi gap nếu symbol chưa document (không tạo entry)gap note—
W07effectkết quảOutput Report draftdraft + index + log0 artefact → skip
Chi tiết từng bước (nguồn chân lý cho W01–W07):
  1. Identify exact symbol(s) to change.
  2. Search entire codebase for all imports, calls, references to each symbol.
  3. For each reference: note file path, line number, how it uses symbol.
  4. Classify each reference:
    • Direct — calls or imports symbol itself
    • Indirect — depends on behaviour symbol produces (e.g. reads its output)
  5. Report full list. If zero references found outside file, state explicitly.
  6. Flag any reference in test file separately — those must update or give false confidence.
  7. If symbol not yet documented in
    wiki/
    , note as gap — do not create entry now. Wiki entries only written after code committed (see
    verify-before-commit
    ).
步骤类型输入操作输出/退出失败/下一步
W01判断修改请求确定准确的符号符号列表含义不明确 → clarify
W02确定性符号在整个代码库中查找所有导入、调用和引用命中项规模较大 → 名称 + 文件模式
W03确定性命中项记录文件路径、行号和使用方式引用表—
W04判断引用表将引用分类为 Direct / Indirect已标记的引用—
W05确定性引用生成完整报告,单独列出测试引用;数量为零时明确说明报告—
W06确定性
wiki/
如果符号尚未文档化,则记录缺口(不创建条目)缺口说明—
W07效果结果生成输出报告草稿草稿 + 索引 + 日志0 个产出物 → 跳过
各步骤的详细信息(W01–W07 的唯一事实来源):
  1. 确定要修改的确切符号。
  2. 在整个代码库中搜索每个符号的所有导入、调用和引用。
  3. 对于每处引用:记录文件路径、行号及其使用符号的方式。
  4. 将每处引用分类:
    • Direct — 调用或导入符号本身
    • Indirect — 依赖该符号所产生的行为(例如读取其输出)
  5. 报告完整列表。如果在文件外未找到任何引用,请明确说明。
  6. 将测试文件中的任何引用单独标记——这些测试必须更新,否则会造成虚假的信心。
  7. 如果
    wiki/
    中尚未文档化该符号,则将其记为缺口——此时不要创建条目。仅在代码提交后编写 Wiki 条目(参见
    verify-before-commit
    )。

Branches

分支

IDKindGuardHành viSkip / failureRejoin
B01conditional_requiredcodebase lớnsearch theo tên symbol VÀ file pattern (RULE-02)—W03
B02conditional_requiredcó reference trong test fileliệt kê riêng, cảnh báo phải cập nhậtkhông có → skipW06
ID类型条件行为跳过/失败汇合点
B01conditional_required代码库规模较大同时按符号名称和文件模式进行搜索(RULE-02)—W03
B02conditional_required存在测试文件引用单独列出,并警告必须更新不存在 → 跳过W06

Validation và stopping

验证与停止条件

Dừng khi mọi hit đã có path + line + nhãn Direct/Indirect. Không kết luận "unused" chỉ vì thiếu direct caller (RULE-03). Không file code nào bị sửa.
当所有命中项均具有路径 + 行号 + Direct/Indirect 标签时停止。不能仅因缺少直接调用方就得出“未使用”的结论(RULE-03)。不得修改任何代码文件。

Examples

示例

  • Positive: đổi chữ ký
    formatDate(d)
    trong
    src/utils/date.ts
    → 12 Direct (import) + 2 Indirect (đọc chuỗi output để parse) + 3 test refs liệt kê riêng → báo cáo + draft
    DDMMYY-impact-format-date.md
    .
  • Boundary/failure: config key
    retry_limit
    không có caller trực tiếp nhưng được đọc qua
    config[key]
    động → xếp Indirect, KHÔNG báo "unused"; nếu quét không hết thì báo partial kèm phạm vi.
  • 正向示例: 修改
    src/utils/date.ts
    中
    formatDate(d)
    的签名 → 12 个 Direct(导入)+ 2 个 Indirect(读取输出字符串进行解析)+ 3 个单独列出的测试引用 → 报告 + 草稿
    DDMMYY-impact-format-date.md
    。
  • 边界/失败: 配置键
    retry_limit
    没有直接调用方,但会通过
    config[key]
    动态读取 → 归类为 Indirect,不要报告为“未使用”;如果未能完整扫描,则报告为 partial,并附上扫描范围。

Delivery — Output Report

交付——输出报告

After all main skill tasks complete, write a propose draft to the wiki.
完成所有主要 skill 任务后,向 Wiki 写入一份 propose 草稿。

Steps

步骤

1. Build the filename:
  • Format:
    DDMMYY-<ten>.md
  • DDMMYY
    = today (e.g.,
    020626
    for 2 June 2026)
  • <ten>
    = 2–4 kebab-case words summarising what was done (e.g.,
    landing-page-coteccons
    ,
    brand-kit-fintech
    ,
    ingest-auth-spec
    )
2. Write
llmwiki/wiki/sources/draft/DDMMYY-<ten>.md
:
---
type: draft
title: "DDMMYY-<ten>"
status: proposed
tags: [<skill-name>, output-report]
timestamp: YYYY-MM-DD
---
1. 构建文件名:
  • 格式:
    DDMMYY-<ten>.md
  • DDMMYY
    = 今天(例如,
    020626
    表示 2026 年 6 月 2 日)
  • <ten>
    = 2–4 个 kebab-case 单词,概括已完成的工作(例如
    landing-page-coteccons
    、
    brand-kit-fintech
    、
    ingest-auth-spec
    )
2. 写入
llmwiki/wiki/sources/draft/DDMMYY-<ten>.md
:
---
type: draft
title: "DDMMYY-<ten>"
status: proposed
tags: [<skill-name>, output-report]
timestamp: YYYY-MM-DD
---

DDMMYY-<ten>

DDMMYY-<ten>

Type: draft Status: proposed Tags: <skill-name>, output-report Proposed: YYYY-MM-DD
Type: draft Status: proposed Tags: <skill-name>, output-report Proposed: YYYY-MM-DD

What

What

<One sentence — what this skill invocation produced or decided>
<One sentence — what this skill invocation produced or decided>

Output

Output

<Key artefacts, files created/modified, or decisions made>
<Key artefacts, files created/modified, or decisions made>

Files

Files

FileAction
path/to/file
created / modified
FileAction
path/to/file
created / modified

Notes

Notes

  • Invoked via:
    /<skill-name>
    skill
  • Invoked via:
    /<skill-name>
    skill

Origin

Origin

  • Draft:
    wiki/sources/draft/DDMMYY-<ten>.md
  • Commit: (filled by verify-before-commit)
  • Date promoted: (filled by verify-before-commit)

**3. Update wiki index & log:**
- `llmwiki/wiki/index.md` — append one row: `| [DDMMYY-<ten>](sources/draft/DDMMYY-<ten>.md) | draft | YYYY-MM-DD |`
- `llmwiki/wiki/log.md` — append: `## YYYY-MM-DD — <skill-name> — <ten>`

> Skip only when the skill produces zero artefacts and zero decisions (e.g., a pure display mode like `/caveman-stats`).
  • Draft:
    wiki/sources/draft/DDMMYY-<ten>.md
  • Commit: (filled by verify-before-commit)
  • Date promoted: (filled by verify-before-commit)

**3. 更新 Wiki 索引与日志:**
- `llmwiki/wiki/index.md` — 追加一行:`| [DDMMYY-<ten>](sources/draft/DDMMYY-<ten>.md) | draft | YYYY-MM-DD |`
- `llmwiki/wiki/log.md` — 追加:`## YYYY-MM-DD — <skill-name> — <ten>`

> 仅当该 skill 未产生任何产出物和决策时才跳过(例如,像 `/caveman-stats` 这样的纯展示模式)。