✓ Verified 📁 File Management ✓ Enhanced Data

Failure Memory

Stop making the same mistakes — turn failures into patterns that prevent recurrence.

Rating
4.9 (354 reviews)
Downloads
5,676 downloads
Version
1.0.0

Overview

Stop making the same mistakes — turn failures into patterns that prevent recurrence.

Complete Documentation

View Source →

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

bash
openclaw install leegitw/failure-memory

Dependencies: leegitw/context-verifier (for file change detection)

bash
# Install with dependencies
openclaw install leegitw/context-verifier
openclaw install leegitw/failure-memory

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:

  • 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

text
/fm <sub-command> [arguments]

Sub-Commands

CommandCJKLogicTrigger
/fm detect検出fail∈{test,user,API}→recordNext Steps (auto)
/fm record記録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:30dExplicit
/fm refactor整理obs[]→merge∨split∨restructureExplicit
/fm converge収束pattern[]→detect(similarity≥0.8)Explicit

Arguments

/fm detect

ArgumentRequiredDescription
typeYesFailure type: test, user, api, error
contextNoAdditional context for the failure

/fm record

ArgumentRequiredDescription
patternYesPattern description or observation ID
counterNoCounter to increment: R (default), C, or D

/fm search

ArgumentRequiredDescription
queryYesSearch pattern, tag, or slug
statusNoFilter by status: pending, eligible, all (default)

/fm classify

ArgumentRequiredDescription
observationYesObservation ID or pattern

/fm status

ArgumentRequiredDescription
--eligibleNoShow only eligible observations (R≥3 ∧ C≥2)
--recentNoShow only observations from last 30 days

/fm refactor

ArgumentRequiredDescription
observationsYesComma-separated observation IDs
actionYesAction: merge, split, restructure

/fm converge

ArgumentRequiredDescription
--thresholdNoSimilarity threshold (default: 0.8)

Detection Triggers

These patterns indicate when /fm detect should be invoked (user or orchestrator triggers):

PatternSourceAction
test.exit_code != 0Tool output/fm detect test
"Actually...", "No, that's wrong"User message/fm record correction
"I meant...", "Not X, Y"User message/fm record correction
API 4xx/5xx responseTool output/fm detect api
"error:", "failed", "Exception"Tool output/fm detect error
Deployment rollbackCI/CD output/fm detect deployment
Database migration failedTool output/fm detect migration

Example: API Failure Detection

text
[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)

Example: Deployment Failure Detection

text
[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)

Core Logic

R/C/D Counters

CounterMeaningUpdated By
R (Recurrence)Auto-detected occurrences/fm detect, /fm record
C (Confirmations)Human-verified true positivesHuman via /fm record C
D (Disconfirmations)Human-verified false positivesHuman via /fm record D

Evidence Tiers

TierCriteriaMeaning
弱 (weak)N=1Single occurrence, may be noise
中 (emerging)N=2Pattern emerging, monitor
強 (strong)N≥3Established pattern, actionable

Slug Taxonomy

Observations are tagged with slugs: git-, test-, workflow-, security-, docs-, quality-

Metrics

  • prevention_rate: Failures prevented / Total potential failures
  • false_positive_rate: D / (C + D)

Output

/fm detect output

text
[DETECTED] test failure
Pattern: lint-before-commit
Observation: OBS-20260215-001
R: 1 → 2
Status: Monitoring (R<3)

/fm status output

text
=== 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

Configuration

Configuration is loaded from (in order of precedence):

  • .openclaw/failure-memory.yaml (OpenClaw standard)
  • .claude/failure-memory.yaml (Claude Code compatibility)
  • Defaults (built-in)
yaml
# .openclaw/failure-memory.yaml
detection:
  auto_detect: true          # Enable automatic failure detection
  patterns:                   # Custom detection patterns
    - "FATAL:"
    - "CRITICAL:"
thresholds:
  eligibility_R: 3           # Recurrence threshold (default: 3)
  eligibility_C: 2           # Confirmation threshold (default: 2)
  false_positive_max: 0.2    # Max D/(C+D) ratio (default: 0.2)

