Files
16gagent/memory/verification-log.md
T
2026-06-06 10:40:48 +08:00

28 KiB
Raw Blame History

Learning Loop Refactor — Verification Log

Generated: 2026-06-05 22:51 CST Purpose: 逐条终端原始输出归档,避免仅剩"摘要表"


1. AGENTS.md §2b — Learning Context Injector (MANDATORY)

Command

sed -n '90,114p' /Users/a1234/.openclaw/workspace/AGENTS.md

Raw Output

2b. Learning Context Injector (MANDATORY — 3 searches)

Search 1: Similar failures

ctx_search(queries: ["<task_type> failure pattern lesson"], source: "reflections", sort: "timeline")

Search 2: Relevant best practices

memory_search(query: "<task_domain> best practice checklist pattern")

Search 3: Relevant playbook

Check playbooks/ for matching task type

Inject top findings into PLAN > Risks. Format:

### Injected Risks (from Learning Context)
- [R1] <lesson from past failure> — source: <reflection/pattern file>
- [R2] <relevant best practice violation> — source: best-practices.md #N
- [R3] <playbook recommendation> — source: playbooks/<name>.md

2. AGENTS.md §2c — 6 Domain Checklists

Command

sed -n '116,155p' /Users/a1234/.openclaw/workspace/AGENTS.md

Raw Output

Based on task type, append the relevant checklist to PLAN:

SQL / Schema tasks:

  • □ FK 引用:所有 FK 用 ON CONFLICT DO UPDATE,不用 REPLACESQLite REPLACE = DELETE+INSERT
  • □ DDL 解析:PRIMARY KEY / CONSTRAINT 行不能当数据字段
  • □ 迁移安全:先检查所有引用方,再改 schema
  • □ WAL 模式:多进程读写不阻塞

JavaScript / TypeScript tasks:

  • □ Falsy 陷阱:0、''、false 用 ?? 替代 |||| 会把 0 判为 falsy
  • □ 类型生成:entity names 复数→单数(Albums→Album),但不碰 status/bus 等词根
  • □ 模板语法:模板字面量内嵌反引号用 ` 转义或字符串拼接
  • □ 启发式检测:必须 2+ 信号同时匹配,单信号不可靠

Next.js / Frontend tasks:

  • □ 路径:Next.js App Router 用 app/ 不是 src/app/
  • □ Tailwind content 路径匹配实际目录
  • □ tsconfig paths 匹配实际目录结构
  • □ JSX:三元表达式嵌套使用括号包裹,避免 {} 嵌套错误

Backend / API tasks:

  • □ generateTypes 必须包含 User 实体 → CreateUserInput 类型
  • □ 所有 resource types 生成完整的 CRUD Input 类型
  • □ route params 命名与 service 函数签名一致

Generator / Builder tasks:

  • □ 输出路径:验证生成目录结构与实际 runtime 预期一致
  • □ DDL→TSschema.ts 中 CONSTRAINT/FK 行不能被解析为 interface 字段
  • □ Type mappingSQL types 到 TS types 的映射表完整
  • □ Template safety:模板字面量不输出裸反引号

Release / CI tasks:

  • □ Exit code 规范:PASS/WARN→0, FAIL→1
  • □ 回退路径:每个 destructive 操作有对应回退步骤
  • □ backward compat:新代码不改老接口

If no checklist matches, add:

  • □ No domain-specific checklist available — proceed with extra caution

3. AGENTS.md §4 — MANDATORY GATE

Command

sed -n '194,207p' /Users/a1234/.openclaw/workspace/AGENTS.md

Raw Output


**MANDATORY GATE: Pre-flight Compliance Check**

Before closing any complex task, verify ALL of:

- [ ] PLAN contains `### Injected Risks (from Learning Context)` section
- [ ] At least 2 knowledge sources were searched (ctx_search / memory_search / playbooks)
- [ ] Matching domain checklist from §2c is included in PLAN
- [ ] If failure occurred: structured Reflection was written to `reflections/YYYY-MM-DD-<task>.md`
- [ ] Reflection contains ALL 7 required fields (Context/Root Cause/Fix/Pattern Class/Future Trigger/Checklist/Recurrence)

