Skip to main content
ClaudeWave
Skill80 estrellas del repoactualizado today

harness-step2-fill-docs

|

Instalar en Claude Code
Copiar
git clone --depth 1 https://github.com/simbajigege/book2skills /tmp/harness-step2-fill-docs && cp -r /tmp/harness-step2-fill-docs/skills/harness-step2-fill-docs ~/.claude/skills/harness-step2-fill-docs
Después abre una sesión nueva de Claude Code; el skill carga automáticamente.

SKILL.md

# Harness Step 2: 填充 docs/ 知识库内容

## 目标

通过深度阅读项目代码,将隐藏在代码里的架构知识、命名约定、技术决策,
显式地写入 docs/ 各文件。让 agent 在任何 session 都能快速理解项目全貌。

**核心原则**:推断出来的内容要标注来源,无法确定的内容标注「待补充」,
不要用模糊的占位符糊弄过去。

---

## 执行步骤

### Step 1:深度扫描

在写任何文档之前,先充分读懂项目。按顺序执行:

```bash
# 1. 确认 docs/ 骨架已存在
ls docs/

# 2. 读懂目录结构(3层)
find . -maxdepth 3 \
  -not -path '*/node_modules/*' -not -path '*/.git/*' \
  -not -path '*/__pycache__/*' -not -path '*/dist/*' \
  -not -path '*/.next/*' -not -path '*/build/*' | sort

# 3. 读主要入口文件
# (根据技术栈判断:main.ts / main.py / app.go / index.js 等)

# 4. 读模块边界(各主要目录的 index 文件或第一个文件)
# 目标:搞清楚每个目录的职责

# 5. 读依赖声明
cat package.json 2>/dev/null || cat pyproject.toml 2>/dev/null || \
  cat go.mod 2>/dev/null || cat Cargo.toml 2>/dev/null

# 6. 读已有文档(复用,不重复)
cat README.md 2>/dev/null
cat AGENTS.md 2>/dev/null
```

扫描目标——在写文档前,必须能回答这些问题:
- 这个项目分成哪几个主要模块?每个模块做什么?
- 代码调用链是怎样的?(UI → ? → ? → 数据层)
- 用了哪些主要的库/框架?能推断出选择原因吗?
- 文件命名有什么规律?变量命名有什么规律?
- 什么情况会导致测试失败?验收标准是什么?

---

### Step 2:写 `docs/ARCHITECTURE.md`

**写什么**:模块划分、依赖方向、主要数据流。写"是什么结构"和"为什么这样分",不写具体实现。

**⚠️ 强制要求:描述组件/模块关系前,必须验证 import**

写任何"A 被 B 使用"、"A 内嵌了 B"、"A 页面包含 C 组件"这类断言之前,
必须用 Grep 确认实际 import,不得根据文件名或目录位置猜测。

```bash
# 验证某组件是否被某页面实际引用
grep -r "ChatInterface" frontend/src/app/[locale]/book/[bookCode]/ 2>/dev/null

# 验证某组件被哪些文件实际引用
grep -rl "ComponentName" src/ 2>/dev/null
```

如果 grep 无结果,说明没有引用关系——即使组件在同一目录下也不能断言它被使用。
未经验证的关系统一标注「待验证:未找到 import,请人工确认」。

**格式模板**:

```markdown
# 架构说明

## 整体结构
[用文字描述整体分层,再用目录树辅助说明]

[目录树,只到关键层级,不要穷举所有文件]

## 依赖方向规则
[用箭头图或列表说明哪层可以引用哪层]

关键约束:
- [约束1,说明原因]
- [约束2,说明原因]

## 主要数据流
[描述最核心的 1-2 条请求/数据流,从入口到数据库]

## 待补充
- [ ] [扫描时无法确定的内容]
```

**写作要求**:
- 依赖规则要具体,不要写"保持清晰的分层"这种废话
- 每条约束附上原因("不要在 UI 层调 DB,因为……")
- 无法从代码推断的内容,明确标注「待补充:需人工确认」

---

### Step 3:写 `docs/CONVENTIONS.md`

**写什么**:从代码里归纳出来的命名规律和文件组织规律。

**扫描方法**:
```bash
# 看文件命名规律
find src -name "*.ts" -o -name "*.py" -o -name "*.go" 2>/dev/null | head -30

# 看函数/变量命名(随机抽几个文件)
head -50 [主要源文件路径]
```

**格式模板**:

```markdown
# 代码约定

## 文件命名
- [规律1]:示例 `XxxYyy.tsx`
- [规律2]:示例 `xxx-yyy.ts`

## 变量和函数命名
- 变量/函数:[规律 + 示例]
- 类/组件:[规律 + 示例]
- 常量:[规律 + 示例]

## 目录组织
[每个主要目录放什么类型的文件]

## Git Commit 格式
[从 git log 里归纳,或写推荐格式]
`type(scope): 描述`
type 可选:feat / fix / docs / refactor / test

## 待补充
- [ ] [无法从代码推断的约定]
```

**写作要求**:
- 每条规律附上从代码中观察到的实例
- 如果代码本身命名不一致,如实写出来并标注「当前不一致,建议统一为……」
- 不要发明项目里没有的约定

---

### Step 4:写 `docs/TECH_DECISIONS.md`

**写什么**:技术选型的原因。这是最难写的一份,因为原因往往不在代码里。

