其他
发现重复模式、用户纠正或非显而易见发现时…
在开发会话中把未确认假设、用户确认纠正和非显然发现分别写入 instincts、MEMORY.md 和 learning-log,并按置信度行动。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 49/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 85/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 60/100 ×0.15
适用场景
发现重复模式、用户纠正或非显而易见发现时通用
解决思路
- 识别触发场景:会话开始、注意到重复模式、用户纠正输出、用户说 remember/always/never、或发现非显而易见发现时,启动 instinct-system。
- 执行三层路由:未确认假设 → .claude/instincts.md(0.3);用户纠正 → MEMORY.md 立即泛化;非显而易见发现 → .claude/learning-log.md。每条信号只进一个存储层,绝不混层。
- 将 instincts 当作假设而非规则:单次观察起于 0.3,确认前无权威;用 confidence 0.3-0.9 驱动行为:0.3 记录、0.5 提及、0.7 遵循、0.9 晋升。
- 把用户纠正视为全置信度已确认 instinct:跳过确认周期,泛化教训,立即写入 MEMORY.md 并记录 why,然后向用户确认已捕获。
- 保持项目范围:instincts 按项目存放,绝不全局;跨项目只能通过 export/import 并衰减 confidence,绝不全置信度传输。
- 会话开始 review:写代码前读 MEMORY.md 并应用规则;读 .claude/instincts.md 加载 0.7+ 作为默认,注意 0.5-0.6;扫描近期 learning-log 中与工作区域相关的条目;标记 10+ 会话未观察的 stale instincts 待 review。
- 定期 prune:当三处存储膨胀时审计——删除 stale instincts、合并重复规则、review 未读日志;保持 instincts 少于 50 条 active entries。
- Tier Routing:模式观察到但未确认(「I think they always...」)→ .claude/instincts.md at 0.3,直到晋升或丢弃。
- Tier Routing:用户纠正(「no, use X」、「don't do that again」、「remember this」)→ MEMORY.md immediately,泛化,永久直到被证明错误。
- Tier Routing:instinct 达到 0.9 → 晋升到 MEMORY.md,并从 instincts 中移除。
- Tier Routing:非显而易见发现(bug root cause、gotcha、workaround、perf finding)→ .claude/learning-log.md,保留 3-6 个月后 archive 或 promote。
- Tier Routing:同一 gotcha 记录 3+ 次 → 晋升到 MEMORY.md 作为 preventive rule。
- Tier Routing:会话状态(done/pending)→ 通过 wrap-up handoff,不属于本系统。
- Instinct 生命周期 OBSERVE:问「This handler is internal sealed class. Convention?」。
- HYPOTHESIZE:写入 .claude/instincts.md,confidence 0.3,格式如 `- Use `sealed` on handler classes | confidence: 0.3 | seen: 1 | last: 2026-06-12`。
- SEEK:主动检查 2-3 个相关文件(find_symbol、get_public_api);被动观察不够。
- ADJUST:确认则按调整轨道提高;矛盾则 confidence 减半并记录例外;混合则保持稳定并记录分歧。
- PROMOTE:达到 0.9 时呈现证据并提议晋升到 MEMORY.md。
- Instinct 存储格式:.claude/instincts.md 按 category 分组并带结构化 metadata,例如 `# Project Instincts ## Code Style [0.7] - Use `sealed` on all handler classes | confidence: 0.8 | seen: 5 | last: 2026-06-12 - Prefix private fields with underscore | confidence: 0.5 | seen: 2 | last: 2026-06-10 ## Architecture [0.7] - Feature folders use singular names | confidence: 0.7 | seen: 4 | last: 2026-06-12`。
- Category header `[0.7]` 表示平均 confidence;标准 categories:Code Style、Architecture、Naming、Testing、Data Access、API Design、Configuration、Performance、Tooling。
- Confidence 调整规则:不要 ad-hoc scoring,严格按轨道——CONFIRMATION: 1st observation → 0.3 | 2nd → 0.5 | 3rd → 0.7 | 4th → 0.8 | 5th+ 且零矛盾 → 0.9(promotion candidate)。
- CONTRADICTION:任何矛盾 → 当前 confidence 减半(0.7 → 0.35);连续两次 → 0.1(实际上死亡)。
- USER OVERRIDE:显式确认 → 0.8;显式纠正 → 0.0(移除,改写入 MEMORY.md);「Sometimes」→ cap at 0.5。
- STALENESS:10+ 会话无观察 → 标记 review;被矛盾且 5 会话未再确认 → 移除。
- 按 confidence 行动:0.0–0.2 IGNORE 不提;0.3–0.4 NOTE 内部记录不应用;0.5–0.6 MENTION 询问是否遵循;0.7–0.8 FOLLOW 默认应用并在首次使用时提及;0.9 PROMOTE 提议加入 MEMORY.md。绝不在低于 0.7 时静默应用 instinct。
- Correction Capture DETECT:识别用户纠正信号。
- ACKNOWLEDGE:例如「Got it — HybridCache instead of IMemoryCache.」。
- GENERALIZE:从具体「Don't use IMemoryCache in the Orders endpoint」泛化为「Always use HybridCache over IMemoryCache — stampede protection + L1/L2 out of the box.」;问是否特定于文件、层或底层原则;存储最广的正确表述。
- CHECK:扫描 MEMORY.md 找重叠,更新已有规则而不是添加近似重复。
- STORE:写入正确 category,一行,rationale 放在破折号后;如存在匹配 instinct 则移除,因为它刚 graduated。
- CONFIRM:例如「Added to Memory > Data Access: HybridCache over IMemoryCache.」。
- MEMORY.md 格式:与 instincts 相同 categories,每行一条可执行规则,例如 `## Data Access - Always use HybridCache over IMemoryCache — stampede protection + L1/L2 - Never use repository pattern over EF Core — use DbContext directly`。
- Discovery Logging:发现时立即写入 .claude/learning-log.md;2 行即时条目胜过事后重构段落。
- Learning-log entry 格式:`## 2026-06-12 | Gotcha | MassTransit Consumer Registration Order Matters Multiple consumers for one message type run in registration order; if the first throws, the rest are skipped. Caused missed audit events. **Files:** `src/Shared/Extensions/MassTransitConfig.cs:15-30` **Resolution:** Independent consumer endpoints or the retry filter.`。
- 只在命中这些 triggers 时记录:Bug Root Cause、Architecture Decision、Gotcha、Performance Discovery、Pattern Found、External Service。
- 将这些 trigger 名称原样作为 category vocabulary 使用;例行的、无意外发生的变更不记录。
- Session-Start Loading 1:读 MEMORY.md,主动应用规则,不等提醒。
- Session-Start Loading 2:读 .claude/instincts.md,加载 0.7+ 作为默认,记录 0.5–0.6。
- Session-Start Loading 3:扫描近期 learning-log 中正在工作的领域。
- Session-Start Loading 4:标记 stale instincts(10+ 会话无观察)供 review。
- Status 模式:读 .claude/instincts.md;解析每个条目的 metadata。
- Status 模式:按 confidence 降序排序,按 category 分组,渲染为表格:instinct | confidence | category | status(new / stable / reinforced / decaying / promotion candidate)。
- Status 模式:汇总健康度——总数、平均 confidence、最近 reinforced vs decaying、冲突 instincts。
- Export 模式:读 .claude/instincts.md;过滤 confidence > 0.7(阈值可配置)。
- Export 模式:移除项目特定上下文(文件路径、行号),保留模式本身。
- Export 模式:写入 .claude/instincts-export.md,带 portable metadata。
- Export 模式:报告导出了什么、跳过了什么(低于阈值),以及输出路径。
- Import 模式:读取导出文件(用户提供路径或 .claude/instincts-export.md)和当前 .claude/instincts.md。
- Import merge:无本地匹配 → 添加时 confidence 衰减 0.2(0.9 → 0.7);绝不导入高于 0.7;标记 `source: imported from [project]`。
- Import merge:匹配的 instinct 存在 → 保留较高 confidence,标记 reinforced。
- Import merge:冲突的 instinct 存在 → 将两者呈现给用户解决;不要自动覆盖本地证据。
- Import 模式:写入合并结果并报告 imported / merged / conflicts;每个项目必须在本地确认导入的模式。
- Anti-pattern 避免过度识别:不要因首次观察就当成规则;先建立 0.3 hypothesis,再主动确认;如 `Noticed internal sealed in CreateOrderHandler. Instinct at 0.3. Checking 3 more handlers... All public → Disconfirmed. Discarding.`。
- Anti-pattern 避免只修不捕获:修正后同时捕获到 MEMORY.md,例如「Fixed. Added to Memory > Data Access: Always use HybridCache over IMemoryCache.」。
- Anti-pattern 避免记录一切:只有非显而易见内容才值得条目;例如 `## 2026-06-12 | Gotcha | Primary Constructor Params Captured as Fields Declaring an explicit field with the same name warns but compiles — and the two can silently diverge.`,而单纯「Used Primary Constructors」不记录。
- Anti-pattern 避免只写不读:定期审计;移除低于 0.2 或 stale 10+ 会话的 instincts;MEMORY.md 超过 50 条规则时合并/修剪;每约 20 条 log entries 晋升重复发现并 archive stale;保持 instincts 少于 50 条 active entries。
- Decision:第一次看到模式 → Instinct at 0.3,并检查 2-3 个相关文件。
- Decision:模式出现 3+ 次且无矛盾 → 提升到 0.7,默认遵循。
- Decision:模式被矛盾 → confidence 减半,记录例外。
- Decision:用户说「we always do X」→ Instinct at 0.8(用户确认)。
- Decision:用户纠正代码 → 泛化后立即写入 MEMORY.md;删除匹配 instinct。
- Decision:用户说「remember this」/「always/never」→ 按所述并泛化后写入 MEMORY.md。
- Decision:同一纠正出现两次 → 高优先级,说明规则未捕获或未 review。
- Decision:纠正针对一次性任务 → 不存储;只存可复用模式。
- Decision:用户要求 forget 某规则 → 立即从 MEMORY.md 移除。
- Decision:非显而易见 bug、gotcha、workaround、perf surprise → 记录到 learning-log,带 category + files。
- Decision:同一 gotcha 记录 3+ 次 → 晋升到 MEMORY.md 作为 preventive rule。
- Decision:instinct 到 0.9 → 呈现证据,提议晋升到 MEMORY.md。
- Decision:用户部分确认(「only for commands」)→ 缩小 scope,重置到 0.5,重新确认。
- Decision:与另一项目分享模式 → 在 0.7+ 导出,导入时衰减 0.2。
- Decision:导入时冲突 → 将两者呈现给用户;绝不自动覆盖。
- Decision:任何存储膨胀(50+ entries/rules)→ 审计:删除死亡项、合并重复、晋升成熟项。
- Decision:开始 session → 加载 MEMORY.md、instincts 0.7+、近期 log entries。
- Related:用 convention-learner 批量检测代码库 conventions,并把其发现作为 instincts 输入。
- Related:用 wrap-up 作为会话结束仪式,把会话学习路由到本系统的正确层级。
适用边界 · 注意事项
- 不要用于一次性任务或只出现一次且不可复用的纠正;只存储可复用模式。
- 不要在首次观察时把模式当规则,也不要在 confidence 低于 0.7 时静默应用 instinct。
- 不要把假设写入 MEMORY.md、不要把已确认规则留在 instincts 中,也不要记录例行且无异常的变更。