Agent Skills312362115/claude › code-walkthrough

code-walkthrough

GitHub

帮助快速理解不熟悉的项目或模块,建立心智模型。通过全局扫描、分层梳理(架构、流程、细节),提炼代码意图与设计决策,适用于接手项目、重构前了解现状等场景。

skills/code-walkthrough/SKILL.md 312362115/claude

Trigger Scenarios

接手新项目 进入不熟悉的模块 重构前理解现状 Code Review 需要理解上下文

Install

npx skills add 312362115/claude --skill code-walkthrough -g -y
More Options

Use without installing

npx skills use 312362115/claude@code-walkthrough

指定 Agent (Claude Code)

npx skills add 312362115/claude --skill code-walkthrough -a claude-code -g -y

安装 repo 全部 skill

npx skills add 312362115/claude --all -g -y

预览 repo 内 skill

npx skills add 312362115/claude --list

SKILL.md

Frontmatter
{
    "name": "code-walkthrough",
    "version": "1.0.0",
    "repository": "https:\/\/github.com\/312362115\/claude",
    "description": "代码导读技能:帮助快速理解不熟悉的项目或模块,建立心智模型。 从全局架构到核心流程再到关键设计决策,分层递进地梳理代码。 不是简单地读文件列目录,而是提炼出\"这段代码在做什么、为什么这么做、和其他部分怎么连接\"。 触发词:帮我梳理一下、这块代码怎么运作的、导读、接手项目、看看这个模块、代码走读、walkthrough。 触发场景:接手新项目、进入不熟悉的模块、重构前理解现状、Code Review 需要理解上下文。 即使用户没有说\"导读\",只要意图是\"理解一段不熟悉的代码\",都应触发此技能。",
    "last_updated": 1775606400
}

代码导读(Code Walkthrough)

读代码和读书一样——先看目录了解结构,再看核心章节理解逻辑,最后看细节。 不是逐行翻译代码,而是帮读者建立"这个系统怎么运转"的心智模型。


第一步:确定导读范围和深度

导读请求
  │
  ├─ 整个项目?
  │   └─ 全局导读:项目架构 → 模块职责 → 核心流程 → 关键决策
  │
  ├─ 某个模块/目录?
  │   └─ 模块导读:模块职责 → 内部结构 → 核心逻辑 → 对外接口
  │
  └─ 某个具体功能/流程?
      └─ 流程导读:入口 → 数据流 → 关键分支 → 输出

AskUserQuestion 确认:

  • 导读目标:看什么?整个项目、某个模块、还是某个功能?
  • 导读目的:为什么要看?接手维护、准备改动、还是纯了解?
  • 已有认知:对这块代码已经了解多少?(避免输出用户已知的信息)

第二步:全局扫描

不管导读什么范围,先花 2-3 个工具调用建立全局感知:

2.1 项目全局(如果是项目/模块导读)

1. 读项目根目录结构(ls / Glob)
2. 读配置文件(package.json / pyproject.toml / tsconfig.json)
3. 读 README / CLAUDE.md / docs/(如果有)
4. 检查 git log 最近 20 条提交(了解活跃区域)

提取关键信息:

  • 技术栈:语言、框架、主要依赖
  • 项目类型:前端应用 / 后端服务 / 全栈 / CLI 工具 / 库
  • 目录组织:按功能分还是按类型分?有没有约定

2.2 目标区域

定位到导读目标后,了解:

  • 入口文件:这个模块/功能从哪里开始?
  • 文件清单:涉及哪些文件?各自大概多少行?
  • 依赖关系:依赖了什么外部模块?被谁依赖?

第三步:分层梳理

按照 架构 → 流程 → 细节 的顺序递进,每一层解决不同的问题。

Layer 1:架构层 — "系统由什么组成"

回答:这个系统/模块的整体结构是什么?各部分各司什么职?

输出格式:

## 架构概览

### 模块组成
- `src/api/` — API 路由层,接收请求、参数校验、调用 service
- `src/services/` — 业务逻辑层,核心计算和编排
- `src/models/` — 数据模型,定义实体和数据库交互
- `src/utils/` — 工具函数,无业务语义

### 依赖关系
api → services → models
         ↓
       utils

### 数据流向
请求 → 路由 → 中间件(认证/校验)→ service → model → 数据库
                                                    ↓
响应 ← 路由 ← ─────────────────────── service ← model

Layer 2:流程层 — "核心功能怎么运转"

回答:一个请求/操作从头到尾经过了哪些步骤?

选择 1-3 个最核心的流程做详细走读:

## 核心流程

### 流程 1:用户登录
1. `POST /api/login` → `src/api/auth.ts:handleLogin()`
   - 参数校验:email + password