If ANY gate fails: **task is NOT complete**. Go back and fill the gap.


---

## 4. AGENTS.md §5 — T1-T7 Auto-Capture

### Command

sed -n '210,238p' /Users/a1234/.openclaw/workspace/AGENTS.md


### Raw Output
**ALWAYS check these conditions after fixing a failure. Write Reflection when ANY condition matches:**

| # | Trigger Condition | Why |
|---|------------------|-----|
| T1 | `build` command failed | Build failure always indicates systemic error |
| T2 | `test` command returned non-zero or unexpected failures | Test failure = regression risk |
| T3 | `lint` / `tsc --noEmit` failed | Syntax/type errors in generated code |
| T4 | Fix time > 30 minutes elapsed | Long fix = complex root cause worth documenting |
| T5 | Same error class appeared before (check ctx_search / Promotion Log) | Recurrence → must upgrade |
| T6 | Generated output path/format/structure mismatched target convention | E.g. `src/app/` vs `app/`, wrong SQL dialect, missing types |
| T7 | Generated content caused runtime crash or data corruption | Silent data corruption is highest severity |

**Skip reflection (not worth recording) when:**
- Fix < 5 min AND never seen before AND no test/build/lint failure
- Typo fix (single character, no logic change)
- Expected external service failure (network timeout, API rate limit)

**Reflection write checklist (ALL 7 fields REQUIRED):**

[ ] Context — what task was being performed [ ] Root Cause — the bug, not the symptom (banned: "以后注意", "下次小心") [ ] Fix — exact change, with code diff if applicable [ ] Pattern Class — abstract category (e.g. "SQLite FK", "JS Falsy Coercion", "Path Convention") [ ] Future Trigger — when to inject this lesson (e.g. "any SQL schema change") [ ] Checklist — ≥2 actionable checks for next time [ ] Recurrence Count — 1 (update on each recurrence)


---

---

## 5. AGENTS.md §3 — Auto-Capture + Promotion Check

### Command

sed -n '165,182p' /Users/a1234/.openclaw/workspace/AGENTS.md


### Raw Output
3. If local → fix, verify, continue
4. If structural → **REPLAN** — output a revised PLAN section
5. If same step fails 3 times → **PAUSE** and ask user
6. **Auto-Capture Check** (after fix, before continuing):
   → See complete trigger rules in §5 Auto-Capture Trigger (T1-T7)
   → If ANY trigger matches → write structured Reflection to `reflections/YYYY-MM-DD-<task>.md`
   → Reflection MUST contain ALL 7 required fields (Context/Root Cause/Fix/Pattern Class/Future Trigger/Checklist/Recurrence Count)
   → Skip only when: fix < 5 min + first occurrence + no test/build/lint failure

7. **Promotion Check** (after Reflection written):
   | Appearances | Action | Destination |
   |------------|--------|------------|
   | 1st | Reflection | reflections/ |
   | 2nd | Pattern | patterns/design-patterns.md (new section) |
   | 3rd | Best Practice | patterns/best-practices.md (numbered entry) |
   | 4th | Checklist Item | AGENTS.md §2c Domain Checklists |
   | 5th | Hard Rule | AGENTS.md §2c (bolded, marked ⚠️ HARD RULE) |


---

## 6. AGENTS.md — Learning Loop §

### Command

sed -n '240,305p' /Users/a1234/.openclaw/workspace/AGENTS.md


### Raw Output
## Learning Loop 🔄

> Knowledge stored in reflections/patterns/playbooks MUST flow back into Planning.
> This section closes the loop.

### Loop Architecture

Failure/Success ↓ Reflection (structured, with Pattern Class) ↓ Promotion Check (1→2→3→4→5 appearances) ↓ Pattern → Best Practice → Checklist → Hard Rule ↓ Pre-flight Injector (§2b) + Domain Checklists (§2c) ↓ Next Plan includes past lessons ↓ Execution ↓ Verification → triggers new Reflection if needed ↓ (loop closes)


