Stage two of the pipeline. scripts/extract_session.py is the deterministic, dependency-free
stage one — it turns your raw agent JSONL into clean, dated Markdown. These are optional,
LLM-assisted skills for the next step: read those daily extracts, distill each into a short
durable note, and promote the reusable lessons into concept pages you can index anywhere.
Each subfolder is a real skill — a SKILL.md with name/description frontmatter. Install both
folders (or the whole skills/ set): session-mining references distillation-filter, so a
session-mining-only install leaves that link dangling. Drop them into your ~/.claude/skills/
(or a project .claude/skills/) to load them in Claude Code, or read each SKILL.md as plain
instructions in any agent (Codex, …).
session-mining/— end-to-end: discover logs → extract → distill (one bounded day at a time) → curate dated daily notes → promote durable concepts → index (backend-agnostic).distillation-filter/— the "what's worth keeping" filter and the note/concept shapes, used bysession-mining.
The extractor stays deterministic and free — no model decides what it keeps. These skills use an LLM only to curate, and you control that cost. Nothing here is required to use the extractor; it's a recipe for what to do next.
Session extracts can carry your prompts, file contents, and secrets. Keep raw extracts in a scratch or gitignored directory; commit and index only the small curated notes; redact credentials; and never paste long private passages into durable notes. Run a secret scan before publishing anything.
Curated Markdown drops into whatever you already run — plain git, Obsidian, Logseq, a vector
brain (e.g. gbrain), a local index (e.g. memsearch), or nothing at all. No backend is
required or assumed.