ClawSkills logoClawSkills

Reflect

通过对话分析进行自我改进。从更正和成功模式中提取学习内容,提议更新代理文件或创建新技能...

介绍

# Reflect - Self-Improvement Skill

## 快速参考

| 命令 | 操作 | |---------|--------| | `/reflect` | 分析对话以获取经验 | | `/reflect on` | 启用自动反思 | | `/reflect off` | 禁用自动反思 | | `/reflect status` | 显示状态和指标 | | `/reflect review` | 审查低置信度经验 | | `/reflect [agent]` | 专注于特定代理 |

## 核心理念

**“修正一次,绝不再犯。”**

当用户修正行为时,这些修正将转化为编码到代理系统中的永久性改进——适用于所有未来的会话。

## 工作流程

### 步骤 1:初始化状态

使用状态管理器检查并初始化状态文件:

```bash # Check for existing state python scripts/state_manager.py init

# State directory is configurable via REFLECT_STATE_DIR env var # Default: ~/.reflect/ (portable) or ~/.claude/session/ (Claude Code) ```

状态包括: - `reflect-state.yaml` - 切换状态,待审查项 - `reflect-metrics.yaml` - 聚合指标 - `learnings.yaml` - 所有已应用经验的日志

### 步骤 2:扫描对话以获取信号

使用信号检测器识别经验:

```bash python scripts/signal_detector.py --input conversation.txt ```

#### 信号置信度级别

| 置信度 | 触发条件 | 示例 | |------------|----------|----------| | **高** | 显式修正 | “never”、“always”、“wrong”、“stop”、“the rule is” | | **中** | 认可的方法 | “perfect”、“exactly”、已接受的输出 | | **低** | 观察 | 有效的模式,未经验证 |

有关完整的检测规则,请参阅 [signal_patterns.md](references/signal_patterns.md)。

### 步骤 3:分类并匹配到目标文件

将每个信号映射到相应的目标:

**经验类别:**

| 类别 | 目标文件 | |----------|--------------| | 代码风格 | `code-reviewer`、`backend-developer`、`frontend-developer` | | 架构 | `solution-architect`、`api-architect`、`architecture-reviewer` | | 流程 | `CLAUDE.md`、编排代理 | | 领域 | 特定领域的代理、`CLAUDE.md` | | 工具 | `CLAUDE.md`、相关专家 | | 新技能 | `.claude/skills/{name}/SKILL.md` |

有关映射规则,请参阅 [agent_mappings.md](references/agent_mappings.md)。

### 步骤 4:检查是否具备技能资格

某些经验应成为新技能,而不是代理更新:

**技能资格标准:** - 非显而易见的调试(>10 分钟调查) - 误导性错误(根本原因与消息不同) - 通过实验发现的变通方法 - 配置洞察(与文档不同) - 可重用的模式(在类似情况下有帮助)

**质量标准(必须全部通过):** - [ ] 可重用:将有助于未来的任务 - [ ] 非平凡:需要发现,而不仅仅是查阅文档 - [ ] 具体:可以描述确切的触发条件 - [ ] 已验证:解决方案确实有效 - [ ] 无重复:尚未存在

有关技能创建指南,请参阅 [skill_template.md](references/skill_template.md)。

### 步骤 5:生成提案

按以下格式生成输出:

```markdown # Reflection Analysis

## Session Context - **Date**: [timestamp] - **Messages Analyzed**: [count] - **Focus**: [all agents OR specific agent name]

## Signals Detected

| # | Signal | Confidence | Source Quote | Category | |---|--------|------------|--------------|----------| | 1 | [learning] | HIGH | "[exact words]" | Code Style | | 2 | [learning] | MEDIUM | "[context]" | Architecture |

## Proposed Agent Updates

### Change 1: Update [agent-name]

**Target**: `[file path]` **Section**: [section name] **Confidence**: [HIGH/MEDIUM/LOW] **Rationale**: [why this change]

```diff --- a/path/to/agent.md +++ b/path/to/agent.md @@ -82,6 +82,7 @@ ## Section

* Existing rule +* New rule from learning ```

## Proposed New Skills

### Skill 1: [skill-name]

**Quality Gate Check**: - [x] Reusable: [why] - [x] Non-trivial: [why] - [x] Specific: [trigger conditions] - [x] Verified: [how verified] - [x] No duplication: [checked against]

**Will create**: `.claude/skills/[skill-name]/SKILL.md`

## Conflict Check

- [x] No conflicts with existing rules detected - OR: Warning - potential conflict with [file:line]

## Commit Message

``` reflect: add learnings from session [date]

Agent updates: - [learning 1 summary]

New skills: - [skill-name]: [brief description]

Extracted: [N] signals ([H] high, [M] medium, [L] low confidence) ```

## Review Prompt

Apply these changes? - `Y` - Apply all changes and commit - `N` - Discard all changes - `modify` - Adjust specific changes - `1,3` - Apply only changes 1 and 3 - `s1` - Apply only skill 1 - `all-skills` - Apply all skills, skip agent updates ```

### 步骤 6:处理用户响应

**当 `Y`(批准)时:** 1. 使用 Edit 工具应用每个更改 2. 对修改后的文件运行 `git add` 3. 使用生成的消息进行提交 4. 更新经验日志 5. 更新指标

