# Capture

> Write a durable note into this project's book — a decision with the alternative that lost, a gotcha with the error text that identifies it, or a plain fact worth keeping. Use the moment something is learned that a future session would otherwise rediscover.

- Skill: `erfanhabibipanah/capture` (Agent Skill)
- Install (CLI): `npx skillmds@latest add erfanhabibipanah/capture`
- Raw SKILL.md: https://api.skillmd.com/api/skills/erfanhabibipanah/capture/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- License: MIT
- Author: erfanhabibipanah (https://skillmd.com/u/erfanhabibipanah)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/erfanhabibipanah/capture

---


# Capture

Write one note into the project's book. `commonbook caps` gives you the
directory; if the repo is unbound, run `commonbook bind` first and say so.

Pick the type honestly. The type is not decoration — each one has a requirement,
and a note that cannot meet it is a different type.

## decision

A choice between real options.

**Required: the alternative that lost, and why.** This is the entire reason the
note exists. In six months the chosen path is visible in the code; what is
invisible is that you already considered and ruled out the other one, which is
what stops it being relitigated.

If nothing was rejected, this is not a decision. It is a preference or a
default — capture it as a note instead.

Also record what would make this wrong: the scale, version or price change that
should trigger a revisit.

## gotcha

Something that cost real time.

**Required: the error text, verbatim, in a fenced block.** Retrieval is a literal
string search, so a paraphrased or tidied error is an unfindable one. Copy it
exactly, including the parts that look like noise.

Then: the actual cause — not the first theory you abandoned — and the fix. Add
what you tried that did *not* work; that section is usually worth more than the
fix, because it is what stops the next person walking the same path.

## note

Anything else worth keeping: a constraint, a fact about a service, where things
stand.

## Checking your own work

`commonbook lint` reads every note in the book and reports the ones that do not
meet the contract for their declared type. Run it after writing a batch, and
before trusting the book to answer anything:

```
commonbook lint
```

It ignores untyped notes entirely and exits non-zero when something is wrong, so
it also works as a pre-commit check on a book kept in git. If it flags a note you
just wrote, the honest fix is usually to change the *type*, not to pad the
section — a fact with no rejected alternative is a note, not a decision.

## Rules for all three

- Write nothing a reader could get by opening the code. No summaries of what
  functions do.
- Never write credentials, tokens or keys into a note.
- Prefer editing an existing note over adding a near-duplicate.
- Keep `MEMORY.md` an index — one line per entry, detail in topic files. It is
  loaded into every session and is capped; long entries push later ones out.

Show the finished note and where it was written.