### Promotion Rules

| Count | Promotion To | Location |
|-------|-------------|----------|
| 1st | Reflection | `reflections/YYYY-MM-DD-<task>.md` |
| 2nd | Design Pattern | `patterns/design-patterns.md` (new Anti-Pattern section) |
| 3rd | Best Practice | `patterns/best-practices.md` (numbered entry) |
| 4th | Domain Checklist | AGENTS.md §2c (update matching checklist, or create new) |
| 5th | Hard Rule | AGENTS.md §2c (bolded, marked ⚠️ HARD RULE) |

### Quality Gate for Reflections

A valid Reflection MUST include ALL of:
- [ ] Context (what task)
- [ ] Root Cause (the bug, not the symptom)
- [ ] Fix (exact change)
- [ ] Pattern Class (abstract category)
- [ ] Future Trigger (when to re-inject)
- [ ] Checklist (actionable items)
- [ ] Recurrence Count

**Rejected:** "以后注意", "下次小心", "当时没想清楚", "应该多测试"
**Accepted:** "SQLite FK: REPLACE=DELETE+INSERT, use ON CONFLICT DO UPDATE"

### Storage Locations

reflections/ ← First occurrence of a failure pattern patterns/design-patterns ← Abstract reusable anti-patterns (≥2 occurrences) patterns/best-practices ← Validated rules (≥3 occurrences) AGENTS.md §2c ← Domain Checklists (≥4 occurrences) AGENTS.md §2c ⚠️ ← Hard Rules (≥5 occurrences)

playbooks/ ← Successful multi-step workflows (not failure-driven) vault.md §Self-Evolution ← History of promotions (timeline)


---


---

## 7. Reflection: falsy-coercion (full file)

### Command

cat /Users/a1234/.openclaw/workspace/reflections/2026-06-05-falsy-coercion.md


### Raw Output

Reflection: || vs ?? Falsy Coercion Bug

Date: 2026-06-05 | Severity: P1 | Recurrence: 2

Context

Cross-Agent Certification (PR-30) — Fleet score ranking. Using order[status] || 6 for certification ranking.

Root Cause

JavaScript || operator treats 0 as falsy. When order["healthy"] = 0, order["healthy"] || 6 evaluates to 6, pushing healthy agents to bottom of ranking instead of top. The certification result was reversed — healthy fleets got low scores.

Fix

Changed order[status] || 6order[status] ?? 6. Nullish coalescing (??) only triggers on null/undefined, not on 0.

Pattern Class

JS/TS Falsy Coercion Trap|| treats 0, "", false as falsy. Use ?? for numeric/boolean defaults.

Future Trigger

  • Any JS/TS code writing numeric defaults
  • Any ranking/scoring/ordering logic
  • Any code with value || default where value can legitimately be 0

Checklist

  • Grep all || in scoring/ranking/ordering code → replace with ?? if value can be 0
  • For all numeric defaults: ||??
  • Add || vs ?? check to JS/TS Domain Checklist

Recurrence Count

2 — previously hit in Agent Evolution FK index scoring (same pattern: count || 0 skipped real zeros)


### 7-field check

grep -c '^## Context|^## Root Cause|^## Fix|^## Pattern Class|^## Future Trigger|^## Checklist|^## Recurrence' /Users/a1234/.openclaw/workspace/reflections/2026-06-05-falsy-coercion.md

Result:
7

### Banned phrase check

grep -ic '以后注意|下次小心|当时没想清楚|应该多测试' /Users/a1234/.openclaw/workspace/reflections/2026-06-05-falsy-coercion.md; echo "(exit=$? ; 1=clean)"

Result:
0
exit=1

---

## 8. Reflection: nextjs-path (full file)

### Command

cat /Users/a1234/.openclaw/workspace/reflections/2026-06-05-nextjs-path.md


### Raw Output

Reflection: Next.js src/app/ vs app/ Path Convention

