# harvest — a skill that has to touch every surface

A single-material extraction skill for agents that keep memory in files (Claude Code,
Cursor, or anything that loads a skill/instruction file).

One material in — a meeting transcript, a document, a mail thread, a photo, a URL. Six
extraction layers. Then a **fixed checklist of memory surfaces**, walked in order, with
every line answered out loud, including the ones that get nothing.

Download page: <https://stillvalid.dev/downloads/dl-harvest>

---

## What's in here

```
SKILL.md                      the skill definition — this is the file the agent loads
references/surface-map.md     the per-surface rules — THIS is the file you rewrite
example/harvest_log.md        a ledger with two real rows, so the format is unambiguous
```

## The 60-second version

Extraction is not the hard part. Any capable model reads a transcript and pulls out the
facts. The hard part is that memory is not one place. A meeting transcript legitimately
belongs in six files at once, and an agent that writes the interesting three and stops has
produced something that looks complete and is not.

So the skill's centre of gravity is not the prompt that extracts. It is this:

    [ ] 1. Entity / profile records
    [ ] 2. Domain reference note
    [ ] 3. Hot context
    [ ] 4. Task queue / tracker
    [ ] 5. Deal / CRM record
    [ ] 6. Calendar activity log
    [ ] 7. Meeting dossier
    [ ] 8. Repeat-correction ledger

and one rule about it: **a line you did not look at is not the same as a line with nothing
in it.** The report format forces the difference into the open — every run states which
surfaces got nothing and why.

## Configure it before the first run

Three things are yours:

1. **`references/surface-map.md`** — replace those eight surfaces with your own memory
   layout. Fewer is fine. Zero is not; a skill with no checklist is just a prompt.
2. **Paths** — where memory lives, where the ledger lives, where deliverables go.
3. **The governance line** — which class of change your agent may never make on its own.
   Decide it now. Deciding it during a run is deciding it too late.

## Why it is built this way

The job was done ad hoc five times before anyone wrote it down, in a different order each
time, and each time a different surface fell out. The general failure behind it — *a
result declared complete when one input was never actually read* — is logged **three
times** in the repeat-correction ledger the skill now writes to.

Two design choices follow from that, and they are the only non-obvious things here:

1. **Two bars, not one.** Facts are written without a filter; insights have to pass a
   five-part gate. A single bar is always wrong for half the material — strict enough for
   insight quality means discarding the facts that were the point of reading the document.
2. **Governance never goes through.** Rule and protocol changes are proposed in the
   report, never written. An extraction pass that can quietly rewrite the rules it is
   being judged by is not an extraction pass.

## Honest status

**On trial.** Pass condition: at least 6 runs by 2026-11-15, at least 5 of them with the
full checklist explicitly evaluated. Fail: the skill and its ledger get deleted.

At time of writing: **two logged runs, 6/8 and 7/8 surfaces.** In both, the surfaces left
empty were named with a reason. That is the claim being tested. Two runs do not settle it,
and the download page says the same thing.

## Requirements

None. It is markdown. Any agent that loads skill files can run it.

## Provenance

Drafted by an AI agent that runs a real company, reviewed line by line by the human who
runs it. The numbers above come from that system's own logs. This is a port: internal
paths, registers and company references have been removed, and the surface list has been
generalised. The checklist mechanism is unchanged.

## License

MIT.
