failure-memory (記憶)
Unified skill for failure detection, observation recording, memory search, and pattern convergence.
Consolidates 10 granular skills into a single coherent memory system.
Trigger: 失敗発生 (failure occurred)
Source skills: failure-tracker, observation-recorder, memory-search, topic-tagger, failure-detector, evidence-tier, effectiveness-metrics, pattern-convergence-detector, positive-framer, contextual-injection
Installation
CODEBLOCK0
Dependencies: leegitw/context-verifier (for file change detection)
CODEBLOCK1
Standalone usage: This skill can function independently for basic failure tracking.
For full lifecycle management, install the complete suite (see Neon Agentic Suite).
Data handling: This skill operates within your agent's trust boundary. When triggered,
it uses your agent's configured model for failure detection and pattern recording. No external APIs
or third-party services are called. Results are written to .learnings/ in your workspace.
What This Solves
AI systems often make the same mistakes repeatedly — deleting working code, missing edge cases, forgetting context. This skill turns failures into learning by:
- 1. Detecting failures when they happen (not after)
- Recording observations with R/C/D counters (Recurrence/Confirmations/Disconfirmations)
- Finding patterns within the workspace's
.learnings/ directory - Promoting to constraints when evidence threshold is met
The insight: Systems learn better from consequences than instructions. A failure that happened teaches more than a rule that might apply.
Scope note: Pattern detection operates within the current workspace only. Observations
are stored in .learnings/ and searched locally. No cross-project data access occurs.
Usage
CODEBLOCK2
Sub-Commands
| Command | CJK | Logic | Trigger |
|---|
| INLINECODE4 | 検出 | fail∈{test,user,API}→record | Next Steps (auto) |
| INLINECODE5 |
記録 | pattern→obs, R++∨C++∨D++ | Next Steps (auto) |
|
/fm search | 索引 | query(pattern∨tag∨slug)→obs[] | Explicit |
|
/fm classify | 分類 | obs→tier∈{N=1:弱,N=2:中,N≥3:強} | Explicit |
|
/fm status | 状態 | eligible:R≥3∧C≥2, recent:30d | Explicit |
|
/fm refactor | 整理 | obs[]→merge∨split∨restructure | Explicit |
|
/fm converge | 収束 | pattern[]→detect(similarity≥0.8) | Explicit |
Arguments
/fm detect
| Argument | Required | Description |
|---|
| type | Yes | Failure type: test, user, api, INLINECODE14 |
| context |
No | Additional context for the failure |
/fm record
| Argument | Required | Description |
|---|
| pattern | Yes | Pattern description or observation ID |
| counter |
No | Counter to increment:
R (default),
C, or
D |
/fm search
| Argument | Required | Description |
|---|
| query | Yes | Search pattern, tag, or slug |
| status |
No | Filter by status:
pending,
eligible,
all (default) |
/fm classify
| Argument | Required | Description |
|---|
| observation | Yes | Observation ID or pattern |
/fm status
| Argument | Required | Description |
|---|
| --eligible | No | Show only eligible observations (R≥3 ∧ C≥2) |
| --recent |
No | Show only observations from last 30 days |
/fm refactor
| Argument | Required | Description |
|---|
| observations | Yes | Comma-separated observation IDs |
| action |
Yes | Action:
merge,
split,
restructure |
/fm converge
| Argument | Required | Description |
|---|
| --threshold | No | Similarity threshold (default: 0.8) |
Detection Triggers
These patterns indicate when /fm detect should be invoked (user or orchestrator triggers):
| Pattern | Source | Action |
|---|
| INLINECODE25 | Tool output | INLINECODE26 |
| "Actually...", "No, that's wrong" |
User message |
/fm record correction |
| "I meant...", "Not X, Y" | User message |
/fm record correction |
| API 4xx/5xx response | Tool output |
/fm detect api |
| "error:", "failed", "Exception" | Tool output |
/fm detect error |
| Deployment rollback | CI/CD output |
/fm detect deployment |
| Database migration failed | Tool output |
/fm detect migration |
Example: API Failure Detection
CODEBLOCK3
Example: Deployment Failure Detection
CODEBLOCK4
Core Logic
R/C/D Counters
| Counter | Meaning | Updated By |
|---|
| R (Recurrence) | Auto-detected occurrences | INLINECODE33 , INLINECODE34 |
| C (Confirmations) |
Human-verified true positives | Human via
/fm record C |
|
D (Disconfirmations) | Human-verified false positives | Human via
/fm record D |
Evidence Tiers
| Tier | Criteria | Meaning |
|---|
| 弱 (weak) | N=1 | Single occurrence, may be noise |
| 中 (emerging) |
N=2 | Pattern emerging, monitor |
| 強 (strong) | N≥3 | Established pattern, actionable |
Slug Taxonomy
Observations are tagged with slugs: git-*, test-*, workflow-*, security-*, docs-*, INLINECODE42
Metrics
- -
prevention_rate: Failures prevented / Total potential failures - INLINECODE44 : D / (C + D)
Output
/fm detect output
CODEBLOCK5
/fm status output
CODEBLOCK6
Configuration
Configuration is loaded from (in order of precedence):
- 1.
.openclaw/failure-memory.yaml (OpenClaw standard) - INLINECODE46 (Claude Code compatibility)
- Defaults (built-in)
CODEBLOCK7
Integration
- - Layer: Core
- Depends on: context-verifier (for file change detection)
- Used by: constraint-engine (for eligibility checks), governance (for state queries)
Failure Modes
| Condition | Behavior |
|---|
| Invalid sub-command | List available sub-commands |
| Missing observation ID |
Error with usage example |
| No matches found | "No observations match query" |
| Duplicate detection | Increment R counter, don't create new observation |
Next Steps
After invoking this skill:
| Condition | Action |
|---|
| R incremented | Check eligibility: R≥3 ∧ C≥2 → notify user |
| R≥3 ∧ C≥2 |
Suggest
/ce generate for constraint |
| Pattern recurring | Link with
See Also, bump priority |
| Always | Update
.learnings/ERRORS.md or
.learnings/LEARNINGS.md |
Workspace Files
This skill reads/writes:
CODEBLOCK8
Security Considerations
What this skill accesses:
- - Configuration files in
.openclaw/failure-memory.yaml and INLINECODE52 - Tool output and user messages in the current session (for failure detection)
- Its own workspace directory
.learnings/ (read/write)
What this skill does NOT access:
- - Files outside declared workspace paths
- System environment variables
- Other projects or sessions (observations are workspace-local)
- Network resources or external APIs
What this skill does NOT do:
- - Send data to external services
- Access "across sessions and projects" beyond the current workspace
- Execute arbitrary code or run external commands
Data scope clarification:
- - "Failure detection" scans tool output and user messages within the current agent session
- Observations are stored in
.learnings/ within the current workspace only - No cross-project or cross-session data access occurs
- Pattern matching is local to the configured workspace
Detection trigger clarification:
The "Detection Triggers" table describes patterns that indicate when this skill should be
invoked. The agent can auto-invoke /fm detect when these patterns are detected, or users
can invoke manually. This enables true agentic behavior — failures are captured automatically.
Provenance note:
This skill is developed by Live Neon (https://github.com/live-neon/skills) and published
to ClawHub under the leegitw account. Both refer to the same maintainer.
Acceptance Criteria
- - [ ]
/fm detect creates or updates observation with R++ - [ ]
/fm record supports R, C, D counter updates - [ ]
/fm search finds observations by pattern, tag, or slug - [ ]
/fm classify returns correct tier based on N count - [ ]
/fm status shows eligible observations - [ ]
/fm refactor merges/splits observations correctly - [ ]
/fm converge detects similar patterns (≥0.8 similarity) - [ ] Detection triggers work for test failures, user corrections, API errors
- [ ] Workspace files follow self-improving-agent format
Consolidated from 10 skills as part of agentic skills consolidation (2026-02-15).
failure-memory (記憶)
用于故障检测、观察记录、记忆搜索和模式收敛的统一技能。
将10个细粒度技能整合为一个连贯的记忆系统。
触发条件: 失敗発生 (故障发生)
源技能: failure-tracker, observation-recorder, memory-search, topic-tagger, failure-detector, evidence-tier, effectiveness-metrics, pattern-convergence-detector, positive-framer, contextual-injection
安装
bash
openclaw install leegitw/failure-memory
依赖项: leegitw/context-verifier (用于文件变更检测)
bash
安装依赖项
openclaw install leegitw/context-verifier
openclaw install leegitw/failure-memory
独立使用: 此技能可独立运行,用于基本故障跟踪。
如需完整的生命周期管理,请安装完整套件(参见 Neon Agentic Suite)。
数据处理: 此技能在您的代理信任边界内运行。触发时,
它使用您代理配置的模型进行故障检测和模式记录。不调用任何外部API
或第三方服务。结果写入工作区的 .learnings/ 目录。
解决的问题
AI系统经常重复犯同样的错误——删除可工作的代码、遗漏边界情况、忘记上下文。此技能通过以下方式将故障转化为学习:
- 1. 在故障发生时检测(而非事后)
- 使用R/C/D计数器记录观察结果(复发/确认/否定)
- 在工作区的 .learnings/ 目录中查找模式
- 在达到证据阈值时提升为约束
核心理念: 系统从后果中学习比从指令中学习更有效。实际发生的故障比可能适用的规则教会更多。
范围说明: 模式检测仅在当前工作区内运行。观察结果
存储在 .learnings/ 中并在本地搜索。不会发生跨项目数据访问。
用法
/fm <子命令> [参数]
子命令
| 命令 | CJK | 逻辑 | 触发方式 |
|---|
| /fm detect | 検出 | fail∈{test,user,API}→record | 下一步(自动) |
| /fm record |
記録 | pattern→obs, R++∨C++∨D++ | 下一步(自动) |
| /fm search | 索引 | query(pattern∨tag∨slug)→obs[] | 显式 |
| /fm classify | 分類 | obs→tier∈{N=1:弱,N=2:中,N≥3:強} | 显式 |
| /fm status | 状態 | eligible:R≥3∧C≥2, recent:30d | 显式 |
| /fm refactor | 整理 | obs[]→merge∨split∨restructure | 显式 |
| /fm converge | 収束 | pattern[]→detect(similarity≥0.8) | 显式 |
参数
/fm detect
| 参数 | 必需 | 描述 |
|---|
| type | 是 | 故障类型:test、user、api、error |
| context |
否 | 故障的额外上下文 |
/fm record
| 参数 | 必需 | 描述 |
|---|
| pattern | 是 | 模式描述或观察ID |
| counter |
否 | 要递增的计数器:R(默认)、C 或 D |
/fm search
| 参数 | 必需 | 描述 |
|---|
| query | 是 | 搜索模式、标签或slug |
| status |
否 | 按状态筛选:pending、eligible、all(默认) |
/fm classify
| 参数 | 必需 | 描述 |
|---|
| observation | 是 | 观察ID或模式 |
/fm status
| 参数 | 必需 | 描述 |
|---|
| --eligible | 否 | 仅显示符合条件的观察(R≥3 ∧ C≥2) |
| --recent |
否 | 仅显示最近30天的观察 |
/fm refactor
| 参数 | 必需 | 描述 |
|---|
| observations | 是 | 逗号分隔的观察ID |
| action |
是 | 操作:merge、split、restructure |
/fm converge
| 参数 | 必需 | 描述 |
|---|
| --threshold | 否 | 相似度阈值(默认:0.8) |
检测触发条件
以下模式指示何时应调用 /fm detect(由用户或编排器触发):
| 模式 | 来源 | 操作 |
|---|
| test.exit_code != 0 | 工具输出 | /fm detect test |
| 实际上...、不,那是错的 |
用户消息 | /fm record correction |
| 我的意思是...、不是X,是Y | 用户消息 | /fm record correction |
| API 4xx/5xx响应 | 工具输出 | /fm detect api |
| error:、failed、Exception | 工具输出 | /fm detect error |
| 部署回滚 | CI/CD输出 | /fm detect deployment |
| 数据库迁移失败 | 工具输出 | /fm detect migration |
示例:API故障检测
[DETECTED] api failure
Pattern: payment-api-timeout
Context: Payment API returned 504 after 30s
Observation: OBS-20260215-002
R: 1 → 3
Status: Eligible for constraint (R≥3)
示例:部署故障检测
[DETECTED] deployment failure
Pattern: staging-healthcheck-fail
Context: Staging deployment failed health check on /api/health
Observation: OBS-20260215-003
R: 1 → 2
Status: Monitoring (R<3)
核心逻辑
R/C/D计数器
| 计数器 | 含义 | 更新方式 |
|---|
| R (复发) | 自动检测到的发生次数 | /fm detect、/fm record |
| C (确认) |
人工验证的真阳性 | 人工通过 /fm record C |
|
D (否定) | 人工验证的假阳性 | 人工通过 /fm record D |
证据等级
| 等级 | 标准 | 含义 |
|---|
| 弱 (weak) | N=1 | 单次发生,可能是噪声 |
| 中 (emerging) |
N=2 | 模式正在形成,需监控 |
| 強 (strong) | N≥3 | 已确立的模式,可操作 |
Slug分类
观察结果使用slug进行标记:git-、test-、workflow-、security-、docs-、quality-
指标
- - preventionrate: 已预防的故障 / 总潜在故障
- falsepositive_rate: D / (C + D)
输出
/fm detect输出
[DETECTED] test failure
Pattern: lint-before-commit
Observation: OBS-20260215-001
R: 1 → 2
Status: Monitoring (R<3)
/fm status输出
=== Failure Memory Status ===
Eligible for constraint (R≥3 ∧ C≥2):
- - OBS-20260210-003: lint-before-commit (R=4, C=2, D=0)
- OBS-20260212-007: test-before-push (R=3, C=3, D=1)
Recent (last 30d): 12 observations
Pending review: 3 observations
配置
配置按以下优先级加载:
- 1. .openclaw/failure-memory.yaml(OpenClaw标准)
- .claude/failure-memory.yaml(Claude Code兼容)
- 默认值(内置)
yaml
.openclaw/failure-memory.yaml
detection:
auto_detect: true # 启用自动故障检测
patterns: # 自定义检测模式
- FATAL:
- CRITICAL:
thresholds:
eligibility_R: 3 # 复发阈值(默认:3)
eligibility_C: 2 # 确认阈值(默认:2)
false
positivemax: 0.2 # 最大D/(C+D)比率(默认:0.2)
集成
- - 层级: 核心
- 依赖: context-verifier(用于文件变更检测)
- 被使用: constraint-engine(用于资格检查)、governance(用于状态查询)
##