mine — Claude Code skill: build a profile from session history
Turns your real local AI coding sessions into an Emulo profile. It runs only when you ask for it and approve the plan.
npx skills add ohad6k/emulo --skill mine -a claude-codeWhat mine does
This skill works from .jsonl sessions a person actually wrote. Rules files, memory and a typed self-description are off limits — the profile has to come from history.
It locates emulo.py two directories above the skill, checks that Python 3 is present, then runs the read-only plugin preflight. That output lists valid sessions, source tokens after dedupe, cache hits, and how many worker and reducer calls are planned. Model work waits until you approve the cost. The approved plan is pinned to a hash; change the hash and the plan is shown again, so approval has to be repeated.
Each uncached segment then goes to its own fast worker. The worker reads only that segment and the contract in MINING_PROMPT.md, writes a JSON report, and keeps running plugin validate-report until it passes. Accepted reports are cached. A reducer takes only the validated reports, writes the pack, and checks it with plugin validate-pack. Only a pack that passes gets activated. Installing the skill scans no logs and schedules nothing. The --preview mode produces a starter profile rather than the full one, and it is meant for cases where you ask for it separately.
What it helps with
- build a profile from genuine session history instead of guesses
- see the mining plan and its cost before any model call
- reuse reports that were already computed
- refresh a profile without re-running the whole history
- validate a pack before it goes live
Example prompts for the agent
- Run mine and show me the preflight for my session history
- Give me a quick preview with
--preview - Update the Emulo profile from my new sessions
How to install mine
1Skills CLI (Vercel)
npx skills add ohad6k/emulo --skill mine -a claude-code2Manually: put the files in place
~/.claude/skills/mine/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/mine/
1Skills CLI (Vercel)
npx skills add ohad6k/emulo --skill mine -a codex2Manually: put the files in place
.agents/skills/mine/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add ohad6k/emulo --skill mine -a cursor2Manually: put the files in place
.cursor/skills/mine/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install ohad6k/emulo mine2Manually: put the files in place
.github/skills/mine/SKILL.md1Skills CLI (Vercel)
npx skills add ohad6k/emulo --skill mine -a gemini-cli2Platform CLI
gemini skills install https://github.com/ohad6k/emulo --path skills/mineManually: put the files in place
.devin/skills/mine/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add ohad6k/emulo --skill mine -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about mine
How do I install mine in Claude Code?
Run npx skills add ohad6k/emulo --skill mine -a claude-code. The skill lands at ~/.claude/skills/mine/SKILL.md.
What does mine do?
It sends your local .jsonl sessions through workers and a reducer to assemble an Emulo profile. Nothing starts until you approve the plan it prints.
What does the skill need to run?
Python 3 and a path to emulo.py two directories above the skill. In a direct checkout, ./emulo.py works.
Source text
SKILL.md · MIT
--- name: mine description: Use only when the user explicitly asks to run, set up, update, re-mine, or deepen Emulo from real local AI coding-session history. --- # Emulo mine Mine only real user-authored `.jsonl` sessions. Never synthesize a profile from rules files, memory, or a typed self-description. 1. Resolve `EMULO_PY` to `emulo.py` two directories above this skill, falling back to `./emulo.py` only in a direct checkout. Confirm Python 3 exists. 2. The full-history quality default reads all eligible history. Run read-only `python "$EMULO_PY" plugin preflight`, show valid sessions, post-dedupe source tokens, selected source tokens, cache hits, planned worker calls, and planned reducer calls, then wait for explicit cost approval before model work. 3. Only when the user explicitly asks for a quick preview, run preflight and prepare with `--preview`. Say this exactly before approval: `Quick preview creates a starter profile from selected history, not the full profile.` Never call preview the default, the full profile, or equivalent in quality to full-history mining. 4. Retain the displayed `approval_hash`. Run `python "$EMULO_PY" plugin prepare --approved-plan-hash HASH` with the exact approved mode. If the hash changed, show the new plan and obtain approval again. Retain the exact `run_id`, selected segment/report paths, and `pack_path`. 5. Run one fast worker for each uncached selected segment. Each reads only its segment and the per-segment contract in `MINING_PROMPT.md`, writes its assigned JSON report, and runs the read-only `plugin validate-report` command until accepted. 6. Cache each accepted report with `plugin cache-report`; stop on rejection. 7. Run one strongest-available reducer over only the validated reports and the combined reducer contract. It writes the complete assigned pack and self-validates with `plugin validate-pack`. 8. Activate only the validated pack with `plugin activate`, then run `plugin status` and render the card. Report active version, domain states, selected source tokens, actual worker/reducer passes, cache reuse, and targeted-deepen instructions. Every prepared mode requires explicit approval of its displayed plan. Installation itself scans no logs and schedules zero mining calls. An identical update schedules zero additional Emulo mining calls, although the host task still has normal interaction overhead. Adaptive receipt/scout stages are experimental and excluded from the Plugin release path. Run `--stage A` only when a developer explicitly requests experimental adaptive-recall testing; never select it automatically or use it for release calibration.
© ohad6k · MIT · ohad6k/emulo