2. → `src/services/auth.ts:login()`
   - 查询用户:`UserModel.findByEmail(email)`
   - 验证密码:`bcrypt.compare(password, user.hash)`
   - 生成 token:`jwt.sign({ userId: user.id }, secret, { expiresIn: '7d' })`
3. → 返回:`{ token, user: { id, name, email } }`

关键点:
- token 过期时间 7 天,写死在代码里(可能需要改为配置)
- 密码验证用 bcrypt,安全
- 没有登录失败次数限制

Layer 3:细节层 — "关键设计决策和隐含知识"

回答:为什么这么写?有什么不明显的约定或陷阱?

## 关键设计决策

### 决策 1:为什么用 Redis 做 session 而不是 JWT 无状态?
- 见 `docs/specs/2026-03-23-auth-session-design.md`(如果有文档)
- 或从代码推断:支持主动注销(删 Redis key 即失效)

### 决策 2:为什么 UserModel 同时用了 ORM 和 raw SQL?
- ORM 用于常规 CRUD
- raw SQL 用于复杂聚合查询(`src/models/user.ts:237` 的注释说明了原因)

## 隐含约定
- 所有 API 响应统一包装为 `{ code, data, message }` 格式(见 `src/middleware/response.ts`)
- 错误处理走全局 error handler(`src/middleware/error.ts`),不需要每个路由单独 catch
- 环境变量从 `.env` 加载,必填项在 `src/config.ts` 中校验

## 注意事项 / 潜在风险
- `src/services/order.ts:89` — 库存扣减没有并发保护
- `src/utils/cache.ts` — 缓存 key 没有 namespace,多服务共用可能冲突

第四步:输出导读文档

输出格式

根据导读深度选择输出方式:

深度 输出
快速了解(聊天中回答) 直接在对话中输出,不存文件
完整导读(需要沉淀) 写入 docs/guides/<模块名>-walkthrough.md

完整导读文档结构

# 代码导读:<模块/项目名>

> 一句话概括这个模块/项目做什么

## 技术栈
- 语言/框架/主要依赖

## 架构概览
(Layer 1 的输出)

## 核心流程
(Layer 2 的输出,1-3 个关键流程)

## 关键设计决策
(Layer 3 的输出)

## 隐含约定
(不写在代码注释里但需要知道的规则)

## 注意事项
(潜在风险、技术债、容易踩的坑)

## 相关文档
- 指向 docs/ 下的相关 spec、plan、decision

导读准则

  • 不逐行翻译:读者是开发者,能读代码。导读要提炼的是"代码没直接告诉你的东西"——架构意图、设计理由、隐含约定
  • 先宏观后微观:先给全景地图,再放大关键区域。不要一上来就钻进某个函数
  • 关注连接:模块之间怎么交互?数据怎么流转?比单个模块内部逻辑更重要
  • 标注位置:提到具体逻辑时标注 文件:行号,方便读者跳转查看
  • 诚实说不知道:如果某个设计决策从代码看不出原因,说"从代码推断可能是因为 X,但不确定",不要编理由
  • 按读者水平调整:用户说"我是 Go 高手但不懂 React",就用 Go 的类比解释 React 的概念

与其他 skill 的关系

接手新项目 → code-walkthrough(建立心智模型)
                ↓
准备改动 → refactoring(影响分析可以复用导读的架构理解)
                ↓
改动前评估 → dependency-map(导读关注"是什么",依赖分析关注"改了影响谁")

code-walkthrough vs dependency-map 的区别

  • code-walkthrough:理解代码,回答"这是什么、怎么运转、为什么这么写"
  • dependency-map:评估影响,回答"改这里会动到哪里"
  • 通常先 walkthrough 理解,再 dependency-map 评估影响

Version History

  • 2d4fa49 Current 2026-07-25 05:30

Same Skill Collection

skills/db-review/SKILL.md
skills/deep-research/SKILL.md
skills/dependency-map/SKILL.md
skills/diagram/SKILL.md
skills/docs-management/SKILL.md
skills/env-troubleshoot/SKILL.md
skills/learning-companion/SKILL.md
skills/log-analysis/SKILL.md
skills/memory/SKILL.md
skills/perf-profiling/SKILL.md
skills/preview-md/SKILL.md
skills/rapid-prototype/SKILL.md
skills/refactoring/SKILL.md
skills/release/SKILL.md
skills/security-audit/SKILL.md
skills/task-execute/SKILL.md
skills/task-finish/SKILL.md
skills/task-manager/SKILL.md
skills/task-start/SKILL.md
skills/tech-evaluation/SKILL.md
skills/writing/SKILL.md

Metadata

Files
0
Version
2d4fa49
Hash
582464af
Indexed
2026-07-25 05:30

inicio - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-08-20 05:28
浙ICP备14020137号-1 $mapa de visitantes$