agentsclimarketplace

Analyzing changes

Skill telagod/code-abyss/skills/analyzing-changes

Give your AI coding agent a personality. Composable persona + style + skills for Claude Code, Codex, Gemini CLI & OpenClaw. Ships Tech Persona Card v1.0 spec.

Install
npx -y skills add telagod/code-abyss --skill analyzing-changes

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

What its author says it does

Copied from the file, not written here

Analyzes code changes, detects documentation drift, and evaluates change impact scope. Use when reviewing diffs, checking doc sync, or running pre-commit analysis. Automatically triggered after design-level changes or refactoring.

SKILL.md

3.3 KB, as published. Nobody here has run it

变更校验关卡

看清「改了什么、影响哪里、文档是否跟上」——是变更的体检,不是审查替代品。

何时使用

场景判据
提交前(任何代码改动)默认门禁
重构完成评估辐射面
设计级改动DESIGN.md 是否同步
PR review替代手工 diff 计数
跨模块大改看依赖图是否成环
紧急 hotfix跑,但允许文档同步延后到稳定后

三种模式

模式时机用途
working (默认)写代码过程中自检,看「我现在的工作面有哪些待整理」
stagedgit add 后、commit提交闸,看「这一 commit 的合理性」
committedcommit 完成后review,看「上一段历史改了哪些范围」

警告判定

警告触发处置
代码 >50 行 而 DESIGN.md 未更新设计层面变化未留痕补 DESIGN.md「改了什么/为何」段
代码 >30 行 而无测试更新测试覆盖滞后补单测/集成测;或在 PR 注明「该路径已有 E2E 覆盖」
新增文件而 README.md 未更新用户视角文档滞后补模块入口说明
配置变更未记录部署可能踩坑CHANGELOG / DESIGN 留迁移说明
删除文件引用可能未清理全仓 grep 文件名/导出符号

解读输出

工具产出三类信号:

  1. 文件分类 — 自动分代码/文档/测试/配置;用于判断「是否纯文档变更」
  2. 模块识别 — 把变更聚到模块边界;用于判断「跨模块改动」
  3. 影响评估 — 行数 + 文件数;用于判断「改动是否需要拆 PR」

拆 PR 的判据(基于 commit 角度):

  • 跨 ≥3 模块且无统一主题 → 拆
  • 单 commit >500 行非生成代码 → 拆
  • 一次同时改架构 + 实现 + 文档 → 通常合理(同主题)

与其他 skill 联动

使用

node scripts/change_analyzer.js                   # working(默认)
node scripts/change_analyzer.js --mode staged     # 暂存区
node scripts/change_analyzer.js --mode committed  # 已提交
node scripts/change_analyzer.js -v                # 详细
node scripts/change_analyzer.js --json            # CI 用

人工复核

工具给信号,人下结论。先读受影响模块 README/DESIGN,确认:

  • 职责边界是否仍清晰
  • 设计决策是否仍成立
  • 测试是否覆盖新路径

设计级改动须于 DESIGN.md 留痕:改了什么、为何改、影响何处。三段缺一不可。

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.