**扫描方法**:
```bash
# 看所有直接依赖
cat package.json | grep '"dependencies"' -A 50 2>/dev/null
# 或
cat pyproject.toml | grep -A 30 '\[tool.poetry.dependencies\]' 2>/dev/null
```

**格式模板**:

```markdown
# 技术决策记录

## [框架/库名]
**用途**:[这个库/框架用来做什么]  
**选择原因**:[能推断出的原因,或标注「待补充」]  
**替代方案**:[如果明显有替代品,列出并说明为何不选]  
**注意事项**:[使用时需要特别注意的地方]

## 待补充
- [ ] [无法从代码推断选型原因的库,需要人工说明]
```

**写作要求**:
- 只写主要的框架和库,不要把每个工具依赖都列一遍
- 能推断的写推断,推断不了的明确标「待补充:原始选型原因不明,请补充」
- 不要凭空捏造选型理由

---

### Step 5:写 `docs/QUALITY.md`

**写什么**:什么叫"完成",以及代码审查的检查清单。

**扫描方法**:
```bash
# 看测试文件的模式
find . -name "*.test.*" -o -name "*.spec.*" -o -name "*_test.*" 2>/dev/null | head -10

# 看 CI 配置(如果有)
cat .github/workflows/*.yml 2>/dev/null | head -60
```

**格式模板**:

```markdown
# 质量标准

## Definition of Done(完成的定义)
一个任务算完成,必须满足:
- [ ] 功能在本地运行正常
- [ ] 写了对应测试(覆盖正常路径 + 至少一个异常路径)
- [ ] [根据项目实际情况补充,如:类型检查通过、lint 无报错]
- [ ] git commit 信息清晰
- [ ] 如修改了架构或约定,docs/ 已同步更新

## 代码审查检查清单

**正确性**
- [ ] [项目特有的正确性检查,如:多租户隔离、权限验证]

**可维护性**
- [ ] 命名是否符合 CONVENTIONS.md?
- [ ] 有无重复代码可提取?
- [ ] 业务逻辑是否在正确的层?(见 ARCHITECTURE.md)

## 测试要求
[从现有测试文件归纳出的测试约定,或写推荐标准]

## 待补充
- [ ] [无法从代码推断的验收标准]
```

---

### Step 6:写 `docs/exec-plans/tech-debt-tracker.md`

**写什么**:扫描过程中发现的潜在问题和技术债务。

**格式**:
```markdown
# 技术债务追踪

每条格式:`[优先级: 高/中/低] 问题描述 — 影响范围`

## 当前债务
[扫描时发现的问题,诚实地写]

## 已解决
(空)
```

**判断债务的线索**:
- 重复代码(同样的逻辑在多个地方出现)
- 命名不一致(同一概念有多种叫法)
- TODO / FIXME 注释
- 过于庞大的文件(超过 300 行)
- 没有测试的核心模块

---

## 质量检验

每个文件写完后,逐一自检:

- [ ] 有没有"待补充"的地方?→ 整理成清单告知用户
- [ ] 有没有凭空捏造的内容?→ 删掉,换成「待补充」
- [ ] ARCHITECTURE.md 的依赖规则是否具体可执行?
- [ ] CONVENTIONS.md 的规律是否有代码实例支撑?
- [ ] QUALITY.md 的 DoD 是否包含项目特有的检查项?

---

## 完成后告知用户

输出摘要,包含三部分:

**已写入的内容**:列出每个文件写了什么

**需要人工确认的「待补充」清单**:
汇总所有文件里标注了「待补充」的条目,这是用户最需要关注的部分

**下一步**:
- 人工补充「待补充」的内容后,这份知识库就可以投入使用
- 之后运行 `harness-step3-state-management` skill,建立跨 session 的状态管理(progress 文件 + tasks.json)
agent-memory-implementationSkill

Restructures a chaotic or overgrown MEMORY.md into a clean 2-layer architecture based on how Claude Code's autoDream system organizes memory — a lightweight pointer index (always loaded) and topic files (loaded on demand). Stale or superseded memories are deleted or corrected in place — not archived. Use this skill whenever the user says \"clean up MEMORY.md\", \"reorganize my memory files\", \"MEMORY.md is getting too long\", \"fix my memory structure\", or when you observe that MEMORY.md exceeds 200 lines, contains full paragraphs instead of pointers, or mixes index entries with topic content.

analyzing-financial-statementsSkill

>

business-adventures-analysis-brooksSkill

Use Business Adventures for "why did this fail?", "analyze this crisis", "what pattern applies?", or "what would Brooks notice?

clash-cultures-investment-speculation-bogleSkill

Apply John Bogle stewardship capitalism logic to separate investing from

common-sense-index-investing-bogleSkill

Apply John Bogle index investing rules for low-cost funds, asset allocation,

compact-memory-implementationSkill

Developer implementation guide for adding compact memory to an Agent — covers fork agent pattern for compaction, trigger strategy, summary format design, and memory restoration in subsequent sessions. Use when a developer asks how to implement compact memory, context compression, or memory persistence in their agent built with Claude Agent SDK or Anthropic API.

contagious-viral-content-bergerSkill

Apply Jonah Berger''s STEPPS framework. Trigger on: "why is this not spreading?", "make this campaign contagious", "diagnose viral content".

contract-drafting-and-review-guidance-china-lawSkill

Apply China contract drafting review with San Guan Si Bu Fa. Trigger on contract review, drafting, clauses, or deal structure.