Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Load the user's Emulo profile, mined from their local Claude Code, Codex, and OpenCode session logs, so you work like them instead of a cold start. Use before working on their task.
.claude/skills/ohad6k-emulo/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-04 | ✗→✓ | ▲ Improved | 95% | 0% |
| case-05 | ✗→✓ | ▲ Improved | -28% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 241% | 0% |
| case-08 | ✗→✓ | ▲ Improved | -35% | 0% |
| case-10 | ✗→✓ | ▲ Improved | -58% | 0% |
Mine only real user-authored .jsonl sessions. Never synthesize a profile from rules files, memory, or a typed self-description.
SKILL_DIR be the directory containing this file. In a repository checkout, use SKILL_DIR/../../../emulo.py and SKILL_DIR/../../../MINING_PROMPT.md. Otherwise run python "$SKILL_DIR/scripts/bootstrap.py" and read its JSON paths. The bootstrap accepts only an exact release tag and verified SHA-256 values; never fetch executable code from mutable main.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.--preview for both preflight and prepare. 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.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 run_id, assigned segment/report paths, and pack_path from the run JSON.MINING_PROMPT.md. Cache every JSON report with plugin cache-report; stop on rejection.pack_path, then activate it with plugin activate.plugin profile-path --domain work. If the current host already has the native Emulo plugin, do not create a competing direct profile. Otherwise install the core profile through the existing exact adapter for the current host and verify it in a fresh task.emulo:mine, emulo:work, emulo:design, emulo:write, and emulo:video routing on top of the core profile just installed. Ask first, accept a no, and never install it without an explicit yes. Skip the offer entirely when the host already has the plugin. On approval in Codex, run codex plugin marketplace add ohad6k/emulo --ref TAG --json and then codex plugin add emulo@emulo --json, where TAG is the exact release tag matching the installed version, never main. Report what got installed. In Claude Code the /plugin commands are typed by the user and an agent cannot run them, so print exactly these two lines for the user to paste, in this order, and say the routed skills appear in the skill menu once the second one finishes:text/plugin marketplace add ohad6k/emulo /plugin install emulo@emulo
The npx bootstrap installs the approved core profile across supported agents. Automatic emulo:work, emulo:design, and emulo:write routing belongs to the separately installed native plugin, which step 9 offers once the profile exists. Asking an agent to orchestrate setup still consumes that host interaction even when Emulo plans zero mining passes.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 5,485 | 8,443 | +54% | 1 | 1 | 0% | 817 | 1,143 | +40% | 0 | 0 | — |
case-02 | fail→fail | 9,236 | 8,305 | -10% | 1 | 1 | 0% | 1,182 | 1,184 | +0% | 0 | 0 | — |
case-03 | pass→fail | 11,789 | 8,131 | -31% | 1 | 1 | 0% | 1,881 | 1,259 | -33% | 0 | 0 | — |
case-04 | fail→pass | 4,622 | 3,876 | -16% | 1 | 1 | 0% | 732 | 1,427 | +95% | 0 | 0 | — |
case-05 | fail→pass | 14,099 | 4,970 | -65% | 1 | 1 | 0% | 1,941 | 1,398 | -28% | 0 | 0 | — |
case-06 | fail→pass | 6,265 | 11,253 | +80% | 1 | 1 | 0% | 696 | 2,375 | +241% | 0 | 0 | — |
case-07 | pass→pass | 12,519 | 4,854 | -61% | 1 | 1 | 0% | 1,890 | 1,449 | -23% | 0 | 0 | — |
case-08 | fail→pass | 14,820 | 4,239 | -71% | 1 | 1 | 0% | 1,998 | 1,296 | -35% | 0 | 0 | — |
case-09 | fail→fail | 12,302 | 6,051 | -51% | 1 | 1 | 0% | 1,591 | 1,732 | +9% | 0 | 0 | — |
case-10 | fail→pass | 18,293 | 2,877 | -84% | 1 | 1 | 0% | 2,807 | 1,192 | -58% | 0 | 0 | — |
case-11 | pass→pass | 12,677 | 2,802 | -78% | 1 | 1 | 0% | 1,612 | 1,298 | -19% | 0 | 0 | — |
case-12 | pass→pass | 12,323 | 4,990 | -60% | 1 | 1 | 0% | 1,563 | 1,486 | -5% | 0 | 0 | — |
case-13 | fail→pass | 13,027 | 5,358 | -59% | 1 | 1 | 0% | 1,992 | 1,451 | -27% | 0 | 0 | — |
case-14 | fail→pass | 24,469 | 3,140 | -87% | 1 | 1 | 0% | 1,842 | 1,318 | -28% | 0 | 0 | — |
case-15 | fail→fail | 11,016 | 4,549 | -59% | 1 | 1 | 0% | 1,537 | 1,471 | -4% | 0 | 0 | — |
case-16 | pass→fail | 8,704 | 3,096 | -64% | 1 | 1 | 0% | 1,362 | 1,296 | -5% | 0 | 0 | — |
case-17 | fail→pass | 12,941 | 4,446 | -66% | 1 | 1 | 0% | 2,121 | 1,470 | -31% | 0 | 0 | — |
case-18 | fail→fail | 23,576 | 4,146 | -82% | 1 | 1 | 0% | 1,634 | 1,407 | -14% | 0 | 0 | — |
case-19 | fail→pass | 13,616 | 4,648 | -66% | 1 | 1 | 0% | 1,997 | 1,610 | -19% | 0 | 0 | — |
case-20 | fail→fail | 10,365 | 3,069 | -70% | 1 | 1 | 0% | 1,360 | 1,205 | -11% | 0 | 0 | — |
case-21 | pass→pass | 77,561 | 3,007 | -96% | 1 | 1 | 0% | 3,493 | 1,349 | -61% | 0 | 0 | — |
case-22 | fail→pass | 13,678 | 3,325 | -76% | 1 | 1 | 0% | 1,692 | 1,241 | -27% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 19 counted toward the lift figure. The other 3 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +36 percentage points is the difference between those two pass rates over the 19 comparable cases. 3 cases got worse with the skill loaded, and they are included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.