Skip to content
Back to skills

Lambda Memory Capture

ASecurity

Use when saving a decision or note in Lambda Memory, recording relevant work evidence, or publishing a source-backed revision or correction automatically.

  • 3 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 22, 2026
ai-agentssqldatabase

Works with

  • claude code
  • mcp

Security analysis

A100/100

Scanned October 22, 2026

npx -y skills add nicolasfmelo/lambda-memory --skill lambda-memory-capture --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Lambda Memory Capture?

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

Security grade badge for Lambda Memory Capture
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/nicolasfmelo-lambda-memory-capture/badge)](https://www.skillsdirectory.com/skills/nicolasfmelo-lambda-memory-capture)

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: lambda-memory-capture
description: Use when saving a decision or note in Lambda Memory, recording relevant work evidence, or publishing a source-backed revision or correction automatically.
---

# Lambda Memory capture and proposals

## Before you start

Use the `memory_capture` and `memory_propose` tools. In Claude Code they appear as `mcp__lambda-memory__memory_*`, in OMP as `mcp__lambda_memory_memory_*`. If they are missing, see the lambda-memory-runtime skill.

Every call must pass `project` exactly as shown in the tool description ("Current authorized project: …"). Owner and actor come from configuration and are never arguments.

Capture is local. Afterwards, idle processing (dreaming) turns sources into memories automatically. In `openrouter` mode that sends the captured text to models through OpenRouter, so never capture secrets, credentials or private data the user would not want sent. No human approval is needed per memory.

## Capture a source

1. Pick the smallest useful evidence. Do not paste whole logs, tool arguments or files.
2. Choose a `source` id that is stable for this event (for example `session-42/decision-1`). Ids are non-blank, have no control characters and are at most 512 UTF-8 bytes. Reusing an id with different content is a conflict; a correction is a new source.
3. `kind`: `attempt`, `result`, `error` or `decision`. `outcome`: `unknown`, `succeeded` or `failed`. Use `unknown` for plans and decisions unless a result was observed. A failure stays a failure.
4. `origin` names where the evidence came from (at most 2048 bytes). `content` is at most the configured cap (default and maximum 8192 bytes). If it is too long, narrow it yourself; do not truncate silently.
5. Check the receipt: `saved_pending` or `already_saved_pending` for your source id. That confirms storage, not a published memory.

```json
{"name":"memory_capture","arguments":{"project":"project-demo","source":"session-demo/decision-1","kind":"decision","outcome":"unknown","origin":"user://explicit-decision","content":"Use Postgres for the project database."}}
```

With the OMP hooks extension, `/lambda-memory <text>` captures an explicit note, and ordinary work results are already captured as metadata. Do not capture those again under new ids.

## Publish a claim right away

Use `memory_propose` when the user wants a specific claim available now instead of waiting for dreaming. Its 1–32 `sources` must already be captured in this project. Choose stable `memory` and `revision` ids.

```json
{"name":"memory_propose","arguments":{"project":"project-demo","memory":"database-choice","revision":"database-choice-r1","sources":["session-demo/decision-1"],"content":"Use Postgres for the project database."}}
```

For a correction, capture the new evidence, then propose a new revision of the same memory naming the current one as `predecessor`:

```json
{"name":"memory_capture","arguments":{"project":"project-demo","source":"session-demo/decision-2","kind":"decision","outcome":"unknown","origin":"user://explicit-correction","content":"Replace Postgres with SQLite for the project database."}}
```

```json
{"name":"memory_propose","arguments":{"project":"project-demo","memory":"database-choice","revision":"database-choice-r2","sources":["session-demo/decision-2"],"content":"Use SQLite for the project database.","predecessor":"database-choice-r1"}}
```

A successful proposal returns the revision as `active`; the predecessor becomes `superseded` and stays in history. Returned claims are always `provisional: true`.

## Errors

- JSON-RPC `-32602`: malformed arguments (unknown or missing keys, bad `kind`/`outcome`, ids over 512 bytes, 1–32 sources). Nothing was written.
- `isError: true`: content over the cap, origin over 2048 bytes, duplicate or unknown sources, or a conflicting replay.
- A timeout is indeterminate. Do not repeat the write under the same or a new id; check with `memory_status` or `memory_list` first.
- `diagnostics_warning.code: "final_record_unavailable"`: the operation result stands; only its history record is missing. Report it and do not repeat.

Report the source and revision ids and the confirmed state. Use `memory_status` to see pending or blocked processing. For optional rejection or conflicts, see the lambda-memory-review skill.

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.