Date: 2026-06-05 | Severity: P0 | Recurrence: 1

Context

Domain Benchmark Suite v1 — frontend-builder-agent.mjs 生成的 Next.js 项目输出到 src/app/ 目录。10/10 项目 Build 失败(0/10 Build)。Next.js App Router 默认 pages directory 是 app/

Root Cause

Frontend Builder Agent 的初始设计内嵌了错误的路径假设。模板代码输出到 src/app/,但 Next.js app/ router 不从 src/app/ 读取。Tailwind content 配置和 tsconfig paths 也指向了错误路径。

Fix

全局替换:

  • src/app/app/
  • 更新 tsconfig paths 匹配 app/
  • 更新 tailwind.config content 匹配 app/**/*.{ts,tsx}

Pattern Class

Path Convention Mismatch — Generator/Builders 有硬编码路径假设,与实际 runtime 的 convention 不一致。

Future Trigger

  • Any Next.js project generation
  • Any framework-specific builder agent creation
  • Any path-dependent code generation

Checklist

  • 验证生成器输出目录与目标框架的 default convention 一致
  • 在生成器写完第一版后立即跑 build smoke test
  • tsconfig paths 与 tailwind content 与 pages directory 三者一致性检查

Recurrence Count

1


### 7-field check
Result:
7

---

## 9. Reflection: ddl-leakage (full file)

### Command

cat /Users/a1234/.openclaw/workspace/reflections/2026-06-05-ddl-leakage.md


### Raw Output

Reflection: DDL CONSTRAINT Leakage into TypeScript Interfaces

Date: 2026-06-05 | Severity: P0 | Recurrence: 1

Context

Backend Builder Agent (SF-04) — schema.ts 生成时 DDL PRIMARY KEY / FOREIGN KEY / CONSTRAINT 行被当作数据列,泄露进 TypeScript interface 定义。

Example: "PRIMARY KEY (id)" → parsed as column PRIMARY with type KEY, FOREIGN KEY (user_id) REFERENCES users(id) → parsed as column FOREIGN etc.

Root Cause

DDL parser 没有区分 "column definition" 行和 "constraint" 行。CREATE TABLE 语句中的 CONSTRAINT 子句以特殊关键字开头(PRIMARY KEY, FOREIGN KEY, UNIQUE, CHECK),不应被解析为列定义。

Fix

