learnlisted
Install: claude install-skill Ian-Louw/potion
# Potion Learn
Inherit `${CLAUDE_PLUGIN_ROOT}/core/CORE.md`. The compounding loop: what one session learns, every
future session knows.
**Entry contract (must hold in every appended journal line):**
- Grammar: one JSON object per line — `type`, `key`, `insight`,
`confidence`, `files`, `ts`, optional `"incident":{date,bad,fix}`.
- The bar: would this save 5+ minutes in a future session? No → don't log.
Don't log what the repo already records (code, git history, CLAUDE.md).
- Key discipline: newest-wins dedup per key — update by appending the same
key, never editing; a promoted check takes its OWN `check-{source-key}`
key, never the source pitfall's.
Before finishing, re-read the appended entry against this block; fix in
place, or regenerate it — at most once.
## Logging
Append one line to `.potion/learnings.jsonl`:
```json
{"type":"pitfall","key":"expo-metro-cache","insight":"Metro serves stale bundles after branch switch; always start with --clear","confidence":8,"files":["package.json"],"ts":"2026-07-03"}
```
- `type`: per CORE.md's canonical list (includes `check` and `tombstone`)
- `key`: stable kebab-case id; discipline per the entry contract above (the
one edit exception, in CORE.md: compaction past ~500 lines).
- `files`: backpointers used for staleness — if those files disappear, the
learning is suspect.
- `confidence`: 1-10. Raise it (append) when the learning proves out again.
- `incident`: optional — `"incident":{"date":"YYYY-MM-DD","bad":"<exact b