**当 `N`(拒绝)时:** 1. 丢弃建议的更改 2. 记录拒绝情况以供分析 3. 询问用户是否要修改任何信号

**当 `modify`(修改)时:** 1. 单独展示每个更改 2. 允许编辑建议的添加内容 3. 应用前重新确认

**当 selective(选择性,例如 `1,3`)时:** 1. 仅应用指定的更改 2. 记录部分接受情况 3. 仅提交已应用的更改

### 步骤 7:更新指标

```bash python scripts/metrics_updater.py --accepted 3 --rejected 1 --confidence high:2,medium:1 ```

## 切换命令

### 启用自动反思

```bash /reflect on # Sets auto_reflect: true in state file # Will trigger on PreCompact hook ```

### 禁用自动反思

```bash /reflect off # Sets auto_reflect: false in state file ```

### 检查状态

```bash /reflect status # Shows current state and metrics ```

### 审查待处理项

```bash /reflect review # Shows low-confidence learnings awaiting validation ```

## 输出位置

**项目级别(与 repo 一起版本控制):** - `.claude/reflections/YYYY-MM-DD_HH-MM-SS.md` - 完整反思 - `.claude/reflections/index.md` - 项目摘要 - `.claude/skills/{name}/SKILL.md` - 新技能

**全局(用户级别):** - `~/.claude/reflections/by-project/{project}/` - 跨项目 - `~/.claude/reflections/by-agent/{agent}/learnings.md` - 每个代理 - `~/.claude/reflections/index.md` - 全局摘要

## 记忆集成

某些经验属于 **自动记忆** (`~/.claude/projects/*/memory/MEMORY.md`),而不是代理文件:

| 经验类型 | 最佳目标 | |---------------|-------------| | 行为修正(“始终做 X”) | 代理文件 | | 项目特定模式 | MEMORY.md | | 反复出现的错误/变通方法 | 新技能 或 MEMORY.md | | 工具偏好 | CLAUDE.md | | 领域知识 | MEMORY.md 或 复合文档 |

当信号置信度较低且特定于项目时,优先写入 MEMORY.md,而不是修改代理。

## 安全防护

### 人在回路 - 绝不未经用户明确批准即应用更改 - 应用前始终显示完整差异 - 允许选择性应用

### Git 版本控制 - 所有更改都附带描述性消息进行提交 - 通过 `git revert` 轻松回滚 - 保留经验历史

### 增量更新 - 仅添加到现有部分 - 绝不删除或重写现有规则 - 保留原始结构

### 冲突检测 - 检查建议的规则是否与现有规则冲突 - 如果检测到冲突,警告用户 - 建议解决策略

## 集成

### 与 /handover 集成 如果启用了自动反思,PreCompact 钩子将在交接之前触发反思。

### 与会话健康度集成 当上下文达到 70% 以上(黄色状态)时,会注入运行 `/reflect` 的提醒。

### 钩子集成 该技能包含用于自动集成的钩子脚本:

```bash # Install hook to your Claude hooks directory cp hooks/precompact_reflect.py ~/.claude/hooks/ ```

在 `~/.claude/settings.json` 中配置:

```json { "hooks": { "PreCompact": [ { "hooks": [ { "type": "command", "command": "uv run ~/.claude/hooks/precompact_reflect.py --auto" } ] } ] } } ```

有关完整的配置选项,请参阅 [hooks/README.md](hooks/README.md)。

## 可移植性

此技能适用于任何支持以下功能的 LLM 工具: - 文件读/写操作 - 文本模式匹配 - Git 操作(可选,用于提交)

### 可配置的状态位置

```bash # Set custom state directory export REFLECT_STATE_DIR=/path/to/state

# Or use default # ~/.reflect/ (portable default) # ~/.claude/session/ (Claude Code default) ```

### 无任务工具依赖 与以前的基于代理的方法不同,此技能直接执行,无需生成子代理。LLM 读取 SKILL.md 并遵循工作流程。

### Git 操作可选 提交操作包含可用性检查——如果不在 git 仓库中,更改仍会保存,但不会提交。

## 故障排除

**未检测到信号:** - 会话可能没有修正 - 尝试 `/reflect review` 检查待处理项

**冲突警告:** - 查看引用的现有规则 - 确定新规则是否应覆盖 - 可以在应用前修改

**找不到代理文件:** - 检查代理名称拼写 - 使用 `/reflect status` 查看可用目标 - 可能需要先创建代理文件

## 文件结构

``` reflect/ ├── SKILL.md # This file ├── scripts/ │ ├── state_manager.py # State file CRUD │ ├── signal_detector.py # Pattern matching │ ├── metrics_updater.py # Metrics aggregation │ └── output_generator.py # Reflection file & index generation ├── hooks/ │ ├── precompact_reflect.py # PreCompact hook integration │ ├── settings-snippet.json # Settings.json examples │ └── README.md # Hook configuration guide ├── references/ │ ├── signal_patterns.md # Detection rules │ ├── agent_mappings.md # Target mappings │ └── skill_template.md # Skill generation └── assets/ ├── reflection_template.md # Output template └── learnings_schema.yaml # Schema definition ```

更多产品