Added isConstraintLine() check before parsing each line as a column. Lines starting with PRIMARY KEY, FOREIGN KEY, UNIQUE (, CHECK ( are skipped in column parsing.

Pattern Class

DDL-to-Code Mapping Error — SQL DDL 的多层结构(column/constraint/index)被扁平化为单一映射时丢失语义。

Future Trigger

  • Any SQL schema → code generation
  • Any DDL parser
  • Any ORM code generator

Checklist

  • DDL 解析器必须有 column / constraint / index 三层分离
  • Constraint 行识别:PRIMARY KEY, FOREIGN KEY, UNIQUE (, CHECK (
  • 生成后验证:interface 字段数 ≤ 表列数(不含约束行)
  • 跑 benchmark 验证所有领域 schema 生成正确

Recurrence Count

1


### 7-field check
Result:
7

---

## 10. Reflection: jsx-template (full file)

### Command

cat /Users/a1234/.openclaw/workspace/reflections/2026-06-05-jsx-template.md


### Raw Output

Reflection: JSX Template Ternary Nesting Syntax Error

Date: 2026-06-05 | Severity: P0 | Recurrence: 1

Context

Frontend Builder Agent (SF-03) — fallback page 模板中的三元表达式产生了语法错误。模板生成代码如 {loading ? {<Spinner />} : {<div>No data</div>}}

Root Cause

生成器模板中 JSX 三元表达式嵌套了多余的 {}。模板本身输出 { 字符,内嵌的 JSX 也带 { — 双层花括号导致 React 解析失败。

Incorrect output pattern: {condition ? {<JSX />} : {<AnotherJSX />}} Correct: {condition ? <JSX /> : <AnotherJSX />}{condition ? (<JSX />) : null}

Fix

Fixed template to not wrap JSX branches in extra {}. The outer {} (JSX expression) already handles one level; inner JSX elements don't get re-wrapped.

Pattern Class

Template Code Generation Syntax — 代码生成器的模板本身使用目标语言语法时,转义/嵌套层次需仔细处理。

Future Trigger

  • Any code generator that outputs JSX/TSX
  • Any template-based code generation
  • Any string-template code with nested braces/quotes

Checklist

  • 生成器模板验证:输出后立即 tsc --noEmit 检查语法
  • JSX 三元表达式:禁止 {cond ? {<X />} : {<Y />}} 模式
  • 模板中使用 ``` 或字符串拼接替代包含反引号的模板字面量
  • Benchmark smoke test 覆盖所有生成项目的 build

Recurrence Count

1


### 7-field check
Result:
7

---

## 11. Old Reflection: 2026-06-03 (upgraded, head 30)

### Command

head -30 /Users/a1234/.openclaw/workspace/reflections/2026-06-03-agent-evolution.md


### Raw Output

Reflection: Agent Evolution Mode — 四阶段全流程

Date: 2026-06-03 | Severity: P0/P1 (multiple failures) | Recurrence: see individual patterns

Context

深度学习 ECC/Headroom/CodeGraph → 提取能力 → 增强 OpenClaw。4 Phase16 模块,7,000 行,5h(预估 42.5h)。

Pattern Classes Extracted

PC-1: SQLite FK Constraint (P0) — Pattern Class: SQL FK/DELETE semantic

  • Root Cause: INSERT OR REPLACE causes rowid change → FK breaks
  • Fix: ON CONFLICT DO UPDATE preserves original rowid
  • Future Trigger: any SQL schema modification, batch inserts with FK

PC-2: Heuristic False Positive (P1) — Pattern Class: single-signal detection

  • Root Cause: [2026-... prefix triggered JSON detection without valid parse
  • Fix: require 2+ signals (prefix + valid JSON.parse)
  • Future Trigger: any heuristic/content-type detection logic

PC-3: Nested Structure Parsing (P1) — Pattern Class: protocol-level vs structural parsing

  • Root Cause: parser relied on structured JSON nesting, failed on content arrays
  • Fix: match "type":"tool_result" byte patterns instead of tree traversal
  • Future Trigger: any nested data structure parsing

PC-4: Overly Aggressive Sampling (P2) — Pattern Class: lossy strategy without safety net

  • Root Cause: TimeSeries strategy kept only anchor points (500→5), dropped errors
  • Fix: include error/outlier detection alongside anchor selection
  • Future Trigger: any sampling/compression strategy design

成功经验


### Pattern Class / Future Trigger / Recurrence count
Result:
10

---

## 12. Old Reflection: 2026-06-04 (upgraded, head 20)

### Command

head -20 /Users/a1234/.openclaw/workspace/reflections/2026-06-04-memory-audit.md


### Raw Output

Reflection: Memory System Full Audit

Date: 2026-06-04 | Severity: P0/P1/P2 mixed | Recurrence: 1

Context

记忆系统全量审计 + 全链路修复。6 维度扫描(文件/远程/版本/自动化/索引/寄存器),P0(5)→P1(5)→P2(4)。

Pattern Class: Infrastructure Drift

Root Cause: 脚本存在 ≠ 脚本在运行。Dream Cycle cron 从未配置,index.md 从未自动更新(15→75 条差距)。

Fix: 添加 3 个 cron jobsDream Cycle + Git push + Health check),session-compact.sh 加 pre-compact hook。

Future Trigger: any automated maintenance system, any cron-scheduled task, any script that "should run automatically"

Checklist:

  • 新脚本添加后立即验证 cron/trigger 是否配置
  • 定期检查 index/registers 的 freshness
  • 引用即承诺——引用未创建的文件要么创建要么删引用

### Pattern Class / Future Trigger / Recurrence count
Result:
3

---

## 13. patterns/best-practices.md — full numbered entry list

### Command

grep -n '^[0-9]*.' /Users/a1234/.openclaw/workspace/patterns/best-practices.md


### Raw Output

11:1. 写完即测,不等集成 — 每个模块 run 一次确认输出正确 12:2. 边界用例覆盖 — 空输入、超大输入、非法输入都要测 13:3. 零依赖优先 — 核心算法不自带 npm 依赖(例外: better-sqlite3 等已安装的稳定库) 14:4. CLI + Library 双接口node module.jsrequire('./module') 都要能用 15:5. passthrough 是默认 — 任何操作失败时返回原始输入,不丢数据 19:6. Phase Isolation — 分析/设计/实现三阶段不交叉 20:7. 先 MVP 再扩展 — 1-3h 出第一个可用版本,验证后扩展 21:8. 策略可插拔 — 用分发模式,新增策略不碰核心逻辑 22:9. 降级路径明确 — 每个操作至少 2 条降级路径 23:10. 配置可覆盖 — 全局默认 → 项目覆盖 → 运行时参数 27:11. FK 约束用 ON CONFLICT DO UPDATE — SQLite 的 REPLACE = DELETE+INSERT 28:12. 检测需多重信号 — 启发式规则必须 2+ 个信号同时匹配 29:13. WAL 模式开 — 多进程读不阻塞写 30:14. 大文件分批处理 — 每 250 文件回收一次 WASM/内存 31:15. stderr 和 stdout 分离 — 元数据用 stderr,数据用 stdout 35:16. || vs ?? — 用 ?? 处理数字 0value || default 把 0/''/false 当 falsy。数字类用 value ?? default。已犯 2 次(Agent Evolution FK索引 + Cross-Agent Certification 评分排序) 36:17. 模板字面量反引号 — 模板内嵌反引号用 ` 转义或改用字符串拼接。不输出裸反引号到生成代码 37:18. 类型单数化 — entity 复数→单数(Albums→Album, Pets→Pet),但不碰 status/bus 等不可变词根 41:19. Next.js 路径:app/ 不是 src/app/ — Next.js App Router 默认 pages in app/。生成器必须输出到 app/ 目录 42:20. DDL CONSTRAINT 泄露 — schema.ts 生成时 PRIMARY KEY / FOREIGN KEY / CONSTRAINT 行不能被解析为 TS interface 字段 43:21. CreateInput 完整性 — generateTypes 必须包含所有实体(包括 User)→ CreateUserInput 不能缺失 44:22. JSX 三元嵌套{a ? {b} : {c}} 错误。改为 {a ? b : c}{a ? (<Comp />) : null} 48:23. 子 agent 并行分析 — 3 个项目同时 spawn2-3 分钟完成 49:24. 子 agent 用 Pro 模型 — 代码/方案决策用 DeepSeek V4 Pro 50:25. 任务描述要包含完整输出路径 — 子 agent 不需要父 agent 上下文也能工作 51:26. 用 sessions_yield 等完成 — 不 poll loop 55:27. Exit code 规范 — PASS/WARN→0, FAIL→1。不要 PASS 也 exit 1 56:28. 向后兼容 — 新增参数用 optional,不改既有函数签名。所有 PR 遵守零修改约束 60:29. 每完成一个 Phase 写 daily — 不等到全部做完 61:30. 提取模式后立即写 patterns/ — "mental notes 不存活" 62:31. MEMORY.md 尽量不动 — 在缓存线以上,每次改动全缓存爆炸 63:32. Reflection 必须结构化 — 含 Pattern Class + Future Trigger + Checklist,禁止"以后注意"

New sections proof

grep -n 'JavaScript.*TypeScript 陷阱\|Generator.*Builder 陷阱\|CI.*Release' /Users/a1234/.openclaw/workspace/patterns/best-practices.md

Result: 33:## JavaScript / TypeScript 陷阱 39:## Generator / Builder 陷阱 53:## CI / Release


14. patterns/design-patterns.md — Anti-Patterns

Command

grep -n 'Anti-Patterns\|AP-[123]' /Users/a1234/.openclaw/workspace/patterns/design-patterns.md

Raw Output

5:> 新增: Anti-Patterns (≥2 occurrences → promoted from reflections)
117:## Anti-Patterns (from failures, ≥2 occurrences)
119:### AP-1: Operator Coercion Trap (2 occurrences)
136:### AP-2: Generator Path Assumption (1 occurrence)
147:### AP-3: DDL Flat Mapping (1 occurrence)

### AP-1 full body

sed -n '119,138p' /Users/a1234/.openclaw/workspace/patterns/design-patterns.md


### Raw Output

AP-1: Operator Coercion Trap (2 occurrences)

问题: JavaScript ||0/""/false 当 falsy,导致排序/评分/计数逻辑出错

症状:

  • 排序结果反转(healthy=0 排到最后)
  • FK 索引计数字段被跳过

方案: 数值/布尔默认值用 ??nullish coalescing),|| 仅用于字符串默认值。 Grep || in scoring/ranking code.

来源:

  • 2026-06-03: Agent Evolution FK 索引 count || 0
  • 2026-06-05: PR-30 Cross-Agent Certification order[status] || 6

AP-2: Generator Path Assumption (1 occurrence)

问题: Builder/Generator 有硬编码路径假设(如 src/app/),与实际 framework convention 不一致


15. vault.md — Promotion Log + Learning Loop

Command

grep -n 'Learning Loop\|Promotion Log\|闭环\|1st→\|2nd→\|3rd→' /Users/a1234/.openclaw/workspace/memory/vault.md

Raw Output

142:### Learning Loop v1 (2026-06-05 建立)
144:闭环架构:
152:1st→Reflection  2nd→Anti-Pattern  3rd→Best Practice  4th→Domain Checklist  5th→Hard Rule
159:### Promotion Log (≥2 occurrences tracked)

### Promotion Log table

sed -n '/Promotion Log/,/已验证模式/p' /Users/a1234/.openclaw/workspace/memory/vault.md


### Raw Output

Promotion Log (≥2 occurrences tracked)

Pattern Class Count Stage Promoted To
JS Falsy Coercion (|| vs ??) 2 Anti-Pattern patterns/design-patterns.md §AP-1
Generator Path Assumption 1 Reflection reflections/2026-06-05-nextjs-path.md
DDL Flat Mapping 1 Reflection reflections/2026-06-05-ddl-leakage.md
JSX Template Nesting 1 Reflection reflections/2026-06-05-jsx-template.md

已验证模式 (从 Agent Evolution 提取)


16. MEMORY.md — Learning Loop reference

Command

grep 'Learning Loop' /Users/a1234/.openclaw/workspace/MEMORY.md

Raw Output

具体技巧:注释写 WHY · Fast-Path 入口 · 错误三分类 · 目录即模块 · 失败快速 · Pre-flight Check · Failure Replanning · Learning Loop (2026-06-05)

---

## 17. Reflections directory listing

### Command

ls -la /Users/a1234/.openclaw/workspace/reflections/


### Raw Output

total 56 drwx------ 8 a1234 staff 256 Jun 5 22:37 . drwx------ 62 a1234 staff 1984 Jun 5 22:05 .. -rw------- 1 a1234 staff 5304 Jun 5 22:41 2026-06-03-agent-evolution.md -rw------- 1 a1234 staff 2630 Jun 5 22:41 2026-06-04-memory-audit.md -rw------- 1 a1234 staff 1432 Jun 5 22:37 2026-06-05-ddl-leakage.md -rw------- 1 a1234 staff 1258 Jun 5 22:36 2026-06-05-falsy-coercion.md -rw------- 1 a1234 staff 1436 Jun 5 22:37 2026-06-05-jsx-template.md -rw------- 1 a1234 staff 1265 Jun 5 22:36 2026-06-05-nextjs-path.md


18. Cross-file consistency: vault Promotion Log ↔ design-patterns AP counts

vault says about AP-1

grep -A1 'JS Falsy Coercion' /Users/a1234/.openclaw/workspace/memory/vault.md | head -2

Result: | JS Falsy Coercion (\|\| vs ??) | 2 | Anti-Pattern | patterns/design-patterns.md §AP-1 | | Generator Path Assumption | 1 | Reflection | reflections/2026-06-05-nextjs-path.md |

design-patterns says about AP-1

grep 'AP-1.*occurrences' /Users/a1234/.openclaw/workspace/patterns/design-patterns.md

Result:

AP-1: Operator Coercion Trap (2 occurrences)

vault says about Path Assumption

grep -A1 'Generator Path' /Users/a1234/.openclaw/workspace/memory/vault.md

Result: | Generator Path Assumption | 1 | Reflection | reflections/2026-06-05-nextjs-path.md | | DDL Flat Mapping | 1 | Reflection | reflections/2026-06-05-ddl-leakage.md |

design-patterns says about AP-2

grep 'AP-2.*occurrence' /Users/a1234/.openclaw/workspace/patterns/design-patterns.md

Result:

AP-2: Generator Path Assumption (1 occurrence)


19. 4 new reflections — aggregate 7-field + banned check

Command

for f in /Users/a1234/.openclaw/workspace/reflections/2026-06-05-*.md; do
  name=$(basename "$f")
  fields=$(grep -c '^## Context\|^## Root Cause\|^## Fix\|^## Pattern Class\|^## Future Trigger\|^## Checklist\|^## Recurrence' "$f")
  banned=$(grep -ic '以后注意\|下次小心\|当时没想清楚\|应该多测试' "$f" || echo 0)
  echo "$name: fields=$fields/7 banned=$banned"
done

Raw Output

2026-06-05-ddl-leakage.md: fields=7/7 banned=0
0
2026-06-05-falsy-coercion.md: fields=7/7 banned=0
0
2026-06-05-jsx-template.md: fields=7/7 banned=0
0
2026-06-05-nextjs-path.md: fields=7/7 banned=0
0

---

## 20. AGENTS.md section structure (numbering integrity)

### Command

grep -n '^###|^##' /Users/a1234/.openclaw/workspace/AGENTS.md | head -35


### Raw Output

5:## Cache Stability 12:## Session Startup 18:## Execution Protocol — Planning Layer 🔵 24:### 0. Complexity Classification (MUST run first) 52:### 1. Planning Protocol (Complex Tasks ONLY) 57:## PLAN 58:### Goal 61:### Subtasks 66:### Risks 70:### Verification Strategy 78:### 2. Pre-flight Check (Complex Tasks ONLY) 82:#### 2a. Dependency Scan 90:#### 2b. Learning Context Injector (MANDATORY — 3 searches) 109:### Injected Risks (from Learning Context) 115:#### 2c. Domain Checklist Injection 156:### 3. Failure Replanning Protocol 183:### 4. Verification Protocol (Complex Tasks ONLY) 188:## VERIFICATION 208:### 5. Auto-Capture Trigger — COMPLETE Rule Set (after ANY failure) 240:## Learning Loop 🔄 245:### Loop Architecture 267:### Promotion Rules 277:### Quality Gate for Reflections 291:### Storage Locations 306:## Memory 314:## Red Lines 322:## External vs Internal 327:## Group Chats 335:## Security Baseline 🔒 344:## Heartbeats


END OF VERIFICATION LOG

  • Total checks: 20
  • Files verified: AGENTS.md, patterns/best-practices.md, patterns/design-patterns.md, memory/vault.md, MEMORY.md
  • Reflections: 2026-06-05-falsy-coercion.md, 2026-06-05-nextjs-path.md, 2026-06-05-ddl-leakage.md, 2026-06-05-jsx-template.md
  • Old reflections upgraded: 2026-06-03-agent-evolution.md, 2026-06-04-memory-audit.md
  • Cross-file consistency: vault Promotion Log ↔ design-patterns AP counts — MATCH
  • All 4 new reflections: 7/7 required fields, 0 banned phrases
  • ARCHIVED for future audit traceability