Integration

  • Layer: Core
  • Depends on: context-verifier (for file change detection)
  • Used by: constraint-engine (for eligibility checks), governance (for state queries)

Failure Modes

ConditionBehavior
Invalid sub-commandList available sub-commands
Missing observation IDError with usage example
No matches found"No observations match query"
Duplicate detectionIncrement R counter, don't create new observation

Next Steps

After invoking this skill:

ConditionAction
R incrementedCheck eligibility: R≥3 ∧ C≥2 → notify user
R≥3 ∧ C≥2Suggest /ce generate for constraint
Pattern recurringLink with See Also, bump priority
AlwaysUpdate .learnings/ERRORS.md or .learnings/LEARNINGS.md

Workspace Files

This skill reads/writes:

text
.learnings/
├── ERRORS.md        # [ERR-YYYYMMDD-XXX] command failures
├── LEARNINGS.md     # [LRN-YYYYMMDD-XXX] corrections, best practices
└── observations/    # Individual observation files
    └── OBS-YYYYMMDD-XXX.md

Security Considerations

What this skill accesses:

  • Configuration files in .openclaw/failure-memory.yaml and .claude/failure-memory.yaml
  • 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).

Installation

Terminal bash

openclaw install failure-memory
    
Copied!

💻Code Examples

openclaw install leegitw/failure-memory

openclaw-install-leegitwfailure-memory.txt
**Standalone usage**: This skill can function independently for basic failure tracking.
For full lifecycle management, install the complete suite (see [Neon Agentic Suite](../README.md)).

**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)
2. **Recording observations** with R/C/D counters (Recurrence/Confirmations/Disconfirmations)
3. **Finding patterns** within the workspace's `.learnings/` directory
4. **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

/fm <sub-command> [arguments]

fm-sub-command-arguments.txt
## Sub-Commands

| Command | CJK | Logic | Trigger |
|---------|-----|-------|---------|
| `/fm detect` | 検出 | fail∈{test,user,API}→record | Next Steps (auto) |
| `/fm record` | 記録 | 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`, `error` |
| 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 |
|---------|--------|--------|
| `test.exit_code != 0` | Tool output | `/fm detect test` |
| "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

Status: Monitoring (R<3)

status-monitoring-r3.txt
## Core Logic

### R/C/D Counters

| Counter | Meaning | Updated By |
|---------|---------|------------|
| **R** (Recurrence) | Auto-detected occurrences | `/fm detect`, `/fm record` |
| **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-*`, `quality-*`

### Metrics

- `prevention_rate`: Failures prevented / Total potential failures
- `false_positive_rate`: D / (C + D)

## Output

### /fm detect output

Pending review: 3 observations

pending-review-3-observations.txt
## Configuration

Configuration is loaded from (in order of precedence):
1. `.openclaw/failure-memory.yaml` (OpenClaw standard)
2. `.claude/failure-memory.yaml` (Claude Code compatibility)
3. Defaults (built-in)

false_positive_max: 0.2 # Max D/(C+D) ratio (default: 0.2)

-falsepositivemax-02--max-dcd-ratio-default-02.txt
## 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:
example.sh
# Install with dependencies
openclaw install leegitw/context-verifier
openclaw install leegitw/failure-memory
example.txt
[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)
example.txt
[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)
example.txt
[DETECTED] test failure
Pattern: lint-before-commit
Observation: OBS-20260215-001
R: 1 → 2
Status: Monitoring (R<3)
example.txt
=== 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

⚙️Configuration Options

Option Type Default Description
_Rnumber3-
_Cnumber2-

Tags

#notes_and-pkm

Quick Info

Category File Management
Model Claude 3.5
Complexity One-Click
Author leegitw
Last Updated 3/10/2026
🚀
Optimized for
Claude 3.5
🧠

Ready to Install?

Get started with this skill in seconds

openclaw install failure-memory