Skip to content
Back to skills

Error Memory

ASecurity

MUST USE after ANY command error, ANY failure, ANY mistake — auto-logging the error as an `incident_lesson` node in the memory tree. Trigger: error, fail, crash, broken, 403, 500, timeout, refused, ENOENT, command not found. On session start, walk `root/workspace` and read the earlier lessons — know what broke before and how it was fixed.

  • 15 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added November 7, 2026
developmentpythongoshellbashnodeapi

Works with

  • api

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned November 7, 2026

npx -y skills add youlianvr/oper-share --skill error-memory --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Error Memory?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Error Memory
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/youlianvr-error-memory/badge)](https://www.skillsdirectory.com/skills/youlianvr-error-memory)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: error-memory
description: >
  MUST USE after ANY command error, ANY failure, ANY mistake — auto-logging the
  error as an `incident_lesson` node in the memory tree. Trigger: error, fail,
  crash, broken, 403, 500, timeout, refused, ENOENT, command not found.
  On session start, walk `root/workspace` and read the earlier lessons — know
  what broke before and how it was fixed.
version: 1.2.0
---

# Error Memory — learning from errors

## Trigger

1. **At session start** — walk `root/workspace` and read the `incident_lesson`
   nodes; also read the `promoted` nodes, which are the approaches that worked.
2. **After ANY error** — record it as a node; if you then found a working
   approach for a previously blocked task, record that too, as a promoted node.
3. **Before action** — check whether this error was already met; if a promoted
   node covers the situation, use that approach first.

## Where it goes

The tree is the store; there is no log file to grow forever.

```bash
# read the lessons
python _scripts/memory.py walk --root root/workspace --status promoted

# record one after the error is understood
python _scripts/memory.py branch --root root/workspace \
  --provenance incident_lesson --status active --outcome "fixed: <one line>" \
  --content "Problem: ... Cause: ... Solution: ... Signal: ..."
```

When a fix holds after a second occurrence, promote it:
`verdict --id N --status promoted --outcome "held on repeat"`.

## Node shape

One node per distinct gotcha — not one per occurrence.

```
Problem:  what happened
Cause:    the root cause, not the symptom
Solution: how it was fixed, or how to avoid it
Tool:     which tool NOT to use / which to use instead
Signal:   keywords that make this findable later
```

The `Signal` line is the search key: without it, the node is unfindable and the
mistake repeats.

## Categories

browser (captcha, block, Cloudflare, 404), tool (missing, wrong path), api (key,
403, rate limit, timeout), command (syntax, flag), proxy (proxy, VPN, DNS,
resolver), messaging (platform API, sending, formatting), file (path, encoding,
permissions, size), schedule (job, delivery), local-service (port, connection
reset), reverse-engineering (APK, Android, ADB), install (pip, npm, uv,
dependency), env (interpreter, PATH, shell quirks), search (engine failures,
extraction).

## Checklist

```
1. Error occurred
2. -> Why? (root cause)
3. -> How to fix? (solution)
4. -> How to prevent? (signal)
5. -> Node in the tree, provenance incident_lesson
6. -> Dedup: is there already a node for this gotcha? Update it, do not duplicate
```

## Example lessons

### A datacenter address is blocked by search engines
```
Problem: search engines and some APIs answer with a block page
Cause:   the exit address belongs to a datacenter range, not a residential one
Solution: a local browser with the user's own session, or a residential exit
Signal:  Cloudflare, CAPTCHA, "blocked", 403 from search, "Attention Required"
```

### Unsourced 403 after a key rotation
```
Problem: an API starts answering 403 with a key that worked yesterday
Cause:   the key rotated upstream, or the request goes out through a stale proxy
Solution: probe one endpoint with the plaintext key, then check the egress route
Signal:  403, "invalid key", works from another network
```

### Connection reset on a local proxy
```
Problem: the local proxy dies with ConnectionResetError
Cause:   the upstream behind it is down or restarting
Solution: restart the upstream, then the proxy; confirm the listener afterwards
Signal:  ConnectionResetError, 10054, gateway down
```

## Deduplication and archive

Once per session, keep the branch usable:

1. **One gotcha, one node.** Merge duplicates by meaning; the older node gets a
   `supersedes` edge from the newer one, so lineage still resolves.
2. **Archive, never delete.** A lesson that no longer applies is marked `pruned`
   with the reason, not removed from the tree.
3. **Live gotchas stay.** Age is not irrelevance: an environment quirk that still
   reproduces stays `active` however old it is.
4. **Sanitize before recording.** No addresses, tokens or personal identifiers in
   a node — `user***@domain` at most. A lesson must not become the leak.

## Anti-patterns

- Error occurred, work continued, nothing recorded
- Recorded in reasoning only — the session dies and the lesson with it
- Did not walk the tree at start — the same error repeats
- Node without a `Signal` line — unfindable in a search
- "This tool is broken" instead of the working fix

Files in this skill

  • SKILL.md4.5 KB
  • references/session-2026-07-08.md1.9 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.