بنقرة واحدة
reflect
复盘当前会话,提取可沉淀的经验。当用户要求复盘、总结经验、提取教训、回顾会话收获时使用
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
复盘当前会话,提取可沉淀的经验。当用户要求复盘、总结经验、提取教训、回顾会话收获时使用
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
归档已完成的过程文件
一键启动全自主 agent 团队,自动完成从 PRD 到验证的完整 RPIV 开发流程。brainstorm 完成后使用此命令,无需人工介入。当用户提到"自动开发"、"团队开发"、"全自主"、"biubiubiu"时触发。
通过访谈对话澄清产品需求
对指定目录/模块/skill 进行全量代码审计(不依赖 git diff)。支持逻辑、安全、性能、架构、集成与环境、可迁移性 6 个维度的审查,特别适合审计 skills 是否绑定 Claude Code、Codex、opencode 或特定机器环境。
修复手动/AI 代码审查中发现的问题的流程
在提交前运行的技术代码审查,用于质量和错误检查
استنادا إلى تصنيف SOC المهني
| name | reflect |
| description | 复盘当前会话,提取可沉淀的经验。当用户要求复盘、总结经验、提取教训、回顾会话收获时使用 |
| version | 2.3.0 |
复盘本次会话,按以下流程执行:
回溯会话中所有失败的工具调用(Bash exit code 非 0、Edit 被拒绝、API 报错等),对每个错误填表:
| 错误 | 已有规则? | 规则遵守了? | 诊断 |
|---|---|---|---|
| [错误描述] | 是/否 | 是/否 | [见下方诊断逻辑] |
诊断逻辑(互斥):
快速修复的错误也不跳过——"一次修好"不等于"不值得反思"。
回顾会话中的任务,找出成功解决的问题和遇到的障碍。
对每条候选经验,执行以下测试:
一个不了解本项目/平台的资深开发者,会犯同样的错吗?
知识类示例:python-pptx 的 _element 不是 lxml element、某 API 必须用签名 URL、Git Bash 中 bw 命令会挂起
行为约束类示例:先查 git 历史再试错、API 失败后分析错误码、代码风格遵循 PEP 8、日志用 getLogger
用 Grep 在 CLAUDE.md 和 rules/ 目录中搜索是否已有语义相近的规则。
对每条经验标注过滤结果:
| # | 经验 | 分类 | 已有规则? | 结论 |
|---|---|---|---|---|
| 1 | [描述] | 知识/行为 | 是/否 | 写入 / 硬化:hook提案 / 硬化:台账 / 已有-跳过 |
对「行为约束类」:不写入规则。但不再止于"观察项"蒸发——若它是本次会话反复出现的错误,必须按步骤 3.5 硬化分支处理(要么 hook 提案、要么进频次台账)。仅出现一次、且明显是会话内一次性锚定的,可简要记入会话总结提醒用户关注,并在台账计 1 次(见 3.5)。
reflect 的默认输出是零新规则。成功标志不是"产出 N 条规则",而是准确识别本次会话的学习是否已在事中沉淀。
每条结论为"写入"的候选经验,在进入步骤 4 前必须通过以下两项反向测试,任一项未通过则不写规则——若其本质是行为/锚定问题(尤其反向测试 #2 判定的上下文锚定),按行为类转步骤 3.5 处理(不蒸发):
为什么需要这一步:行为约束类错误("知道但没做到")写规则无效——它不是缺知识。全局 CLAUDE.md 早有「根因优先」「事实承接」「验证手段匹配问题域」等规则,但反复违反,因为规则是被动知识,在"急于给结论"那一刻不会自动跳出来拦截,且越多越稀释。对行为类,唯一有效沉淀不是规则文字,而是硬化。本步骤替代旧版"标记观察项后无后续动作"。
进入本步骤的输入:步骤 3 测试 A 判为「行为约束类」、或反向测试判定为「上下文锚定」的反复错误。逐条执行下面三段。
与反向测试 #2 一致:若该错误的多次表现都在同一次会话内、可追溯到同一前序决策 / 同一段 context 污染(典型上下文锚定),它在没有同样污染的新会话里不会重犯。这类进台账计 1 次即可,不立即升级——一次性锚定计数低,不该触发硬化。真正要硬化的是跨会话反复出现的模式。(这正是台账与反向测试 #2 的和解点:一次性的累计低、自然不升级;反复的才累积到阈值。)
记录前,先确认该模式是否已沉淀过——这是防"reflect 没进化"的闭环关键:
grep 频次台账 ~/.claude/logs/behavioral-friction.jsonl 的 pattern 字段(按稳定 slug 匹配同一模式)grep 项目 memory/ 与全局 CLAUDE.md,看是否已有相关观察
| 能否被 harness 在不依赖 LLM 的情况下机械检测(grep 工具命令 / 响应即可命中)? | 出路 |
|---|---|
能(例:PowerShell 工具传 ssh 远程命令含 $() 被本地求值 → 命令文本含 ssh + $( 可正则命中) | 产出 hook 提案:注明 hook 类型(PreToolUse / PostToolUse / UserPromptSubmit)+ 触发信号(正则 / 关键词)+ 动作(PreToolUse 经 hookSpecificOutput.additionalContext 注入提醒不阻断 / exit 2 阻断 / 写台账)。交用户确认后落地到 ~/.claude/hooks/ 并注册 ~/.claude/settings.json。现成模板:~/.claude/hooks/ssh-subexpr-local-eval-warn.sh(本 feature 试点,PreToolUse 提醒型)、root-cause-on-retry.sh(UserPromptSubmit 关键词拦截型)、neuromem-recall-gate.sh(exit 2 阻断型) |
| 不能(例:"把非目标环境当验证""反复换根因假设"——无自动探测器) | 记入行为错误频次台账(跨会话累计),到阈值由 3.5.2 自检触发升级评估。现成模板:~/.claude/hooks/powershell-friction-{collect,remind,status}.ps1 这套台账 |
行为错误频次台账与 powershell-friction 台账有本质区别,reflect 输出时须如实说明:
powershell-friction 靠 PostToolUse 自动签名扫描采集(harness 能 grep 出信号),不依赖 LLM→ 只有"能机械检测"那一类才能做成真正的 hook 强制(不依赖 LLM)。不要把认知台账当成 airtight 强制交付,否则用户会发现它照样漏,又一轮"reflect 没进化"。
~/.claude/logs/behavioral-friction.jsonl){"ts":"YYYY-MM-DDTHH:MM:SS","pattern":"<稳定 slug,跨会话计数同一模式用>","category":"mechanical|cognitive","session_hint":"<会话主题一句话>","description":"<错误一句话描述>","upgrade_candidate":true|false}
pattern 必须是稳定 slug(如 non-target-env-as-validation、switch-rootcause-without-falsify、ssh-subexpr-local-eval),同一模式复现时复用同一 slug,否则无法正确累计。目录 / 文件不存在时先创建(仿 powershell-friction-collect.ps1 的建目录逻辑)。
行为类教训不再止于"观察项"——要么 hook 提案、要么 进台账,不许蒸发。reflect 跑完,对每条行为类反复错误的输出必须是 hook 提案 或 台账记录条目(含是否到阈值升级的判定)。
将通过过滤的知识类经验抽象为简洁规则(3-5行),判断写入位置:
| 优先级 | 写入位置 | 判断标准 |
|---|---|---|
| 1. 全局 rules 文件 | ~/.claude/rules/<topic>.md | 跨项目通用,且已有同主题 rules 文件(如 python-development.md)。先 ls ~/.claude/rules/ 检查 |
| 2. 全局 CLAUDE.md | ~/.claude/CLAUDE.md | 跨项目通用,但无匹配的 rules 文件,或属于工作流偏好/协作规范 |
| 3. 项目规则 | 项目根目录 CLAUDE.md | 仅限当前项目的架构/API 特定知识 |
| 4. Auto Memory | ~/.claude/projects/*/memory/ | 参考性经验、历史决策记录 |
决策流程:全局规则优先写入已有的同主题 rules 文件(保持 CLAUDE.md 精简),只有没有匹配的 rules 文件时才写入 CLAUDE.md。